Run Perl6 Now! & pugscode.org ('Overview', 'Journal') & pugs.kwiki.org & channel log: xrl.us/e98m & < autrijus> damn, my journal keeps getting obsoleted by #perl6. Set by Juerd_ on 12 March 2005. |
|||
gaal calls it a day | 00:00 | ||
nothingmuch | eek, server misconfig, i have to make it unforbidden | ||
good night, gaal! | |||
gaal | bye people! | ||
theorbtwo | For that matter, jcwren wouldn't mind giving whomeever an acocunt, I bed. | ||
bet. | |||
jabbot | pugs - 821 - TODOs for .bytes, .codes, .graphs | ||
theorbtwo | Later, gaal! | ||
gaal | bye :) | ||
PerlJam | Why would whomeever need an acocunt? | ||
and what's an acocunt anyway? | 00:01 | ||
and who is whomeever? | |||
:-P | |||
Limbic_Region | everyone knows James can't speel | ||
nothingmuch | PerlJam: err, to store files | ||
or run pugs | |||
or send spam | 00:02 | ||
lightstep | pugs isn't installed | ||
but ghc6.2 is | |||
nothingmuch | i never made install pugs | 00:03 | |
it's svn in my homedir | |||
but i usually run it on syeeda, my laptop | |||
or safta, a very strong box at work | |||
lightstep | do i have web access too? | 00:04 | |
nothingmuch | lightstep: working on it | 00:06 | |
my webserver is a bit not configured for that | |||
lightstep | cool | 00:07 | |
nothingmuch | ok, screw it | 00:08 | |
i'm copying my vhost setting | |||
you are now lighstep.woobling.org | |||
lightstep | err, but i don't control the web page | 00:10 | |
i made up a little index.html | |||
and still the default (?) page shows | |||
nothingmuch is still trying to figure out what's going on | |||
ah | 00:11 | ||
didn't name it .conf | |||
there | |||
lightstep.woobling.org | |||
anywho, i'm off now | 00:12 | ||
work tomorrow | |||
theorbtwo | Night, nm. | ||
nothingmuch | good night, theorbtwo | 00:13 | |
Limbic_Region | theorbtwo - you sleep while Jess is at work? | ||
nothingmuch | lightstep: if you have any trouble with the account either message me here, or [email@hidden.address] foobargorch on aim, or email me: [email@hidden.address] | 00:14 | |
and i will fix it first thing tomorrow morning | |||
lightstep | ok | ||
nothingmuch | *poof* | ||
Limbic_Region | www.perlmonks.org/index.pl?node_id=440205 # Pugs problem with PREFIX= | 00:15 | |
theorbtwo | Often, yes. | ||
Really, I just let my sleep schedule do what it wants. | |||
Limbic_Region | must be nice - my body would much prefer to be awake/asleep for irregular intervals | 00:16 | |
lightstep | good night all | 00:18 | |
Limbic_Region | TTFN lightstep | 00:19 | |
theorbtwo | Mine probably would too, if it got irregular exercise. | 00:22 | |
As it is, not so much does it get any. | |||
jabbot | pugs - 822 - Kwid spec review and refactor. | 01:10 | |
Schwern | Hey, are Pugs tests expected to fail when you pull straight from the repo? | 01:40 | |
stevan | Schwern: yes | ||
ingy | :) | ||
Schwern: yes, between releases | 01:41 | ||
stevan | Schwern: they decided that if something is broken it should fail | ||
Schwern | nopaste.snit.ch:8001/2055 | ||
stevan | + what ingy said | ||
ingy | dev is fast and furious here | ||
stevan | Schwern: looks normal :) | ||
Schwern | Well, I don't know whats expected and what's not there. | ||
Alias_ | Schwern! | 01:42 | |
Schwern | That's-a-me | ||
ingy | Schwern: your Kwid dream is finally coming to fruition (join #kwid) | 01:47 | |
(The whole thing was originally Schwern's idea :P) | |||
Schwern | That's right. Blame it on me | 01:48 | |
jabbot | pugs - 823 - adding tests for invocant syntax $foo.de | 02:00 | |
pugs - 824 - some more work on perl6-ing File::Spec, | 02:10 | ||
chiaoi | s | 02:46 | |
.login | 02:47 | ||
03:47
cnhackTNT|sleepi is now known as cnhackTNT
|
|||
jabbot | pugs - 825 - More AUTHORS updates. lightstep, please | 04:20 | |
04:49
bytewolf is now known as cnhackTNT
|
|||
Darren_Duncan | Does anyone know why rt.openfoundry.org/Foundry/Project/?Queue=270 says that the latest release is 6.0.9 when 6.0.11 was released after moving back to that server? | 04:52 | |
Khisanth | it's also the only available version for download from there ... maybe it's related :) | 04:58 | |
obra | Darren_Duncan: likely because it just hasn't been updated | 05:00 | |
Schwern | Eeek! | ||
obra | I'll see if I can fix | ||
Schwern | Installing /System/Library/Perl6/Test.pm | ||
Unlinking /System/Library/Perl/5.8.1/Test.pm (shadowing?) | |||
Darren_Duncan | so that updating doesn't happen automatically? | ||
obra | dunno | 05:01 | |
Schwern | DO NOT RUN "make install UNINST=1"! | ||
Alias_ | Darren_Duncan++ # Nice job on the Alg::Dep port by the way | ||
Any comments on problems or issues you had in the process? | |||
Darren_Duncan | I noticed that a few people have started editing Alg::Dep after me ... | ||
I have a question ... | |||
What's with this move to self-less? | |||
I thought explicitly having the $self makes for more readable code | 05:02 | ||
Schwern | Why write $self.foo when .foo means the same thing? | ||
And .foo doesn't mean anything else | |||
Alias_ | newbie friendlyness? | ||
Schwern | Not having to write $self a thousand times? | ||
Darren_Duncan | Doesn't .foo operate on whatever $_ currently is? | ||
Alias_ | It was already written :) | ||
Darren_Duncan | and that isn't always the object? | ||
Alias_ | no, .foo operates on the method's object | 05:03 | |
Schwern | $_ isn't always the object but tends to be in short methods | ||
Darren_Duncan | so if you're inside a loop where $_ is not the object, then .foo will still operate on the object? | ||
Alias_ | wot..., so .foo isn't really "operates on the object"? | ||
Schwern | Alias: According to Synopsis 12 .foo is $_.foo | 05:04 | |
Dot notation can omit the invocant if it's in $_: | |||
.doit(1,2,3) | |||
Darren_Duncan | and $_ isn't always the object, is it? | ||
in map {} its the list item | |||
Alias_ | Which means that I should always use $self still, to avoid gotchas | ||
Darren_Duncan | that's why I do it | 05:05 | |
part of the reason | |||
Alias_ | I had assumed .foo was implicitly $self.foo | ||
Schwern | DD: As with $_ now, .foo is useful for short blocks and methods. | ||
Alias_ | I swear I saw that in a damian talk | ||
Darren_Duncan | I only use .foo in extremely simple contexts, if at all | ||
Schwern | Alias: Maybe they changed it since S12 since that certainly seems less dangerous | ||
Darren_Duncan | such as one-liner methods | ||
Alias_ | I almost never use $_, except in ^^^ as well | 05:06 | |
Darren_Duncan | In any event, I want LKT to stick with the explicit objects | ||
Schwern | LKT? | ||
Alias_ | locate::... | ||
Darren_Duncan | Locale::KeyedText | ||
Alias_ | sorry, miskey, that | ||
Darren_Duncan | I almost never use $_; mainly I just use it in map or grep | 05:07 | |
Schwern | If .foo == $self.foo and not $_.foo then I don't see why one would bother | ||
Darren_Duncan | where it has to be used | ||
Schwern | Writing $self out over and over again that is | ||
Darren_Duncan | that's an IF | ||
obra | Darren_Duncan have a look at foundry again? | 05:08 | |
Darren_Duncan | but if the latter is true, then watch out! | ||
Alias_ | if .foo == self.foo, that's fine | ||
Schwern | Hopefully sanity will reign | ||
Alias_ | If .foo == self.foo some_of_the_time_but_only_when_$__is_$self_which_it_is_by_default_at_the_top_of_methods_but_not_in_loops, then I'm not happy | 05:09 | |
Darren_Duncan | Ingy, Foundry looks good | ||
I meant obra | |||
Schwern | Alias: That would be more concisely expressed as .foo == $_.foo | ||
obra | heh. first time I've been confused for ingy! | ||
Alias_ | Dot notation can omit the invocant if it's in C<$_>: | ||
.doit(1,2,3) | |||
darn | 05:10 | ||
The in that case, we have to explicitly use self. | |||
Then | |||
jabbot | pugs - 826 - r8059@kybristedi: gugod | 2005-02-07 2 | ||
Schwern | Alias: Sure but that's 4 months old | 05:11 | |
Alias_ | I hope so | 05:12 | |
Darren_Duncan | For sanity, I like to avoid using $_ where at all possible; the only exception is in tight loops like map and grep, where I seem to have no choice anyway | ||
Alias_ | I seems counter intuitive that $.something is a property, but .method isn't a method | ||
Darren_Duncan | so what if I have to type a few more characters | ||
maintainability is worth it | |||
Alias_ | It | ||
I concur | |||
Darren_Duncan | Now, Autrijus *started* the self-less thing, so lets perhaps get his opinion, then maybe revert the removal of self | 05:13 | |
Alias_ | or talk to p6l :) | 05:14 | |
ayrnieu | "Because if we aren't careful, we'll become Python." | ||
Alias_ | I for one would rather have .foo as a method call and be forced to do $_.foo | 05:15 | |
Darren_Duncan | so who volunteers to talk to p6l? | ||
Perl 6 allows us to change its own syntax to an extent ... I wonder if we can do the Python thing of requiring whitespace in the right measure? | 05:16 | ||
not that I care for that, but it could be so evil its fun | |||
obra | Ac1;2cme modules in perl6 are going to be _fun_ | 05:17 | |
Alias_ | Especially if it's in ;-first form | ||
Darren_Duncan | obra, what does that expand to? | ||
you mean Acme modules? | 05:18 | ||
guess so | |||
Alias_ | Darren: What's with the $foo.meta.isa(bar) | ||
Darren: Would $foo ~~ bar suffice? | |||
Darren_Duncan | see the end of S12 | ||
obra | er. Acme modules. | 05:19 | |
Darren_Duncan | it replaces UNIVERSAL::isa($foo,'bar') | ||
.meta gives you access to the meta-class of an object, off which you can introspect ... | |||
get things like class name, method list, etc | |||
unlike in Perl 5, everything in Perl 6 is an object, so it is valid to call .meta.isa on it with any kind of value | 05:20 | ||
Alias_ | so just plain $foo.isa doesn't mean anything any more? | ||
Darren_Duncan | no runtime errors of 'not a reference' | ||
it might as a short hand, but the .meta is the better documenting way to do it | |||
Alias_ | oh, so although everything is an object, $foo.isa still isn't the way to do is safely | ||
Darren_Duncan | I don't know if foo.isa will work; it might, see the end of A12 | 05:21 | |
still, use a method call in any event, no more UNIVERSAL | |||
Alias_ | alternatively, is seems like the smart $foo ~~ bar should work just fine | ||
~~ == "Do what I mean isa()" | |||
Darren_Duncan | The ~~ would presumably operate on the stringification of $foo | 05:22 | |
~~ is what =~ was | |||
Alias_ | "The smartmatch: | ||
$obj ~~ Dog | |||
actually calls: | |||
$obj.meta.does(Dog) | |||
" | |||
Or is it not any more | |||
Darren_Duncan | Isn't the new =~ the smartmatch? | ||
See the top of ... S3 I think ... | |||
pasteling | "dvergin" at 209.166.89.145 pasted "Latest trunk still doesn't build on WinXP with ghc 6.4" (36 lines, 1.5K) at sial.org/pbot/8272 | 05:26 | |
05:31
cnhackTNT is now known as bytewolf
05:37
cnhackTNT is now known as cnhackTNT|away
|
|||
Alias_ | Darren_Duncan: Which $self.method calls were being shortened? | 05:49 | |
Darren_Duncan | The ones in Attributes::Dependency | 05:50 | |
All 5 modules | |||
As I recall, Autrijus started the change, and Steven finished | |||
checking ... | |||
Alias_ | yes, looks like it | 05:51 | |
so... self is $_ inless you explicitly say something different? | |||
Darren_Duncan | I meant Algorithm::Dependency, and authors checks out | ||
I should be able to reverse it with a quick s// if the group agrees | |||
doing that rather than a revert will preserve any other changes made, if any | 05:52 | ||
The current object is named whatever you specify in the start of you method signiture like $foo: | 05:53 | ||
$self is a convention | |||
Alias_ | Also, just so you know, the reason for the uppercasing of variables is a clue to remind me that it is an object of the same ...::Type as the name | ||
So $Item is used for a single ...::Item object | |||
Darren_Duncan | just to clarify, are you the original AlGol author? | ||
Alias_ | alg::dep? yes | ||
Darren_Duncan | alg::dep, ok | 05:54 | |
Well, its your module then, your way or the highway | |||
Alias_ | I don't mind, it's an experiment | ||
Darren_Duncan | just as LKT is mine | ||
obra | has autrijus explained his thinking yet? | ||
Alias_ | But I noticed you did an explicit commit to fix it (and other bits) | ||
Darren_Duncan | of course, I will do my best to put forward good design ideas and hope people follow them | ||
I leave mixed case for the actual class/module names, not variable names | 05:55 | ||
Alias_ | fair enough... | ||
Darren_Duncan | the name of the variable should give an idea what class it is an object of | ||
without resorting to special case | |||
In my case, I name my $self either $message or $translator or $container or $node as appropriate | 05:56 | ||
Alias_ | That gets harder in very large class trees with many similar names | ||
Darren_Duncan | decide whats best on a case by case basis | ||
Those are internal names in any event | |||
external code can name the message or tran or whatever objects something else | 05:57 | ||
This is partly about self-similarity | |||
within the module definitions themselves, I have consistently used the topic object named something like the class name | |||
if a method deals with multiple objects, those that are not the self have longer names | 05:58 | ||
Alias_ | Looking at autrijus' diff, it would seem that $_ is used as the $self name if ( $self: ) is not explicitly specified | ||
Darren_Duncan | eg, in SQL::Routine, that has a tree of nodes ... | ||
The "current" Node is $node, its parent may be $pp_node, a child $child_node, etc | |||
Alias_ | ah | 05:59 | |
Darren_Duncan | in that situation, every variable that is a Node object is named $..._node | ||
all lowercase | |||
Alias_ | I stick to the "the current object is always $self" principle | ||
Darren_Duncan | that convention is also followed by outside code using my module | ||
but an explicit $self is still very understandable | |||
one reason I didn't use that internally with my abovementioned modules is that each module defines a pair of related objects, and I wanted to use the same names for each type of object in methods of both objects | 06:00 | ||
personal choice | |||
the only thing I really advocate for others is to explicitly name your topical object or variable in most cases | 06:01 | ||
Alias_ | topical? | ||
meaning self? | |||
Darren_Duncan | The word 'topic' means what Perl 6's understanding of $_ is, according to Larry. | 06:02 | |
$_ is an alias to whatever the current topic of the statement is. | |||
or rather topic of the current block | |||
Alias_ | (not liking that Perl6 has caught jargonism far worse than even Java has) | ||
oh, and also | 06:03 | ||
+method schedule_all () { | |||
+$.schedule( $.source.items.map:{ .id() } ); | |||
} | |||
That's from autrijus' change | |||
Darren_Duncan | topic != self always | ||
Alias_ | which I presume means that $_ is localised now | ||
Darren_Duncan | The content of $_ depends on the context. | ||
It's a little more predictable than in Perl 5 | 06:04 | ||
Not sure if a Synopsis talks about it, but an Apocalypse/whatchamacallit did | |||
A syn should talk about it, since its important to know | |||
Maybe its in S4 or thereabouts | 06:05 | ||
arcady | $_ is lexically scoped | 06:08 | |
so things like "for" and "given" have their own, private $_ | 06:09 | ||
Darren_Duncan | yes | ||
that was/is their most common use of $_, I think | |||
Alias_ | So we at least fix the "scope leakage" problem, with $_ changing underneath you | 06:10 | |
arcady | exactly | ||
Alias_ | Of course, now we've got the all new "thinko" where $self is $_ by default | 06:11 | |
So all the newbies will be doing it that way | |||
And then wondering what's wrong when foreach { .execute($_) } doesn't act quite right | |||
It feels kind of backwards | 06:12 | ||
Darren_Duncan | that maybe one reason for example code such as in Pugs to default to something with fewer surprises ... | ||
for all the newbies that look at it to learn from | |||
vetarans should be setting good examples in their public code | 06:13 | ||
Alias_ | But we are going to end up a bit backwards here I think | ||
Khisanth | or ... it's still not too late to change perl6 :) | ||
Alias_ | The "normal" way to do a method (path of least resistance) is using $_ | ||
So people will do a lot of it | 06:14 | ||
And then have problems with foreach @params { .something($_) } | |||
Darren_Duncan | except when it won't work and people won't know whyu | ||
Alias_ | Which means they have to go to foreach @params -> $p { .something($p) } or method name($self: ...) { } | ||
And both ways are equally correct | 06:15 | ||
Darren_Duncan | oh yeah, $_ is also the exception object in an exception handler now | ||
Alias_ | And yet you can't maintain universal consistency with case by case situations like that | ||
So you have to ideally do BOTH | |||
Which means it gets even wordier | |||
and more sigilly | |||
Darren_Duncan | Well, Perl's maintaining its policy of giving people enough rope to hang themselves | ||
Alias_ | There's giving them rope, and then there's tieing it around their neck for them, and giving them a gentle shove | 06:16 | |
Darren_Duncan | someone had an ACCIDENT! | ||
Alias_ | oopsi! TMTOWTDI, buy another perl book! | 06:17 | |
Darren_Duncan | Well, I'm going to make a style policy for any projects that I control such that use of $_ is forbidden | 06:18 | |
but everyone else can still do it as they wish | |||
Alias_ | I'll probably end up the same way | ||
It just sucks that the most compatible and standard way is going to be nastier than what the intended effect of the feature was in the first place | 06:19 | ||
Darren_Duncan | I would/do have the same policy with Perl 5 code | ||
just as strongly as "always use strict, warnings" in Perl 5 | 06:20 | ||
Alias_ | (not warnings for me) | 06:22 | |
I find one innocuous case can fill up the server logs badly | |||
warnings forced on for all unit testing though | |||
06:23
cnhackTNT|away is now known as cnhackTNT
|
|||
Darren_Duncan | how hard is it to make code that never generates warnings except when something's wrong? | 06:27 | |
if something fills up a log, that says to me "fix some code" | 06:28 | ||
Alias_ | Darren_Duncan: After the production servers chucks a fit :) | ||
Darren_Duncan | my first question? | ||
Alias_ | It also can hide more significant errors :) | 06:29 | |
Occasional "only used once" type warnings do slip in from time to time | |||
Darren_Duncan | what is bad about keeping warnings on | ||
? | |||
Alias_ | just a personal preference | ||
Darren_Duncan | using warnings should help you find more significant errors sooner | ||
Alias_ | That's why they are always on in devel and testing | 06:30 | |
just not on production | |||
Darren_Duncan | if your code doesn't generate warnings, leaving it on in production doesn't hurt | ||
Alias_ | unless the useless warning is somewhere the test cases missed | ||
Darren_Duncan | the idea is to fix the code until use warnings doesn't generate any warnings | 06:31 | |
then the test cases aren't very good | |||
Alias_ | correct | ||
It's very expensive to get to 100% coverage in 100,000 SLOC of perl | |||
impractically and prohibatively so | |||
Darren_Duncan | meanwhile, leaving warnings on all the time will tell you exactly which lines need to be fixed ... | ||
check the logs occasionally, as you fix, the logs get shorter | 06:32 | ||
Alias_ | and also hide potentially more important problems | ||
autrijus | gree...tings. | ||
Darren_Duncan | how would warnings hide problems? | ||
if you fix them the wrong way? | |||
Alias_ | a quarter of a million 15 line useless warnings, hiding 15 serious problems that are lots more important | ||
It's happened before | 06:33 | ||
Darren_Duncan | oh, you mean the logs are buried? | ||
Alias_ | yes | ||
autrijus | just a quick word re: selfless | ||
Darren_Duncan | a simple grep on the log would fix that | ||
yes, autrijus | |||
grep out the warnings to see the errors | 06:34 | ||
autrijus | I think $.foo and @.bar is uncontroversial | ||
and I'd like to use them instead of silly hash deref or $self.accessor | |||
Darren_Duncan | what's wrong with $self.attribute? | ||
Alias_ | It's a design problem | ||
autrijus | Darren_Duncan: four more keystrokes :) | 06:35 | |
Alias_ | Way too much collision between $_ as $self and $_ as traditional | ||
autrijus | plus, it doesn't disambiguate. | ||
Darren_Duncan | since .foo refers to $_, and $_ is only sometimes equal to $self, one can get into a lot of problems with .foo everywhere | ||
autrijus | oh, right, method calls | ||
I agree. I think it should only be used on blocks with <3 lines of text. | |||
Darren_Duncan | I don't like $_, too easy to mess things up, especially by newbies | ||
the extra few characters don't bother me | 06:36 | ||
maintainability is more important | |||
autrijus | I begain thinking .method already means the invocant | ||
but then I'm wrote | |||
but then I'm wrong | |||
Alias_ | Given the amount of comments I normally write, the four keystrokes for "self" is irrelevant | ||
Schwern | Yeah, I'm wondering why they've crippled .foo | ||
autrijus | so I'm happy to revert back to $self.method | ||
Darren_Duncan | I'm okay with .foo in really short methods, like 1-3 lines, but not with those where $_ can ever change meaning | ||
Schwern | Oh, probably for things like switch | ||
Darren_Duncan | let's do it then | ||
autrijus | Darren_Duncan: yeah. but $.member really disambiguates a lot things for me | ||
Alias_ | I really liked .foo as a consistent invocant method shortcut | 06:37 | |
$_.foo would have been quite clear and readable | |||
(for the times in map { } etc ) | |||
autrijus | neither $self->{member} or $self->member_lvalue made sense for me in perl5 | ||
especially because it exposes the hash nature | |||
Darren_Duncan | The only time I use $_ or .foo is in map or grep , and now in where{} | ||
autrijus | and in any case, $.member has nothing to do with $_. | ||
Alias_ | that's the thing | 06:38 | |
$.member has nothing to do with $_, but .method does | |||
Darren_Duncan | where in the spec does it say that? | ||
Alias_ | It's counterintuitive, if I'm understanding right | ||
autrijus | dev.perl.org/perl6/synopsis/S12.html | 06:39 | |
Darren_Duncan | Is it or is it not true that .foo is always on $_? | ||
Dot notation can omit the invocant if it's in $_ | |||
see the "if in $_" | |||
Schwern | Well, keep in mind $_ is no longer global | ||
Its lexical | 06:40 | ||
autrijus | Darren_Duncan: but $.member is not .member | ||
Darren_Duncan | $_ changes by context | ||
Alias_ | Schwern: That's not the problem... it's a code style consistency issue | ||
Schwern | DD: Right, but it changes back. :) | ||
Darren_Duncan | so .member is not always .member | ||
autrijus | I agree, as specced, what I did on .member is wrong | ||
Alias_ | the inconsistency of usage for .foo causes problems | ||
autrijus | and needs to be reverted back | ||
Schwern | Alias: But it does make $_.method less dangerous to use | ||
autrijus | you can do that, or I will do it tonight | ||
Schwern | DD: But its much more clear when its not | ||
autrijus | but I think keeping $.member hurts no one. | ||
Darren_Duncan | I find it is most clear to type the extra 4 characters | ||
Schwern | Just injecting that. $_ isn't nearly as wild in Perl6 as it was in Perl5. | 06:41 | |
autrijus | the sigil-full variant doesn't change its meaning in map{} | ||
Schwern | DD: I find it rapidly gets annoying and redundant | ||
Darren_Duncan | At least $_ is easier to predict in Perl 6 | ||
autrijus | ... map { $.foo } ... | ||
still means the member variable. | |||
instead of $_.foo | |||
Alias_ | autrijus: right. That's the problem :( | ||
Schwern | Isn't $.foo something else? | ||
...an atribute? | |||
Alias_ | autrijus, $.member means one thing, but .method (which my mind sees as the same sort of thing) doesn't | ||
Schwern | Oh crap, they didn't use slots? | ||
autrijus | Alias_: yes and I see the problem | 06:42 | |
Alias_: I think it sucks,. | |||
Darren_Duncan | okay, looking in S12 ... | ||
Alias_ | I'd much rather force people to use $_.method | ||
much much much rather | |||
autrijus | but the $.foo is not the sucky one. | ||
Darren_Duncan | putting the sigil in front means we're not dealing with $_ | ||
Schwern | Ugg, why did they make $.foo and $self.foo different? | ||
autrijus | .method is. | ||
Schwern: because. | |||
Darren_Duncan | however, we use $.member only for public attrs ... | ||
autrijus | Schwern: because $.foo is a scalar var | 06:43 | |
Darren_Duncan | we use $:member for private ones, which is probably the normal type | ||
autrijus | Schwern: and .foo is a method call on a scalar var. | ||
yes. | |||
but I don't think we need to write accessors anymore. | |||
writing accessors in p6 is... confusing | |||
Darren_Duncan | in any event $[.|:]member is only for attrs, not for methods, I think | ||
autrijus | because we have private / public attrs anyway. | ||
Alias_ | I guess this stuff is the sort of thing pugs was meant to find out so they could fix | ||
autrijus | sure. | ||
Alias_: yes. | 06:44 | ||
Darren_Duncan | yes, make Pugs have a reason to exist@ | ||
! | |||
Alias_ | Because if $:foo, $.foo, .foo is confusing for US, imagine how bad it's going to be for lesser mortals | ||
autrijus | so, I need to run. let's first use the style of $self.method, $:priv, $.pub for now | ||
gaal | morning, all. lovely day. | ||
autrijus | if that's okay with you folks | ||
Alias_ | that will suffice | 06:45 | |
autrijus | (all in the context of AlDep) | ||
Darren_Duncan | Fine with me autrijus, though I will personally still use $self | ||
all the time | |||
Alias_ | At least something very positive has come out of AlDep, rather than just being a normal port :) | ||
autrijus | Darren_Duncan: sure, that is fine. timtowtdi | ||
Alias++ | 06:46 | ||
Darren_Duncan++ | |||
Darren_Duncan | Autrijus++ | ||
autrijus | have fun! & | ||
Darren_Duncan | hey, someone had to | ||
who wants to update AlDep? | |||
Schwern | autrijus: There shouldn't be any difference between a method call on an object which returns a scalar and accessing a scalar which is part of the object. That's the whole point of data hiding. | 06:47 | |
autrijus: You're back to $self->{foo} and $self->foo | |||
Though $.foo is at least class-scoped. | |||
Ahh, right. | |||
You can't get at $.foo outside the class... I hope. | |||
Darren_Duncan | You can | 06:48 | |
Schwern | Don't say that. | ||
Alias_ | but you can't get at $:foo | ||
Darren_Duncan | That is, an attr declared with $.foo is visible outside | ||
Schwern | Oh, public attributes. MISTAKE | ||
Darren_Duncan | I always use private attributes | ||
Alias_ | is $.foo accesed by $object.foo? | ||
Darren_Duncan | yes | ||
Schwern | Public attributes and public methods should be indistinguishable | ||
Darren_Duncan | here's a brief story on my Aldep conversion ... | 06:49 | |
I found that the AlDep test suite did some direct accessing of object attributes | |||
Alias_ | Darren_Duncan, then that C< method source () {...} > should probably be a read-only public attribute | ||
Darren_Duncan | Alias, why? | ||
Alias_ | force of habit... | ||
Darren_Duncan | bad habit | 06:50 | |
autrijus | wait wait | ||
The attribute variables may be used within instance methods to refer directly to the attribute values. Outside the instance methods, the only access to attributes is through the accessors. | |||
Darren_Duncan | Anyway, I added an accessor method for it, which didn't exist | ||
Alias_ | having the test script do a little peering inside the black box help when the underlying logic is a bit tricky | ||
autrijus | the only thing that differntiates $. and $: | ||
is that an accessor _method_ is generated for $.foo | |||
outside users still _has_ to use the method form | |||
Darren_Duncan | yes | ||
and a good thing too | |||
that said ... | 06:51 | ||
autrijus | so from the user's POV, no encapsuation is violated | ||
Darren_Duncan | if one can invoke a method without parens, it looks the same | ||
autrijus | (that was re Schwern) | ||
Alias_ | so... C< has $:source is ro; >? | ||
rather than the manual method source? | |||
autrijus | & :) | ||
Schwern | autrijus: Oh good. Sanity is restored. | ||
Darren_Duncan | I made a style choice of always using parens on method invocations, so its easy to tell its a method call | ||
Schwern | Don't you always have to use parens on method calls? | 06:52 | |
Are we talking Perl 5 or 6 here? | |||
Darren_Duncan | not sure, but I do anyway | ||
I do it in both | |||
mandatory, not sure | |||
Alias_ | Schwern: I wouldn't think so | ||
is you has $.foo; you shouldn't have to $object.foo() | |||
Darren_Duncan | AlDep invoked tons of methods without parens ... I fixed that | 06:53 | |
Alias_ | remembering that $object.foo is using an implicit accessor method | ||
Schwern | Alias: Oh, I thought with arguments. | ||
So we're talking Perl 6 not 5? | |||
Alias_ | Well, they don't need to in perl 5 _or_ perl 6 | ||
Schwern | They do in 5 | ||
Alias_ | what waht? | ||
Then all my code shouldn't work | |||
Darren_Duncan | I include parens both with and without args, in both 5 and 6, since its easy to read | 06:54 | |
Schwern | Alias: *with args* | ||
Alias_ | oh, with args, of course | ||
Schwern | Alias: $obj->foo is fine but $obj->foo 42 is not | ||
Alias_ | Because you can't do the magical prototype-based parsing | ||
Schwern | DD: Isn't it kinda obvious from the ->bareword? | ||
Alias: No, prototypeless functions don't need parens. | |||
Darren_Duncan | That said, I always used to use parens with 'return' , but recently stopped | ||
since return is built-in and low precedence | 06:55 | ||
Schwern | Alias: Honestly I don't know why you need parens around method calls | ||
Alias_ | Schwern: It's a parser thing | ||
Schwern | Alias: Sure, but is it a language thing? | ||
How could it be ambiguous? | |||
Alias_ | It's a limitation of... information | ||
Schwern | What information is missing? | 06:56 | |
Alias_ | The prototype | ||
explicit or implicit | |||
Schwern | Again, prototypeless subroutines don't need parens. | ||
Alias_ | It's in section 1 of my PPI talk :) | ||
Schwern | Why should method calls? | ||
Alias_ | Because they are done at run time | ||
Schwern | But the prototype is always going to be @ | 06:57 | |
Where's the ambiguity? | |||
Alias_ | Randal can probably explain in better terminology than I can | ||
Darren_Duncan | defer to an expert you say? | 06:58 | |
Alias_ | My use of terminology is out of sync with the older perlers | ||
Schwern | Defer to a professional trainer. :) | ||
Alias_ | I tend to think in symbolic terms... (not to mention the ADD) | ||
I'm better in person, when I can adapt the explaination | 06:59 | ||
Schwern | I know what you mean | ||
hcchien | gugod++ #outline2html/outline2html.p6 | 07:01 | |
Darren_Duncan | still, for text based internet stuff, IRC is the closest to in person you can get | ||
Alias_ | (so I tend to give up textual explainations that don't have immediate success) :) | ||
Schwern | DD: Comic chat | ||
07:05
cnhackTNT is now known as cnhackTNT|work
|
|||
Alias_ follows up to Schwern's p6l email | 07:07 | ||
Also, is .:method legal? | 07:08 | ||
sub method () { .:method }; in some cases would seem to be legal and in others not | 07:09 | ||
depending on the "type" of $_ | |||
Darren_Duncan: In your explicit method() policy, do you do () as well for things like %hash.keys() | 07:11 | ||
? | |||
Darren_Duncan | let me check ... | ||
no | 07:12 | ||
Alias_ | how do you differentiate? | ||
Darren_Duncan | my use of parens is mainly with user-defined methods, when thee are no args | ||
there are few enough built-ins that it is easy to recognize them and not use parens ... | |||
eg, with sort, keys, values, pairs, kv, etc | 07:13 | ||
I don't always treat built-ins and user-defined things the same way | |||
with user-defined stuff, there is a much greater volume, so extra hints like parens are used to make it easier to understand them at a glance | 07:14 | ||
Alias_ | fair enough | 07:15 | |
I tend to go for cleanliness lately, to make scanning easier | |||
Darren_Duncan | I like consistency | ||
cleanliness is also good, though cleanliness doesn't always mean terse | |||
Alias_ | true, but I find the removal of non-word characters cleaner | 07:16 | |
Darren_Duncan | as long as you are SELF-CONSISTENT that is the most important thing | ||
rule #1 | |||
Alias_ | consistent with style guide, yes | ||
in my case ali.as/devel/code.html | |||
Darren_Duncan | I mean, if everything you as a person writes has a consistent style with everything else you write, that's the most important thing | 07:17 | |
I mean you = a person | |||
Alias_ | indeed, and equally across a team of developers, if you can keep the egos in check | ||
Darren_Duncan | If you are consistent with what other people write, that is a secondary concern, a good thing, but less important | ||
Alias_ | :) | ||
Darren_Duncan | If you are in a formal team, the whole team should be consistent | ||
In an informal group like ourselves, its a good idea but a bit less critical | 07:18 | ||
still, if we can all agree ... | |||
its better for all of us | |||
Alias_ | I think we can all agree .foo is ick :) | ||
Darren_Duncan | if not agree entirely, agree to a certain subset of styles | 07:19 | |
yes | |||
Alias_ | It's going to get worse for .:foo | ||
(oh wait, do we need to use the :) | |||
Darren_Duncan | I don't like emoticons - pet peeve | 07:20 | |
that one may have been accidental | |||
you said '... to use the <smiley>' | |||
wait ... | 07:21 | ||
Alias_ | that was an accident | ||
Darren_Duncan | I just found a preference on my IRC client to turn smilies off ... display plain text only ... that fixed everything | ||
Alias_ | Do we need to use the : in private method calls? | ||
Darren_Duncan | I think we only really need the : in declarations of private methods and attrs and ... | 07:22 | |
use of it in calling only seems to be used when using $:foo or $.foo | |||
notation | |||
Alias_ | That could get a little icky, if .foo is "method" and not "public method" with a corrosponding :foo "private method" | 07:24 | |
Well, if not icky, then at least assymetrica | 07:25 | ||
Darren_Duncan | is 'public' and 'private' a keyword in Perl, or are you just quoting a concept? | 07:30 | |
I assume Perl won't let you declare a .foo and a :foo in the same class | |||
jabbot | pugs - 827 - fix small Locale::KeyedText bug in get_* | ||
Darren_Duncan | Is jabbot a person or a robot? | 07:31 | |
It wasn't operating the other day | |||
'bot I guess | |||
but a cron job, considering I committed several minutes before it posted | 07:32 | ||
I'm going to sign off shortly ... any last questions? | 07:34 | ||
ingy | hola | 07:43 | |
Darren_Duncan | I just went and sent a donation to the developer of Colloquy, the IRC client I've been using for the last week and that works great ... support free software you appreciate! | 07:44 | |
ingy | sb end | ||
Darren_Duncan | that's in lieu of code | 07:45 | |
here, I give code and time | |||
lightste1 | good morning | ||
Darren_Duncan | same to you | ||
07:45
lightste1 is now known as lightstep
|
|||
Darren_Duncan | I'm about to leave for bed, actually | 07:45 | |
lightstep | ping autrijus | ||
Alias_ | public in the sense that $.foo is a public attribute and $:foo is a private attribute | ||
Darren_Duncan | Autrijus was here a half hour ago | ||
or make that an hour ago | 07:46 | ||
Alias, I lost the train, what were you getting at now? | |||
nevermind, I'm outtahere | 07:47 | ||
ingy | autrijus: is the win32 build still hosed? | 07:48 | |
Alias_ | "a $=foo variable is a POD variable" | 07:49 | |
it's a WHATTTT | |||
gaal | ingy: works for me, though tests dont' run at all | ||
autrijus | greetings. | ||
gaal | ..and i need to #undef PUGS_HAVE_POSIX | 07:50 | |
ingy | gaal: then it doesn't work :( | ||
gaal | autrijus: did you see the goto parsefail? | ||
Alias_ | Do attributes declarations look like C< has $:foo is ClassType; > or C< has ClassType $:foo; > | 07:51 | |
It's the latter isn't it? | |||
ingy | autrijus: I'm making decent progress on the Kwid processing... btw are you aware of #kwid? | 07:52 | |
gaal | autrijus: what i said the other day about $::($foo) being superceeded was bogus, i misread the spec. it's still in. | 07:57 | |
autrijus | yup. | 07:58 | |
and there's still a test. | |||
Alias_: the latter | 07:59 | ||
Alias_ | thought so | ||
fixing AlgDep now | |||
Darren was using has $foo is Class | |||
autrijus | ingy: cool! yes I am aware of #kwid. not having a lot of time to participate tho | 08:00 | |
gaal: !. so on win32 it doesn't undef HAVE_POSIX? | |||
gaal: yes I've seen the parsefail. @ work now tho, so will be a few hours before I can tackle it | |||
jabbot | pugs - 828 - fix bug in <<>> quoting test | ||
gaal | autrijust: not on mingw anyway. | 08:02 | |
autrijus: sure thing | |||
gaal needs more ACK the weirder the thing he finds | |||
autrijus | hcchien: where is outline2html.p6? | 08:03 | |
gaal: what is $^O of your win32? | 08:04 | ||
perl -e "die $^O" | |||
hcchien | autrijus: svn.elixus.org/member/gugod/ | ||
gaal | autrijus, msys | ||
oh! could it be that MSys != MinGW installs? i dont remmber which i installed first. | 08:05 | ||
autrijus | lightstep: I'm here now. | 08:06 | |
gaal: commit a fix for me? | |||
gaal | sure. | ||
autrijus | Makefile.PL line 112ish, match msys and mingw there. | ||
gaal | autrijus++; # remembers the code, with *line numbers* | 08:07 | |
lightstep | i'm still on the yesterday thingy | ||
autrijus | thunking? | ||
lightstep | having problems with the environment | ||
yes | |||
autrijus | I had not downloaded your s3kr1t file :) | ||
lightstep | better not | ||
i have a better version now :) | |||
autrijus | cool. does it break everything, or just := ? | 08:08 | |
if the latter, you can simply commit it :) | |||
lightstep | everything, i think :) | ||
autrijus | oh no :) | ||
lightstep | `say' got rebroken today | ||
autrijus | my &foo := { return }; | 08:09 | |
I am very very unsure what it does. | |||
does it essentially make a continuation? | |||
does the thunk made by := capture the dynamic scope as well? | |||
or just the pads? | |||
if just the pads, | 08:10 | ||
my $foo := $?CALLER::POS; # this will break, no? | |||
$?CALLER::POSITION, even | |||
autrijus ponders a p6l inquiry | |||
jabbot | pugs - 829 - Replace C< has $.var is Class; > with C< | ||
autrijus | Darren++ # successfully pulled ^Winvoked a Rule 2 | 08:11 | |
gaal | r830 win32 build fix | ||
autrijus | danke | 08:12 | |
Darren_Duncan | ping _Alias | ||
I mean Alias_ | 08:13 | ||
Alias_ | yes | ||
autrijus | Darren_Duncan: I was just ++'ing you for successfully invoking a rule 2 from larry | ||
gaal | autrijus: why doesn't cygwin work? ("it's complicated; not now" is a valid answer) | ||
Darren_Duncan | Autrijus, I'll lookup what you're referring to in a moment | 08:14 | |
autrijus | gaal: cygwin doesn't build GHC. allowing cygwin has led perl to attempt to build ghc in the past. | ||
Darren_Duncan | In regards to Alias_ question ... | ||
autrijus | which leads to prolonged pain. | ||
Alias_ | Darren_Duncan: I didn't get your intentions wrong in that p6l email did I? | ||
Darren_Duncan | both forms can be used, but they have subtly different meanings | ||
autrijus | because cygwin actually _builds_ GHC it's just very very difficult. | ||
gaal | yes, i noticed building ghc without having ghc is Hard. | 08:15 | |
Darren_Duncan | With scalar attributes, it may not make a difference | ||
With array or hash data types, it does | |||
masak | does anyone have a URL or a short explanation to what a "thunk" really is? | ||
i've seen the term pop up lately, and i fear that its importance exceeds my knowledge of it. | |||
Darren_Duncan | saying 'has Classtype @foo' says that each element of @foo is a ClassType | ||
gaal | but if i do have an msi ghc, why shoundn't i be able to use cygwin? that's what i do with mingw. | ||
Darren_Duncan | saying 'has @foo is ClassType' says that the entire array is a ClassType | ||
That's how I used it in Locale::KeyedText | 08:16 | ||
I may have botched something in AlGol, though | |||
autrijus | gaal: well GHC msi _is_ built with mingw. | ||
gaal | aha :)) | ||
Darren_Duncan | Alias_, got that? | ||
autrijus | and mingw ABI ne cygwin ABI. | ||
Alias_ | yep | ||
gaal | yes, i see now. | ||
okay, it's long and painful. i'll get back to symbol tables :) | 08:17 | ||
Darren_Duncan | now checking on Autrijus' comment ... | ||
gaal | if i do a symbolic lookup of a var (either global or lexical) that hasn't been declared, what should happen? | 08:18 | |
autrijus | Darren_Duncan: "Re: return of copies vs references" | ||
gaal: with the symtable hash or with the ::() syntax? | |||
I expect it to fail with ::(). I think. | |||
gaal | ::() | ||
autrijus | symtable hash should just return undef. | ||
but my expectation may be completely offbase. | 08:19 | ||
gaal | is the symtable hash read-only? | ||
autrijus | of course not! | ||
Darren_Duncan | I expected you were talking about p6l, but I hadn't read my email until after I answered Alias_ | ||
autrijus | you can write it, tie it, wrap it and kill it | ||
that's the fun part of perl | |||
gaal | so manual export can work like in p5 | ||
so, what's the motivation for ::() syntax? | 08:20 | ||
jabbot | pugs - 830 - win32 build fix: $^O eq msys | ||
gaal | i better ask on p5-lang | ||
p6-lang | 08:21 | ||
masak | what's a thunk? | ||
Darren_Duncan | Autrijus, without looking it up, does "rule 2" say that Larry can change his mind? | 08:22 | |
masak | according to www.webopedia.com/TERM/T/thunk.html it is the result of an operation... is this applicable to pugs? | 08:23 | |
Schwern | And another thing. Why do we need different syntax for private vs public method calls? | ||
Ahh, optimization hack | 08:25 | ||
Hrm. | |||
Darren_Duncan | Autrijus, can I assume that "successfully invoking a rule 2 from larry" is Blog-worthy? | ||
Alias_ | Let me guess. Rule 1: Larry is always right. Rule 2: Larry can change his mind at will, see Rule 1. | 08:26 | |
or something like that? | |||
Darren_Duncan | I thought so | ||
Schwern | Larry is always right even when he's wrong. | ||
Darren_Duncan | Anyway, based on Larry's answers, I'm about to commit another LKT bug fix update, to use the new syntax Larry specified ... | ||
Schwern | You might sometimes see reference to Rule 1 and Rule 2. Larry's power as Supreme Court is expressed in The Rules: | ||
1. | |||
Larry is always by definition right about how Perl should behave. This means he has final veto power on the core functionality. | |||
2. | |||
Larry is allowed to change his mind about any matter at a later date, regardless of whether he previously invoked Rule 1. | |||
lightstep | autrijus, i gotta go learn towards a test. can i send you an email with my attempts so far? | 08:27 | |
Darren_Duncan | benevolent dictatorship is fun! | ||
Schwern | Rule 1: Larry is always right. Rule 2: ...Even when he is wrong. | ||
See perlhack | |||
lightstep | autrijus, (otherwise, the code is where i said earlier) | ||
Darren_Duncan | Thanks for the perlhack ref | 08:28 | |
masak | could someone explain to me (or give a pointer to information about) what a "thunk" is? | ||
mugwump | =closure | ||
lightstep | a thunk is a value that refers to yet-unevaluated closure | ||
masak | ah, thx | 08:29 | |
autrijus | lightstep: yup. go ahead | 08:33 | |
lightstep | what's the address? | ||
Schwern | Ahhh. Remember Rindolf? vipe.technion.ac.il/~shlomif/rindol...book1.html | ||
Darren_Duncan | Thanks for the Rindolf link - bookmarked it - I never heard of that project before | 08:41 | |
Schwern | Its not a project, its just a spec. | ||
Someone else is supposed to implement it. | |||
Darren_Duncan | I'm not sure I agree with his thought that CPAN programmers won't want to port to perl 6 | 08:42 | |
sure, some will | |||
but I expect a large number will make the move | |||
Schwern | I'll let you in on a little bit of backstory. Rindolf is a bit of a joke. | ||
Except to the author. | |||
Darren_Duncan | ok | ||
so its like the product of an insane mind? | |||
anyway ... | 08:43 | ||
Schwern | Yes. It might have been interesting as a thought experiment (like Perl5i) if he didn't keep insisting its a replacement for Perl 6. | ||
tomyan | was it written before or after the apocalypses? | 08:44 | |
hard to imagine someone coming up with that after reading apocalyse 5 (or any other one for that matter) | |||
Schwern | Good question. | ||
He was still pushing it as of last October. | |||
rgs | shlomi ! | 08:45 | |
Alias_ | That said, I do like this idea | ||
Darren_Duncan | well, let him try ... something good may still come of it | ||
Schwern | As we all know the following is a common paradigm in Perl: | 08:46 | |
my $var = eval { my $sum = $b+$c; return $sum*$sum; }; | |||
groups.yahoo.com/group/rindolf-disc...message/76 | |||
DD: No... I really doubt it. | |||
rgs | I flipped the bozo bit on shlomi some time ago. And only due to his posts on p5p. | ||
He's also reportings bugs against mandrake's bugzilla. | 08:47 | ||
Darren_Duncan | heck, some people may think *I'm* insane for attempting some of the stuff I'm doing on cpan, like considering a replacement for DBI | ||
rgs | I have co-workers who never touch anything perl and who have the same opinion about M. Fish. | ||
Darren_Duncan: do you actually write code ? | |||
Darren_Duncan | yes | 08:48 | |
rgs | that's a big difference | ||
Schwern | See, that's the difference. | ||
Darren_Duncan | I write lots of code, but it could also be called over-designed | ||
Alias_ | Darren_Duncan: Dude, we ALL have a replacement for DBI | ||
Darren_Duncan: Well... a replacement for Class::DBI at least :) | |||
crysflame | heh | ||
rgs | even tim bunce has | ||
crysflame | or at least a wrapper | 08:49 | |
Alias_ | But then I consider Class::DBI a replacement for my version | ||
Darren_Duncan | how about something that does what DBI does, and better, and doesn't need DBI under the hood to power it? | ||
Alias_ | "doesn't need DBI"? | ||
You write your own database drivers? | |||
Darren_Duncan | I say 'better' feature and portability wise, not speed wise | ||
DBI is still faster | |||
eventually | |||
Alias_ | oh wait, you are doing one of the SQL modelling modules arn't you | 08:50 | |
Darren_Duncan | the more accurate statement is that someone could make a driver for my architecture that implements itself using DBI, but they don't HAVE to | ||
in fact, my initial releases will use DBI under the hood, but nothing in the architecture requires that to happen | |||
crysflame implements Alias as a large shell script. | 08:51 | ||
Alias_ reimplements himself | |||
Darren_Duncan | partly for that reason, like with DBI itself, my drivers are distributed separately from the core | ||
Alias_ | DBI doesn't really deal with the databases themselves very much though | ||
Darren_Duncan | Alias_ , yes | ||
Alias_ | They largely restrict themselves to connection handling and housekeeping | ||
Although not so much lately | 08:52 | ||
Rosetta! That's the one | |||
Darren_Duncan | yes, DBI is mainly connection handling and SQL string passthru | ||
Its schtick is that you can do that exactly the same way with any database engine | |||
which is good | |||
Alias_ | yes | ||
It would have been nice if it limited itself to that part | 08:53 | ||
Darren_Duncan | mine does that too but also lets you use identical SQL with all databases, and yet access advanced features of databases that have them, or to a point, emulate those on others, in an efficient manner | ||
Alias_ | Darren_Duncan: Sounds very familiar to parts of my system, except I inline it all at codegen built time | ||
Darren_Duncan | actually, mine doesn't do SQL passthru ... except through a "circumvention" feature | 08:54 | |
'circumvention' is not recommended for use, but lets you do esoteric things that you simply must do that my attempt at 90%+ native feature coverage doesn't do | |||
Anyway, SQL::Routine, which defines the main spec for this project, is now considered "alpha" development status, so it is more or less feature complete | 08:55 | ||
... for major version 1 | 08:56 | ||
Alias_ | I have to say so, SQL::Routine scared the hell out of me the first time I saw the POD :) | ||
Darren_Duncan | ... as of v0.46 | ||
Well, I did say over-designed | |||
also, ignore the current SYNOPSIS | |||
Alias_ | if ( $something->valid_node_type_surrogate_id_attributes ) { ... }{ | 08:57 | |
Darren_Duncan | I will rewrite it to something nice | ||
Alias_ | phew... yeah | ||
I read "trivial example"... HALWRALSLASLALLLAGLGAHALHGLGA | |||
Darren_Duncan | you are referring to an information function, which is used for in-code introspection of features | ||
most features don't have information functions | |||
Alias_ | I meant more the size of the method name :) | ||
Darren_Duncan | I mean for the method names to be descriptive | 08:58 | |
Alias_ | I know | ||
Darren_Duncan | I could shorten them based on user feedback | ||
Alias_ | I was extremely impressed with the thoroughness, if a little worried about the efficiency of development using it | ||
Darren_Duncan | See code examples in the Abstract.pm test suite file, which most closely resembles actual SQL | 08:59 | |
Alias_ | ok, I will | ||
Darren_Duncan | the module is multi-layered | ||
Alias_ | On that note, I need to head home | ||
Another time | |||
Darren_Duncan | right-o | ||
wait for v0.46, due any day now | |||
Alias_ & | |||
I will | |||
Will you be at OSCON? | |||
Darren_Duncan | I want to be | ||
I live near by incidentally, but never went before | |||
Alias_ | I'll be bringing over some demos of my phase-n.com stuff | 09:00 | |
Darren_Duncan | I'm in Victoria, BC, probably a few hours drive from Oregon | ||
Alias_ | You'd probably find it quite interesting | ||
(I'm in .au) | |||
Darren_Duncan | I'll try to carpool | ||
Alias_ | night | ||
Alias_ & | |||
Darren_Duncan | yep | ||
gaal needs gloss for '&' | 09:01 | ||
Darren_Duncan | what you mean? | ||
gaal | is that like the wisp of vapor left when someone vanishes? | ||
what does '&' mean? | |||
Darren_Duncan | no, what you need gloss for? | ||
I know that '&' means 'and' | |||
unless it means something else here | 09:02 | ||
gaal | no, like when Alias_ said "/me &" | ||
Darren_Duncan | gaal, where are you located? | ||
gaal | Tel-Aviv | ||
Darren_Duncan | I see | 09:03 | |
do you know Nothingmuch? | |||
gaal | sure! | ||
Darren_Duncan | you two are the only ones I know that are in that area | ||
gaal | there are a couple more here. lumi, lightstep | 09:04 | |
i don't think i met lightstep though. | |||
Darren_Duncan | I see | ||
not sure I'll remember all that | |||
in any event, each of you should, if your real names are not spelled in latin letters, spell them out in the AUTHORS file using the native script, as Yuval did | 09:05 | ||
that can help give a clue later | |||
gaal | give a clue to what? | ||
Darren_Duncan | I just mean, a reminder of where you're from | ||
if you want to | 09:06 | ||
gaal | i do the majority of my writing in English, so i'll pass. | ||
but maybe people who want to can include a URL to a personal homepage? | |||
Darren_Duncan | just thought you might be interested, at least 10 other names in AUTHORS aren't in latin script | ||
gaal nods | 09:07 | ||
but English is my main language for anything other than speech | |||
elmex | gaal: good morning, still here? | ||
Darren_Duncan | but that homepage idea sounds interesting | ||
gaal | hey elmex, i did sleep a bit in between :) | ||
elmex | me too | 09:08 | |
just got up... wonderin where to get access to quickly upload that test | |||
Darren_Duncan | its very early in the morning here, 1:08am to be specific | ||
gaal | debian users: apt-get install tzwatch | ||
maybe we need to adapt this: desert-island.dynodns.net/perl/pmplanet.html | 09:10 | ||
Darren_Duncan | that might be interesting | 09:12 | |
gaal | anyone here comfortable with quoting ops? if this is valid syntax........ | ||
my $foobar = 'Foo::Bar'; | |||
$::($foobar); | |||
does this mean exactly the same? | |||
$::<<$foobar>> | |||
autrijus | well, the first is () syntax | 09:13 | |
gaal | or do i need to say $::(<<$foobar>>) ? | ||
autrijus | I imagine it to be same as %::<<$foobar>> | ||
i.e. symtable lookup | |||
gaal | hi autrijus :) | ||
autrijus | hi gaal. | ||
$::<<foo>> is $::.{'foo'} | 09:14 | ||
which I imagine is something else entirely | |||
gaal | so is $::(<<$foobar>>) valid (symref)? | ||
autrijus | you'll have to ask larry. I _think_ so. | 09:15 | |
elmex | i would like to load up a test for a syntax-parsing problem, how/where to get accesss ? | ||
autrijus | your email? | ||
gaal | asked, but he's sane and thus asleep. i imagine :) | ||
elmex | autrijus: [email@hidden.address] | ||
autrijus | yeah he's moonlighting for $real_work :-) | ||
gaal | lol | ||
autrijus is in $real_work now. | |||
elmex: invitation sent; welcome aboard! | 09:16 | ||
elmex | thanks! | ||
gaal | elmex: welcome! is it the goto minimal parsefail? | ||
elmex | gaal: yes ;) ("&s.g");"" | ||
gaal | cool | ||
autrijus | blame luqui ;) | 09:17 | |
(but I'll fix) | |||
elmex | lol, term of use agreement are in japanese/chinese?! | 09:18 | |
autrijus | # wagner.elixus.org/~hcchien/termtouse.html | ||
sf.net boiler plate. | |||
gaal | it says scw and autrijus get to split your cash | ||
autrijus | riiight. | ||
gaal .retea; | 09:19 | ||
so - since this still feels weird - can i typically say <$something> when in p5 i'd say '$something'? is it considered good style even when there's only one word to quote? | 09:23 | ||
autrijus | well. will you do that in p5? | 09:24 | |
qw<$something> | |||
if you would use qw in p5, you can do it in p6 | |||
they are stylistically similar | |||
gaal | i said it in p5 in use qw() lines. | 09:25 | |
but nowhere else, come to think od it. | |||
autrijus | well then. | 09:26 | |
elmex | gaal: what do i need to complete the test besides proper use v6; require Test; and the pass ('ok'); at the end? | ||
gaal | guess i'll use q// | ||
plan? | 09:27 | ||
elmex | k, what plan should i do? 1/2/3/4? | ||
gaal | the one that when the bug gets fixed, will give no error. | ||
elmex | hm... what does plan mean btw.? | ||
gaal | it's the programmers's promise to run a certain number of tests | 09:28 | |
elmex | ah, ok | ||
gaal | if a different number has run -- eg yout parsefail -- then the harness knows the test failed (even if possilby it only saw tests that passed until it died) | 09:29 | |
elmex | hmm... wondering how to name that bug... | 09:31 | |
Darren_Duncan | Autrijus, regarding that terms of use document that now I can actually read ... | ||
I have a question about item 6 ... | |||
Is that license asking for Open Foundary to be able to do something that the GPL forbids, such as including our code in a binary and not providing attached code to users? | 09:33 | ||
It says it wants to be able to use it for anything, anywhere, which is fine, but I"m not sureits copyleft | |||
ingy | kwid_to_html passes first test! | 09:35 | |
I think i will check this into pugs tree, and to cpan | 09:36 | ||
elmex | hm, how do i make a checkout with a specific username with svn ? never used it | 09:39 | |
gaal | i asked these same questions two days ago! | 09:40 | |
elmex | lol | ||
gaal | elmex: just co anonymously. when you checkin, you will be asked to authenticate | ||
elmex | ok | ||
gaal | let me anticipate your next question: if your local login is different from the one on open foundry, that's okay too. just hit enter when it prompts for a password, and then it will ask you for anoher username. | 09:41 | |
elmex | Password for 'root': | ||
lol | 09:42 | ||
k | |||
gaal | put this in pugs.kwiki.org/ perhaps? | ||
and Don't Use Root <tm> :) | |||
autrijus | Darren_Duncan: it is still subject to GPL. | ||
elmex | bah, i know what i do | ||
autrijus | note that any free software license gives "oyalty-free, perpetual, irrevocable, non-exclusive right " | ||
elmex | gaal: irc doesn't run as root anyway | 09:43 | |
gaal | elmex, well, i know what i do, too, which is why i don't use root :) | ||
autrijus | but is still licensed, and may be terminated if violated (which renders the license void, instead of revoking it) | ||
Darren_Duncan | Autrijus, thanks | ||
autrijus | so that paragraph is a no-op if you already use a free software license. | ||
Darren_Duncan | sounds good | ||
autrijus | sure. I fought for it :) | 09:44 | |
Darren_Duncan | then the exact free software license I chose will be respected as is | ||
elmex | gaal: i see no advantages limiting myself to priviledges of a user on my workstations | ||
autrijus | aye. | ||
Darren_Duncan | Autrijus, are you saying that the terms of service were changed by your request? | ||
or you run the server? | |||
autrijus | Darren_Duncan: I'm the person responsible for coding the openfoundry site up | ||
Darren_Duncan | ok | 09:45 | |
gaal | associative chain: "that paragraph is a no-op" got me thinking about law as a formal system or a program, which got me thinking about Nomic, the game mentioned in Hofstadter, | ||
autrijus | so I'm not in the legal team, but they tend to consider my input :) | ||
Darren_Duncan | seems you've got a lot of projects on it too | ||
autrijus | yeah. it's one of my $real_works | ||
gaal | which got me thinking about Peter Suber, who invented it, who is a FOS advocate! | ||
Darren_Duncan | nice | ||
autrijus | ooh nomic | 09:46 | |
write a nomic game in perl6! | |||
Perl6::Nomic::SymbolTable | |||
gaal | lol | ||
you get to introduce new sigils to the language! | |||
Darren_Duncan | so Autrijus, is invoking rule 2 a big deal and/or blog worthy? | ||
gaal | [off topic] my favorite philosophy paper: www.earlham.edu/~peters/writing/rudeness.htm | 09:47 | |
[it's by suber inventor of nomic] | |||
autrijus | Darren_Duncan: it is. :) | ||
Darren_Duncan | ok | ||
That said, there's one point I'm not sure about in Larry's response ... | 09:48 | ||
return $self.:bar[];# in list context | |||
is the 'list context' referring to the caller of the method? | |||
autrijus | yes. | ||
Darren_Duncan | and if I use that syntax, while the caller is in a scalar context, what happens | ||
? | |||
autrijus | a reference to it. | 09:49 | |
pretty sure about that. | |||
dada | hola | 09:50 | |
autrijus | Darren_Duncan: you happy with my p6l suggestion re .meth? | ||
"I think the proposal is for .method always mean $invocant.method | |||
and make it illegal when there is no invocants in sight, mush as $.attr | |||
would be illegal without an invocant. To use $_.foo, write $_.foo. | |||
" | |||
jabbot | pugs - 831 - Added a Test about a bug in handling exp | ||
Darren_Duncan | maybe the list suggestion is incomplete (Larry's for mine) | ||
It says $self.:bar; returns a ref in all situations | 09:51 | ||
I'll just operate as if the [] suffix always makes a copy, for now | |||
in general, I updated every other attr ref to put the : in front as well, since that seems more correct now | |||
autrijus | okie. | 09:52 | |
it's nice how now such discussions are played out in a few day's time | |||
Darren_Duncan | about to commit ... | ||
autrijus | they use to take months on p6l and goes nowhere ;) | ||
Darren_Duncan | is there a concern that Larry's new development re my question won't make it into an official doc? | 09:53 | |
autrijus | no, I'm sure it will. luqui is good about it | ||
(i.e. fixing S*.pod) | |||
Darren_Duncan | good | ||
autrijus | will be even faster if we send diffs. | ||
but it's okay either way, I think | 09:54 | ||
Darren_Duncan | nice when an official word you hear in email is reflected in the Synopsis | ||
autrijus | right. if you read | ||
dev.perl.org/perl6/synopsis/S03.html | |||
it now says | |||
Unary = reads lines from a filehandle or filename, or in general iterates an iterator. | |||
which is not the case before pugs implemented it :) | |||
elmex | yaho..second checkin... | 09:55 | |
Darren_Duncan | you're happy | ||
autrijus | elmex++ | ||
yup, deliriously so | |||
Darren_Duncan | commit done | 09:57 | |
it appears that my literal $foo in the checkin comment were replaced by empty strings; I guess my command line thought they were env vars? (empty on web page) | 09:58 | ||
kungfuftr | autrijus: latest svn checkout refuses to build... =0/ | 09:59 | |
elmex | kungfuftr: builds fine here | ||
jabbot | pugs - 834 - r1271@longdrop: samv | 2005-03-17 22:5 | 10:00 | |
pugs - 833 - LKT - updated all attribute references f | |||
pugs - 832 - Rewrote the string expression parsing te | |||
autrijus | kungfuftr: platform? | 10:01 | |
and error msg? nopaste? | |||
Darren_Duncan | I've decided to try building now too, and 'make' give warnings about unknown functions ... I'm still on ghc 6.2.2 ... does Pugs *require* 6.4 or is it just compatible with 6.4? | 10:03 | |
elmex | i still have 6.2.2 | 10:04 | |
kungfuftr | autrijus: freebsd 4.11 | ||
Darren_Duncan | a recent update mentioned upgrading to 6.4, so I wondered about it | ||
anyway, make finishes | 10:05 | ||
kungfuftr | autrijus: paste.husk.org/2811 | ||
elmex | Darren_Duncan: do you mean: 'Warning: retaining unknown function `toUpperC' in output from C compiler' ? | ||
Darren_Duncan | yes, stuff like that | 10:06 | |
it never gave those warnings a few days ago | |||
My gcc is version 3.3, if that is relevant | 10:07 | ||
elmex | i have 3.3.5 | ||
autrijus | kungfuftr: you don't have src/Unicode.c !? | 10:08 | |
kungfuftr: how can that be? "svn up src" ? | 10:09 | ||
Darren_Duncan | 'make test' finally finished ... 16/1754 subtests failed | 10:10 | |
jabbot | pugs - 835 - Perl5 version of Kwid tools. | ||
kungfuftr | autrijus: i have it | 10:14 | |
that's the weird thing | |||
autrijus | ok, try this. | 10:15 | |
svn up and make again | |||
r837 | |||
kungfuftr | yup... building now | 10:16 | |
ingy | autrijus: do you have windows? | 10:20 | |
Juerd has windows. Three, even. | |||
autrijus | I am on win32 | ||
Juerd | Oh, and mac++ | ||
jabbot | pugs - 837 - * try fix hsc2hs | ||
pugs - 836 - . | |||
ingy | no problems with nmake test right? | ||
Juerd | I'm already doing everything I did on my "old" home workstation | ||
Juerd is liking it. | 10:21 | ||
ingy | ok, zzzzzzzzzzz& | 10:22 | |
gaal | what does "&" mean on irc? | ||
background, away? | |||
Odin- never saw it until here. | 10:24 | ||
But that seems the most likely explanation. :> | |||
gaal | good thing hacker here have a shell with job control! | ||
s/hacker/hackers/ | 10:25 | ||
autrijus | nmake is just fine here, yes | 10:27 | |
gaal | sub answer { 42 } | 10:30 | |
&::(answer); | |||
Does this invoke answer or give a ref? | |||
sorry, ("answer") | |||
or is it simply context dependent? | 10:31 | ||
autrijus | no, &:: never invoke | ||
& is always just obj | |||
gaal | i need to append .() to invoke? | ||
autrijus | aye | ||
gaal | thanks | 10:32 | |
autrijus | "functions are merely objects with only the 'apply' method" | ||
Darren_Duncan | Autrijus, I just got to catching up with p6l and have now read your $self.method thread ... | ||
10:32
Aankh|Clone is now known as Aankhen``
|
|||
Darren_Duncan | you asked me a question connected with this ... | 10:32 | |
autrijus | I asked whether you're happy with my post | 10:33 | |
about making .meth always be tied to invocant, and to write $_.foo, always write $_.foo | |||
Darren_Duncan | uh ... I guess that sounds fine | ||
would that mean that .keys will have to be $_.keys if iterating over Pair objects? | 10:34 | ||
autrijus | yes. | ||
Darren_Duncan | still, I did that in Perl 5, so no change | ||
autrijus | yup. | ||
basically I'd like to huffmanize better | |||
$self.foo vs .bar | 10:35 | ||
.foo vs $_.bar | |||
clearly $_ is already shorter than $self | |||
Juerd | The original plan was that .bar always meant $_.bar | ||
autrijus | so it's a net win | ||
Juerd | And that $_ := $whateverinvocant by default | ||
I like that approach very much. | |||
autrijus | Juerd: yeah and it breaks $.foo | ||
Darren_Duncan | do you want me to say something on p6l? | ||
Juerd | That's a variable. | ||
autrijus | which doesn't mean $_'s foo attr | ||
Juerd | No, but it's a variable, declared. | 10:36 | |
In scope even | |||
And .foo isn't $.foo | |||
autrijus | method foo { say map { .process($_) } @list } | ||
Juerd | Just as foo isn't $foo | ||
autrijus | I want to be able to write that. | ||
Juerd | I want more to be able to write map { .<score> } @words | 10:37 | |
Now if we implement my idea of calling $OUTER::_ $__... | |||
autrijus | so we have different expectations. :) | 10:38 | |
Juerd | Yes | ||
autrijus | I see .foo as method calls | ||
Juerd | Your problem exists with nested foo too | ||
autrijus | and in my mind method calls are connected to invocants | ||
Juerd | And the solution with nested foo can be used with methods: use a different name | ||
autrijus | not to $_ at all. | ||
Juerd | That limits you to objects of the same class | 10:39 | |
In my mind, methods are methods, but not necessarily on the current invocant. | |||
malaire | does &.foo mean anything these days? (could that be same as $this.foo, and so .foo could be $_.foo) | ||
Juerd | That's a good idea, malaire | ||
autrijus | malaire: it means an attr | ||
has &.foo; | |||
Juerd: wait. .<score> is hash deref. | |||
Juerd | I think &.foo is an attribute though | ||
autrijus: Yes! | |||
Darren_Duncan | Autrijus, I can't think of anything disagreeable with your proposal ... its no worse than an alternative ... it will take me time to think if there's something better | ||
autrijus | I'm fine with dereffing use $_. | ||
Juerd | autrijus: But . is generic! | ||
autrijus: Whoa - no, don't decide what the LHS is based on .'s method | 10:40 | ||
.<> is a method, visually | |||
autrijus | not to me. when I see .[123]; | ||
I don't think invocants, I think $_ | |||
Juerd | It's actually Hash::postcircumfix:{'<', '>'} | ||
jabbot | pugs - 838 - kwid_to_html passing two more tests | ||
Juerd | You think different things based on how prefix . is used | ||
autrijus | yes. | 10:41 | |
Juerd | Take a step back and think of how confusing that'd be. | ||
autrijus takes a step back. | |||
Juerd | .foo is $self.foo | ||
.<foo> is $_.<foo> | |||
That's not very consistent | |||
autrijus | $.blah is $self.meta.attr('blah') | ||
not $_.meta.attr('blah') | |||
Juerd | Especially if you consider that .foo :=: .<foo>, only through a different interface. | 10:42 | |
And if you want something as short as 1 character, just define a $s invocant | |||
method foo ($s:) { map { $s.foo(@_) }, @foo } | |||
It takes declaring | 10:43 | ||
But that's consistent over ALL nested-$_ problems | |||
autrijus | method foo { map { .foo($^x) } @foo } | ||
Darren_Duncan | well, I'm going to get off seeing as its 2:43 am here ... good luck with that .foo thing | ||
autrijus | that too. | ||
since that way there's no $_ binding. | |||
Juerd | There would | ||
autrijus | right? | ||
why? | |||
Juerd | The first argument of a closure is bound to $_ | ||
consistently. | |||
That is: the invocant | |||
autrijus | I don't see that. | ||
the first invocant, yes. | 10:44 | ||
the first argument, no. | |||
Juerd | or: the first placeholder | ||
or: the first argument, in a for, for example | |||
autrijus | I don't think the signature in the map &foo is an invocant. | ||
Juerd | for @foo Y @bar -> $foo, $bar { $foo :=: $_ here } | ||
autrijus | I think it is a plain argument... | ||
but correct me if I'm wrong. | |||
Juerd: sure sure but | |||
for @blah { $^foo ... } | 10:45 | ||
here $foo is not $_. | |||
that's my reading of S06. | |||
I may be completely wrong. | |||
Juerd | The current topic is always aliased to the special variable $_. The given block is just one way to set the current topic, but a switch statement can be any block that sets $_, including a for loop | 10:46 | |
S04 | |||
And IIRC, current topic is the first arg | |||
autrijus | it is the first inv not the first arg :-( | ||
but all in all I find the inv/arg distinction very confusing. | 10:47 | ||
Juerd | in for @foo -> $_ { ... } there is no invocant | ||
autrijus | but you explicitly bind $_ | ||
which is fine. | |||
Juerd | Invocant is the first argument in methods | ||
autrijus | and even in | ||
for @foo { ... } | |||
Juerd | Every invocant is an argument, not the other way around | ||
autrijus | the $_ is implicit, if it's used | ||
so still fine. | |||
Juerd: sure sure. but map {} ... | |||
the block is not a method. | |||
Juerd | for @foo -> $nonunderscore { $underscore :=: $_ } | ||
autrijus | it is just a bare closure. | ||
Juerd | eh | ||
for @foo -> $nonunderscore { $nonunderscore :=: $_ } | 10:48 | ||
autrijus: Right, and non-methods do not have invocants. | |||
autrijus | what. | ||
multisubs all have invocants | |||
sometimes multiple such | |||
Juerd | multisubs are very methodish | ||
They can even be used with method syntax | |||
autrijus | ... | ||
so ok. | 10:49 | ||
I see that | |||
for @foo -> $x { ... } | |||
here $x is $_ | |||
because it is a ponty block | |||
pointy block even | |||
Juerd | Because it's a closure with an argument. | ||
autrijus | and pointy block sets $_ | ||
Juerd | Not because it's pointy, not because it's for | ||
Aankhen`` | Ponty block ponty block ponty block!!! | ||
autrijus | for @foo { $^x ... } | ||
Juerd | It's the closure that's consistent. | ||
autrijus | is $x here also $_ ? I am not so sure. | ||
pugs currently does not do that. | |||
Juerd | $^x and yes | ||
autrijus | hrm. | 10:50 | |
Juerd | Every block is a closure, and this behaviour attaches to closures, not to where they're used. | ||
autrijus | ok, then pugs may be wrong. | ||
Juerd | (All AFAIK) | ||
IANALarry etc. | |||
autrijus | you mean IANTLarry | ||
Juerd | Larry is plural | ||
:) | 10:51 | ||
@Larry. | |||
(i.e.: larry, damian, etc...) | |||
Damian's a Larry, in this use :) | |||
kungfuftr | sophos++ # cancel contract due to blatant security holes in outsourced website | 10:52 | |
elmex_ | just yesterday i read a synopses...and wondered about $_.method <=> .method and that it wasn't yet implemented in pugs... | ||
autrijus | nod... a test? | 10:53 | |
running home now. bbiab & | |||
10:56
elmex_ is now known as elmex
|
|||
nothingmuch | morning | 11:04 | |
afternoon really | |||
gaal | heya! | ||
nothingmuch should stop saying morning when it isn't, and just use 'hi' | 11:05 | ||
what's up? | |||
tomyan | is there a minimum version requirement for GHC? | 11:09 | |
nothingmuch | 6.2, i think | ||
ayrnieu | tomyan - 6.2+ | 11:10 | |
tomyan | does it require unicode support compiled in? | ||
gaal | nuffin: i'm wokring on packages.t | ||
nothingmuch | tomyan: with unicode support you get unicode support in pugs too. Without it you don't | ||
ayrnieu | even OpenBSD 3.6 ports have GHC 6.2+, so you're probably safe =) | ||
tomyan | was trying to track down prob that i described last night (Illegal instruction) | ||
it was ok in r914 | 11:11 | ||
then 915-918 don't compile at all | |||
then in r919 all execution has illegal instruction bug | |||
doing a diff over those revisions, the main change seems to be unicode related | |||
is most likely prob with ghc, but wanted to produce a simple test case before reporting it | 11:12 | ||
background: is on sarge on sparc | |||
nothingmuch | tomyan: reading autrijus's journal, I see a comment about having done it in C | 11:15 | |
based on perl5's unicode handling | |||
r919 is a svn.perl.org revision, right/ | 11:16 | ||
i think this means that unicode handling is now decoupled from GHC itself | |||
gaal | nuffin, got an example of how to compare two simlple hashes? | 11:19 | |
tomyan | yeah, i see that | ||
nothingmuch | gaal: stringification works | 11:20 | |
since the order is undef though | |||
gaal | is(~%h1, ~%2) doesn't work for me | ||
Fail: cannot cast into [VPair]: VRef (VList [VStr "1",VStr "2",VStr "3",VStr "4"]) | |||
i meant %h2 up there | 11:21 | ||
nothingmuch | you should do it as ok(~%hash eq any(....)) | ||
but anything above 2 keys becomes a hassle | |||
odd | |||
if i get it right | |||
then it's really an error about lazily constructing %h2, i guess | |||
gaal | ah, i may have done that wrong: | ||
our %h2 = <1 2 3 4>; | 11:22 | ||
nothingmuch | ah | ||
gaal | why isn't this correct? | ||
nothingmuch | try doing that as our %h2 = (<1 2 3 4>); | ||
and add a test case for that | |||
gaal | no luck | ||
nothingmuch | since autrijus should know about it | 11:23 | |
ok then | |||
our %h2 = ("1" => "2", "3" => "4"); | |||
gaal | ah wait wait: | ||
i'm comparing it to something in an eval | |||
nothingmuch | $self->is_waiting | ||
gaal | which is failing so is evaling to undef | ||
maybe is(undef, ~%h) causes the problem? | 11:24 | ||
nothingmuch | hmm | ||
gaal | undef is ultimately eq, right? is that always scalar context? | ||
nothingmuch | i don't think so | ||
can i see the script? | 11:25 | ||
i'd like to know a bit more | |||
gaal | changing it to ("1" => "2", "3" => "4"); worked. | ||
nothingmuch | it all sounds very fishy in the unimplemented sense | 11:26 | |
ok, so it's a bug in what <1 2 3 4> means in it's unnatural context | |||
i would gladly make a test case out of your "bad" script | |||
pasteling | "gaa;" at 192.115.25.249 pasted "~ %h problem" (80 lines, 2.8K) at sial.org/pbot/8276 | ||
gaal | line 24/25; the blow up is at 36. | 11:27 | |
nothingmuch thinks up of a name | 11:29 | ||
gaal | just put it in hash.t, no? | ||
nothingmuch | i think | 11:30 | |
gaal hates TODO tests which untodod would have been written is(xxxxxxx, undef) | 11:31 | ||
nothingmuch | huh? | ||
gaal | eval makes you need to write todo_ok(eval '!defined(xxxxxxx)') | ||
because if you naively do todo_is(eval 'xxxx', undef), it will pass | 11:32 | ||
nothingmuch | ah | ||
so, err, reverse that | |||
eval '!(xxxxx)', !undef | |||
gaal | heh | 11:33 | |
nice. | |||
nothingmuch | add an todo_is($!, undef, ".. and it wasn't just the eval dying"); | ||
after each one | |||
gaal | that's harsh :( | ||
nothingmuch | which i think is actually a much nicer solution, in terms of what it checks | ||
it's less elegant | 11:34 | ||
gaal | well, once the test starts passing, the eval should be removed. | ||
nothingmuch | maybe we should have an eval_is | ||
and todo_eval_is | |||
gaal | it's only ther because it parsefails otherwise. | ||
nothingmuch | which str eval's it's first argument | ||
and checks the second | |||
and reports fail if $! is set | |||
gaal | reports todofail you mean. | ||
nothingmuch | hmm | ||
well, reports todo fail if todo_eval_is | 11:35 | ||
autrijus | tomyan: I know | ||
I was casting C int as haskell Char | |||
tomyan | yay | ||
autrijus | but other compilers seem happy enough | ||
gaal | i'd do it now but i have to leave soon. writing old style, and will refactor test later if someone writes the suport for it. | ||
nothingmuch | autrijus: i just discovered zip is lvaluable | 11:36 | |
gaal: i'll add eval_ok to Test.pm | |||
tomyan | i have ghc-cvs debian package installed, but I can't figure out how to make the install use it over ghc | ||
gaal | document it please because this is tricky | ||
nothingmuch | ok | ||
gaal | double negatives and stuff. | ||
tomyan | otherwise i would try it with that and see if it works | ||
i mean the compilation, not install | |||
autrijus | tomyan: it's an abuse of c compiler thing | 11:37 | |
gaal | nothingmuch: I'm going with ok(!defined(xxx)) for now. | ||
autrijus | will you be around in say 20min? | ||
I can attempt a fix | 11:38 | ||
tomyan | yep | ||
thanks | |||
nothingmuch | gaal i'd leave it with is(foo, undef) | ||
gaal | ok, but that generates false passes. | ||
nothingmuch | hmm | 11:39 | |
well, i see your point | |||
gaal | which was the original problem. | ||
nothingmuch | i think yours is more elegant | ||
but i'd do it as: | |||
ok(eval '!defined(xxx)') | |||
gaal | k really have to go soon, i prefer to commit now | ||
nothingmuch | so that it's only true if it's really defined, and not just a fatal error | ||
gaal | er yes, that's what i meant | ||
yes yes | |||
nothingmuch | okay | ||
ciao then! | |||
gaal | r841, see y'all in a few hours& | 11:50 | |
nothingmuch | ciao gaal! | 11:52 | |
errm, too late | |||
autrijus | :) | ||
nothingmuch | ok, we have eval_is | ||
now for eval_ok | |||
autrijus | wow. woot! | 11:53 | |
nothingmuch | ok everyone svn up | 11:58 | |
and convert your tests | |||
mostly it's %s/todo_is(eval /todo_eval_is(/gc | 12:00 | ||
oh, and most is(eval '', undef) changes to todo_eval_is, because undef return is different than failure | 12:02 | ||
autrijus | tomyan: try the newest revision? | 12:29 | |
r844 | |||
tomyan | r966? | 12:32 | |
building now | |||
autrijus | I have a feeling you're tracking svn.perl.org instead of svn.openfoundry.org | 12:33 | |
there will be a 1min delay but that's fine | |||
tomyan | oh i was wondering why the revision numbers on rt.openfoundry.org/Foundry/Project/.../pugs/log/ weren't making sense to me | 12:34 | |
but now i know | |||
autrijus | because you're tracing the secondary mirror | ||
kungfuftr | autrijus: Unicode.hsc:29: Module `GHC.Unicode' does not export `ord' (also chr) | 12:35 | |
=0) | |||
tomyan | yeah me too | 12:36 | |
autrijus | fixed I think. try again | ||
kungfuftr | yup, seems to be | 12:37 | |
hhhmmm... anyone got a smoke bot? | |||
autrijus | tomyan: so no segfault anymore? | 12:40 | |
tomyan | is an slow old machine, still waiting for it to build | 12:41 | |
autrijus | alright | ||
rjbs tries the latest on Win32. | |||
tomyan | died after Linking ... | 12:43 | |
with: | |||
src/Unicode.o(.text+0xc8): In function `r1aq_entry': | |||
: undefined reference to `isSpaceC' | |||
7 similar messages | |||
pasteling | "malaire" at 217.119.39.217 pasted "make failing on linux" (81 lines, 4.3K) at sial.org/pbot/8277 | ||
tomyan | same as that | ||
rjbs | woop. fine on linux. | ||
autrijus | ok. | ||
rjbs | er. win32. | ||
hey, did we get :r overnight? | 12:44 | ||
autrijus | ok, I attempted another fix. | ||
need to run for dinner. will bbiab. | |||
malaire | r846 works for me (on linux) | 12:47 | |
dada | r846 builds fine on Win32, GHC 6.2.2 | 12:51 | |
tomyan | r846 still has illegal instruction prob for me (linux sparc) | 12:53 | |
sorry | 12:54 | ||
going to get my lunch, but will check backlog to see if you need me to try again autrijus | 12:55 | ||
autrijus | hi. | 13:44 | |
I kluged together some other fixes. | 13:45 | ||
tomyan: can you try to hand tweak src/Unicode.hsc | |||
#if mingw32_HOST_OS | |||
make that branch always true | |||
#if 1 | |||
or something | |||
tomyan | yeah no probs | ||
Limbic_Region | autrijus - did you get the /msg I sent you (though problem has been worked around already)? | 13:46 | |
any lambda folks about mind explaining a small piece of Haskell to me in english? | |||
autrijus | Limbic_Region: yeah. I don't known an easy solution to that. | 13:47 | |
Limbic_Region | www.perlmonks.org/index.pl?node_id=440284 # I don't understand what it is doing so it is hard to write it in Perl | ||
autrijus | Limbic_Region: #haskell may help too | ||
Limbic_Region: browseruk has a translation | 13:49 | ||
Limbic_Region | autrijus - was hoping for english not code - but *shrug*, I guess I should just learn Haskell | 13:51 | |
autrijus | Limbic_Region: right. Gentle Introduction or YAHT :) | ||
Limbic_Region | ok - I will just improve BrowserUk's version | 13:52 | |
tomyan | yep that works | 13:57 | |
autrijus | tomyan: ok. so it is most definietely my Unicode.c that is broken. | 13:58 | |
tomyan: do you have C-fu? | |||
tomyan | nope | ||
autrijus | I don't have any C fu outside XS | ||
tomyan | i have very little fu | 13:59 | |
just perl fu really | |||
autrijus | so we need to find somebody else. | ||
what does solaris define? SOLARIS? | |||
dvtoo | sun for one | ||
one sec, I can get you the list out of gcc | |||
tomyan | dunno, but it is linux on sparc | ||
autrijus | oh ok. aw. | ||
need to try get somebody versed in C to look at it | 14:00 | ||
dvtoo | it defines sun, unix, and sparc (on sparc) | ||
also __svr4__ | 14:01 | ||
theorbtwo | autrijus, if Unicode.c is generated by script (and I'm guessing it was...) you should check it in. | 14:04 | |
autrijus | theorbtwo: it was generated by hand using vim. | 14:07 | |
sad but true :( | 14:09 | ||
14:09
cnhackTNT_ is now known as bytewolf
|
|||
theorbtwo | Oh. Perhaps I'll write something to generate it by script, then, since it seems to be missing quite a bit of stuff. | 14:09 | |
autrijus | ok. the source data is unicore/* | 14:11 | |
To/* and gc_sc/* | |||
I'll bbl. :) | 14:12 | ||
nap & | |||
stevan | morning all | 14:27 | |
autrijus: what was the final outcome of all that $self.foo() vs .foo() debate? | 14:29 | ||
nothingmuch++ # for eval_ok, eval_is | 14:30 | ||
ingy++ # kwid stuff | |||
stevan is reading the SVN commit log :) | 14:31 | ||
malaire | btw, is 'todo_eval_is' implemented? When I try to run ./pugs t/op/substr.t, I get "No compatible subroutine found: &todo_eval_is" | 14:33 | |
stevan | malaire: I think you need to re-install Pugs | ||
malaire: so it can find the new Test.pm in your path | |||
malaire | thanks, that works | 14:34 | |
I have some problems with test-file. Within pugs C< my $str = "foobar"; substr($str, 0, 1) > works, but when I run ./pugs t/op/substr.t first test fails and says "Got: was fatal" | 14:42 | ||
stevan | malaire: does the test fail? or is it all TODO test failing | 14:47 | |
I see all TODO tests failing | |||
malaire | I mean with my new substr-code added, it should not fail because same code works when run within pugs-interpreter | 14:48 | |
stevan | you implemented substr? | 14:49 | |
malaire | partly, I'm just writing that | ||
stevan | oh,.. hmmm. Well I think t/op/substr.t has !#/usr/bin/pugs at the top,.. which might affect things | 14:50 | |
but then if you are running it with ./pugs that shouldnt be an issue | 14:51 | ||
autrijus | stevan: no final solution yet. larry needs time to think. which is good | 14:54 | |
stevan | autrijus: ok | 14:56 | |
malaire | if I submit my current substr-code, could someone see why the first tests are still failing while same code works in pugs interpreter? | ||
autrijus | sure. | 14:57 | |
malaire | I'm just quessing that todo_eval_is might be broken... | ||
ok, r848 | 14:58 | ||
stevan | malaire: I have seen some parse bugs which even eval dies on | 14:59 | |
hide | my tests do that. eval dies on them. | 15:00 | |
stevan | ok I have to go set up a server now, but I will be back for more perl6 File::Spec later | 15:02 | |
hide | I just changed them from ok(eval ... ) to todo_eval_ok(...) and now they die. | ||
where as before my ok(eval ...) syntax was wrong. | 15:03 | ||
malaire | with r484 substr should work for most cases (index-out-of-range is not working, and neither is substr-as-lvalue) | ||
substr("camel", 0|1, 2&3) works also :) | |||
err, r848 | 15:04 | ||
hide | should I commit the tests as dying or comment them out? | 15:05 | |
obra | hide: if you comment them out, add a todo test about them. | 15:07 | |
autrijus: is that a reasonable plan for tests that are dying on syntax error? | |||
Jonathan_ | I've started doing regular (daily, provided my computer is on) automated builds of a Pugs Win32 binary so Windows folks who aren't into compiling stuff can still play with Perl 6. Available at www.jwcs.net/users/jonathan/perl6/ - feedback/hatemail welcome. :) | 15:12 | |
autrijus | !. !. | 15:15 | |
Jonathan++ | |||
Forth | put that on pugscode XD | ||
obra | autrijus: why isn't pugscode.org a wiki? | 15:16 | |
autrijus | obra: tuits? | 15:18 | |
also, need a kwiki theme for that | |||
theorbtwo | Just redirect it to pugs.kwiki.org? | ||
autrijus | that works too. again, need a theme and some kind of privacy / antispam | ||
Jonathan_: pugscode.org now links to you | 15:20 | ||
Jonathan_ | Wow...now I just gotta hope Pugs doesn't get featured on /. :) | 15:21 | |
malaire | it was yesterday... | 15:22 | |
autrijus | try again. :) ghc-unicode.tar.gz | ||
err it.slashdot.org/article.pl?sid=05/0...&tid=8 | |||
theorbtwo | Sometimes I wish kwiki had real (Read: password-protected) accounts, so you could do reasonable nofollow. | 15:23 | |
clkao | prepare for the trolls! | 15:24 | |
Jonathan_ | Wow, how'd I miss that...nice. :) | ||
obra | yes. definitely not the time to create a pugswiki | 15:35 | |
rjbs | More and more, I think any post with decent grammar and several paragraphs will get +5 Interesting. | 15:38 | |
theorbtwo | ...and it annoys the heck out of me that getting a "funny" rating will make a post go up faster then getting an "interesting" rating. | 15:40 | |
rjbs | I advise ignoring /. ; sound, fury, nothing. | ||
theorbtwo | I mostly do. | 15:41 | |
autrijus | most days I read at +5 ;) | ||
or +3 and with heavy "Funny" penalty | |||
that way it's almost nice. | |||
ok. anyone with GHC 6.2 around? | 15:42 | ||
clkao | me | ||
pjcj | two versions? | ||
theorbtwo | aut, you can do that? | 15:43 | |
autrijus | theorbtwo: sure, "preferences" | ||
clkao: ok. latest version may or may not work. | |||
r849 | |||
tomyan: I think that will also fix illegal instruction foo | |||
malaire | in /. I have threshold +3 & Funny-penalty -6 -- that's quite nice | 15:45 | |
autrijus | but that may make win32 unbuildable. | 15:46 | |
so please test. | |||
dada goes testing | |||
tomyan | it says that src/Unicode.hs is missing | 15:47 | |
dada | Warning: the following files are missing in your kit: | ||
src/Unicode.hs | |||
autrijus | r850. | ||
dada | Please inform autrijus. | ||
tomyan | yep r850 | ||
dada | r850 me too | ||
and build fails | 15:48 | ||
autrijus | on win32? | ||
dada | yes, on Win32 (Can't find module `Unicode') | ||
autrijus | weird that's not the error I expected | ||
dada | while compiling src/Internals.hs, apparently | 15:49 | |
autrijus | but src/Unicode.hs is there | ||
dada | no | ||
ohhhhhhh wait wait | |||
i did svn up and *then* nmake clean | |||
autrijus | heh. | ||
dada | redo | ||
tomyan | ok got it, trying now | 15:50 | |
clkao | autrijus: what are the expected failures? | 15:51 | |
dada | r851 now, and it builds | ||
malaire | just a quick test with eval_is gives problems: | ||
is(eval 'substr($str, 0, 1)', "f", "..."); # is ok | |||
autrijus | dada: you have cl.exe in your path? | ||
malaire | eval_is('substr($str, 0, 1)', "f", "..."); # fails | ||
dada | autrijus: yes | ||
only one warning when linking | |||
Warning: .drectve `/DEFAULTLIB:"LIBC" /DEFAULTLIB:"OLDNAMES" ' unrecognized | |||
clkao | (7 subtests UNEXPECTEDLY SUCCEEDED), 10 subtests skipped. | 15:52 | |
Failed 13/105 test scripts, 87.62% okay. 6/1786 subtests failed, 99.66% okay. | |||
autrijus | ok fixing that | ||
dada | mmm | ||
autrijus: I think UnicodeC.c is compiled always | 15:53 | ||
autrijus | right. I fixed that. | ||
r852 | |||
clean and rebuild | |||
dada | I'm in nmake test right now :-) | 15:54 | |
autrijus | the only test that matters to this is t/syntax/unicode.t | ||
dada | not there yet | ||
pugs is becoming slow to test... :-) | 15:55 | ||
autrijus | we need a faster evaluator | ||
:) | |||
I'm working on that too. should be the next commit | |||
theorbtwo | You can run a single test: PERL6LIB=./blib6/lib ./pugs t/syntax/unicode.t | 15:56 | |
clkao | autrijus: i think it wokrs. | ||
autrijus | clkao: r852? good! | ||
15:56
cnhackTNT_ is now known as cnhackTNT|away
|
|||
autrijus | and no warnings whatsoever? | 15:56 | |
clkao | autrijus: but now make always want to recompile the unicode.hsc | ||
theorbtwo wonders if the harness should be made to run tests in a random order. | |||
autrijus | clkao: there is no longer a unicode.hsc | ||
clkao: it should be killed | |||
is it not for you? | |||
tomyan | after Linking... i get gcc: UnicodeC.o: No such file or directory | 15:57 | |
hav just updated | |||
autrijus | tomyan: right... sorry, plan changed, svn up again :) | ||
clkao | was r851 | ||
autrijus | r852 is now inlining UnicodeC. | ||
tomyan | i mean i am trying again after updating | ||
autrijus | ok, danke | ||
dada now building r852 | 15:58 | ||
theorbtwo | Hmmpf. On the one hand, I find myself the proud owner of account #493. | 15:59 | |
On the other hand, I find that it's named "James Mastros (The O". | |||
autrijus hopes it works for tomyan | 16:03 | ||
stevan | FreeBSD port tree ++ | ||
autrijus | so, 30% of the codepath is on Unicode | 16:04 | |
and of the remaining, 50% is on Eval.reduce | |||
hide | svn: Failed to add file 'src/Unicode.hs': object of the same name already exists | ||
autrijus | based on the two pieces of information, I just added -O to the two modules. | ||
hide: right, need to rm that before updating | |||
r852. now pugs is significantly faster. | |||
tomyan | nope | ||
illegal instruction | 16:05 | ||
autrijus | still illegal instruction? | ||
bummer. I thought it's a typecasting problem. | |||
tomyan | is it a sizeof(some data type) problem | 16:06 | |
autrijus | oh? | ||
iiinteresting | |||
dada | r852 working on Win32 (GHC 6.2.2) and unicode.t 100% ok | ||
tomyan | is a 64 bit machine, but kernel runs progs in 32bit userspace | ||
i think | |||
autrijus | hrmph hrmph. | ||
tomyan | am i right in thinking that you interface with some c code and there is some conversion between native haskell types and c types? | 16:09 | |
in src/Unicode.hs? | |||
am looking at the code, but no haskell or c fu so just guessing | |||
hide | was there a decision on tests that die and commenting them out? | 16:11 | |
kungfuftr | autrijus: do you know of any IRC bots that can do smoke tests? | 16:12 | |
autrijus | no idea | 16:13 | |
hide: not that I know of. use eval'' if possible I think? | |||
hide | yeah, it is in an eval, but the eval doesn't capture it. | ||
tomyan | autrijus:if pugs will use unicode features of ghc 6.4.1 when it is released, your time might be better spent on other features, rather than this bug which will go away by itself anyway | 16:14 | |
autrijus | tomyan: just one final try please | ||
tomyan | of course | 16:15 | |
i am glad to be of any help i can | |||
autrijus | ok. I hope this still makes ghc 6.2 happy | 16:19 | |
that's going to be the final try :) | |||
tomyan: 855 | |||
tomyan | building | ||
autrijus crosses fingers | |||
malaire | is there a place where I could add tests testing Test.pm module? (at least eval_is is broken, and should perhaps be tested) | 16:20 | |
autrijus | malaire: ext/Test/t | ||
malaire | not in t/ ?? will those be run among normal tests? | ||
autrijus | somebody on ghc 6.2 please try 855 too | 16:21 | |
it should work but not guaranteed | |||
hide | I'll give it a go | ||
theorbtwo | Compiles, passes unicode.t | 16:22 | |
autrijus | yay. Unicode.hs now goes from being ~10% of execution time into 1% | 16:23 | |
all bottleneck is on reduce now. | |||
reduce Eval 53.8 53.3 | |||
theorbtwo | Heh, I take it I no longer need to write a Unicode.c creator... | 16:24 | |
autrijus | theorbtwo: yes :) | 16:26 | |
someone did that in haskell | |||
and is already in GHC 6.4.1 trunk | |||
lightstep | j0 | ||
theorbtwo | Oh, lightstep, you should fix your AUTHORS entry. | ||
autrijus | hi lightstep-san! | ||
I never got your mail | |||
theorbtwo | And good-morning. | ||
autrijus | or did I miss it? | ||
lightstep | perhaps | 16:27 | |
i'm not near my computer now, anyway (until sunday) | |||
autrijus | what is the name in From: ? :) | ||
lightstep | it's on lightstep.woobling.org, if that matters | ||
[email@hidden.address] | 16:28 | ||
or Amir Livne Bar-On | |||
tomyan | is the same | ||
sorry | |||
autrijus | ok. I give up :) | 16:29 | |
please use the win32 branch in Unicode.hs locally for now :) | |||
tomyan | well thanks for trying, will use pugs on i386 until ghc 4.1 comes out | ||
lumi | Oh | ||
I know you | |||
lightstep | theorbtwo, can you do that for me? i'm Amir "lightstep" Livne Bar-On, and the unicode of the hebrew name is on my site at woobling | 16:30 | |
autrijus | lightstep: aha. got your mail | ||
theorbtwo | Cool, will-do. | ||
You'll be the first person with a unicode name, but no CPAN ID. | |||
lightstep | my code is probably very unfit: i didn't know the structure of the evaluator well then i wrote it (not that i know much more now) | 16:31 | |
autrijus | lightstep: oh. care to describe in brief how unfit it is? | 16:35 | |
lightstep | the subroutine creation and enclosing (as in closure) are probably not what they should me | 16:36 | |
and more places should be converted to doFromValue | |||
autrijus | or just fromValue | ||
lightstep | (which places, i don't know. i changed op2Numberic and op1Printing manually) | ||
autrijus | which is preferred | ||
lightstep | i wasn't sure which is better | ||
autrijus | oh. fromValue is better. | 16:37 | |
lightstep | i think intermixed them | ||
which is not good | |||
also, doRunSingle should ve fixed to not use vCast | |||
autrijus | k. | 16:38 | |
chip | Hey all, I'm looking for a way to integrate Params::Validate into Perl 6 parameter syntax. Is there already a Perl 6 native way to do this ... i.e. if I did it in Perl 6, what would it liikely look like? | 16:40 | |
autrijus | oh. wow. chip! | 16:41 | |
did not notice you here :) | |||
chip | method foo (str $s is validated( regex => /stuff/ ), ... ) ? | ||
autrijus | chip: look into "where" | ||
chip | autrijus: hey there. just found out about this channel | ||
autrijus | ah. thanks for increasing this channel's pumpking count | 16:42 | |
chip | there are others? | ||
autrijus | rgs for example? | ||
theorbtwo | Three, AFAIK. | ||
chip 's pecking order instinct takes over | |||
autrijus | and schwern too | ||
theorbtwo | You, RGS, and Autrijus, pumpking of pugs r0..858 and counting. | 16:43 | |
autrijus | theorbtwo: schwern :) | ||
chip | S09 doesn't mention "where". Where, um, is it? | ||
autrijus | chip: try S12 | ||
chip | ok | ||
rgs | hi chip | 16:44 | |
rgs awakes | |||
rgs back to sleep & | |||
autrijus | ... | ||
lightstep | isn't a pumpking's responsibility to not accept patches sometimes? so is autrijus really a pumpking? | ||
autrijus | ha. | ||
I don't accept patches. | |||
I hand out committer bits. | |||
quite different. | |||
rgs | you're a metapumpking then. | ||
lightstep | but you _do_ control the main server | 16:45 | |
kungfuftr | autrijus is really a crackfuelled perlking | ||
autrijus | lightstep: aye. true | ||
theorbtwo | He's also a double-meta pumpking, even. | ||
chip | "where". Clever. | ||
But given Num where { $^n % 1 } why not $_ ? | 16:46 | ||
autrijus | clarity. | ||
lightstep | heh. my firefox doesn't read chinese | ||
autrijus | $_ works too. | ||
oh. o. o. ooo. ooh. o. | 16:48 | ||
the story of Perl OO is the story of o. | |||
chip | Why do $_ and $^n both work? I know what $^n is, btw | ||
Num where { .odd } | |||
autrijus | # www.nntp.perl.org/group/perl.perl6....uage/19821 | ||
chip: see "implicit params" for the reason. | 16:49 | ||
$_ is autoextracted just like $^N | |||
$^n | |||
where $^n is autoextracted into $n, $_ is into *$_. | |||
(I think) | |||
chip | So { $^a + $^b } eq { $^a + $_ } if you pass two params? | 16:50 | |
autrijus | I think _ sorts best. | ||
so that would be $^b + $_ | |||
err | |||
I mean $^b + $^a. | |||
anyway you know what I mean. | 16:51 | ||
chip | But you have to do something that uses $_ to trigger that? Me _not_ like | ||
but I'll keep reading | |||
autrijus | well, if you don't use $_ or .foo or .[0] | ||
chip | And WRT "o" ... dammit, that's just wrong. I like $_ invocant | ||
autrijus | then that closure is good as a nullary | ||
mmm sleepy brain | 16:52 | ||
o.no | |||
o.rz | |||
that however agrees with Juerd's suggestion. | |||
only he uses $s / $o | |||
chip | but that means the parse tree must produce a boolean "did this block use $_", that kind of state is pretty ugly. Still. Hm. | ||
autrijus | uh, no | 16:53 | |
the extraction is done after the AST is built. | |||
pugs implements that. | |||
chip | ok | ||
autrijus | it's AST.extract | ||
if you are interested. | |||
_.meth | 16:54 | ||
omg. | |||
chip | I'm interested, but incapable (of reading Haskell) | ||
autrijus | I thought you've been studying it :) | ||
chip | Made effort, paused for other issues | 16:55 | |
autrijus | I see. | ||
lightstep | apocalypse 5 says that in regexes, \x20 is the same as \040. did he mean \o40? | 16:59 | |
autrijus | yes. | ||
patches to p6l | |||
:) | |||
larry's brains agreed with each other. | 17:00 | ||
theorbtwo | Larry is Steve Martin? | 17:01 | |
ingy | hola | 17:02 | |
Steve_p | hey | 17:03 | |
theorbtwo | Gruss dich. | ||
Limbic_Region | autrijus - it was Hamming Sequence I needed explained, not the lamda code - my solution is now posted (in p5 of course) | ||
AFAICT - it is the only correct original solution in the thread | 17:04 | ||
Limbic_Region does his happy dance | |||
autrijus | ooh . | 17:05 | |
Limbic_Region: url? | |||
ingy: larry's brains is more kaleidoscopic than us, as evidenced in latest p6l post | 17:06 | ||
cflag | how different is haskell from cl | ||
autrijus | what is this CL thing? | ||
commong lisp? | |||
cflag | common lisp | ||
autrijus | oh. eh. | ||
clkao is CL | 17:07 | ||
clkao has been ussing Franz CL | |||
autrijus | quite different. | ||
it's lazy by default and purely functional. | |||
so it is like a subset of CL | |||
but again, almost all language is like a subset of CL. | |||
theorbtwo | AFAICT, haskell is a lot more serious about being functional. | ||
So there's no equivlent to cons, or p5's push -- functions /never/ modify their argument. | 17:08 | ||
autrijus | not outside the IO monad. | ||
theorbtwo | Er, right. | 17:09 | |
autrijus | autrijus.org/haskell_brain.html | ||
I need to fix the translation. | |||
cflag | ok | 17:10 | |
lightstep | haskell is also typeful | 17:11 | |
autrijus | "Haskell users is known to chant 'harry referential transparency' inccessantly" | 17:12 | |
lightstep | theorbtwo, push also exists in lisp, but as a macro | ||
theorbtwo | It's very strange -- somehow, I want to read it like some sort of Flash Gordon episode. | ||
I didn't realize it was a macro, but did realize it exists. I don't know much lisp. | 17:14 | ||
lightstep now really disappears for days | 17:16 | ||
chip | autrijus: almost all language implementation is a subset of CL. almost all language syntax is a superset of CL. :-) | 17:18 | |
autrijus | :) | ||
ooh the YY combinator. | |||
"other languages may have the Y combinator, but only perl 6 has the YY combinator!" | |||
(re larry's YY as short-circuiting zip()) | 17:19 | ||
chip | "_.frobme looks like someone stepped on the front of your expression" | ||
theorbtwo | Hm, Ā„Ā„ doesn't look shorter then Ā„ to me. | 17:20 | |
chip | Am I gonna have to convert to mlterm just to read #perl6? | ||
theorbtwo | Almost makes me want to say that ļæ„ keeps going, and Ā„ does not, but FFE5 isn't latin-1. Anyway, they look too much alike. | ||
chip | ōæ½xA5 is one character to me still | 17:21 | |
autrijus | theorbtwo: no, er, the idea is to invoke idea about || and && | ||
"short-circuiting is made when you type something twice" | |||
chip: gnome-terminal works too | 17:22 | ||
theorbtwo | That was YY vs Y on the first line, and full-width Y vs halfwidth Y on the second. | ||
Yeah, but | and || do completely different things in p6. | |||
That neumanic would make sense in p5, but not in p6. | |||
autrijus | V then | 17:23 | |
V looks like Y without filling ;) | |||
1,2 V 3,4 | |||
APL, here we come | 17:24 | ||
chip | autrijus: using gnome-terminal; which font are you using to see FE5? | ||
FFE5, rahter | 17:25 | ||
autrijus | Arphic Ming | ||
I think | |||
theorbtwo | Hm, I don't like pure alphabetic infix operators that don't look like English. | ||
autrijus | or Arphic HKSCS (Unicode) | ||
theorbtwo | Then again, I don't see the reason to have an infix version of everything; zip(:short @a; @b) reads well to me. | 17:26 | |
autrijus | or zp() ;) | ||
theorbtwo wonders how much namespace is going to still be there for the users at this rate. | 17:28 | ||
I suppose the prefix zip operator doesn't conflict with a zip method, at least. | |||
autrijus | true. | 17:34 | |
ingy | autrijus: I am massively attacking Makefile.PL | 17:38 | |
autrijus | I wish you massive luck. | ||
btw, I think the DOM idea is totally on the right track. | 17:40 | ||
mugwump++ ingy++ | |||
theorbtwo | DOM idea? | 17:41 | |
chip | Perl has always supported subs, so it's about time we support the doms too. | 17:42 | |
autrijus | theorbtwo: POD being a DOM with different representations | ||
theorbtwo | Aaah. | ||
autrijus | it's really integrating Pod::Simple into core, so to speak | 17:43 | |
with good accessors for things | |||
map { o.process($_) } | 17:44 | ||
ingy: have you thought about something similar to o and c in Spiffy's light? | 17:45 | ||
ingy | sorry, not following you | 17:47 | |
autrijus | ingy: www.nntp.perl.org/group/perl.perl6....uage/19821 on | 17:48 | |
Juerd | mac-- # keyboard repeat gets fast only after 2 initial slow repeats | 17:49 | |
autrijus | ingy: so your Makefile.PL hackery will deliver us from uninstalling Test.pm with UNINST=1 on pugs? | ||
ingy | ha | 17:52 | |
I'm just moving all the crap into proper util scripts | |||
autrijus | nod | 17:53 | |
ingy | and cleaning up cruft | ||
autrijus: Perl6 is my Spiffy :P | |||
autrijus | so you think c and o is sane? | 17:55 | |
larry in not on some destructively psychedelic drug? | |||
Limbic_Region | autrijus - sorry - lunch - [id://440431] | 17:56 | |
errr www.perlmonks.org/index.pl?node_id=440431 even | |||
autrijus | ... | ||
theorbtwo | Hm, it does seem like a somewhat wacko idea... but OTOH it also seems like a low-noise way of fixing the problem. | 17:57 | |
ingy | o fits my brain | ||
theorbtwo | I'd prefer to think of them as magical variables rather then the result of methods/subs, but that doesn't fit well with making them nice and short. | ||
autrijus | (o Y c) ^ (._.V x ?.<>) | 17:58 | |
gaal | hi all | ||
clkao | wtf | ||
autrijus | I like the ._.V expression. | ||
it's even legal :) | 17:59 | ||
theorbtwo | Hmm, I think I get it all except ?.<> | ||
autrijus | ?.<> === so($_.{''}) | ||
theorbtwo | Ah, of course! | ||
gaal | er, what language is that? | 18:00 | |
autrijus | gaal: perl 6. | ||
no user-defined operators, even. | |||
gaal | autrijus, that's a parsefail for my mental model of perl6 :) | ||
ah | 18:01 | ||
oh | |||
ouch | |||
theorbtwo | LOL. | ||
autrijus | a golfer's dream come true. | ||
theorbtwo | p6: Where east-asian simlies are valid code. | 18:02 | |
gaal | i probably missed the part where you said what it means? | ||
autrijus | really, with one-casting-cost o and c in the OO color | ||
Steve_p | Ahhh, Sawgrass | ||
autrijus | finally it will be competitive on the golfing tournaments | ||
Steve_p | Oh, sorry, wrong golf ;) | ||
autrijus | gaal: it doesn't mean something terribly useful. I'm just trying to tease my brain (and yours) about the sanity of o and c | 18:03 | |
gaal | i missed the definition of those two | ||
autrijus | gaal: www.nntp.perl.org/group/perl.perl6....uage/19821 | 18:04 | |
theorbtwo | o(?Int=0) is an invocant; c(?Int=0) is the class of the invocant. | ||
gaal | gotcha. | 18:05 | |
gaal .push(tie and other hook TODO tests on packages+symtable) | 18:06 | ||
theorbtwo | Allo, dvergin. | 18:10 | |
autrijus | my mental reconfiguration is done. | ||
dvergin runs for the corner | |||
autrijus posts a virtually contentless fanmail for o and c on p6l | 18:11 | ||
obra | o and c? | ||
autrijus | obra: o is $self | ||
c is ref($self) | |||
obra | heh | 18:12 | |
oh. sorry. I was context deprived | |||
obra reas scroll | |||
autrijus | full post: www.nntp.perl.org/group/perl.perl6....uage/19821 | ||
Aran_ | Hi all! Terrence Brannon gave a great perl6 presentation a couple weeks ago at our mongers meeting in thousand oaks. | 18:13 | |
Steve_p | metaperl++ | ||
Aran_ | So, I was inspired to install Haskell and Pugs. Haskell install went fine, but the pugs install is giving me an odd error (saying I don't have perl 6?): | 18:14 | |
obra | hm. I think I'd sort of like to see "me" instead of o. | ||
ingy | I DON'T SWIM IN YOUR TOILET. PLEASE DON'T PEE IN THE Makefile.PL | ||
autrijus | ingy: hm? | ||
obra | Aran_: tried building from source? | ||
ingy | Makefile.PL is clean now | ||
autrijus | Aran_: 6.0.11? | ||
Aran_ | obra: Haskell is built from source (6.2.2) and Pugs is being built from source. | 18:15 | |
autrijus | uh. you built ghc from source. | ||
thanks for your patience. | |||
Aran_: so, do you have svn? can you check out the latest trunk? | |||
Aran_ | I use gentoo, so I like to build my stuff. :) I'd die with kde. | ||
autrijus | and what is your platform? | ||
Aran_ | sure | ||
autrijus | ok. | 18:16 | |
is it the latest trunk that fails? | |||
Aran_ | Nah, the 6.0.11 from cpan. I'll try the trunk. | ||
autrijus | svn.openfoundry.org/pugs/ | ||
is the trunk url. | |||
Aran_ | ok | ||
thanks autrijus | |||
autrijus | also, nopaste the full error when you have chance | ||
pasteling: help | 18:17 | ||
hrm. I don't really know how to use pasteling :) | |||
theorbtwo | perlbot, nopaste? | ||
perlbot | Paste your code here and #perl will be able to view it: sial.org/pbot/perl | ||
Aran_ | oh, nice pasting tool. Pasteing as we speak. | 18:19 | |
gaal | except you want perl6, not perl. | 18:20 | |
obra ponders foundry pastebot integration | |||
pasteling | "Aran_" at 64.70.54.15 pasted "My error when trying to build pugs 6.0.11" (13 lines, 1K) at sial.org/pbot/8301 | ||
autrijus | Aran_: ah. that's okay. | 18:21 | |
and I think trunk already fixed it. | |||
the main tests all passed, which is what counts for now. | 18:22 | ||
Aran_ | Building trunk now, so we'll find out shortly. | ||
true | |||
autrijus | trunk's pugs should also be much faster, up to 5x or so. | ||
not sure if anyone cares at this point though. | |||
crysflame | why's that? | 18:23 | |
(faster) | |||
autrijus | crysflame: better C-based Unicode library and two strategic -O flags. | ||
crysflame | yay | ||
Aran_ | Thats great. Doesn't pugs have a future? I mean, why would faster not be important unless pugs was getting ditched at some point. | ||
autrijus | Aran_: the evalutor's speed is not of much importance I think, because if you want speed, you use the compiler eventually. | 18:24 | |
Aran_ | autrijus: oh, gotcha, that makes sense | ||
obra | how much faster does compiled pugscode run? | ||
autrijus | obra: I don't know, we don't have a compiler. | ||
pugscc is a packager like perlcc. | 18:25 | ||
not a true compiler. | |||
pugscc can save some processing and parsing overhead | |||
but that's all. again same as perlcc. | |||
theorbtwo | pugscc will allow you to bypass the parser, but not the evaluator. | 18:26 | |
autrijus | yup. | ||
rgs | and when do you port PAR to pugs ? :) | ||
autrijus | I think it's pugscc :) | ||
Limbic_Region discovers his understanding of the Hamming sequence was wrong and that he was the only one who didn't get it right | 18:27 | ||
autrijus | Limbic_Region: ... | 18:28 | |
although a fast evaluator means faster test cycles | |||
which gives us a motivation to write more tests. | |||
gaal | [off topic] code.google.com/ - "Welcome to Google Code, Google's place for Open Source software" | ||
Aran_ | autrijus: well, that was neat to watch, trunk gave me quite a few errors (88.57% okay). I'll go ahead and install it tho and start playing. Finally! Perl 6! YAYAYA | ||
autrijus | :))) | ||
have fun! | |||
I'll sleep now. | |||
Aran_ | will do. you do that. thanks. | ||
theorbtwo | G'night, autrijus. | 18:29 | |
autrijus | *wave* & | ||
gaal means "wave" in Hebrew | 18:30 | ||
obra | sleep well, autrijus | ||
Aran_ | nive. kwid is like wiki text (big yay over pod). I love the ascii "PUGS" graphic. Also, I like how the cli is like entering vim commands. Good job. | 18:32 | |
s/nive/nice/ | |||
gaal | my telepathic link to the net... :) | 18:35 | |
obra | :) | ||
gaal | www.livejournal.com/users/evan_tech/ , cool person and good hacker. | 18:36 | |
obra | cool | ||
theorbtwo | Yah, evan's pretty cool. | 18:38 | |
(And, somewhat relevantly, presently in the employ of google.) | |||
chip | Hey all: my sub ($x is rw of Num where { $_ % 1 })? | ||
or: my sub ($x of Num where { $_ % 1 } is rw) ? | |||
obra | Apparently, it also just got released at etech | ||
gaal | obra: what's etech? | 18:39 | |
obra | Oreilly's Emerging Technologies conference | ||
chip | It's the conference for cool people. OH LOOK YOU'RE NOT THERE | ||
OH WAIT NEITHER AM I NEVER MIND | |||
obra | chip: are you asking what current syntax is or what reads best? | ||
gaal | my telepathic link, you see, it gets blocked sometimes. | ||
chip | obra: I'm asking which one is current | ||
obra | ah. That, I'm no good at. | ||
chip | Larry says that C<$length = "mystring".codes> autoboxes from str to Str. | 18:44 | |
however, str is not Unicode and Str is. | |||
This bothers me. | |||
theorbtwo | str isn't unicode? | ||
chip | "str native string (sequence of integers, no Unicode)" - S06 | 18:45 | |
"Str Perl string (Unicode semantics)" - ibid | |||
theorbtwo | Blink, blink. | ||
chip | yeah. me too. | ||
theorbtwo | That should probably be revisited, because S regs in Parrot do unicode. | 18:46 | |
gaal | amaztype.tha.jp/US/Books/Title?q=pugs # i will stop my linkage staright away, promise; this is too cute though. | ||
rgs | wait wait, you can't say something is "native" without saying in which encoding it is | 18:47 | |
obra | a string is an int sequence with no encoding? indeed. | ||
chip | Larry just doesn't seem to get the dangers of saying that the encodings are someone else's problem. | 18:48 | |
rgs | there's the ambient encoding, for literal strings | 18:50 | |
chip | But that would imply that "foo" isa Str, not str | 18:54 | |
If you can't make a str with "foo", how can you make one? What's the point? | |||
*sigh* | |||
rgs | so str are useless | 18:57 | |
theorbtwo | No, it just implies that using method call syntax on a str makes it into a Str. | 18:58 | |
rgs | using which encoding ? | 18:59 | |
theorbtwo | Hmm, under the S06 rules you quoted? No clue. | 19:00 | |
rgs | current locale ? current program encoding ? (when it's not bytecode) other pragmatic directive ? | ||
nothingmuch | why are str useless? they are good for binary data, without the overhead | ||
rgs | if str are simple binary data you can't convert them to unicode semantics | 19:01 | |
hence, the need to specify a conversion mechanism | |||
nothingmuch | i mean without conversion | 19:06 | |
if i'm dealing with data, not human strings, then why would I want the overhead of unicode, for things like length calcs, or conversions? | |||
IMHO a Str is what you get out of a str when you know what's in it | 19:07 | ||
rgs | well, something needs to be clarified here | ||
nothingmuch | from then on they can coerce into other encodings | ||
implicitly | |||
with only the boundries specifying what goes in and what goes out | |||
i.e., what encoding is a filehandle | |||
etc | |||
with unicode as the common base | 19:08 | ||
and yes, things need to be clarified, i think | |||
rgs | that said, | ||
rgs off to Paris.pm meeting & | |||
nothingmuch | ciao | ||
rgs | see you tomorrow. | ||
nothingmuch | if anybody is looking for testing | ||
theorbtwo | What you want is a binary charset, which has no semantics -- uc/lc/titlecasing it is always an error, and there are no conversions to other charsets. | 19:09 | |
nothingmuch | i think that s06 is pretty fun | ||
and not well covered | |||
theorbtwo | Oh, and graphemes is always equal to chars. | ||
But that's not the same as "has no charset". | |||
nothingmuch | theorbtwo: in a str, i think yes | 19:10 | |
unless i say 'all the strs here are foo' | |||
imho that is equivelent to no charset, in the traditional set | |||
or 'this str is bar' | |||
well, you could argue thaty | |||
or an array of things the size of chars in the err, less traditional set, as a bit vector | |||
gaal | probably uc etc. fail silently is better. | ||
nothingmuch isn't in favour of silence for such things | |||
gaal | or maybe not. dunno. | ||
nothingmuch | it's something explicit | 19:11 | |
transform this to that | |||
theorbtwo | This debate has been done before. | ||
nothingmuch | (Err, can't do that) | ||
(whatever) | |||
theorbtwo | In many different contexts. | ||
gaal | *shrug* i don't really have a position i care about strong.y | 19:12 | |
also, i'm off. see 'ya later, peeps. | |||
nothingmuch | ciao | ||
theorbtwo: what decision was reached? | |||
i think that anything that is really explicit | 19:13 | ||
and not reasonable to fail | |||
draw your line at ... | |||
should fail given 'use fatal' | |||
for example, the index() debate | |||
i think is ok for silent failures | 19:14 | ||
otoh something like conversion, is a bit different for me | |||
how near/far is perl6's percieved status? | |||
also, will you be able to subclass code references | 19:16 | ||
and cause different behavior of subs? | 19:17 | ||
crap, bbiab... sorry for asking and running away | 19:18 | ||
chip | Given 'str $a', is defined($a) guaranteed? | 19:33 | |
Juerd | Should be | ||
theorbtwo | I think so, yeah. | ||
Juerd | It should either always be, never be, or be a runtime error | 19:34 | |
Compile time if possible | |||
I think the most sane approach is to declare it true with a warning | |||
chip | Hm. I wonder whehter Parrot's string registers can hold "no string here" | 19:38 | |
19:40
khisanth_ is now known as Khisanth
|
|||
ingy | who runs the nopaste server for this channel? | 20:01 | |
Khisanth | which? | ||
jabbot | Khisanth: which is not good | ||
Khisanth | thrig handles pasteling | ||
ingy | nopaste? | ||
Khisanth | sial.org/pbot/perl6 ? | 20:02 | |
ingy | yes | 20:03 | |
Khisanth | that would be thrig | ||
ingy | where does thrig hang out? | ||
theorbtwo | Well, apparently, some guy named Jeremy Mates. | 20:04 | |
Khisanth | #perl | ||
and apparently #macosxhints :) | |||
ingy | thanks | 20:05 | |
20:15
khisanth_ is now known as Khisanth
|
|||
ayrnieu gives up on getting svk installed. | 20:19 | ||
er, OK. Neither svk nor darcs want to cooperate. Game over. | 20:36 | ||
chip | Anybody know whether C<my str $s> can hold undef? | 21:23 | |
er, Juerd and theorbtwo seem to have answered 'probably'...? | |||
theorbtwo | No, shouldn't be able to. | 21:24 | |
OTOH, pugs will "implement" str by pretending you said Str. | |||
chip | bug? feature? YOU be the judge | 21:25 | |
theorbtwo | sleep & | 21:27 | |
dada | goodnacht | 21:33 | |
Juerd | chip: It cannot hold undef, but that doesn't meant defined should return true | 22:03 | |
chip | OK, that's just wrong. | ||
chip is of course speaking from ignorance, even if he is right | |||
Juerd | chip: I think it should, for sanity's sake, but there is no rule saying that something that cannot be undefined is actually defined :) | ||
chip | Juerd: A system in which such a rule is required is likely not going to get much attention from me | ||
fwiw | 22:04 | ||
Juerd | Then how did you get this far in Perl 5? | ||
In which undef is a variable, and can be as defined as the next $foo. | |||
All it takes is turning off its read only flag, which isn't that hard. | 22:05 | ||
chip | Juerd: That's only possible by reaching outside the language, and you know it. | ||
chip 's finger hovers above Juerd's bozo bit | |||
Juerd | In this context, I wonder if defined for an str should maybe return undef, rather than bool::true or bool::false | 22:06 | |
chip 's finger drops | |||
Juerd | chip: If something doesn't have fooness, then is it foo? unfoo? | ||
So I think the better question is whether a str has definedness. | 22:07 | ||
I can even envision defined($the_str) returning undef but true | |||
chip | The only important question is whether Perl 6 has the buddha nature | 22:08 | |
Juerd | Anyway, if English is any guide for a programming language, then defined should probably always return true for strs | ||
chip | What is the sound of adding a single number? | 22:10 | |
metaperl_ | a curried function | 22:11 | |
that's the Haskell answer, at least: | |||
add_single n = (+ n) | |||
Juerd | That depends on many factors, including the applicable force of gravity and the single number's weight. | ||
metaperl_ | done | ||
Juerd | And the velocity at which the number is added, obviously. | ||
metaperl_ | ah, I gave the *definition* of adding a single number... the continuation in fact... but ignored the physical requirements of the question | 22:12 | |
chip | Is that an african or european number? | ||
metaperl_ | is chip chip salzenberg? | ||
Juerd | chip: That's a purely notational difference. | ||
chip | Me am. He is. Whatever. | 22:14 | |
Juerd | "By the way, I think I've seen a few people suggest some sort of | 22:15 | |
syntax-switching mechanism for "Pod6". The day people have to think | |||
about what dialect of Pod they're using is the day Pod dies as a | |||
useful documentation language." | |||
brentdax++ # I agree with his opinions re pod | |||
chip | Well, jeepers, it's not like C<use strict> kills Perl. | ||
Juerd | Perl's strength is not in simplicity | 22:16 | |
However, POD's is. | |||
In that respect, POD is very un-perlish. Not everything has to be perlish, though. Only programming languages :) | 22:17 | ||
chip | It's the same brain, though. I really don't get it. Not that I care much either way. The real problem with pod right now is the lack of left-margin markers. | ||
Until that's solved, it's too hard to scan podified source code. | |||
nothingmuch | are there any plans for reimplementing all of perl6 with perl6, as far as possible, once it's ready? | 22:18 | |
i mean, will multi sub infix:<Y> is rw ((how do you specify the proto?)) { } be written in perl, or implemented in parrot, or something else? | |||
Juerd | chip: I agree that POD is hard to read when interleaved with the source | ||
chip: However, for documenting outside the perl code, i.e. at the bottom of a module's source file, it's great. | |||
nothingmuch: Perl 6 should by current plans be written in Perl 6 | 22:19 | ||
nothingmuch: Pugs is one possible way to bootstrap. | |||
nothingmuch | how is it supposed to err, perform normally given say: | ||
$i = $i + $j; | |||
in a tight loop, if it is doing MMD for every addition? | 22:20 | ||
Juerd | By knowing when not to MMD. | ||
nothingmuch | compile time dispatch, of my Int $i? | ||
Juerd | This is comparable to the non-problem of every block being a closure | ||
Yes, conceptually, every block is a closure, but internally, it'll only behave like one when necessary. | 22:21 | ||
nothingmuch | ok | ||
will 'my $i = 5 | |||
' | |||
be able to compile $i is Int properly, at least on a simple level? | 22:22 | ||
Juerd | I don't know | ||
nothingmuch | i.e., will there be some type inference, as a non-intrusive optimisation? | 22:23 | |
nothingmuch wonders who will volunteer to deal with all these complexities in implementation | |||
chip | nothingmuch: Sadly, when nobody with good design sense likes a given idea, it is implemented by the people without good design sense. Thus, for example, Perl 5 operator overloading and 5.005 threads | 22:29 | |
And most of CPAN, come to think of it. | 22:30 | ||
nothingmuch | most of CPAN goes unnoticed, for that reason | ||
but I think that the CPAN most of us speakof it's it's usefull subset | |||
nothingmuch shudders in memory of Mark Veltzer's 'Meta' | 22:31 | ||
chip | Never::Meta::Package::I::Didn::t::Like | 22:32 | |
nothingmuch | ' as a namespace separator is deprecated... don't be naughty! | 22:33 | |
nothingmuch has sinned and distributed something with Meta in it's name | |||
but just because it was shorter and arguably more fitting than 'Compound' | |||
Compound does not imply transcendance into another state | 22:34 | ||
chip | Dimensional transcendence | ||
stevan | anyone know if .SUPER::method() is the right perl6 syntax? | 22:44 | |
nothingmuch | no, it isn't | ||
one second | |||
:super | |||
hmm, wait | 22:45 | ||
stevan | yeah exactly :) | ||
i am reading s12 trying to figure it out | |||
nothingmuch | there's got to be a more compact syntax than $object.*WALK[:canonical:super($?CLASS)]::method | 22:46 | |
crysflame | wow | ||
that's remarkably concise | |||
nothingmuch | seems like SUPER:: is the right way | ||
chip | there are times when I can only cry | ||
nothingmuch | but only by an implicit mention | ||
crysflame | chip: i like how your hostname is topaz | ||
nothingmuch | If you mark a class "is hidden", it hides the current class from "next METHOD" semantics, and incidentally suppresses the autogeneration of *%_ parameters. Hidden classes may be visited as SUPER::, but not via "next". | ||
although i really really like the concept of *WALK[] | 22:47 | ||
stevan | me too | ||
chip | crysflame: A tornado expert with the initials TF had for many many years never actually observed a tornado in person. He chose a vanity license plate of "TF 0000". | ||
crysflame | chip: ah | ||
that's great :) | |||
nothingmuch | in terms of flexibility it is something i've often cried about | 22:48 | |
waited a week | |||
and then implemented myself | |||
in p5 | |||
A role applied with does may be parameterized with an initializer in parentheses, but only if the role supplies exactly one attribute to the mixin class | 22:50 | ||
$fido does Wag($tail); | |||
is that in case the Wag role defines a delegate? | |||
stevan | nothingmuch: you should try this perl6 porting stuff,.. it's fun | ||
nothingmuch | stevan: unfortunately my time to pugs this week was all 10 minute chunks | 22:51 | |
stevan | nothingmuch: mine was in 20 minute chunks :) | ||
nothingmuch | my concentration starts working only about an hour and a half into things | ||
provided i am having no specific problem concentrating to start with | 22:52 | ||
stevan | thats the beauty of it,.. most of it is brain dead translation | ||
nothingmuch thinks sometimes ritalin would be a good tradeoff | |||
stevan: i don't want to do braindead translation | |||
crysflame | i know meth heads that resorted to snorting ritalin when they ran out | ||
stevan | ritalin is pretty much pharma grade meth | ||
its methelphenidata | |||
nothingmuch | i want to be cunning, and witty =) | 22:53 | |
isn't it harder to get than meth? | |||
stevan | nothingmuch: you can get a script from a doctor, so no | ||
nothingmuch | stevan: as a parent getting one for a child, I see how it could be easier to pressure | ||
but for a typical junkie | |||
err, walking into a doctor's office | 22:54 | ||
stevan | nothingmuch: true | ||
nothingmuch | . o O ( "hey dude... uhm. i like, have problems concentrating, like, when, uhhh" ) | ||
stevan | but here in the U.S. they are marketing ADD-drugs for adults now | ||
nothingmuch | ah | ||
stevan tried ritalin, but didn't like it | 22:55 | ||
nothingmuch | i am scared to death of trying these things | ||
stevan | I would rather wear my mental illness on my sleeve :) | ||
nothingmuch | i have not yet heard of a single wonder drug, that after many years retained a good reputation | ||
except for aspirin | |||
and even it was subjected to criticism in the 70s, i think | 22:56 | ||
stevan | nothingmuch: the ADD drugs now are either speed (ritalin) or anti-depressents | ||
neither of which sound like a good thing to me | |||
nothingmuch | exactly | ||
brain-chemistry stuff tend to have side-effects by the kilo | 22:57 | ||
stevan | I had all too many friends in art school get lost in (prozac | zoloft | paxil) | ||
crysflame | modafinil is fun | ||
(theoretically) | |||
nothingmuch | and i think that if i got as far as i've got without them, the switch from fixing defect a to and getting defect b will probably not be worth it | 22:58 | |
if it's bound to be discovered as problematic later on | |||
stevan | my old girlfriend was on imipramil | ||
nothingmuch | heh | ||
stevan | nothingmuch: I suggest that unless it is causing problems in your life, just enjoy your "illness" :) | ||
nothingmuch | crysflame: why isn't it more popular? it's the first time i've heard of it | ||
stevan: well, it does bother me a lot | 22:59 | ||
crysflame | i dunno. google it. | ||
nothingmuch | especially with the things i really like to do | ||
(playing music, writing software, reading), | |||
if i get into that state i must hike | |||
and then i'm fixed for a few days | |||
stevan | there you go | ||
take a 5 mile hike and call me in the morning | 23:00 | ||
nothingmuch | but sometimes i can't | ||
nothingmuch hopes he can manage to balance his life such that weekends are always filled with exploration | |||
the temporary fix for concentration problems is the TV | |||
nothingmuch suddenly realizes he hasn't watched any for about 3 weeks now | 23:01 | ||
stevan | nothingmuch: well have a good evening, time for me to eat | 23:04 | |
nothingmuch | ciao, stevan1 | ||
tr/1/!/; | |||
wow... | 23:38 | ||
subtypes++ | |||
fp for imperative heads, with a bit of oop thrown in | |||
it's like AOP, but cleaner | |||
and serves a different purpose | |||
have we decided on a minable way to rever to a synopsis from a test? | 23:43 | ||
mugwump | nothingmuch: I plan to make that possible with POD linking. Still in the works. | 23:44 | |
nothingmuch | mugwump: have you decided on syntax? | ||
theorbtwo | Last I knew, # S<> S## "heading name" | ||
nothingmuch | L<Synopses/12/Types and Subtypes>? | ||
theorbtwo | Er, where the ## is a number. | ||
nothingmuch | oi | ||
theorbtwo | I don't know, though. | 23:45 | |
nothingmuch | that's not pod linking | ||
theorbtwo | I just live here. | ||
nothingmuch | that's minable | ||
theorbtwo | No, that's not, that's a comment. | ||
nothingmuch | heh =) | ||
theorbtwo | "minable"? | ||
mugwump | I would think that it would look a lot like XPath, for the intra-document level / anchor | ||
theorbtwo | Able to be mined? | ||
nothingmuch | that can be mined | ||
theorbtwo | I should think that'd be mineable, but what do I know. | ||
mugwump | eg, in XPath you can refer to any h3 with //h3 | ||
nothingmuch | do we want any xyz? | 23:46 | |
mugwump | Absolutely, it should be minable. I want to be able to mine my constants out of the POD. | ||
At run time! HLARGHARGHARH! | |||
nothingmuch | mugwump: are you referring to a future link format? | ||
mugwump | yes :) | ||
nothingmuch | ah | ||
in that case, that's not what I meant | |||
i have a test i'm about to commit | |||
i just want to know if anybody's decided on how we link them back to synopses yet | 23:47 | ||
theorbtwo | nothingmuch, just write it in a comment in whatever format /you/ want to. | ||
mugwump | That's how I started on this thread as well. I was going to write the "testegeses" (testes for short) that duplicated sections of the synopses, made comments and referred to the tests that demonstrate them. | ||
nothingmuch | theorbtwo: but it'll be the wrong format | ||
nothingmuch always uses the wrong formats | 23:48 | ||
mugwump | I wouldn't worry about it overly, for now. If anything, I would think it would be a relative path to INC and then a heading to search for, for one type of link. | ||
nothingmuch | they should be sigma complete, in a concise way | 23:49 | |
the language should be able to easily document itself within itself | |||
oops | |||
i need to stop using /me's, it only works on perlmonks | |||
mugwump | eg, L<Description ../t/Synopses/S10#TITLE> would work | ||
nothingmuch | my #1 rule on the coolness of documentation format design is: | 23:50 | |
mugwump | But that's a fairly obtuse example of what I mean. | ||
L<Description S10#TITLE> should also work | |||
nothingmuch | i'll go with the short version | ||
and we'll just have to remember to grep for that when it stabilizes | |||
mugwump | If `S10' was a valid POD file in the search path | ||
exactly | |||
nothingmuch | L<S10#Title> it is, until it clears up and turns out to be wrong | 23:51 | |
semantically, will it all be in tests, and each synopsis will have a list of backlinks to tests | |||
showing where in the test the section of the synopsis was linked from? | 23:52 | ||
because IMHO anything else is broken and no one will maintain it | |||
mugwump | good to see we have a similar point of view. | ||
Are you in Israel, nothingmuch ? Have you heard of the artist, "Infected Mushroom"? | 23:53 | ||
nothingmuch | yes i have | ||
obra | heh. my friends around boston are very into Infected Mushroom | ||
nothingmuch | i don't listen to that music though, so i am not very knowlegable | ||
but what I do know is that they(?) are very famous worldwide | |||
even more than here | 23:54 | ||
fp with subtypes: | |||
multi sub fact (Num where { $^n == 0 }) { 1 } | |||
multi sub fact (Num $n) { $n * fact($n-1) } | |||
puhdaah! | |||
damn that's pretty | 23:55 | ||
and the fun thing is that where {} is just read 'smartmatch' | |||
theorbtwo reboots. | |||
nothingmuch | ciao, orb | ||
23:58
webmind_ is now known as webmind
|