6.2.3 is airborne! | pugscode.org <Overview Journal Logs> | pugs.kwiki.org Set by autrijus on 12 May 2005. |
|||
eric256__ | is there an array index var for 'for' loops? | 00:02 | |
kelan | like getting the element and index at once? | 00:03 | |
for @arr.kv -> $i, $ele { ... } | 00:04 | ||
Darren_Duncan | no | ||
.kv is for hashes | |||
on the other hand ... | |||
kelan | i'm pretty sure i've seen .kv used on the p6l with arrays too, for this purpose | 00:05 | |
Darren_Duncan | maybe something like .iv could be used, index+value | ||
eric256__ | that would be interesting... | ||
Darren_Duncan | while an index is functionally like a key, they are different | 00:06 | |
kelan | how? | ||
arrays are keyed by integers | |||
Darren_Duncan | but are those named 'keys'? | 00:07 | |
if we're going to do that, then arrays might as well have .keys and .values and .pairs too, to go with the .kv | 00:08 | ||
kelan | well why not? | ||
Darren_Duncan | put it to p6l and see what they say | ||
if that's done, then simply saying "for @foo ->" is short-hand for "for @foo.values ->" | 00:09 | ||
but then we should have a valid "for %bar ->" that shortens to something useful | 00:10 | ||
I'll see to making a quick p6l posting now ... | 00:12 | ||
kelan | rods s29 draft has kv for arrays | 00:14 | |
www.rodadams.net/Perl/S29.html#perl6::arrays | 00:15 | ||
Darren_Duncan | looking | ||
kelan | also, here is a fairly recent message from p6l which references: www.mail-archive.com/perl6-language...18843.html | 00:18 | |
and see rod's reply to that message as well | |||
Darren_Duncan | okay, it appears that I don't need to write to p6l after all | ||
tomyan | how can you tell what the titles for synopses 14..28 will be? | 00:19 | |
kelan | chapter titles from the camel, maybe? | ||
i've never read the camel, so i'm not sure where larry gets the titles | 00:20 | ||
tomyan | alas my camel has died | ||
Darren_Duncan | I have to leave comp for awhile ... anyway, it looks like the hash/array function parity thing is resolved officially | ||
eric256__ | and it is implemented in Pugs already | 00:21 | |
Juerd | Goddamn pain keeps me awake | 00:22 | |
tomyan | does anyone know if there is another synopsis due on introspection, or is the bit at the end of the objects one it? | 00:23 | |
mainly interested if there is an interface to change a class (add remove methods etc.) | |||
svnbot6 | r3273, eric256++ | Making more use of class inheritance! planning for a grand future ;) | ||
kelan | i believe there will be, but i don't know any of the details, or even if the details have been made known | 00:25 | |
Juerd gonna try again | |||
afk | |||
kelan | larry has said that there will be very good introspection capabilities | 00:26 | |
mugwump | kelan: using .kv for array indices is problematic with ordered hashes | 00:48 | |
svnbot6 | r3274, chromatic++ | Improve test coverage of Test::Builder::Test::Fail. | ||
r3274, chromatic++ | Improve wording of new() test description in T::B::T::Pass test. | |||
kelan | why? | ||
mugwump | well, which does it return? the index or the key? | 00:49 | |
kelan | hmm | 00:50 | |
i guess i can see how it might cause confusion, but it seems farfetched | 00:51 | ||
new perl programmers probably won't be using ordered hashes, so they won't see the cross-over concept from using .kv with arrays | 00:52 | ||
is there currently a way to get the index of a value from an ordered hash? | |||
mugwump | is a for() loop too absurd? :) | 00:58 | |
for (my $i=0; $i<@foo; $i++) { } ? | |||
kelan | some people, including myself i admit, think its not particularly perlish | 01:00 | |
arcady | that's not valid perl6 anyway | ||
for 0.. (@foo - 1) -> $i { ... } | |||
mugwump | thanks arcady | 01:01 | |
arcady | there's probably a nicer way to write that | ||
mugwump | that's pretty nice actually. now my rhetorical question doesn't even have an obvious answer, I like it | ||
What about, .iv, .ikv, and .kv ? | 01:16 | ||
svnbot6 | r3275, chromatic++ | Finish testing T::B::T::Skip. | 02:13 | |
r3275, chromatic++ | Add TODO test for *WALK[:super]. | |||
r3275, chromatic++ | Declare invocant in Test::Builder::Test::WithReason::status. | |||
r3275, chromatic++ | Fix description typo in T::B::T::Pass test. | |||
r3276, chromatic++ | Finish tests for Test::Builder::Test::TODO. | |||
r3276, chromatic++ | Mark Test::Builder::Test::WithReason::status() tests as TODO. | |||
stevan | mugwump: ping | 02:29 | |
mugwump | pong | ||
stevan | howdy :) | 02:30 | |
I been soaking in the meta-meta classes | |||
reading a lot about them | |||
mugwump | sure... I've got a large change to meta_meta_classes.pod about to commit | ||
stevan | nice | ||
I was just going to ask you too look over them :) | |||
mugwump | fundamentally could be summarised as: Classes aren't Objects, MetaClasses aren't Classes and MetaMetaClasses aren't MetaClasses ;) | 02:31 | |
However, they all *look* like Objects | |||
stevan | I was using the term "object" for lack of a better one | ||
mugwump | I understand | ||
stevan | the nomenclature does get a little twisty at times I am sure i messed something up | 02:32 | |
stevan eagerly awaits the commital | |||
mugwump | where "about to commit" is 5-10 mins away | 02:33 | |
stevan | ok | ||
well in the meantime I was going to ditch the non-OO modules | |||
in favor of re-writing them from sractch | |||
you okay with that? | 02:34 | ||
mugwump | may they rest in peace in revision control | 02:35 | |
stevan | :) | ||
mugwump: ok, its gone | 02:39 | ||
svnbot6 | r3277, Stevan++ | Test::Builder - making a Test::Builder::Plan attribute private | ||
r3278, Stevan++ | Perl::MetaModel - properties and methods are not sets, they should be hashes | |||
r3279, Stevan++ | Perl::MetaModel - removing all the old code in favor of starting fresh with OO | |||
stevan | I am going afk for a bit, but will check back later | ||
mugwump | ok | 02:43 | |
Darren_Duncan | another missing Pugs feature that I've found is 'is constant' | 03:16 | |
eg, "my Str $foo is constant = 'abc';" | |||
mugwump | hmm, that was a long 5-10 minutes | 03:29 | |
svnbot6 | r3280, mugwump++ | Decouple the MetaModel | ||
stevan | mugwump: ping | 03:46 | |
mugwump | hi | 03:48 | |
stevan | reading the changes | ||
I actually think that the first like 100 lines should be in a document of their own | |||
I want to incorporate the corrections in nomenclature | |||
and consistency | |||
but part of my whole idea was to introduce it as simply as possible | 03:49 | ||
I think the points and ideas you are making the that section | |||
are good | |||
but a base model of metaclasses needs to be understood | |||
by the reader first | 03:50 | ||
I know for me, getting my head around the "what is a class, wait its a what?" stuff | |||
was what i needed to get | |||
mugwump | ok. I guess I should have moved most of that prose down into the section where you describe creating it with code | ||
ie, after that line =for EDITING :) | 03:51 | ||
stevan | hmm | ||
yeah that would work too | |||
ok I will edit this a bit | |||
I like what you wrote BTW | |||
mugwump | thanks. I enjoyed writing it ;) | ||
stevan | this stuff is fun :) | ||
sick, and twisted | |||
but fun | |||
I basically just want to be sure people who read this "get" it early on | 03:52 | ||
then we can dump the heavier stuff on them :) | |||
also ,.. you changed the diagram | |||
which is fine, | |||
but do you still see it as one set with many nested subsets | |||
or do you disagree with that? | 03:53 | ||
mugwump | yes, because a Class is not an Object, it's a MetaObject. They both .does("Object"), but not .isa("Object") | ||
stevan | ok | 03:54 | |
the book that I was reading portrayed it as nested sets | |||
but they made an assumption | |||
that there was a primative object (which was just the data dictionary) | |||
however you are correct this does not work with roles as well | 03:55 | ||
mugwump | I think that's bottom-up, we're doing it top-down. | ||
stevan | yes | ||
did you read the other doc? | 03:56 | ||
build your own object model? | |||
I sketched that out this afternoon | |||
comments, criticisms are much appreciated | 03:57 | ||
mugwump | The application of metaclasses in that document is a new idea to me. | 03:58 | |
stevan | ok | ||
this is all coming from this book :) | 03:59 | ||
they use the ThreadSafe idea as an example many times | |||
actually do you have an reading recomendations for this stuff? | |||
mugwump | There's a nice object section in TaPL | 04:00 | |
stevan | ok | ||
I have been meaning to order that one | |||
mugwump | however, mostly I am just coming from experience with T2 and the brainstorming sessions I had with autrijus in April | 04:02 | |
ie, I haven't read much formal literature on the subject | 04:03 | ||
so seeing that create_your_own_object_model.pod was very interesting to me | |||
stevan | well does it make sense? | ||
(in some twisted way) | |||
much of the focus of this metaclass book is on using metaclasses to help build class libraries | 04:04 | ||
one of the guys built large class libs for IBM | |||
mugwump | The document is a good mission statement. In time no doubt it will be filled with tested code | 04:06 | |
cognominal | hi, what Haskell call a class is encompassed in Perl6 role? do I got that right? | 04:28 | |
mugwump | yes. Or a smalltalk "Trait" | 04:30 | |
svnbot6 | r3281, chromatic++ | Write test footer at end of Test::Builder object's life. | ||
cognominal | they both define generic signatures for a set of members that can be used in a haskell-type, or perl6-class | ||
Darren_Duncan | I noticed a code style choice in Test.pm that looked wrong ... | ||
generally, containers with all uppercase names are constants | |||
however, they are being assigned to at run-time inside methods | 04:31 | ||
these 'global variables' should be lowercased | |||
I can do that, unless there are objections | |||
mugwump | examples? | 04:32 | |
mugwump looks | |||
Darren_Duncan | my $NUM_OF_TESTS_RUN | ||
that's not a constant, but its style makes it look like one | |||
all of the Test.pm globals are uppercased | 04:33 | ||
mugwump | maybe that's because when that was written there was no such thing as scope | 04:34 | |
go ahead and make the change, I say | |||
Darren_Duncan | regardless, the values are being changed inside methods | ||
will do | |||
updated Test.pm is committed | 04:50 | ||
mugwump | does it work? :) | 04:51 | |
svnbot6 | r3282, Darren_Duncan++ | updated ext/Test/lib/Test.pm - folded all global variable names into lowercase; they were uppercase and bad style, looking like constants; only ALWAYS_CALLER was unchanged, since it was used as a constant | ||
Darren_Duncan | I ran its own test suite, and that gave the same results as the old version | ||
the change was fairly simple anyway | |||
I also made sure there weren't already lowercased versions of the same vars | |||
note that its #1 test gave 1/77 failed, but so did the old version | 04:52 | ||
will run whole Pugs suite now just to be sure | 04:54 | ||
I noticed a problem; what do you think would cause this ... | 05:01 | ||
when doing 'make': make[1]: *** No rule to make target `lib/Test', needed by `pm_to_blib'. Stop. | |||
next line is: make: *** [subdirs] Error 2 | |||
this doesn't seem to be related to my change, and occurs whether the old or new module is in place | 05:02 | ||
mugwump shrugs and wanders off home | 05:12 | ||
Darren_Duncan | I'm also off for the day | 05:14 | |
06:14
chady_ is now known as chady
|
|||
svnbot6 | r3283, putter++ | Updated x86_64 section of README. | 06:19 | |
putter | fyi, on amd64, with a current pugs and a day-or-few old cvs snapshot of ghc, both the gc crashes and rules failures are gone. :) kudos to the ghc folks. | 06:22 | |
'night | |||
x86_ | heya guys | 06:42 | |
revdiablo | boo | ||
x86_ | hrmmm | ||
it's just a perl5 module for the time being? | 06:43 | ||
revdiablo | no | ||
it's a haskell program | |||
x86_ | there is a stand-alone perl6 interpreter? | ||
revdiablo | yes, you compile it to a native binary | ||
x86_ | i went to download and it took me to a CPAN site for Perl6::Pugs | ||
which i would assume to be a module? | 06:44 | ||
revdiablo | $ file $(which pugs) | ||
/usr/bin/pugs: ELF 32-bit LSB executable | |||
x86_ | hmm | ||
revdiablo | not a module, just a distribution on CPAN | ||
integral | it's a normal CPAN distribution, but so is perl5 | ||
x86_ | so i can install it from cpan then? | ||
revdiablo | I used dh_make_perl at one point, and it worked. nowadays I build it from svn every couple of days, haven't tried the CPAN distribution lately. | 06:45 | |
x86_ | perl -MCPAN -eshell i mean ;) | ||
w00t? they use subversion? | |||
revdiablo | svn.openfoundry.org/pugs/ | ||
x86_ | nice | 06:46 | |
it needs ghc i guess | |||
apt-get is sweet on OS X :P | |||
Setting up ghc (6.2-2) ... | |||
revdiablo | afaik it needs a newer ghc than 6.2 | 06:47 | |
I'm using ghc-cvs in debian | |||
integral | you have to use the dmg from www.haskell.org/ghc | ||
x86_ | cool | 06:48 | |
err | 06:49 | ||
it's not a dmg, just a pkg | |||
it'll work all the same ;P | |||
btw, this says it's for panther, but i'll be upgrading to tiger soon, you think it'll break things? | 06:50 | ||
ingy | seen autrijus | ||
jabbot | ingy: autrijus was seen 13 hours 8 minutes 8 seconds ago | ||
integral | x86_: afaik the only thing you have to do on tiger is gcc_select 3.3 | 07:21 | |
svnbot6 | r3284, autrijus++ | * tidy up the sample perl 6 code a bit. | ||
x86_ | hmm ok | 07:23 | |
man, pugs takes a minute to build eh? | 07:24 | ||
integral | yep :-) Although I think I managed 10 minutes once | 07:26 | |
x86_ | whoa | 07:29 | |
on a PPC? | |||
integral | yeah. I don't have much RAM, it's only about 3m40 of CPU time | ||
x86_ | i got 1.25GB of ram | 07:31 | |
it's just an iMac though with a 1.5GHz proc | |||
integral | oh, I was unoptimized on a 1GHz | 07:32 | |
integral keeps forgetting about the optimizer | |||
x86_ | ah | ||
revdiablo | heh yeah, optimized builds take quite a bit longer | ||
x86_ | im doing optimized | ||
w00t! | 07:33 | ||
done :P | |||
took about 15 minutes | 07:34 | ||
optimized | |||
revdiablo | yay | ||
pugs -e 'say "Hello, Perl 6"' | |||
x86_ | heh making install now | ||
revdiablo | ... | ||
x86_ | i did make and then i tried to issue a quick 'pugs' to see what it'd do... of course it was like 'pugs: command not found' and i'm like WTF!?!?$! | ||
then i realized i forgot to make install ;) | 07:35 | ||
im so tired and disoriented because im sick | |||
integral | ./pugs :-) | ||
x86_ | but i cant sleep | ||
x86_ orgasms at the l33t ascii art upon just issuing the 'pugs' command with no arguments | |||
revdiablo | figlet++ | 07:36 | |
x86_ | ack! how do i get out of the CLI? | ||
integral | hmm, we need a p6 version! | ||
:q | |||
revdiablo | or EOF | ||
it's ^D on loonix, dunno if it's the same in macland | |||
x86_ wonders why 'exit' doesnt work, as that's a valid perl command | |||
Alias_ | with a sledgehammer | 07:37 | |
x86_ | revdiablo: most of the time | ||
# pugs -e 'print "hello world\n"'; | |||
hello world | |||
reet | |||
integral | hmm, anyone remember the apt-get command to get ghc6 from experimental? | ||
x86_ | integral: with fink? | ||
integral | debian | ||
revdiablo | x86_: use 'say', so you don't have to put the newline | ||
x86_: plus, say is shorter than print | 07:38 | ||
x86_ | i like format strings ;) | ||
err | |||
wtf ever they're called ;) | |||
not exactly format strings i gues | |||
guess | |||
geez, im really messed up | 07:39 | ||
wish i could sleep | |||
check this out guys | 07:43 | ||
# pugs -e 'say "yes" if "hi" ~~ /bye/ or say "no"' | |||
no | |||
yes | |||
did i cornfuse it? | |||
arcady | perl -e 'print "yes\n" if "hi" =~ /bye/ or print "no\n"' | 07:45 | |
no | |||
yes | |||
in other words, you've confused yourself | |||
say "yes if (("hi" ~~ /bye/) or (say "no")) | 07:46 | ||
is how it's parsed | |||
wolverian | Juerd: ah, Larry seems to be saying that private methods really _are_ private. | 08:45 | |
Alias_ | oh thank god | 08:49 | |
We didn't need a special notation to get fake private things | |||
wolverian | there'll be ways to get at the private parts of any object, trust me :) | 08:50 | |
Alias_ | yes, but it should be fucking hard | ||
wolverian | just not as huffmanised. | ||
Juerd | wolverian: S12 very explicitly says something else. | 09:21 | |
wolverian: To access a "private" method you have to use "special" syntax: $object.:method | 09:22 | ||
wolverian: Which makes .: an infix thing like ., and creates an expectation of $_-defaulting for prefix .: | |||
wolverian | Juerd: I assume S12 means that you use that when the object trusts you (the caller). | 09:23 | |
Juerd | It says nor indicates that. | ||
Why would you assume this? | |||
wolverian | from Larry's post. I agree that S12 is unclear. | ||
(or rather, disagrees with Larry.) | |||
Juerd | I think I'm not going to mix in the whole private/public thing any more than I have. | 09:25 | |
I disagree so strongly that it's blurring my overview, and I'm almost sure someone will eventually come up with a real solution to end the twisted maze of inconsistency. | 09:26 | ||
wolverian | I don't have a strong opinion either way. I just disagree with the inconsistency between S12 and Larry. :) | ||
Juerd | I hate how Damian aligns ./ with .: | ||
wolverian | why? | 09:27 | |
Juerd | I was very specific about ./ being prefix only, while .: is pre and infix, making it *defaulting* to something when prefix | ||
And this defaulting is to self, while Damian himsef very clearly illustrated how that's unexpected | |||
So either infix .: must go (which I think is good, because it's private), or it must be ./: to call on self. | |||
Alias_ | aaah... design by committee, you just gotta love it | 09:28 | |
Juerd | Alias_: It usually works out. At this point, it doesn't. | ||
Alias_ | The day that we got $scalar is Hash, and three sigil on things, a small part of my died | 09:29 | |
s/my/me/ | |||
Juerd | I'm not happy about twigils either. | ||
Alias_ | and latin-1 characters in the core | 09:30 | |
Juerd | As long as they all have sane ASCII counterparts, they don't bother me. | ||
Alias_ | that's the point | ||
if they have sane ASCII versions, what is the latin-1 version for? | 09:31 | ||
Juerd | For people who like them, and there are many of those. | ||
Alias_ | Then I say let them have a language mod | ||
use operators::parallel; | |||
or something | |||
cut the dozen craziest operators off and call them use ops::more; | 09:32 | ||
wolverian | and what's the use in that? people would just learn to use ops::more; always. | ||
Alias_ | no they wouldn't... only for sufficiently crazy things/people | 09:33 | |
09:34
Alias_ is now known as Alias_mentor,
Alias_mentor is now known as Alias_
|
|||
scook0 | Hey, does anyone know how &next in a C<loop> is supposed to work? | 09:39 | |
Is it supposed to perform the 'post' part of the loop? | |||
Juerd | Okay, one message. | 09:45 | |
wolverian | :) | 09:51 | |
10:58
ChanServ sets mode: -o clkao
|
|||
kungfuftr | anyone know if there will be a simple way in Perl6 to gain which classes inherit from the current class? | 10:58 | |
broquaint | There'll probably be a handy-dandy intropsective method like .kids() or something I would imagine. | 11:02 | |
kungfuftr | yar, would be nice to have an easy way to do Module::Pluggable style things | 11:04 | |
broquaint | Since we'll have a real OO implementation I shouldn't imagine it'd be too tricky. Some::Class.kids() or some such. | ||
osfameron_ | presumably that would only include classes that are currently use'd though? | 11:05 | |
broquaint | To begin with, sure. I imagine we'll see the likes of Module::Scandeps too. | ||
11:05
castaway_ is now known as castaway
|
|||
Juerd | Isn't inheritance a strictly unidirectional thing? | 11:27 | |
11:28
Aankh|Clone is now known as Aankhen``
11:29
chady is now known as chady_
|
|||
kungfuftr | Juerd: yes, but sometimes you really need to know what children you have... for example, if i have a Person superclass, i might want to know what type of Person's there are, etc. | 11:52 | |
Juerd: currently i'd have to use something like Module::Pluggable for that | 11:54 | ||
osfameron_ | Also makes sense for some interactive fiction object models | 11:57 | |
svnbot6 | r3285, iblech++ | Typo fixes and more PODification of docs/S29draft.pod. | 12:05 | |
Arathorn | congrats on resolving the ./method() problem, folks | ||
solution rocks :) | |||
svnbot6 | r3286, iblech++ | Added tests for capitalize(). | 12:17 | |
r3287, scook0++ | Tests for some strange loop behaviour | 12:23 | ||
r3288, iblech++ | Implemented capitalize(). | |||
r3288, iblech++ | Note: Lambdafolks may want to review my code. | |||
ingy | :\ | 12:27 | |
wolverian | capitalize? | ||
integral | hmm, couldn't capitalize be implemented in p6? | 12:30 | |
ihb | is there an equivalent to perlfunc for P6 yet? | 12:31 | |
(i'm aware of that they're methods nowdays) | |||
castaway | S29 ? | 12:32 | |
scook0 | sub capitalize($word) { ucfirst $word ~ uc $word[1...] } | 12:33 | |
sorry, no, that's wrong | 12:35 | ||
svnbot6 | r3289, iblech++ | Moved our AESses to docs/AES, so I can include those via svn:externals from | 12:41 | |
r3289, iblech++ | FreePAN Perl6-Bible. | |||
r3290, iblech++ | Added L<S29> links to t/builtins/strings/*.t. | |||
Arathorn | S29 is MIA atm, no? | 12:42 | |
ihb | so ~ is still the concat op? | 13:03 | |
svnbot6 | r3291, scook0++ | Revised Haddocks for Monads.hs | ||
scook0 | as far as I know... | 13:05 | |
ihb | that makes my lazy ~ so sad. :-/ i have to hit "Alt Gr + ~ + space + space" to get "~ ". | ||
scook0 | ouch | 13:06 | |
ihb | i liked "." a lot better. then i needed just ". + space" to get ". "... | 13:07 | |
i guess i just have to create a ōæ½xA7 operator that's an alias for ~ :-) | 13:08 | ||
scook0 | which kb layout do you use? | ||
ihb | standard swedish. | ||
nothingmuch | seen ingy | 13:24 | |
jabbot | nothingmuch: ingy was seen 56 minutes 55 seconds ago | ||
ingy | hola | 13:25 | |
Limbic_Region | como esta ustede? | 13:27 | |
los sientos pero aprendo espanol en la esquala y hace muchos anos | 13:28 | ||
I think I said that right | |||
considering I only remember the present tense and not a whole lot of vocabulary | |||
wolverian | besides, it's spelled 'capitalise' :) | 13:32 | |
x86_ | arcady: i figured that out :) | 13:52 | |
svnbot6 | r3292, iblech++ | Found an extremely weird parsing bug involving ">". | 14:07 | |
r3292, iblech++ | Note that it doesn't seem to be a simple predence thing -- look at the comments | |||
r3292, iblech++ | of new t/pugsbugs/parsing_gt.t. | |||
r3293, iblech++ | * svnbot6.p6 now supports an additional command, "?check", which triggers | 14:12 | ||
r3293, iblech++ | immediate checking for new revisions. | |||
r3293, iblech++ | * Small cosmetical fix to mklivecd.pl. | |||
stevan | seen mugwump | 14:25 | |
jabbot | stevan: mugwump was seen 9 hours 34 minutes 55 seconds ago | ||
svnbot6 | r3294, Stevan++ | Perl::MetaModel - some editing of mugwumps additions to meta_meta_classes.pod; created README; moved some of mugwumps perl6 specific stuff to perl6_meta_model.pod; other misc. reworkings | 14:26 | |
r3295, autrijus++ | * t/pugsbugs/parsing_gt.t fixed. | 15:11 | ||
r3295, autrijus++ | * `foo() <3> -1` is now parsed as `foo() < 3 > -1`, instead of `foo()<3> - 1`. | |||
r3296, autrijus++ | * `use ClassName; ClassName.new` is now parsed correctly. | |||
r3296, autrijus++ | * hence, changing `::Tree.new` to `Tree.new` in Tree's tests. | |||
x86_ | pugs -e 'foreach ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ) { say rand(rand(100000000)); }' | 15:18 | |
svnbot6 | r3297, autrijus++ | * refactor varbatimParens into Lexer.hs | ||
r3298, iblech++ | Thanks to autrijus++ fixing this weird parsefail, I was able to add tests | |||
r3298, iblech++ | testing rand($n). | |||
x86_ | anyone see a problem with this? | ||
iblech | x86_: Yes, there's no foreach in Perl 6 anymore. s/foreach/for/ and it works fine :) | 15:19 | |
(And you might want to say 1..10 instead of 1,2,...) | |||
x86_ | yeah i was just playing around | 15:20 | |
putter | not ("a" ~~ /b/) is bool::true, but without parens, not "a" ~~ /b/ is a match object... bug? | 15:21 | |
iblech | Seems so. not() is very low precedence. Pugs seems to parse this as (not "a") ~~ /b/, which equals "" ~~ /b/, resulting in a matchOk = False match object (as not "a" is bool::false, which stringifies to "") | 15:24 | |
putter | tnx. is there an easy way to check how an expression parses? | 15:25 | |
iblech | There's ". expression" in the interactive shell | 15:26 | |
x86_ | pugs -e 'for ( 1..9000 ) { say "$_" . rand(rand(10000000)); }' | ||
i think i found a bug here... | |||
maybe its just me | 15:27 | ||
putter | ah, right. tnx. | ||
x86_ | but does that expression look ok? | ||
kolibrie | x86_: s/\./~/ | ||
Arathorn | string concatenation is ~ nowadays. | 15:29 | |
the stitch operator :) | |||
autrijus | iblech: parsefail fixed :) | 15:30 | |
jhorwitz | hey autrijus :) | 15:32 | |
autrijus | how goes? | 15:34 | |
jhorwitz | it goes well. actually, banging my head against the wall trying to get "module Foo" to output PIR outside of main. | 15:35 | |
stevan | autrijus: I am changing the Test::Builder tests to not use ::Test::Builder as well | ||
thanks for fixing that one :) | |||
autrijus | yeah, it was kind of important psychologically :) | 15:37 | |
but I can't get use_ok() to work... | |||
for some reason similar to eval_ok() | |||
I'm sure you know of the problem also | |||
stevan | autrijus: isa_ok() does some weird things as well | ||
autrijus | worse yet, I don't know ehough perl6 to think of a good fix | ||
so maybe ask on p6l | |||
stevan | I will try to isolate the issue first | ||
I have been having too much fun playing with objects to be bothered by it :) | 15:38 | ||
autrijus | then go ahead playing :) | ||
I've been enjoying you and mugwump's docs | |||
stevan | :) | ||
autrijus | they almost look like specs I can implement :) | ||
autrijus seriously think they should be in S12 somewhere sometime | 15:39 | ||
stevan | maybe | ||
x86_ | holy crap | ||
autrijus | aw, latin1 | ||
x86_ | time pugs -e 'for ( 1..9000 ) { say "$_" ~ rand(rand(10000000)); }' | ||
stevan | I think the last doc (which I just created from some of mugwumps comments) is going to be the one to include in s12 | ||
x86_ | 1m8s real | ||
time perl -e 'for ( 1..9000 ) { print "$_" . rand(rand(10000000)) . "\n"; }' | |||
real 0m5.297s | |||
autrijus | x86_: that is really to be expected :) | 15:40 | |
x86_ | yeah, i know :) | ||
autrijus explains again that the interpreter is optimized for feature; the compiler is for speed | |||
x86_ | i knew there would be a speed difference, but seeing such a dramatic difference is somewhat... shocking ;) | ||
compiler? | |||
oh right, compile into parrot bytecode, right? | 15:41 | ||
autrijus | yeah. or to native haskell (but that's even more immature) | ||
x86_ is new to this whole parrot / pugs / perl6 deal | |||
how do i compile something into parrot bytecode? | |||
autrijus | I hope it's sane enough that you can pick up quickly :) | 15:42 | |
svnbot6 | r3299, autrijus++ | * utf8, please | ||
autrijus | x86_: try this: | ||
./pugs -BParrot examples/mandel.p6 | |||
putter | shall I add the failing ok(not "a" ~~ rx:perl5/b/) to t/builtins/not.t? | 15:43 | |
x86_ | pugs: Cannot compile: App (Var "&substr") [Pos (MkPos "examples/mandel.p6" 58 21 58 23) (Var "$b"),Pos (MkPos "examples/mandel.p6" 58 25 58 27) (Var "$P"),Pos (MkPos "examples/mandel.p6" 58 29 58 30) (Val (VInt 1))] [] | 15:44 | |
i'm on MacOS X 10.2 (panther) on a PowerPC cpu if that helps | |||
err | |||
integral gets the same | |||
x86_ | 10.3 even ;) | ||
integral: on your mac? | |||
integral | mac and debian gnu/linux | 15:45 | |
x86_ | ah | ||
im too lazy to go through the install process of ghc, parrot, and pugs all over again on my x86-based development box ;) | 15:46 | ||
integral | it's not going to be a system dependent thing, it'll be coming from Pugs.Compile.Parrot line 303 | ||
x86_ | gotcha | ||
so its a pugs --> parrot bytecode issue then, not an actual parrot issue? | 15:47 | ||
autrijus | x86_: a sec | ||
fixed, committing | |||
x86_ | ack | ||
so i have to re-build pugs? | 15:48 | ||
integral | it won't rebuild the whole thing | ||
shouldn't be much either for that module | |||
x86_ | so it's a good thing i kept my build tree then? :P | ||
integral just runs straight out of his trees | 15:49 | ||
autrijus | x86_: yes :) | ||
so, svn up, make, ./pugs -BParrot examples/mandel.p6 again | 15:50 | ||
try it? the compileation time is likely to be quite short | |||
integral | you only need to panic build-wise when AST.Internals, Parser, Lexer or Prim gets modified 8-) | ||
autrijus | which isn't that often nowadays, thanks to some mad refactoring :) | ||
(actually only AST.Internals is real pain) | |||
x86_: so, run -BParrot mandel once, and run mandel again without -BParrot | 15:51 | ||
notice the, uhm, subtle difference in speed | |||
integral | I tried cutting it down even more, but I'm thinking that it's impossible since all the data types left in it (modulo 2 enumerations) are cyclic :-( | 15:52 | |
autrijus | integral: right, that's what I figured too | ||
svnbot6 | r3300, autrijus++ | * bring parrot codegen up to speed with invs tweak. | ||
autrijus | integral: there are ways around it... | ||
putter | autrijus: I have ok(not "a" ~~ rx:perl5/b/) ready to go into pugsbugs. Any objection? | ||
autrijus | integral: existential types for one, or (gasp) Data.Dynamic | 15:53 | |
hm? | |||
oh, not needs to be loost? | |||
loose | |||
integral | hmm, the first is one idea I was having. I haven't been scared by the second yet 8-) | ||
putter | yes. I could add it to looseOperators, but I didnt want to mindless muck about. | 15:54 | |
ordering in the Prim.hs list doesn't seem to affect it. | |||
integral | hmmhmm, interesting. The -BParrot mandel.p6 is slower than mandel.p5 for me | 15:58 | |
svnbot6 | r3301, Stevan++ | Test::Builder - make all the Test::Builder tests run without the ::ClassName issue | 15:59 | |
autrijus | putter: the ordering doesn't matter | 16:01 | |
integral: right because the codgen was rewritten | |||
integral: all the literals are boxed now (PMC) | |||
they were unboxed (int etc) | |||
putter | k | ||
integral | ah | 16:02 | |
putter | err, is there a one-line summary of how precedence is encoded in pugs? | 16:04 | |
in the .hs source that is... | 16:05 | ||
PerlJam | putter: magic. | ||
:-) | |||
putter | ;) | ||
integral | there's a howto fior adding ops on the wiki | ||
putter | tnx! | ||
jhorwitz | autrijus: a fail clause in Compile/Parrot.hs is having some type errors. how to fix? | 16:08 | |
autrijus: pugs: cannot cast from VError "fnord" (NonTerm (MkPos "-e" 1 1 1 1)) to [Char] | |||
autrijus | jhorwitz: fail "fnord" | ||
doesn't that work? | 16:09 | ||
jhorwitz | autrijus: nope | ||
autrijus | putter: in Parser.hs there's is this big table. | ||
jhorwitz: oh. then use an error clause. | |||
jhorwitz will try that | |||
putter | autrijus: ok. thanks. | 16:12 | |
autrijus | putter: I think the problem is that "not" is unary and parsed as an unary | ||
so by default it tighter | 16:13 | ||
I think you really want to add it to looseOp | |||
oh, "not" is billed as listop! | |||
wtf? | 16:14 | ||
hm, it really _is_ listop. | 16:15 | ||
_metaperl | autrijus what was that thing that made your pc look just like mac os x? | ||
autrijus | _metaperl: flyakite | ||
_metaperl | ok thanks | ||
Arathorn uses pearpc for that ;) | 16:16 | ||
autrijus | hm. perl5's not() essentially throws everything but the last arg away | ||
and negate the last arg | |||
I'm not sure perl6's not() keep that behaviour. | |||
putter: so, please fix Prim.hs so not becomes a LIST op | 16:18 | ||
theorbtwo | It does? Sounds rather crazy -- I'd certianly prefer that it not keep it. | ||
autrijus | putter: and fix the code so it assumes some kind of behaviour. | ||
theorbtwo: that's larry's way of having a low prec unary op | |||
theorbtwo: not 2,1,0; # needs to mean not(0) | |||
theorbtwo | Why does it need to? | 16:19 | |
autrijus | theorbtwo: because that's what unary ops do. | ||
someunary(2,1,0); # always mean someunary(0) | |||
comma in scalar cxt | |||
putter | ok. working... | ||
theorbtwo | In p5, yeah. | 16:20 | |
...with the parens there. | |||
-2,1,0 means (-2), 1, 0. | |||
perl -MO=Deparse,-p -e 'print not 0, 1, 2' # print((!1)); | 16:21 | ||
# Huh? | |||
autrijus | $ perl -MO=Deparse,-p -e 'print not 3,3,3' | 16:23 | |
print((!1)); | |||
theorbtwo: !1 is this constant folded thing | |||
theorbtwo smacks his forehead. | |||
OK, I'm an idiot. | |||
But why should not be low-precidence and not high-precidence? | 16:24 | ||
autrijus | because we have ! for high prec | ||
and not is there because and or and not (also xor) are supposed to be very low prec -- that is, same or lower than listops | 16:25 | ||
autrijus notices that not-easily-parsitude of the last sentence | |||
theorbtwo | OK, works for me. | 16:26 | |
I guess. | |||
Not really, but at least it's a reason. | |||
Limbic_Region | moving sucks | 16:36 | |
theorbtwo | Yup, Limbic. | 16:37 | |
What bit of suckyness have you just found? | |||
Limbic_Region | oh - lots and lots | ||
masak | perlbot nopaste | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
Limbic_Region | most recent problem has been establishing connectivity to the outside world | ||
no phone (VoIP), no internet (cable), no cable (digital) | 16:38 | ||
oh - glad to see autrijus has gotten long winded on the journal summaries again - enjoyed catching up this morning | 16:39 | ||
autrijus | it's been like that for 3 days :) | ||
masak | i have a question | 16:40 | |
pasteling | "masak" at 130.238.83.176 pasted "Deep recursion 'hello world' example" (8 lines, 214B) at sial.org/pbot/10169 | ||
theorbtwo | Sounds like a wonderful vicious loop, limbic. Have a cell, or have you been completely cut off? | ||
Limbic_Region abhors cell phones and wouldn't dream of owning one | |||
masak | is there a way to make $! not collect the whole stack trace in the above script? | ||
Limbic_Region | in fact the only reason I have a phone at all is for emergencies and Jean | ||
masak | Limbic_Region++ | 16:41 | |
autrijus | masak: why would you not want that? | ||
masak | autrijus: mostly just for fun | ||
i thought it would be nice to die with 'hello world' | |||
but it might also come in handy for deep tail calls | 16:42 | ||
svnbot6 | r3302, iblech++ | * Added and updated submethods tests after p6l review. | ||
r3302, iblech++ | * Updated t/oo/roles/conflicts.t to new "./" method call syntax. | |||
autrijus | die with \n ? | ||
masak | autrijus: i tried that, didn't help | ||
autrijus | masak: well, time to start hacking on the "die" Prim | ||
masak | :) | ||
Limbic_Region | the "di" Prim directive? | ||
err - missing both es there | |||
but you get the idea | |||
masak | will there be a test involved somehow? in that case i could help | 16:43 | |
autrijus | masak: sure | 16:44 | |
masak still is a bit haskell-shy | |||
autrijus | eval 'die "foo\n"' | ||
and test if $! contains only foo\n | |||
masak | right -- which .t file? | ||
builtins/die.t? | 16:46 | ||
Limbic_Region | masak - worry less about getting it in the right place and more on getting it in | 16:48 | |
collaborative effort will result in it getting moved to where it belongs | |||
and probably augmented too | |||
masak | true | 16:49 | |
writing tests is weird business | 16:50 | ||
you want to write a piece of code that fails | |||
so that you can go fix it | |||
there -- committed | 16:51 | ||
Limbic_Region | well - there is always t/pugsbugs | ||
that once fixed get moved to appropriate place | |||
and stay there to ensure more hacking doesn't re-break them | |||
masak | Limbic_Region: so only passing tests should go in all the other .t files? | ||
Limbic_Region | no - I didn't say that | 16:52 | |
die works for the most part | |||
besides - I have only written a half-dozen tests or so myself - just commit | |||
it will get moved if it is in the wrong place | 16:53 | ||
trust in the anarchy | |||
masak | :) yes, but is there a rule of thumb for where to put stuff? | ||
svnbot6 | r3303, masak++ | Recursive die test | ||
masak really likes the addition of "++" on commits | |||
autrijus too | 16:54 | ||
egoboo++ | |||
clkao++ | |||
masak | karma is such a laid-back metric, a sort of un-currency | 16:55 | |
jabbot | masak: is such a laid-back metric, a sort of un-currency has neutral karma | ||
masak | that was an unintended funism | ||
autrijus | jabbot++ | ||
masak | i thought that someone else had the exact same idea i had, but it was just a bot :) | ||
Arathorn | i dunno - some people can get very worked up about karma | 16:56 | |
c.f. /. | |||
masak | should i be offended when a bot calls me a laid-back metric? :P | ||
slashdot doesn't have a common goal like the pugs team | 16:57 | ||
Arathorn | true | ||
masak | a person hoarding karma here would just make a fool of emself | ||
Arathorn | still, some people can't handle the the distinction between their ephemeral karma getting a boost and a rabidly competitive fight to the finish line | ||
masak | true | 16:58 | |
Arathorn | i guess that's what you have to rely on, then :) | ||
masak | i hope i'm right :) | ||
Arathorn | (the idea of the hordes of slashdot trying to implement a programming language spec is highly amusing, either which way :D) | ||
masak | *lol* | 16:59 | |
the signal to noise ratio would simply be too low for constructive work to take place | 17:00 | ||
slashdot is in itself a work avoidance tool | |||
or so i've heard :) | 17:01 | ||
Arathorn | i wouldn't know anything about that | 17:02 | |
Arathorn looks shifty | |||
that said, following perl6/pugs development is an infinitely better work avoidance tool :) | |||
masak | without a doubt | 17:03 | |
x86_ | ugh, Parser and Lexer are both compiling again when i did that svn up;make | 17:06 | |
indeed | 17:07 | ||
pugs++ | |||
holy shit Parser takes way too long to compile | 17:08 | ||
svnbot6 | r3304, iblech++ | * Added tests for $?SELF, $?CLASS, and $?ROLE (t/oo/magical_vars.t). | ||
r3304, iblech++ | * Very minor cosmetical fixes to proxy.t, conflicts.t, construction.t, and | |||
r3304, iblech++ | destruction.t. | |||
r3305, iblech++ | Added the usual svn properties to Stevan++'s and mugwump++'s | |||
r3305, iblech++ | ext/Perl-MetaModel/docs/*. | |||
autrijus smiles at iblech's use of person++ in logs | 17:09 | ||
x86_ | Pugs.Eval takes a while too it seems | 17:10 | |
Arathorn hopes that commiters get autopromoted to bignums of some kind, otherwise there may be some nasty overflow/wraparound bugs on the horizon.. | |||
autrijus | x86_: for daily development, "make unoptimised" and "make ghci" are your frinds | 17:11 | |
stevan | x86_: or you can just take long coffee breaks in between compiles :) | 17:12 | |
or even do $work, which is what I do :) | |||
autrijus | it's strangely how my @jobs are becoming relaxful breaks. | 17:14 | |
;) | |||
stevan | :D | ||
autrijus | their specs are nicer, and the @client not as crazy | ||
stevan | but they are not nearly as much fun | 17:15 | |
autrijus | nope. and I don't have a huge helpful team :) | ||
stevan | autrijus: you should just hire all of us to do your $work | ||
and leave you to hack pugs :) | |||
masak | a huge team would be useful to have at $work | ||
autrijus | stevan: that will be minimizing the fun ;) | 17:16 | |
"premature pessimisation" | |||
stevan | :) | ||
x86_ | ack! | 17:18 | |
$work! | |||
x86_ dies | |||
mandel with -BParrot: | 17:19 | ||
real 0m3.136s | |||
i'm still waiting for the timing without -BParrot ;) | |||
what's -B do? compile it to bytecode before running it? | 17:20 | ||
iblech_ | compile using the Parrot bytecode, then run it | ||
there're also the Pugs and Haskell backends | 17:21 | ||
17:21
iblech_ is now known as iblech
|
|||
iblech | And there's -CBackend, which compiles the source, but does not run it. | 17:21 | |
autrijus | putter: ¬ fixed, so in case you're still working on it, sorry :) | 17:51 | |
svnbot6 | r3306, jhorwitz++ | * fix type error when reporting compilation failure | ||
autrijus | 01:55 <@leo> autrijus: I've read a lot of STM papers recently | 17:59 | |
svnbot6 | r3307, autrijus++ | * ¬ is a listOp now. putter++ | ||
autrijus | 01:55 <@leo> I think it should work for parrot too | ||
autrijus loves cross-fertilising ideas | |||
jhorwitz | STM++ | ||
putter | autrijus: np. just got it working :). so good exercise, and even better, now I get to see how you did it! :) :) | 18:07 | |
x86_ | real 2m33.920s | ||
putter wishes there was an easy way to get code reviews of haskell snippets. | |||
x86_ | 2m34s (no -BParrot) vs. 0m3s (with -BParrot) | 18:08 | |
holy crapola | |||
lol | |||
jhorwitz | hm. autrijus: instance Compile Exp doesn't seem to be catching "module Foo" in Parrot Compiler anymore | ||
i uncommented my Syn "module" code to work on it again | 18:09 | ||
autrijus | jhorwitz: k. note also classes etc should be handled in the compile glob place | 18:10 | |
jhorwitz | ah, okay. that's a good thing, then. :) | ||
theorbtwo | Glob place? | ||
jhorwitz | autrijus: it seems to be landing here: instance Compile (Var, [(TVar Bool, TVar VRef)]) -- is that right? | 18:12 | |
svnbot6 | r3308, iblech++ | Ported Net::IRC to real OO. | ||
r3308, iblech++ | The only major thing which doesn't work yet in Pugs is support for submethod | |||
r3308, iblech++ | BUILD. When that is implemented, the real OO Net::IRC should start to work. :) | |||
autrijus | jhorwitz: yeah. if the Var is (':':class) | ||
jhorwitz | giddyup | 18:13 | |
autrijus | you can then generate a parrot class right there | ||
global vars too should go there | |||
jhorwitz | for now i just want to spit out a .namespace op, but i see where you're going | ||
autrijus | a .namespace is probably good enough for now | 18:14 | |
the public attributes can be queried using | |||
&ClassName::* | |||
which queries methods too | |||
more info will be available when the roles/class metametamodel lands | 18:15 | ||
jhorwitz | wow, this is further along than i thought | ||
x86_ | you guys want to see something hilarious? | ||
have to email it though, because im not sure how to save it properly | |||
its a small video clip | |||
putter | autrijus: if I could impose, would this have been a valid solution?: | ||
op1 "not" = \v -> case v of | 18:16 | ||
(VList vs) -> op1 "!" $ last vs | |||
_ -> op1 "!" $ v | |||
autrijus | putter: yes, that would be completely valid, since I started there :) | ||
then I noticed that it would make | |||
not @foo; | |||
become | |||
not @foo[-1] | |||
which is very wrong. | |||
so I wrote p6l asking what ¬'s signature should be. | |||
:) | |||
wolverian | wow. Net::IRC.pm (OO version) has a lot of 'has $foo' repetition | ||
putter | ah. ok. fun and games. thanks for the puzzle and the feedback. | 18:17 | |
autrijus | putter: thanks for playing | ||
wolverian | does 'has ($.foo, @.bar) is rw;' DWIM? | ||
autrijus | wolverian: it should. feel free to hack it in | ||
it's in ruleMemberDeclaration | |||
you can look at VarDeclaration's code for supporting multiples | |||
wolverian | hrm. my dev computer is currently offline | 18:18 | |
jhorwitz | autrijus: we have namespaces. making sure i didn't break anything before commiting... | 18:32 | |
18:32
Arathorn is now known as Aragone
|
|||
putter | am I correct in fuzzily remembering that rules tests should be skipped, rather than failing, when running make test on builds which lack rules support? eg, where !("a" ~~ /a/) is true. | 19:09 | |
Corion | r3308 - datenzoo.de/pugs/win2k.html - an unexpected map() success, subscript parsing also works now, | 19:14 | |
svnbot6 | r3309, jhorwitz++ | * module|package|class emits Parrot .namespace ops | ||
r3309, jhorwitz++ | * fix sub invocation | |||
Corion | Weird. Changing a test from ok(eval(...)) to eval_ok( ...) also changes it from True to False ... (t/syntax/subscript/parse_bugs.t) | 19:17 | |
Hmmm. And the test also doesn't catch "%hash <foo>" as a syntax error in eval() - I guess that's actually a bug in eval() | 19:19 | ||
iblech | Corion: That's because the code supplied to eval_ok() is called in Test::eval_ok's lexical pad, not in the one of the test, so the code can't find its variables | ||
svnbot6 | r3310, jhorwitz++ | * remove _Pugs:: prefix from Parrot namespace (will revisit this later) | ||
Corion | iblech: Ah, d'oh | ||
so I'll have to live with ok(eval( then | |||
svnbot6 | r3311, corion++ | Promote succeeding test | 19:25 | |
stevan | Corion: I found that a combination of lives_ok, and is work best | 19:27 | |
assuming it does not parsefail | |||
iblech | Hm... readdir("."|".") does not produce a result junction. | 19:34 | |
svnbot6 | r3312, corion++ | map() now partially works with multiple statements in the block, except that it only works on the first value and reuses that for the whole list | ||
iblech | Ah, I see. any(".", ".") is of course any("."). | 19:36 | |
svnbot6 | r3313, iblech++ | <Pos1> and <End> are now working in the live cd. | 19:40 | |
19:44
x86_ is now known as x86
|
|||
putter | On r3307, this !("a" ~~ /a$/) explodes (backtrace) and sometimes segfaults. | 19:45 | |
Limbic_Region wonders how one tests for "it explodes but only sometimes" | 19:47 | ||
iblech | putter: It doesn't here (Linux, GHC 6.4). | 19:49 | |
(With external Parrot) | 19:50 | ||
Limbic_Region | seen juerd | 19:51 | |
jabbot | Limbic_Region: I havn't seen juerd , Limbic_Region | ||
Limbic_Region | seen Juerd | ||
jabbot | Limbic_Region: Juerd was seen 8 hours 24 minutes 2 seconds ago | ||
Limbic_Region didn't know handles were case sensitive | |||
$Larry sorta ruled on not 4,3,2,1,0; | 19:52 | ||
putter | iblech: thanks. mine was internal, on x86_64 linux. I'll try external, and make the test eval_ok. | ||
wolverian | hmm. the &.foo discussion on p6l is interesting. | 19:55 | |
Corion | Heh - a comment in autrijus' journal: "Most Haskell texts seem to be aimed at the novice/beginning programmer. (e.g they spend chapters describing recursion, and devote only two sentences to using arrays). " -- maybe that is because arrays are not really important in Haskell? :) | 19:56 | |
integral | you can't write a decent matrix library without arrays... | ||
Corion | integral: Well, you can always use lists instead :) | 19:57 | |
Limbic_Region refrains from making Matrix jokes | 19:58 | ||
Corion | Nobody can tell you what the Matrix jokes are ... | ||
integral | that ruins the complexity of many algorithms though. Plus then you end up using a different structure of lists for different ones, which is annoying. | ||
mmm, real world perl6: svn.openfoundry.org/pugs/examples/irclog2html.p6 | 19:59 | ||
Corion | integral: "annoying" does not prevent me from doing stuff if I really want to ;-) | ||
integral | err, wrong window | ||
PerlJam | integral: where are you evangelizing perl6 ? | ||
integral tried to write a list based LU factorising routine | 20:00 | ||
PerlJam: #perl! :-) | |||
it was not pretty. Although that was probably perl5's fault =) | |||
pasteling | "putter" at 66.30.119.55 pasted "a backtrace" (70 lines, 4.1K) at sial.org/pbot/10173 | 20:02 | |
putter | I get something like this with both internal and external parrot. Looks like a haskell-side problem? | 20:04 | |
iblech | putter: Ah! When I tried your snippet, I ran it using "pugs -we '...'". You ran it in interactive Pugs, where "!" has a special meaning (see :h) | 20:06 | |
putter | sigh. my thanks iblech. | 20:07 | |
nothingmuch | what kind of arrow graphicaly conveys transformation? | 20:23 | |
Corion | Where is fail() implemented? My grep fu is weak today | ||
To me, it's an arrow with a curled unpointy side | |||
or the mathematical finite map arrow, "|->" | 20:24 | ||
iblech | Corion: If you refer to Test::fail, it's in ext/Test/lib/Test.pm. If you refer to Perl 6's core fail(), it isn't yet implemented, IIRC | ||
nothingmuch | nothingmuch.woobling.org/sumo_to_ninjas.png | ||
from that image is it clear that you would like to make ninjas out of the sumo, but the transformation is blocked? | |||
Corion | iblech: No, the Haskell fail(), that is used to implement die() ... | ||
iblech | Corion: Oh. No idea. | ||
Corion | I want to look at making die("\n") work ;) | ||
nothingmuch: Hmmm. I wouldn't put any "stop" sign there, but an "entry forbidden for cars" sign (-) | 20:25 | ||
(red-circle-with-horizontal-white-bar) | 20:26 | ||
nothingmuch | yeah, i'm using that one too =P | ||
elsewhere | |||
for a more 'do not enter'ish metaphor | |||
maybe a big red X | |||
Corion | nothingmuch: Yeah, a big red X is always good. | ||
I remember the PNG acceptance suite using red checkmarks and green X. I never found out what meant "correct" and what meant "incorrect" :) | 20:27 | ||
nothingmuch | hehe | 20:32 | |
Corion: reload | 20:41 | ||
Corion | nothingmuch: Yep, much better IMO | ||
Maybe make the cross over the arrow, so it doesn't cross out the ninjas, but that's only minor | 20:42 | ||
nothingmuch | i tried playing around with that | 20:43 | |
Corion | Likely you have to move the ninjas and the sumo wrestler further apart for that | ||
nothingmuch | i didn't manage to make it look pretty that way | ||
Corion | nothingmuch: It's Good Enough that way IMO - much less confusing than the STOP sign | 20:45 | |
(but I'm tired already and should go to bed ;) ) | |||
& | |||
nothingmuch | crap | ||
somebody else reload | |||
autrijus | journal up. enjoy :) | 20:51 | |
nite & | |||
svnbot6 | r3314, chromatic++ | Declare invocants for status() methods in Test::Builder::Test. | 21:18 | |
r3314, chromatic++ | Fix a typo in a test description. | |||
r3315, putter++ | Replaced not with !() in t/rules/Disabled/from_perl6_rules. | 21:24 | ||
r3316, putter++ | Added "are rules available?" test-skipping guards to t/rules/Disabled/from_perl6_rules. | |||
r3317, Stevan++ | Perl::MetaModel - commit before refactoring this | 21:45 | ||
r3318, putter++ | Cleaning up from_perl6_rules/word.t. | |||
r3319, putter++ | Un-Disabled from_perl6_rules/word.t. | |||
mugwump | dammit, we need a good editor for Perl 6 code | 22:11 | |
svnbot6 | r3320, autrijus++ | * make ControlEnv prettification less verbose | ||
mugwump | or, rather, I want cperl-mode for Perl 6 ! :) | ||
stevan | hey mugwump :) | 22:14 | |
clkao | cperl6-mode then | ||
putter | I have very simple tests (eg, ok( $str ~~ m/^abc/, 'SOS abc' );) which work w parrot embedded, but hang with external parrot (on FC3, amd64). Is there some way to check whether external parrot is being used, so the tests can be skipped? | ||
stevan | mugwump: I edited the docs again, moving your more perl6 specific stuff to perl6_meta_model.pod | ||
and kept the nomenclature stuff in meta-meta_classes.pod | |||
putter | mugwump: Re cperl6-mode, do you have some particular file you would like a modified cperl-mode to handle nicely? | 22:15 | |
stevan | I also just refactored Perl::Meta::MetaClass | ||
and I have been reading about Smalltalk's metaclass model, which is pretty cool | |||
but alas, what is morning for you, is dinner time for me | |||
mugwump | well, I just opened stevan's ext/Perl-MetaModel/lib/Perl/Meta/MetaClass.pm and cperl-mode doesn't like it at all... | ||
stevan | so I will be back in maybe 3 hours or so | 22:16 | |
svnbot6 | r3321, Stevan++ | Perl::MetaModel - refactored names to be more perl-ish; subclasses are now read-only, all adding and removing is now down through private methods and controled by the superclass() method; added an allSuperclasses() method; | ||
mugwump | What happened to MetaProperty et al, stevan ? | ||
stevan | mugwump: removed it | ||
we can add it later | |||
it was all the Hack::Instances junk anyway | 22:17 | ||
its is still in the depths of the VCS | |||
mugwump | sure | ||
putter | mugwump: k. I'll take a look at it. (need a break from assorted rules breakage). | ||
stevan | mugwump: you are welcome to re-hack it in Pugs-OO if you like. I was planning on working that later tonight | 22:18 | |
dinner & | |||
mugwump | bon appetit | ||
putter: the optional ? marker in subroutine signatures is what breaks that file | 22:20 | ||
putter | mugwump: ok, I'll use that for a target fruit. | 22:30 | |
Juerd | Just a little note: if you want quickref to work, please write for it. I'm not able to do it all myself, although I'd love to. | 22:38 | |
mugwump | hi broquaint_, where in the world are you now? back in the UK I presume? | 23:06 | |
broquaint_ | You presume correctly, mugwump. | ||
mugwump | do go on! :) | 23:08 | |
broquaint_ | I'm looking for employment and all that sort of thing. Terribly exciting stuff. | 23:09 | |
mugwump | that's been a while hasn't it? Or have you been picking up brief contracts? | 23:10 | |
Alias is still looking for someone in Sydney | 23:12 | ||
a bit of a hard commute from the UK I know | |||
Odin-LAP | Half-way around the globe? You mean you wouldn't do that twice a day? | 23:14 | |
mugwump | yeah. getting into a low earth orbit for the 90 minute trip isn't the problem, it's just the customs mallarky | 23:15 | |
Odin-LAP | Ignore customs, and bring a mercenary company with you. Since you can afford the ride, that shouldn't be any trouble... | 23:16 | |
broquaint_ | I've only been looking for a month or so, is that a long time these days? | 23:22 | |
23:22
broquaint_ is now known as broquaint
|
|||
mugwump | yeah, but by the time you've done that you may as well have chartered the flight | 23:22 | |
oh, I thought you left NZ long ago broquaint | |||
no I guess a month is getting standard | |||
broquaint | I did, but I was in Thailand for a few months :) | ||
_metaperl | broquaint where are you now? | 23:23 | |
mugwump | oh, yeah ... how is the short little bastard anyway? | ||
broquaint | London, UK, _metaperl. | ||
Which one, mugwump? | |||
_metaperl | were you born and raised in the UK? do you like Football? | ||
mugwump | Count Erik J Napolean | ||
_metaperl | i've never talked with you broquaint, though I've seen you on perlmonks often | ||
broquaint | Born, no, raised, sorta. Football, yes, but I know little of it. | 23:24 | |
_metaperl | what does the name "broquaint" mean anyway? | ||
broquaint | Erik is going mad across Thailand and the UK variously. His life is more fucked up these days than usual. | ||
No idea, _metaperl, just made it up one day for a unique nick. Seems to have worked so far. | 23:25 | ||
Odin-LAP | Quaint. | ||
broquaint | Bro. | 23:26 | |
mugwump | Au. | ||
_metaperl | broquaint, are you a CPAN author? | ||
broquaint | I am, _metaperl. | ||
_metaperl | author ID? | 23:27 | |
broquaint | BROQ :) | ||
I should have a new module up in a few days time too. | |||
clkao | how does overload work in perl6? such as stringifying objects | 23:28 | |
_metaperl | time to add Module::MagicUse to my list of lazy loaders: www.metaperl.com/article-pod/Catalo...aders.html | ||
mugwump | clkao: eg, method prefix:<~>($self:) { } | 23:29 | |
however, I don't think it's implemented yet | |||
clkao | can you implement that tonight? then i can write URI.pm6 | 23:30 | |
mugwump | I am only an egg | ||
clkao | mugwump: which synopsis covers that | ||
clkao overload mugwump to be autrijus | |||
mugwump | S06#Operator Overloading | 23:31 | |
clkao | mugwump++ | ||
_metaperl | lol | 23:32 | |
Darren_Duncan | I'm working on the Locale-KeyedText test suite now - should be committed in 2 hours or so | ||
_metaperl | we do our i8n via database... | 23:33 | |
clkao | are we able to identify a particular test with an id? does each test have a unique description now? | 23:35 | |
if so we can do some interesting stuff. say i submit a test because i want it to implement certain module. i can subscribe that test result. when it tells me it works i can go back writing what i intended to | 23:36 | ||
mugwump | sort of like lazy implementation | 23:38 | |
perhaps pass :todo<feature> a continuation | 23:39 | ||
that encapsulates your development progress for easy resumption of your activity | 23:40 | ||
$clkao.develop($code) | |||
maybe poll use.perl.org/~autrijus/journal/ in the mean time ;) | 23:42 | ||
clkao | is there p6bibles with test result annotated ? | 23:43 | |
mugwump | I think you need to use one of the scripts in util/ | 23:44 | |
like run-smoke.pl | |||
nothingmuch | clkao: i have a small shell script | 23:47 | |
clkao | ya, i know runsmoke | 23:48 | |
pasteling | Someone at 212.143.91.217 pasted "p6bible + test annotation + svn up loop" (39 lines, 905B) at sial.org/pbot/10177 | 23:49 | |
nothingmuch | s/Someone/nothingmuch/ | ||
putter | mugwump: sorry, a cperl-mode patch isn't going to happen tonight. note that perl-mode doesn't have the ? problem. | 23:54 | |
mugwump | so perl-mode is better for perl 6? | ||
I'm used to the highlighting characteristics of cperl-mode now! :) | |||
putter | rightthing long term is perhaps to have a fast p6 syntactic/semantic analyzer which can, among other things, spit out | 23:57 | |
mugwump | AST | 23:58 | |
along with which part of the source corresponds to each piece of the AST | 23:59 | ||
putter | sexps, so an emacs mode can do not only the usual kludged highlighting, but also semantics. |