Pugs 6.2.6 uploaded by cpan-upload.p6! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste at sial.org/pbot/perl6 Set by integral on 2 June 2005. |
|||
revdiablo | Odin-LAP: I hate it when that channel turns into a feeding frenzy like that. | 00:00 | |
Odin-LAP has a mental image of piranhas tearing in, and wonders why the hell he can't remember not to stick food into the Amazon. | 00:02 | ||
revdiablo | hmm, is there an authoritative paper on STM? | 00:03 | |
research.microsoft.com/Users/simonp...tm/stm.pdf # found this, not sure if that's it | 00:04 | ||
Odin-LAP | citeseer.ist.psu.edu/978.html <-- ? | 00:05 | |
geoffb | Odin-LAP, revdiablo: which channel? | 00:07 | |
revdiablo | geoffb: #perl | ||
geoffb | ah | ||
crysflame | which #perl | 00:10 | |
revdiablo | freenode #perl | ||
_meppl_ | gute nacht - good night | 00:40 | |
svnbot6 | r4575, geoffb++ | Start Pugs hacking document at lib/pugs/hack.pod (as per Autrijus) | 01:20 | |
r4575, geoffb++ | * Start of source tree map: all top dirs, half of second dirs described | |||
r4576, geoffb++ | More second-level dirs described | 01:30 | ||
mugwump | is there a Perl6 version of: while (<>) ? | 01:54 | |
geoffb | Time for dinner . . . | 01:59 | |
svnbot6 | r4577, geoffb++ | Yet more second-level dirs described | ||
sdtr443w | Ah hah I finally found the channel | 02:04 | |
Is there a known problem detecting GHC in the Pug 6.2.6 Makefile.PL? I can't get anywhere with it even with ghc sitting right in the same directory. | 02:05 | ||
mugwump | I would expect it looks for it in the path. is the directory where GHC is installed in your $PATH ? | 02:09 | |
(ie, typing `ghci' at the shell should bring up interactive GHC) | |||
anyone know where the for =$fh syntax is defined? | 02:38 | ||
Enveigler1 | sdtr443w: Are you on windows? | 02:42 | |
sdtr443w | No I'm in Linux. I see what was happening -- I was setting it to look for ghc-6.4, not ghci | 02:47 | |
It looks like I have another peculiarity -- during the 'make' command, I get thrown into ghci and it's waiting for me to do something in ghci's interface. That doesn't seem right. | 02:48 | ||
Khisanth | mugwump: while $foo = =<> { } ? | 03:17 | |
geoffb bak -- mmmm, Pizza . . . . | |||
svnbot6 | r4578, geoffb++ | * Remaining ext/* described, only t/* remain | 03:43 | |
r4578, geoffb++ | * Extra vertical space for clarity | |||
mugwump | hmm, what would hyper mod operator assign be ? >>%= | 03:51 | |
geoffb | mugwump, sounds right | 03:52 | |
mugwump | bah, not implemented it seems | ||
geoffb | what is the base class of the Code/Block/Sub/etc. heirarchy? | ||
hmmm | 03:53 | ||
?eval my @foo = <1 2 3>; @foo >>+= 1; @foo; | |||
evalbot6 | Error: unexpected ">" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
geoffb | ?eval my @foo = <1 2 3>; @foo >>+ 1; | ||
evalbot6 | Error: unexpected ">" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
geoffb | ?eval my @foo = <1 2 3>; @foo >>+=<< <1 1 1>; | 03:54 | |
evalbot6 | Error: unexpected ">" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
geoffb | ?eval my @foo = <1 2 3>; my @bar = <1 1 1>; my @baz = @foo >>+<< @bar; | 03:55 | |
evalbot6 | [2.0, 3.0, 4.0] | ||
geoffb | ?eval my @foo = <1 2 3>; my @bar = <1 1 1>; @foo >>+= @bar; | ||
evalbot6 | Error: unexpected ">" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
geoffb | ?eval my @foo = <1 2 3>; my @bar = <1 1 1>; @foo >>+=<< @bar; | ||
evalbot6 | Error: unexpected ">" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
geoffb | Hyper-assign not implemented at all? | ||
mugwump | ?eval my $time = eval_perl5("[localtime()]"); $time[1] | 04:02 | |
evalbot6 | Error: No compatible subroutine found: "&eval_perl5" | ||
mugwump | :) | ||
geoffb | No embedding, I guess -- that would be WAY unsafe. :-) | 04:03 | |
s,No,No Perl5, | |||
Khisanth | hrm is it >>+=<< or >>+<<= or both? | 04:06 | |
svnbot6 | r4579, geoffb++ | Completed rough draft of level 1 and 2 source map | ||
mugwump | those might not always be equivalent I think | 04:07 | |
the first is in-place, the second makes a new list and then assigns the result as I interpret it | |||
Khisanth | I was thinking the first is a hyper version of += while the second is the assignment version of >>+<<, just from the looks | 04:09 | |
mugwump | in other words you agree with my statement :) | 04:10 | |
Khisanth | no, not really | ||
at least >>+<<= shouldn't make a new list | 04:11 | ||
mugwump | >>+<< returns a new list. Then you assign that into the result. | 04:12 | |
Khisanth | but doesn't + return a new scalar? | 04:14 | |
which would mean += would create a new variable and assign it to the result as well? | 04:15 | ||
SamB looks at >>+<< and thinks "that looks like befunge or something" | |||
Khisanth | you still need ^ and V ! | ||
mr_ank | brainfuck! i knew it! | 04:17 | |
hcchien | $url ~~ rx:P5/http:\/\/(.+)/ doesn't work well on pugs, is anything wrong? | 04:18 | |
svnbot6 | r4580, geoffb++ | Spacing, alignment, and minor wording edits of source map | ||
Khisanth | heh I guess you can't have a >v< operator | ||
geoffb | OK, at this point, Pugs source tree map in lib/pugs/hack.pod is ready for content review. Any takers, please edit away. | 04:19 | |
Meanwhile, | |||
geoffb makes the sound of one man's stack popping | |||
mugwump | hcchien: s/P5/perl5/ | 04:25 | |
svnbot6 | r4581, geoffb++ | Oops, forgot to delete question I already answered for myself | ||
mugwump | hcchien: or is it the LTS that's breaking it? I've just noticed that it's not interpolated... | ||
hcchien | mugwump: P5 and perl5 are the same thing, aren't they? | 04:26 | |
mugwump | it was a quick guess :) | 04:28 | |
so, the escaped /'s are breaking it? | |||
hcchien | I guess so. | ||
oh, interesting | 04:30 | ||
this would be broken: say $str if ($str ~~ rx:perl5/http:\/\//); | |||
but it's fine with: say $str if ($str ~~ rx:perl5{http:\/\/}); | 04:31 | ||
mugwump | it looks like the parse context of the // segment is wrong; it's being passed straight to PCRE rather than being interpolated as a quoted string (I *think*) | ||
Chewie[] | !eval <f oo bar>>>.length | 04:32 | |
!eval <f oo bar> | |||
!eval qw/f oo bar/ | |||
Interesting. | |||
mugwump | ?eval <f oo bar>.elems | ||
evalbot6 | 3 | ||
mugwump | ?eval <f oo bar>>>.chars | 04:33 | |
evalbot6 | Error: unexpected ">" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
mugwump | ?eval <f oo bar>>>.<<chars | ||
evalbot6 | Error: unexpected ">" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
SamB | mr_ank: well, yes, it is valid BF, but so is everything with balanced square brackets... | ||
mugwump | ?eval <f oo bar>.chars | ||
evalbot6 | 8 | ||
Chewie[] | Heh. | 04:34 | |
?eval qw/f oo bar/ >>.elems | |||
evalbot6 | Error: unexpected ">" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
mugwump | looks like my complaint about the interpolation is bogus. my test script was broken :) | ||
Chewie[] | ?eval (qw/f oo bar/) >>.elems | 04:35 | |
evalbot6 | Error: unexpected ">" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
Chewie[] | ?eval ("f","oo","bar")ōæ½xBB.length | ||
evalbot6 | Error: No compatible subroutine found: "&length" | ||
Chewie[] | Er. | ||
?eval ("f","oo","bar")ōæ½xBB.elems | |||
evalbot6 | 3 | ||
Chewie[] | ?eval (("f","oo","bar")ōæ½xBB.elems).perl | 04:36 | |
evalbot6 | '3' | ||
Chewie[] | Shouldn't that return (1, 2, 3) as in S03? | ||
mugwump | congrats Chewie[]! you've found a bug ... time to submit a failing test! | 04:37 | |
:) | |||
Chewie[] | mugwump: To be honest, I'm way too uncomfortable with the tools, lists, and trees to feel good about doing that. Plus I'm powerful tired right now. | 04:39 | |
mr_ank | i'll submit it if you don't mind Chewie[] | 04:42 | |
mugwump | I'm about to commit it mr_ank :) | ||
mr_ank | :) okay | 04:43 | |
Chewie[] | Thanks, guys. I really need to read through the design docs and start pulling weight. | 04:44 | |
mugwump | no pressure dude, enjoy learning :) | ||
Chewie[] | Heh. I love learning. Love school, love programming, love reading technical reference manuals. | 04:45 | |
I mean, call me odd, but damn am I odd. | |||
Personally, I like the current Parrot implementation more than the current Perl 6 implementation. Not even PIR, just PASM. Reminds me of my assembly days back on DOS. | 04:47 | ||
Khisanth | DOS does not sound like a step forward ... | 04:48 | |
svnbot6 | r4582, mugwump++ | Add test for .perl on elems reported by Chewie[]++; unresearched | ||
mugwump | utsl.gen.nz/perl6-intro/html/ # talk I'm giving tonight ... | 04:49 | |
Chewie[] | Khisanth: x86 assembly on a 486. That was fun. | ||
hcchien | I should add some tests on rx_perl5 | 04:50 | |
SamB | was it more fun than on a Pentium? | ||
Chewie[] | mugwump: Where did you get that larger version of the Perl crocodile-moth-lizard-moose-bird thing? | 04:51 | |
SamB: It felt a lot more manual, and it was more fun to me. | |||
My background (ha) is in engineering. The closer to metal, the better. | |||
SamB | hmm, you probably wouldn't like House | 04:52 | |
Chewie[] wonders if a 15-year-old can have a 'background'. | |||
SamB | duh, yeah. | ||
mugwump | Chewie[]: google images for "perl 6" :) | ||
crysflame | yes, chewie | ||
mugwump | bleaklow.com/blog/archive/000018.html | ||
Chewie[] | We haven't even been around long enough to become experts in a field. I'm an expert at programming by no means. | 04:53 | |
mugwump: Oohhh. I found that originally on a gallery a number of months ago. I was looking for it by filename.. <giggle /> | |||
SamB | even non-experts have backgrounds | 04:54 | |
crysflame | mugwump: what is it? | ||
SamB | and you might know more than the average CS degree-holder | 04:55 | |
mugwump | crysflame: just a rather cynical joke cover | ||
crysflame | ok | 04:56 | |
Chewie[] | SamB: A week after receiving the degree, when the degree-bearer still holds the knowledge from the past year? Probably not. | ||
mr_ank | Chewie[]: Reexamining the bug/problem: im probably missing something, but why whould it return (1, 2, 3) and not 3? | 04:57 | |
(perl representation of the number of elements in the array) | 04:58 | ||
Chewie[] | mr_ank: The hyperoperators operate on lists. That one takes a list and, for each element, takes the .elems. It's just like @foo = @bar >>+<< @baz;. | ||
What about the native printout via .perl? That should give the array of .elems'. | |||
See also dev.perl.org/perl6/doc/design/syn/S..._operators | 05:00 | ||
SamB | Chewie[]: have you any idea what an average CS student has learned by graduation? me neither. and I would like very much never to find out... | ||
mr_ank | wait | 05:01 | |
Chewie[] | SamB: It's not a matter of knowledge gained and lossed by graduation. It's a matter of retention. | ||
Lossed? That's the sleep deprivation ghost speaking. Lost. | |||
mr_ank | Chewie[]: should there be a ">>" char somewhere in your test eval? | ||
Chewie[] | mr_ank: I used the Unicode right French quote character. | 05:02 | |
mr_ank | okay then, I guess my IRC program missed it - I see no Unicode chars | 05:03 | |
Chewie[] | mr_ank: I tried it with the ASCII representation. That also produced an error. An interpretation error, too, not an inaccuracy in interpretation as is the case with the msot recent one. | ||
Most, even. | |||
mr_ank | (i keep getting French and German quotes confused - will get used to them eventually) | ||
mugwump: in your test i see no french or german quotes | |||
Chewie[] | That's quite a presentation, mugwump. Very nice. | 05:04 | |
mugwump | ok. feel free to add them. I'm off to give this talk ... | ||
thanks for the feedback Chewie[] ! | |||
any other suggestions before I go? :) | |||
mr_ank | Good luck with the talk :) | ||
Chewie[] | mugwump: Don't find any bugs live during the demonstrations. :-p | 05:05 | |
crysflame | haha | ||
Chewie[] | s/p$/P/ | ||
crysflame | it makes it more realistic when you do | ||
so if it does happen, demo how easy it is to fix bugs in pugs | |||
mugwump | "never do a live demo" ... I'm not autrijus :) | ||
Chewie[] | True as that may be, it's all about the image. | ||
mugwump: Giggle. | |||
Chewie[] will be back in about 10 minutes. | 05:06 | ||
mr_ank | Chewie[]: so what you were trying was (("f","oo","bar")>>.elems).perl (s/>>/$french_quote_char/) ? | ||
Chewie[] | Have fun, mugwump. | ||
mr_ank: Correct. | |||
mr_ank | cool | ||
Chewie[] | It also really didn't like <f oo bar>>>.elems :-D | 05:07 | |
mr_ank | yes | ||
and i tried it again with the quotes in place and it doesn't work either way | |||
hey, do i need an svn commit account to add a few tests? | 05:10 | ||
(been working on anonymous svn) | 05:11 | ||
Chewie[] | You probably do. That's something I need to find out how to get in the near future. | ||
mugwump | yes you will, ask any of the admins as listed on the openfoundry project page | 05:12 | |
geoffb | Ping a meta commiter, they will send you an invite email | ||
mr_ank | okay | ||
geoffb | mugwump, perhaps add this to the docs/talks/ ? | 05:15 | |
mugwump hmms | 05:17 | ||
geoffb | mugwump, you show slides the convert a P5 while into a P6 loop, then a P5 for loop into a P6 while. That will confuse | 05:18 | |
mugwump | or amuse | 05:19 | |
geoffb | heh | ||
mr_ank | okay, should I register in openfoundry and then ping an admin from there? | ||
geoffb | I'm basing that comment on a presumed beginner level viewer | ||
mugwump | mr_ank: you don't need to, the invitation will ask you to sign up | 05:20 | |
geoffb | mr_ank, I believe you just ping and they invite you to OF | ||
mugwump, is there a large version of the image on slide37 somewhere? | 05:21 | ||
mr_ank | ping == just email one of them? or a particular OF feature i'm not seeing? | ||
geoffb | as in, when one of them is around here, /msg them with your request and email address | 05:24 | |
mr_ank | ah okay :) | ||
geoffb | OK, time to amble slowly towards bed . . . | 05:29 | |
g'night, all | |||
mr_ank | g'night :) | ||
gaal_ | morning! | 05:32 | |
Khisanth | geoffb: that sounds like a good way to get people to ask "What is the point of Perl 6?" :) | 05:33 | |
sdtr443w | Ah well I give up getting the new Pugs working. I'm sticking to 6.0.13 for now. Good night. | 05:34 | |
autrijus | yo mr_ank. your email? :) | 05:36 | |
got it. welcome aboard! | 05:39 | ||
mr_ank | thanks! | ||
autrijus | mugwump: url to your slides? | 05:40 | |
I must've missed it | |||
mr_ank | <mugwump> utsl.gen.nz/perl6-intro/html/ # talk I'm giving tonight ... | ||
autrijus | k thanks | 05:43 | |
hcchien | autrijus: saw my rx tests? | 05:57 | |
gaal_ | mugwump, did you find the =<> you were looking for? | ||
autrijus | hcchien: no, where? | 05:58 | |
gaal_ | op1 "=" and lib/pugs/run.pod <- -n and -p switches | ||
hcchien | autrijus: like these: | ||
12:30 < hcchien> this would be broken: say $str if ($str ~~ rx:perl5/http:\/\//); | |||
12:31 < hcchien> but it's fine with: say $str if ($str ~~ rx:perl5{http:\/\/}); | |||
autrijus | you mean the rx interpolation is bad? | 06:00 | |
yeah, looks like so. | |||
hcchien | I guess so. what do you think? | ||
autrijus | write a t/rules/escape.t please? | ||
and commit it | |||
I'll take a look | |||
hcchien | or rx_perl5_match.t ? | 06:01 | |
autrijus | it's not _match | 06:02 | |
so rx_perl5_escape | |||
hcchien | k | 06:03 | |
autrijus | mr_ank: remember to add yourself to AUTHORS | 06:12 | |
autark-jp | the qfInterpolateBackslash of rxP5Flags (and maybe rxP6Flags as well) should probably be QB_Single and not QB_No. | 06:16 | |
autrijus | autark-jp: ooh. commit ahead :) | 06:17 | |
autark-jp | however, that makes rx:perl5/http:\q[//]/ legal | ||
\me scratches head | |||
autrijus | may not be a bad thing :) | 06:25 | |
svnbot6 | r4583, autark++ | * make '\' protect delimiters in rx | 06:36 | |
autrijus | hcchien: fixed :D but still test welcome | 06:41 | |
hcchien | autrijus: sure | 06:59 | |
gaal_ | hello. i've made a list of candidates for Preludification. | 07:01 | |
pugs.kwiki.org/?PreludificationCandidates | |||
Please hack :) | |||
q[pdcawley] | ?eval class Array { method foo { "Foo" } }; [].foo | 07:40 | |
evalbot6 | Error: No compatible subroutine found: "&foo" | ||
svnbot6 | r4584, autrijus++ | * Test and document for a new bug that prevents s:P5{}{{...}} from | ||
r4584, autrijus++ | interpolating. | |||
q[pdcawley] | ?eval class Array { method foo { "Foo" } }; my @foo = (10); @foo.foo | ||
evalbot6 | 'Foo' | 07:41 | |
q[pdcawley] | Where do I send a test patch to? | ||
autrijus | q[pdcawley]: invitation sent. | 07:42 | |
welcome aboard! | |||
as we're nearing preflight, please add :todo<bug> to the patch. | |||
q[pdcawley] | And does this test classes or data types or what? ie, what file should I stick it in? | 07:43 | |
gaal_ | autrijus, any chance to get the intermediate accessor bug fixed before this release? :) | ||
autrijus | gaal_: what's that bug again? | ||
gaal_ | ?eval caller.subname | ||
evalbot6 | Error: No compatible subroutine found: "&subname" | ||
gaal_ | ?eval my $c = caller; $c.subname | ||
evalbot6 | Error: No compatible subroutine found: "&subname" | ||
gaal_ | oops! | ||
autrijus | ... | 07:44 | |
but anyway. to get that to work | |||
q[pdcawley] | is &?CALLER_CONTINUATION or whatever it's called a full continuation yet? | ||
autrijus | declare your sub as "returns Code". | ||
gaal_ | ?eval sub x { my $c = caller; $c.subname } sub y{x} y | ||
evalbot6 | \'&main::y' | ||
gaal_ | ?eval sub x { caller.subname } sub y{x} y | 07:45 | |
evalbot6 | Error: No compatible subroutine found: "&subname" | ||
autrijus | q[pdcawley]: you can try... I think it's full, not sure | ||
gaal_: "returns Code" | |||
q[pdcawley] | Heh. I'll get that non-deterministic Sudoku solver written and see if it breaks :) | ||
gaal_ | autrijus: on what? subname is really $.subname | ||
autrijus | gaal_: on caller() | 07:46 | |
q[pdcawley]: fwiw, pugs currently discards no scope | |||
q[pdcawley]: so eval"" will always work | |||
q[pdcawley] | Whee! | ||
Don't tell chip :) | |||
autrijus | otoh, pugs is also not very fast nor memory friendly | ||
I make no promise of what will become when we compile to parrot. | 07:47 | ||
q[pdcawley] | Bah! | ||
autrijus | otgh, I like the eval_in_caller_scope idea. | ||
in fact, I desperately need something like that. | |||
(for eval_is() to work) | |||
q[pdcawley] | Exactly. | ||
autrijus | so if you can get the syntax defined for p6 | ||
on p6l | |||
please do so | |||
maybe in another thread, maybe not | |||
q[pdcawley] | Will try. | ||
autrijus | danke. | 07:48 | |
q[pdcawley] | I don't mind that it's not built in, I do mind that I can't write it. | ||
Which might well be my Perl 6 motto. | |||
autrijus mumbles something about inline PASM | 07:49 | ||
gaal_ | autrijus, i'm building in the background, but could you explain *why* is Code should fix the problem? caller is supposed to return an object, not code. | ||
autrijus | gaal_: oh, it's an object? | ||
then declare it as such. | |||
returns Control::Caller | |||
or something like that. | |||
gaal_ | yes, it's supposed to return a Contorl::Caller | ||
yeah. | |||
autrijus | the reason is in chained method calls | ||
gaal_ | okay, still: why does this matter? | ||
autrijus | $a.foo.bar | ||
currently the MMD resolver for .bar has no access to $a.foo's actual results | 07:50 | ||
but only the EXp | |||
so it's a expression-based dispatch | |||
gaal_ nods | |||
autrijus | that is arguably wrong. | ||
and needs fixing | |||
but not for this release :) | |||
gaal_ | :) | ||
autrijus | also, if you have a bit of tuits, I need help on ChangeLogging :) | 07:51 | |
autrijus is triaging the tests | |||
gaal_ | sure - do you have the r number for the last release? | ||
autrijus | 4424 | 07:53 | |
gaal_ | thanks | ||
hah! sub foo () returns X is A; # ok | |||
sub foo() is A returns X; # error | 07:54 | ||
autrijus | that's right. | ||
fixes... welcome :) | |||
gaal_ | "not for this release" | ||
autrijus | lol | 07:55 | |
gaal_ | autrijus, your "returns" fix yields a very strange error: | 07:56 | |
oh wait no | 07:57 | ||
q[pdcawley] | Mmm... tramp.el++ | ||
autrijus | "the fact that it works is the strangest error" | ||
gaal_ | no, it just doesn't do anything :( | ||
heh hrh | |||
oh! look: | 07:58 | ||
..... caller.subname # error | |||
caller().subname # ok | |||
well, this is an improvement, so i'm checking it in | 07:59 | ||
autrijus | k | 08:00 | |
q[pdcawley] | ?eval my @foo; @foo.foo | ||
evalbot6 | Error: No compatible subroutine found: "&foo" | ||
autrijus | meanwhile I unbroke map {3 => 4;} 1,2,3 | ||
gaal_ | but i'm correct in calling this a bug, yes? | ||
autrijus | gaal_: you are. | ||
q[pdcawley] | ?eval my @foo = (1,2,3); @foo.foo | ||
evalbot6 | Error: No compatible subroutine found: "&foo" | ||
08:00
gaal_ is now known as gaal
|
|||
autrijus wonders what is q[pdcawley] trying to do | 08:01 | ||
q[pdcawley] | ?eval class Array { method foo { "Foo" } }; my @foo; @foo.foo | ||
evalbot6 | 'Foo' | ||
q[pdcawley] | ?eval class Array { method foo { "Foo" } }; [].foo | ||
evalbot6 | Error: No compatible subroutine found: "&foo" | ||
q[pdcawley] | Checking stuff again before writing the test. | ||
?eval class Array { method foo { "Foo" } }; my $foo = []; $foo.foo | |||
evalbot6 | 'Foo' | 08:02 | |
q[pdcawley] | Sorry, should really do this on feather shouldn't I? Wow. Expected that to break. | ||
autrijus | nah, that's fine. awating your test. | ||
q[pdcawley] | Writing it as we speak. Post to p6c? | ||
autrijus | no, commit it! | 08:03 | |
you got an invitation mail after all :) | |||
q[pdcawley] | Err... I haven't a clue what my perl id or key is. | ||
autrijus | hm? it's openfoundry thing | ||
you can commit into svn.openfoundry.org/pugs | |||
as soon as you click on the url in that mail | |||
q[pdcawley] | Ah. Okay. | ||
autrijus | and agree to turn in your first unborn parent, or something | 08:04 | |
q[pdcawley] | Might take a while, I'm greylisting. | ||
autrijus | 'kay. then it's easier just to hop on rt.openfoundry.org/ | ||
and click "register" | |||
and tell me your userid. | |||
q[pdcawley] | Got it. | ||
autrijus | and by the time you check in your test it'd be passing. | 08:05 | |
q[pdcawley] | :) | ||
autrijus | pugs is strange like that. | ||
hcchien | hmm...., make the pugs failed | ||
autrijus | hcchien: how? | 08:06 | |
svnbot6 | r4585, autrijus++ | * fix a regression that made `map { 1 => 2; } @x` break -- Noop | ||
r4585, autrijus++ | is now restored at an empty trailing semicolon. | |||
hcchien | linking failed, a sec. let me try to paste it on nopaste | ||
autrijus | q[pdcawley]: also remember to add yourself to AUTHORS. | 08:07 | |
q[pdcawley] | So, I'm in feather, I've got an svk thing checked out, how do I check it back in (sorry for being dumb). | ||
autrijus | svk ci | 08:08 | |
hcchien | autrijus: irc.csie.org:8888/110 | ||
autrijus | if you see "committing back" then it all works | ||
q[pdcawley] | And it asks for id and password? | ||
autrijus | right | ||
q[pdcawley] | So much nicer than CVS :) | ||
autrijus | that'd be your openfoundry id/passwd | ||
hcchien: are you using gcc 3.3 on a clean tree? | 08:09 | ||
hcchien: `gcc_select 3.3` | |||
q[pdcawley] | Fecking zsh, refusing to honour stty erase... | ||
hcchien | oh, hate gcc 4. :p | 08:10 | |
q[pdcawley] mutters... still haven't got GHC building on tiger. Cleaned everything out and it bitches about out of date syntax or something during hte compile. | 08:12 | ||
svnbot6 | r4586, gaal++ | caller().subname works (though caller.subname still doesn't). autrijus++ | ||
r4587, autrijus++ | * test fixups. | |||
r4588, autrijus++ | * pdcawley noted that `[].method` did not call `Array::method`; | |||
r4588, autrijus++ | neither does `{}.method` call `Hash::method`. Fixed. | |||
r4589, autrijus++ | * I fail to see where .elems would return 1-based index; | |||
r4589, autrijus++ | changed to test .keys, which works. | |||
q[pdcawley] | Ooh, forgot to add a check for hashes.... I'll do that now. | 08:13 | |
What about pairs made with the cunning pair constructor whose syntax I've forgotten? | 08:15 | ||
?eval :head<tail> | 08:16 | ||
evalbot6 | ('head' => 'tail') | ||
q[pdcawley] | ?eval :head<tail>.key | 08:17 | |
evalbot6 | undef | ||
q[pdcawley] | ?eval :head<tail>.value | ||
evalbot6 | Error: cannot cast from VUndef to (Pugs.AST.Internals.Val,Pugs.AST.Internals.Val) | ||
q[pdcawley] | ?eval (:head<tail>).value | ||
evalbot6 | Error: cannot cast from VUndef to (Pugs.AST.Internals.Val,Pugs.AST.Internals.Val) | ||
autrijus | [=>] <head tail> | ||
?eval [=>] <head tail> | |||
evalbot6 | ('head' => 'tail') | ||
autrijus | ?eval [=>] <head tail foo bar> | ||
evalbot6 | ('head' => ('tail' => ('foo' => 'bar'))) | ||
q[pdcawley] | ?eval :head<tail>.head | ||
evalbot6 | Error: No compatible subroutine found: "&head" | ||
svnbot6 | r4590, autrijus++ | * hardtodo'ed sprintf_and_as.t | ||
autrijus | ?eval ([=>] <head tail foo bar>)key | ||
?eval ([=>] <head tail foo bar>).key | |||
evalbot6 | Error: unexpected "k" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
'head' | |||
autrijus | ?eval ([=>] <head tail foo bar>).value | ||
evalbot6 | ('tail' => ('foo' => 'bar')) | 08:18 | |
autrijus | ?eval ([=>] <head tail foo bar>).value.value | ||
evalbot6 | ('foo' => 'bar') | ||
autrijus | ?eval ([=>] <head tail foo bar>).value.value.value | ||
evalbot6 | \'bar' | ||
q[pdcawley] | ?eval :head<tail>.value | ||
evalbot6 | Error: cannot cast from VUndef to (Pugs.AST.Internals.Val,Pugs.AST.Internals.Val) | ||
q[pdcawley] | ?eval (:head<tail>).value | 08:19 | |
evalbot6 | Error: cannot cast from VUndef to (Pugs.AST.Internals.Val,Pugs.AST.Internals.Val) | ||
q[pdcawley] | ick. | ||
autrijus | ?eval (head => 'tail').value | ||
evalbot6 | Error: cannot cast from VUndef to (Pugs.AST.Internals.Val,Pugs.AST.Internals.Val) | ||
autrijus | I think I know why. | ||
q[pdcawley] | Oh good :)( | ||
autrijus | it's being parsed as | ||
value(:head<tail>) | |||
as in, a named argument 'head'. | |||
so, a :todo<bug> test welcome | |||
q[pdcawley] | Add :todo<bug> to the commit message right? | 08:20 | |
autrijus | no, the test | ||
is('foo', 'bar', :todo<bug>); | |||
q[pdcawley] | Oh fuck. I've written things a test method in the hash... | ||
Not an issue with pair thing of course. | |||
is there a quick and dirty way of running just one test file? | 08:23 | ||
ie, a perl6 version of prove. | |||
autrijus | env HARNESS_PERL=./pugs prove ... | 08:24 | |
env HARNESS_PERL=./pugs prove t/foo/bar | |||
q[pdcawley] | coo. | ||
cool. | |||
autrijus | make subdirs; ./pugs -Iblib6/lib t/foo/bar | ||
etc. | |||
(Test Anything Protocol)++ | |||
q[pdcawley] | cool innit? | 08:32 | |
svnbot6 | r4591, autrijus++ | * test cleanup, round #2. | 08:33 | |
gaal | autrijus: ChangeLog 87% done | ||
is lvalue substr a feature or a bugfix? :) | 08:35 | ||
mr_ank | ?eval <A B> ~~ ('A',/B/) | 08:37 | |
evalbot6 | bool::false | ||
mr_ank | Shouldn't that be true? | ||
q[pdcawley] | cool innit? | 08:38 | |
Oops, wrong window. | |||
gaal | ?eval <A B> | ||
evalbot6 | ('A', 'B') | ||
gaal | (1,2) ~~ (1, 2) | 08:39 | |
?eval (1,2) ~~ (1, 2) | |||
evalbot6 | bool::true | ||
gaal | ?eval (1,2) ~~ (1, 2.0) | ||
evalbot6 | bool::true | ||
mr_ank | regexes should be allowed there afaik | ||
gaal | ?eval (1,2) ~~ (1,/2/) | ||
mr_ank | (s/regexes/rules/ heh) | ||
evalbot6 | bool::false | ||
mr_ank | look at this | 08:40 | |
gaal | i think the definition of ~~ isn't... creepy | ||
mr_ank | ?eval <a> ~~(/a/) | ||
evalbot6 | pugs: src/events.c:265: init_events_first: Assertion `rc == 0' failed. | ||
gaal | ie for lists, it doesn't recursively ~~ in the list | ||
brb | |||
mr_ank | im looking for more info about that... | 08:41 | |
i remember reading it somewhere other than the perl 6 & parrot essentials book | |||
gaal | look at the big ~~ table in A04 i think it is | 08:42 | |
mr_ank | yep | 08:43 | |
list list recursive disjunction* match if any($a) =~ any($b) | |||
but it isn't quite that | |||
svnbot6 | r4592, pdcawley++ | Added test for calling methods on arrays and hashes, including anonymous ones. | 08:44 | |
08:44
scw_ is now known as scw
|
|||
mr_ank | darn, this is going to drive me crazy | 08:45 | |
gaal | does `as` work now? | 08:46 | |
nothingmuch | anybody got a nice project for someone just learning computers? | 08:48 | |
ingy | hola | ||
nothingmuch | a 1-2 hour job | ||
ingy | want to see something cool? | ||
nothingmuch | if it's not obscene | ||
gaal | ingy, we always want to see your *modules* | 08:49 | |
ingy | doolittle.kwiki.org/ | ||
there you go gaal | |||
gaal | this is why i like #perl6 | ||
nothingmuch | #touch-my-monads, #touch-my-modules | ||
gaal | instant gratification | ||
doolittle.kwiki.org/index.cgi?HomePage # is sucking | 08:50 | ||
mr_ank | yes oretty much | ||
*pretty | |||
doolittle.kwiki.org/index.cgi?actio...on-Command # is sucking too | 08:51 | ||
brb | 08:53 | ||
gaal | perlcabal.org/~gaal/smoke_xp.html # r4587 | ||
q[pdcawley] | ?eval try { die "Foo"; CATCH { "Caught Foo" } } | ||
evalbot6 | undef | ||
gaal | ChangeLog updated. | ||
q[pdcawley] | undef? weird. | ||
?eval try { die "Foo"; CATCH /.?/ { "Caught Foo" } } | 08:54 | ||
evalbot6 | undef | ||
svnbot6 | r4593, pdcawley++ | Added a test of method calls on a bare pair | ||
r4594, gaal++ | ChangeLog updates (to 4592) | |||
r4595, autrijus++ | * Turn p5 regexes back to QB_No again (not QB_Single) because | |||
r4595, autrijus++ | we need to preserve the double \\ into PCRE. | |||
r4595, autrijus++ | (this needs further investigation.) | |||
q[pdcawley] | ?eval try { die "Foo"; CATCH { return "Caught Foo" } } | ||
evalbot6 | undef | ||
gaal | my favorite part of ChangeLogging is this line: | ||
* Some new test and several tests refactored, we now have 7650+ tests | |||
q[pdcawley] | How is that undef? | 08:55 | |
gaal | brb | ||
Aankhen`` | ?eval die "Foo" | 08:58 | |
evalbot6 | Error: Foo | ||
svnbot6 | r4596, autrijus++ | * test fixes, round #3. | 09:02 | |
q[pdcawley] | Is there an array slicing syntax yet? | 09:03 | |
nothingmuch | test runs are ~5 times longer with each passing month... I wonder if that is a good thing ;-) | ||
cognominal | nothingmuch, thx so much about you Forth stuff | 09:05 | |
nothingmuch | wow! 4th or 5th good comment =) i'm overjoyed | 09:06 | |
i'll try to get chapter 8 out of the door today | |||
cognominal | it really feels a gap to bootstrap oneself to become a lambda camel | ||
autrijus | ?eval my @a = 1..10; @a[4,5,6] | 09:08 | |
evalbot6 | [5, 6, 7] | ||
nothingmuch | any feedback? | ||
autrijus | q[pdcawley]: there you go | 09:09 | |
nothingmuch | also, how far did you get so far? | ||
q[pdcawley] | Great. Ta. | ||
Now, what's a quick way of writing 'all_distinct(@some_array)'? | |||
autrijus | ?eval my @a = (1,1,2,3,5,8,13,2,3,5); @a.uniq | 09:10 | |
evalbot6 | (1, 2, 3, 5, 8, 13) | ||
q[pdcawley] | So @a.uniq == @a should do the trick? | ||
nothingmuch | @a.=uniq eventually | ||
autrijus | sure | ||
?eval my @a = (1,1,2,3,5,8,13,2,3,5); @a .= uniq; | 09:11 | ||
evalbot6 | [1, 2, 3, 5, 8, 13] | ||
q[pdcawley] | Cool... Makes this sudoku solver read easy to write... | ||
nothingmuch | autark-jp++ | ||
q[pdcawley] | Admittedly, it won't be quick, but it'll be dead easy to write :) | ||
autrijus ponders renick to "autarijus" | |||
nothingmuch | autrijus++ | ||
autrijus | because "ijus" sorts better than "k-jp" | ||
nothingmuch | oops ;-) | ||
autark-jp | hm, here's a better solution | 09:13 | |
q[pdcawley] | ?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); @foo[0,1][0,1]; | ||
evalbot6 | [[1, 2, 3, 4], [1, 2, 3, 4]] | ||
09:13
autark-jp is now known as jp-autark
|
|||
q[pdcawley] | Shame! | 09:13 | |
?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); @foo[0,1]<<[0,1]>>; | |||
evalbot6 | Error: Cannot cast into Hash: VRef <Array::Slice> | ||
q[pdcawley] | ?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); @foo[0,1]>>[0,1]<<; | ||
evalbot6 | Error: unexpected ">" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
q[pdcawley] | Curse... | ||
?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); @foo[0][0..3] | 09:14 | ||
evalbot6 | [1, 2, 3, 4] | ||
q[pdcawley] | ?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); @foo[0][0..2] | ||
evalbot6 | [1, 2, 3] | ||
q[pdcawley] | ?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); @foo[0..4][0..2] | ||
evalbot6 | [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] | 09:15 | |
q[pdcawley] | ?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); [@foo[0..4]][0..2] | ||
evalbot6 | [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] | ||
nothingmuch | jp-autark++ | ||
autrijus | jp-autark: er. thanks :) | ||
q[pdcawley]: deref isn't yet hyperised. | |||
q[pdcawley] | NP. I can write a map. Now must go help gill with a crossword. | 09:16 | |
autrijus | hm. here's a docs task for people who have a bit time | 09:18 | |
refactor the pod part out of lib/pugs.pm into lib/pugs.pod | |||
and in pugs.pod mention both the pugs command line and the pugs.pm module | |||
as well as provide links to pugs::run and pugs::hack | |||
in the same style as "man perl" | |||
anyone got a few seconds to work on this? | |||
q[pdcawley] | ?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); [map {$^a[0]}, @foo[0..3]] | 09:20 | |
evalbot6 | Error: unexpected "[" expecting ";", statements or end of input | 09:21 | |
q[pdcawley] | Hmm... | ||
What's wrong with that? | |||
?eval my @foo = ([1..4], [1..4], [1..4], [1..4]); [map -> $a {$a[0]}, @foo[0..3]] | |||
evalbot6 | [1, 1, 1, 1] | ||
q[pdcawley] | Ah. | ||
autrijus | ?eval {$^a} | 09:22 | |
evalbot6 | Error: unexpected "\\" expecting "::" | ||
autrijus | ?eval {$^a[0]} | ||
evalbot6 | Error: unexpected "\\" expecting "::" | ||
autrijus | it's I think a evalbot bug | ||
ingy | hi autrijus | 09:24 | |
autrijus | hi ingy | 09:25 | |
ingy | autrijus: did you see doolittle? | ||
gugod helped me write the plugin in a couple hours | 09:26 | ||
doolittle.kwiki.org/ | |||
autrijus | no. | ||
ingy | anyway, if you want i can put all your modules under it | ||
and let the community doc them | 09:27 | ||
autrijus | sure | ||
ingy | the changes are saved right back into the modules | ||
so you can review with svk | |||
and keep the stuff you like | |||
it's awesome | |||
q[pdcawley] | Hmm... seems &?CALLER_CONTINUATION doesn't work yet... | ||
Or I've not implemented choose/give_up correctly. | 09:28 | ||
autrijus | q[pdcawley]: t/unspecced/cont.t gives status quo | ||
q[pdcawley] | okay. | ||
So the continuations we have are only escape continuations. | 09:29 | ||
09:29
webmind_ is now known as webmind
|
|||
autrijus | there's plan to make it full one in my paper :) | 09:30 | |
q[pdcawley] | How long, oh autrijus, how long? | ||
autrijus | feel free to write :todo<feature> tests | ||
I trade feature for tests, as you know. | |||
q[pdcawley] | You asked for it :) | 09:31 | |
q[pdcawley] mutters to himself "So, how to reduce this to the minimum 'useful' example... | 09:32 | ||
nothingmuch | ingy: i'd like that doolitle stuff at least for Test::TAP::... | 09:34 | |
you didn't mention before that it's read/write... that's a wonderful idea! | |||
well now that i'm dressed, a beer, and i'm off | 09:35 | ||
ciao guys | |||
beer is like gatorade, only it tastes good | 09:36 | ||
q[pdcawley] | Ooh, now that's weird... | 09:42 | |
?eval sub callcc (Code &block) {&block(&?CALLER_CONTINUATION)}; my $cnt; my $counter=0; callcc -> $c {$cnt = $c}; $counter++; $cnt(5) unless $counter == 3; $counter | 09:43 | ||
evalbot6 | 5 | ||
svnbot6 | r4597, autrijus++ | * round #4 of test fixes. | ||
q[pdcawley] | ?eval sub callcc (Code &block) {&block(&?CALLER_CONTINUATION)}; my $cnt; my $counter=0; callcc -> $c {$cnt = $c}; $counter++; $cnt(5) unless $counter == 3; $counter | 09:44 | |
evalbot6 | 5 | ||
gaal | autrijus, i've got a smoke or roud 3 coming up (in t/pugstun/ now). i'll let it finish, ja? | ||
* of round | |||
autrijus | gaal: sure | ||
q[pdcawley] | The continuation doesn't even bounce back to the right place... | 09:45 | |
autrijus | I'll review checngelog now | ||
gaal | oh, make sure to change the very first line | ||
autrijus | sure | ||
q[pdcawley] | The continuation doesn't even bounce back to the right place... | 09:46 | |
Argh! Wrong window. Again. | 09:47 | ||
Can I check in a non working example to show the sort of thing that can be done with full continuations? | 09:51 | ||
svnbot6 | r4598, pdcawley++ | Added a simple continuation based loop to test full continuations. | ||
r4599, autrijus++ | * change hw2005.txt to hw2005.tex | |||
autrijus | q[pdcawley]: sure, check it in as examples/continuation/ | 09:52 | |
and clearly mark it as broken | |||
q[pdcawley] | Wilco. I've written a non deterministic brute-force sudoku solver and, though I say so myself as shouldn't, it's gorgeous. | 09:53 | |
gaal | perlcabal.org/~gaal/smoke_xp.html # r4596 | ||
mr_ank | non deterministic? where? | 09:54 | |
q[pdcawley] | About to be checked in to examples/continuation | ||
mr_ank | cool! | ||
q[pdcawley] | It doesn't work yet. | 09:55 | |
gaal | i've begun a smoke of 4600 as a pre-preflight measure. | ||
autrijus | ditto here. | 09:57 | |
svnbot6 | r4600, autrijus++ | * fix test plan numbers (for the release). | ||
r4601, autrijus++ | * cleanup changelog | |||
autrijus | if looks good, we enter preflight. | ||
gaal | will take 20 more minutes to complete though. | ||
autrijus | gaal: can you handle the pugs.pod thing? | ||
autrijus is still relenging | |||
gaal backloggeth | |||
sure. | 09:58 | ||
svnbot6 | r4602, pdcawley++ | Added an example of the kind of programming that access to full | 10:04 | |
r4602, pdcawley++ | continuations enables. A UI will be forthcoming when we get full | |||
r4602, pdcawley++ | continuations. | |||
gaal | pugs.pm in the context of pugs docs / pugs.pod can be confusing | 10:05 | |
not sure how (wehther) to place it in the SYNOPSIS section of that pod at all | 10:06 | ||
autrijus | oh | 10:07 | |
say that you can use it at command line | |||
_and_ as a library in p5 programs | |||
give one example of each | |||
that I think is okay | 10:08 | ||
gaal | yes, i now have =head1 SYNOPSIS | ||
B<pugs> [OPTIONS] | |||
B<perl> -e 'use pugs; # perl 6 code here...' | |||
btw, it's cute for p6 pods to have a SYNOPSIS section ;-) | |||
svnbot6 | r4603, pdcawley++ | A few explanatory comments. Not many... | 10:10 | |
r4604, autrijus++ | * round #5. | 10:35 | ||
gaal | ah, which reminds me, new matrix up | 10:36 | |
of r4600 | |||
autrijus | oh. url again? | 10:38 | |
gaal | perlcabal.org/~gaal/smoke_xp.html | 10:39 | |
pod in a minute | |||
kungfuftr | 7666 tests... spooky | 10:40 | |
autrijus | gaal: hm, line 28 of caller.t failsforyou? | 10:43 | |
gaal: weird | |||
it worksforme | |||
gaal | i may have junk in, let me check | 10:44 | |
sec | |||
(running r4604 smoke now) | 10:45 | ||
yes, it is failing for me. | 10:47 | ||
btw pugs.pod in | |||
autrijus | gaal: hm. what to do what to do. | ||
(it worksforme.) | |||
will you change it to skip it for now? | 10:48 | ||
is it possible you have unchecked in local changes? | |||
gaal | !? when i prove, it works. | ||
no, i checked. | |||
autrijus | or Prelude.pm foo? | ||
gaal | when i make test, it doesn't work. | ||
er, make smoke | |||
autrijus | wtf. :-/ | ||
svnbot6 | r4605, gaal++ | pugs POD | ||
gaal | oh, crap | 10:50 | |
look at the diff: | |||
Expected: 't/builtins/caller.t' | |||
Got: 't\builtins\caller.t' | |||
autrijus | fix it please :) | ||
mr_ank | recompiling Pugs... dum deh dum... | ||
gaal | and i ran prove in a cygwin box, but make smoke in a dos box :) | 10:51 | |
:) | |||
autrijus | nvm, I attempted a fix | 10:52 | |
gaal | eh, should use $Config directory separator | ||
gaal == stoopid | |||
autrijus | I used $?FILE | ||
gaal | heh :) | ||
autrijus | even better eh :) | ||
gaal | that's better | ||
gaal chuckles | 10:53 | ||
though if you do that you'd better add a sanity check for them both not to be undefined. | |||
(i'll add it) | |||
svnbot6 | r4606, autrijus++ | * bump version. we're now in preflight! | ||
r4606, autrijus++ | * remove perl5-specific paras from pugs.pod. | |||
r4607, autrijus++ | * fix platform specifity in caller.t; noticed by gaal++ | |||
gaal | ooh, preflight! | 10:54 | |
mr_ank | q[pdcawley]: your continuations code looks very mysterious to me | ||
autrijus | nah. sanity is tested elsewhere | 10:55 | |
gaal | k | ||
got a tarball? | |||
autrijus | a sec | 10:56 | |
running into MANIFEST problems | |||
with space in filenames | |||
gaal | in time like these, /me wishes for GHC had a global ccache-like cache. | ||
s/for// | |||
autrijus | bah. manifest doesn't support spaces in filenames. | 10:57 | |
gaal | oi | ||
autrijus | so much for cleverness. | ||
uploading | 10:59 | ||
svnbot6 | r4608, autrijus++ | * sadly, ignore t/builtins/system/ because MANIFEST cokes | ||
r4608, autrijus++ | on filenames with spaces. | |||
autrijus | yo! | ||
Preflight #1 perlcabal.org/~autrijus/Perl6-Pugs-...re1.tar.gz | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste at sial.org/pbot/perl6 | 11:03 | ||
autrijus | perlcabal.org/~autrijus/Perl6-Pugs-...re1.tar.gz | 11:03 | |
please test :) | |||
gaal | e742d2ce436121ee1b259b0f6aa55b662c4950bf ? | 11:04 | |
jrieks | [email@hidden.address] | ||
autrijus | gaal: yes | ||
svnbot6 | r4609, gaal++ | minor fixes | ||
autrijus | 910384751a111c918799f87918b6664a too | ||
gaal | it has two sums? | ||
autrijus | gaal: note the length, silly :) | ||
gaal | junctive sums :) | 11:05 | |
jrieks | 910384751a111c918799f87918b6664a Perl6-Pugs-6.2.7-pre1.tar.gz | ||
autrijus | jrieks: invitation sent. welcome aboard (as the ship is about to sail again)! | ||
jrieks: also add your name to AUTHORS | |||
gaal | btw: do we still need to 'nmake | 11:06 | |
before 'nmake smoke'? | |||
ew, i said nmake | |||
autrijus | probably not | ||
ew you said nmake | |||
gaal | hey, why'd it try to buid with embedded p5? :( | 11:07 | |
autrijus | you have naughty env? | ||
gaal | err | 11:08 | |
yes | |||
gaal bonks himself on the head | |||
mr_ank | is src/Pugs/Parser.hs the main grammar description? | ||
(or something of the sort?) | |||
autrijus | mr_ank: aye | 11:11 | |
Aankhen`` | Aye aye! | ||
Aankhen`` syncs up and tests. | |||
mr_ank | cool | 11:12 | |
Is there a standard/automated way of working with large parsers? or do you guys just work on the file directly? | 11:13 | ||
autrijus | that file is not generated | ||
if that's what you mean | |||
mr_ank | well, i only have experience with the Dragon Book | 11:14 | |
so I am outdated | |||
autrijus | I think Parser.hs is actually easy to understand :) | ||
(more so than the dragon book that is) | |||
mr_ank | It looks really really cool - I am definitely putting more effort into my abandoned haskell wannabe-skills | 11:15 | |
autrijus | :D | 11:18 | |
mr_ank: want a committer bit? | |||
gaal | (moving to ext/ tests) | ||
mr_ank | oh i haven't tried commiting yet - do i need it? | 11:19 | |
autrijus | oh, you're already committer. | ||
didn't see your name in AUTHORS. | |||
try adding yourself to it? | 11:20 | ||
mr_ank | I haven't commited anything yet... and until then i am not adding my name to the list | ||
autrijus | alright... your choice then :) | ||
mr_ank | thanks anyway :) | ||
gaal | spooky! libwww-perl tests... contact the net! :) | 11:23 | |
autrijus | it's Alive! | 11:24 | |
svnbot6 | r4610, jrieks++ | added german perl 6 introduction talk, held at the austrian perl workshop 2005 | ||
gaal | (moved to t/; smoke ETA 15 minutes) | ||
autrijus | sofarsogood? | ||
gaal | yup | ||
oh, eliminating the spaces tests wil no doubt make things faster :) | 11:25 | ||
autrijus | not that I wanted that :) | 11:26 | |
gaal | say, how "erratic" is async? if it does work for simple things maybe i can hack cross-platform parallelability onto the smoke process? | ||
autrijus | on fbsd here it's pretty nonerratic | 11:27 | |
I thought smoke is already parallelisable? | |||
gaal | -j is disabled on windows because p5's fork isn't good enough | ||
autrijus | jrieks: how's your smoke running? | ||
ah. you can try to do it with p6. | 11:28 | ||
it may be better than perl5's. | |||
gaal | yes: hence, async. :) | ||
autrijus | I think it could work :) | ||
but then you want corion for details :) (or just try it out) | 11:29 | ||
gaal | yes, Corion's missed! i wonder what he's up to. | ||
brb | |||
still lookin' good. | 11:34 | ||
perlcabal.org/~gaal/smoke_xp.html # preflight 1 | 11:42 | ||
7341 test cases: 7341 ok, 0 failed, 986 todo, 492 skipped and 5 unexpectedly succeeded | |||
autrijus | mm 5 unTODOs! | ||
gaal | hate it when that happens :) | ||
mm 0 fails! :) | |||
autrijus | love it when that happens :) | 11:43 | |
gaal | (cut'n'pasted test descriptions)-- | 11:44 | |
autrijus | it failsforme. | 11:45 | |
gaal | oh. :( i was just about to ci | ||
autrijus | probably don't. :( | 11:46 | |
gaal | what env? | ||
autrijus | fbsd | ||
I think I'll skip for now and investigate after release. | |||
worksforyou? | |||
gaal | huh!? it's win32 tests | ||
autrijus | no it's testing File::Spec::Win32 | ||
gaal | why are you even running that? :) | ||
ahhhh | |||
ok | |||
autrijus | but I bet there's platform specificness. | ||
gaal | yes, well, i'd call it exactly a bug that hasn't been fixed yet then. :-/ | 11:47 | |
svnbot6 | r4611, autrijus++ | * skip errartically succeeding tests in 20_win32 until after release. | ||
autrijus | right. | ||
otherwise all fine? | |||
gaal | yes! | ||
autrijus | good. | 11:48 | |
autrijus waits for jrieks to finish smoking | |||
gaal | incidentally, there's something i haven't told you | 11:49 | |
autrijus | oh? | ||
autrijus braces for impact | |||
gaal | i am not left^H^H^H^Husing ghc 6.4 | ||
6.5 snapshot | |||
autrijus | that's fine | ||
shouldn't matter. | |||
Aankhen`` | Left...? | 11:50 | |
gaal | www.google.com/search?hl=en&lr=...tnG=Search | ||
Aankhen`` | Ah. :-) | ||
gaal | google golf tip: you can search for "precise expression without closing the quotes | 11:51 | |
Aankhen`` | :-o | ||
gaal | and precise expression*s* as well! | 11:52 | |
jrieks | autrijus: finished! no failure | 12:06 | |
just this: t/builtins/io/system.t | |||
/bin/sh: line 1: program_that_does_not_exist_ignore_errors_please.exe: command not found | |||
gaal | that's okay | ||
jrieks | yep, okay :-) | ||
gaal | is a pf#2 cooking? | 12:14 | |
autrijus | no, a release is coming :) | 12:18 | |
gaal | :) | 12:19 | |
gaal tails PAUSE | |||
autrijus | so have you tried trunk's win32 t? | ||
just running that file alone | |||
gaal | sec | ||
autrijus | and make sure it's skipped instead of todo but passes | ||
gaal | oooh, new talk | 12:20 | |
yes, it's good. | 12:21 | ||
autrijus | ok. fly! | 12:22 | |
gaal | woohoo | ||
svnbot6 | r4612, autrijus++ | * This be Pugs, version 6.2.7. | 12:26 | |
Juerd | re! | 12:31 | |
gaal | Juerd! long time no. | ||
Juerd | Hi | ||
svnbot6 | r4613, iblech++ | * docs/talks/perl6-apw2005, lib/pugs/hack.pod, examples/continuation, t/: | ||
r4613, iblech++ | Usual svn properties. | |||
r4613, iblech++ | * docs/talks/README: Added filenames of the talks. | |||
r4613, iblech++ | * lib/pugs/hack.pod: Reindented so fewer lines wrap on a 80 char display, | |||
r4613, iblech++ | filled SYNOPSIS section. | |||
Juerd | I've been away this week end | 12:32 | |
Aankhen`` | All tests successful (Win32, MSVC 7). | 12:34 | |
autrijus | good! | ||
autrijus uploadeth | |||
gaal cheereth | |||
Aankhen`` | Yowza. | 12:35 | |
gaal | PAUSE sendeth email(s) about uriid[A/AU/AUTRIJUS/Perl6-Pugs-6.2.7.tar.gz] | ||
Aankhen`` | Sudden flurry of added files? | ||
gaal | a talk, A. | ||
Aankhen`` | That I saw. :-) | ||
Umm... I compiled r4563. Is that very old? | |||
Er, wait. | 12:36 | ||
Aankhen`` wonders where he got that number. | |||
gaal | kinda old. | ||
Aankhen`` | Hrm, right, I got that from Pugs, nevermind. :- | ||
P | |||
gaal | we're at 4613 | ||
Aankhen`` | Apparently so... | ||
autrijus | it's ancient :) | ||
Aankhen`` | Heh. | 12:37 | |
gaal | '63 is this late this morning, i think. | ||
Aankhen`` | What can I say? 60 commits since I synced... | ||
Hrm. | |||
It took 1 hour 20 minutes to build and test. | |||
O_O | |||
And I ran `nmake unoptimized` this time... | 12:38 | ||
gaal | on your cuspy new box, A? | ||
aaaah, that's why | |||
Aankhen`` | Yep. | ||
Indeed. | |||
gaal | if you make test/smoke, optimize pays off. | ||
takes about 45 mintes here. | |||
autrijus | ditto here. | ||
gaal | minutes. | ||
Aankhen`` | I know, I dunno why I decided to do the unoptimized version this time. | ||
gaal | you were eager for tests to show up? | 12:39 | |
Aankhen`` | Not really. I just suddenly suffered from the delusion that it would speed up the whole process. | ||
gaal | "make faster" | ||
Aankhen`` | Ah well. | ||
I'll let it run again. | |||
Hmm. | 12:40 | ||
Strange. | |||
I wonder how come I have 4563... I coulda sworn I synced up just before building. | |||
gaal | svn info? | 12:41 | |
Aankhen`` wonders if it picked up the old pugs.exe in C:\Perl6\bin. | |||
No point now, I resynced already. | |||
Aankhen`` scrolls up to check. | |||
gaal | i recall there's some amount of lieage in the code that embeds the r number in the executable. | 12:42 | |
Aankhen`` | Ah. | ||
I was at r4609. | |||
(that was the last revision before "* Aankhen`` syncs up and tests") | |||
iblech | autrijus: linide.sf.net/pugs-svngraph-6.2.7.png and linide.sf.net/pugs-livecd-6.2.7.png (will be up in ten minutes or so) | 12:44 | |
Aankhen`` | Doesn't look like there were any changes to Pugs itself between then and now. | ||
gaal | iblech, what's the green line stand for? | 12:45 | |
Aankhen`` | I was just about to ask that. :- | ||
P | |||
gaal | i think i ask this every time and then every time forget :) | ||
would be nice to also have number of test cases on that graph, but that isn't trivial to implement... | 12:46 | ||
iblech | The green line is the num of developers, but scaled *50 | 12:49 | |
Yeah, num of test cases would be neat | 12:50 | ||
autrijus | iblech: thanks! feel free to post followup to p6c :) | ||
but it's livecd.iso right | |||
not .png :) | |||
iblech | Err, yes :) | ||
gaal | [+] grep { /plan (\d+)/; $1 }, qx<grep -r plan t/>; # modulo bugs | 12:51 | |
Juerd | s/grep/map/ | 12:52 | |
I think | |||
Hm, both. | 12:53 | ||
gaal | neither, this shouldn't shell out to gnu grep :) | ||
= on an iterator that recurses down t from perl | |||
Juerd | [+] map { /plan (\d+)/ ?? $1 :: 0 }, =slurp glob 't/**/*' then? :) | 12:54 | |
Aankhen`` | gaal >> C<^plan > might be better... | ||
Juerd | Assuming a glob that recurses for ** | ||
gaal | indeed | ||
Aankhen`` | Or: | ||
C<^\s*plan > | |||
Oops, didn't Backspace enough. | |||
^\s*plan | 12:55 | ||
gaal | autrijus, the title of your release message refers to 6.2.6 :) | 12:56 | |
autrijus | oh wow. | ||
;) | |||
gaal | oh - also it's %ENV<>, not $ENV :-/ | 12:57 | |
Juerd | $ENV = | 12:59 | |
$ENV = %ENV; | |||
Now it is :) | |||
gaal | ? | ||
Aankhen`` | Heh. | 13:00 | |
Juerd | gaal: $ENV<FOO> can work too, as long as $ENV is a hashref ;) | ||
gaal | i don't get it, but that's probably just a sign i should go have lunch | ||
autrijus | gaal: Juerd assigns %ENV into $ENV. | 13:01 | |
gaal: he's basically rogering with your mind :) | |||
gaal | ah. but pugs doesn't make that assunction. | ||
autrijus | you can do it in pugs too | ||
it's just you have to write it by hand. | |||
like: | |||
$*ENV = %*ENV; | |||
Juerd | Taking the world as it is doesn't fit a programmer's mind | ||
gaal | $ENV := sub {%*ENV} is rw; | 13:02 | |
Juerd | We change the world until it's right :) | ||
gaal eats lunch & | |||
Juerd | See? You do that too | ||
autrijus | o/~ freedom defined is freedom denied o/~ | ||
Juerd | Indeed | ||
hcchien | finally pushed | 13:03 | |
autrijus | hcchien++ | ||
Aankhen`` | Er... autrijus, small nitpick: it's "coerce:", not ":coerce". | 13:04 | |
autrijus | Aankhen``: fix it :) | ||
(I didn't add that changelog entry, fwiw) | |||
Aankhen`` goes back in time and warns autrijus before the mail is sent! | |||
OK. | |||
Aankhen`` edits. | |||
Aankhen`` wonders why it mentions HTTP::Message as a new bundled module twice. | 13:05 | ||
svnbot6 | r4614, hcchien++ | r11843@Mahler: hcchien | 2005-06-13 19:27:12 +0800 | ||
r4614, hcchien++ | add some tests for rx_perl5_(escape|match) | |||
Aankhen`` | Was parsing speed increased by 100% or 200%? | 13:08 | |
knewt | me-- # not checking autrijus' key fingerprint whilst we were both in vienna | 13:09 | |
Aankhen`` | ?eval 1^..10 | 13:15 | |
evalbot6 | Error: unexpected "\\" expecting digit, fraction, exponent, term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
svnbot6 | r4615, Aankhen++ | * ChangeLog: fixed ":coerce" -> "coerce:", fixed another small typo | ||
r4615, Aankhen++ | * removed "HTTP::Message" from the list of new modules in 6.2.7, since it was already listed under 6.2.6 | |||
r4616, scw++ | Update debian control file to v6.2.7 | |||
Aankhen`` | ?eval ^1..10 | ||
evalbot6 | Error: unexpected "^" expecting term | ||
Aankhen`` | How does ^.. work? | ||
mr_ank | ?eval (1..10).perl | 13:16 | |
evalbot6 | '(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)' | ||
Aankhen`` | ?eval 1..10 | ||
evalbot6 | (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) | ||
Aankhen`` | ?eval 1^..^10 | ||
evalbot6 | Error: unexpected "\\" expecting digit, fraction, exponent, term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
Aankhen`` | ?eval 1 ^..^ 10 | 13:17 | |
evalbot6 | Error: unexpected "\\" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
Aankhen`` | ?eval infix:<+>(1, 3) | ||
evalbot6 | 4 | ||
Aankhen`` | ?eval infix:<^..^>(1, 5) | 13:18 | |
evalbot6 | Error: No compatible subroutine found: "&infix:\\^..\\^" | ||
mr_ank | ?eval (1,2,3).perl | 13:19 | |
evalbot6 | '(1, 2, 3)' | ||
mr_ank | <1,2,3>.perl | ||
?eval <1,2,3>.perl | |||
evalbot6 | '\'1,2,3\'' | ||
Aankhen`` | ?eval <1, 2, 3>.perl | ||
mr_ank | hm | ||
iblech | Aankhen``: It's the old-evalhelper-doesn't-cope-well-with-^ | ||
evalbot6 | '(\'1,\', \'2,\', \'3\')' | ||
mr_ank | is that right? | ||
Aankhen`` | iblech >> Ah. | ||
mr_ank >> <1,2,3>.perl? Yes. | |||
<1,2,3> turns into a list with a single element: the string '1,2,3'. | 13:20 | ||
?eval 1..10.ref | |||
evalbot6 | () | ||
mr_ank | ah damn you are right | 13:21 | |
silly me | |||
and: | |||
?eval <1 2 3>.perl | |||
evalbot6 | '(\'1\', \'2\', \'3\')' | ||
mr_ank | hmm | 13:22 | |
iblech | ?eval Pugs::Safe::safe_print(<1 2 3>.perl) | 13:23 | |
evalbot6 | ('1', '2', '3')bool::true | ||
jrieks_ | ?eval "hello, world!".say | ||
evalbot6 | Error: No compatible subroutine found: "&say" | ||
iblech | ?eval <1 2 3> # evalbot already .perls the result | ||
evalbot6 | ('1', '2', '3') | ||
Aankhen`` | ?eval "foo".perl.perl.perl | ||
evalbot6 | '\'\\\'\\\\\\\'foo\\\\\\\'\\\'\'' | ||
jrieks_ | ?eval <1 2 3>xx99 | ||
evalbot6 | Error: unexpected "9" or "x" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
mr_ank | heh | ||
jrieks_ | ?eval <1 2 3>x99 | 13:24 | |
evalbot6 | Error: unexpected "9" or "x" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
jrieks_ | ?eval (1,2,3)x9 | ||
?eval (1,2,3)xx9 | |||
evalbot6 | Error: unexpected "9" or "x" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
iblech | jrieks_: Most of IO is disallowed in safemode/evalbot, only Pugs::Safe::safe_print works (which always writes to STDOUT) | ||
Aankhen`` | ?eval (1, 2, 3) xx 99 | ||
evalbot6 | (1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3 | ||
jrieks_ | ah okay, thx | ||
iblech | And, as you see, the output was truncated -- i.e. "x" xx 100000 will only output 500 or so chars | 13:25 | |
?eval while 1 {} # and there's the CPU time limitation | |||
evalbot6 | (no output) | ||
iblech | ?eval my $x = "x" x 100000000; bytes $x # and RAM is limited, too | 13:26 | |
evalbot6 | pugs: out of memory (requested 1048576 bytes) | ||
jrieks_ | nice :-) | ||
autrijus | :) | ||
jrieks_ | what about forking? | 13:27 | |
?eval while 1 { async {while 1 {}} } | |||
evalbot6 | pugs: user error (Cannot create OS thread.) | ||
Limbic_Region | ahh - another bird brain - welcome jrieks_ | ||
jrieks_ | ah okay :-) | ||
bird brain? :-p | 13:28 | ||
Limbic_Region | Parrot | ||
jrieks_ | ah, yes of course :-) | ||
?eval for 1... {} | 13:29 | ||
evalbot6 | pugs: out of memory (requested 1048576 bytes) | ||
jrieks_ | thats a but, no? | 13:30 | |
mr_ank | ?eval my Array of Int @ints | ||
evalbot6 | Error: unexpected "o" expecting variable name or "(" | ||
Aankhen`` | ?eval my @ints of Int; | 13:31 | |
evalbot6 | Error: unexpected "o" expecting "=", ":=", "::=", ";" or end of input | ||
iblech | You mean it should die because of CPU time limitation instead of mem? Yep, we don't have lazy lists currently | ||
jrieks_ | yes, okay | ||
?eval sub infix:?>?? ($a, $b) { $a > $b ?? $a :: $b } | |||
evalbot6 | Error: unexpected "i" expecting subroutine parameters or block | ||
jrieks_ | ?eval sub infix:<<>?>> ($a, $b) { $a > $b ?? $a :: $b } | 13:32 | |
evalbot6 | Error: unexpected "?" expecting bare trait, subroutine parameters, trait or block | ||
jrieks_ | ?eval sub infix:<< >? >> ($a, $b) { $a > $b ?? $a :: $b } | ||
evalbot6 | Error: unexpected "?" expecting bare trait, subroutine parameters, trait or block | ||
jrieks_ | is it possible to define an operator containing < or > without using unicode? | ||
13:33
jrieks_ is now known as jrieks
|
|||
iblech | It should work | 13:33 | |
?eval sub infix:Ā«>?Ā» ($a, $b) { $a > $b ?? $a :: $b } | |||
evalbot6 | Error: unexpected "i" expecting subroutine parameters or block | ||
Aankhen`` | ?eval sub infix:'>?' { ($a, $b) ? } | ||
evalbot6 | Error: unexpected "i" expecting subroutine parameters or block | ||
Aankhen`` | Oops. | ||
?eval sub infix:'>?' ($a, $b) { $a > $b ?? $a :: $b } | |||
evalbot6 | Error: unexpected "i" expecting subroutine parameters or block | ||
jrieks | ?eval sub infix:<<<?>>($a,$b){$a > $b ?? $a :: $b} | 13:35 | |
evalbot6 | undef | ||
jrieks | ?eval sub infix:<<>?>>($a,$b){$a > $b ?? $a :: $b} | ||
evalbot6 | Error: unexpected "?" expecting bare trait, subroutine parameters, trait or block | ||
kungfuftr | someone send me a kotatsu! | 13:38 | |
jrieks | ?eval sub infix:<<more?>>($a,$b){$a > $b ?? $a :: $b} sub postfix:<!> ($x) { [*] 1..$x more? 1 } sub e {my $ret = 0;for 0..1000 -> $i { my $old = $ret; $ret += 1 / $i!; return $ret if $ret-$old < 1e-50 } } "e={e()}"; | ||
evalbot6 | 'e=2.7182818284590452353602874713526624977572' | ||
lumi_ | kungfuftr: You're getting cold feet? | ||
jrieks | ?eval "test" | 13:39 | |
evalbot6 | 'test' | ||
jrieks | ?eval "/quit test :-)" | ||
evalbot6 | '/quit test :-)' | ||
jrieks | ?eval "\n/quit test :-)" | ||
evalbot6 | ' /quit test :-)' | ||
mr_ank | hmm | 13:40 | |
jrieks thinks that the bot is safe enough ;-) | |||
iblech | Won't work, as you'd have to send a "QUIT msg" to quit the IRC connection, but evalbot always prepends "PRIVMSG #perl6 :", so the reply reaches us | ||
mr_ank | i've just tried evaluating this: (1).kv and pugs never returned | ||
jrieks | ?eval (1).kv | 13:41 | |
evalbot6 | pugs: out of memory (requested 1048576 bytes) | ||
mr_ank | bug? | ||
?eval (1,2).kv | |||
evalbot6 | (0, 1, 1, 2) | ||
mr_ank | ?eval ().kv | 13:42 | |
evalbot6 | () | ||
Limbic_Region | interesting | ||
?eval (1,2,3).kv | |||
evalbot6 | (0, 1, 1, 2, 2, 3) | ||
mr_ank | i'm just bored and playing around a bit with odd constructs :) | ||
Limbic_Region | the out of memory one is likely a bug | ||
mr_ank | ?eval ('a').kv | ||
jrieks | ?eval (1..9999).kv | ||
evalbot6 | pugs: out of memory (requested 1048576 bytes) | ||
(0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, | |||
Limbic_Region | ?eval (42).kv | 13:43 | |
evalbot6 | pugs: out of memory (requested 1048576 bytes) | ||
jrieks | ?eval ('perl', 6).kv | ||
evalbot6 | (0, 'perl', 1, 6) | ||
mr_ank | looks like something of an off-by-one error | ||
jrieks | ?eval {'perl'=> 6}.kv | ||
evalbot6 | ('perl', 6) | ||
jrieks | ?eval (0..9).kv | ||
evalbot6 | (0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9) | ||
mr_ank | hm | 13:44 | |
?eval (0..1).kv | |||
evalbot6 | (0, 0, 1, 1) | ||
mr_ank | ?eval (0..2).kv | ||
evalbot6 | (0, 0, 1, 1, 2, 2) | ||
jrieks | ?eval (-1..1).kv | ||
evalbot6 | (0, -1, 1, 0, 2, 1) | ||
mr_ank | wtf | ||
jrieks | ?eval (-2..2).kv | ||
evalbot6 | (0, -2, 1, -1, 2, 0, 3, 1, 4, 2) | ||
jrieks | (index, value) pairs | ||
Limbic_Region | ?eval -2..2 | 13:45 | |
evalbot6 | (-2, -1, 0, 1, 2) | ||
mr_ank | yeah, but it's inconsistent | ||
jrieks | why? | ||
?eval 2..-2 | |||
evalbot6 | () | ||
mr_ank | look at this: | ||
jrieks | ?eval 2..-2 :by(-1) | ||
evalbot6 | Error: unexpected ":" expecting operator, "does", "but", "is", "^..^", "cmp", "<=>", "^..", "..^", "..", postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
mr_ank | ?eval (-1..1).kv | ||
evalbot6 | (0, -1, 1, 0, 2, 1) | ||
svnbot6 | r4617, Aankhen++ | * ChangeLog: typo fixes, reworded here and there. | ||
mr_ank | ?eval (0..2).kv | 13:46 | |
evalbot6 | (0, 0, 1, 1, 2, 2) | ||
mr_ank | how come? | ||
jrieks | where is the problem? | ||
(0, -1), (1, 0), (2, 1) | |||
first is the key (array index), the second is the value | |||
key/value | |||
mr_ank | ah | ||
AH | |||
i got it now | |||
was blinded by seeing (a a b b c c) | 13:47 | ||
jrieks | ?eval ("a"..'c')xx2 | ||
evalbot6 | Error: unexpected "2" or "x" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
jrieks | ?eval ("a"..'c') xx 2 | ||
evalbot6 | ('a', 'b', 'c', 'a', 'b', 'c') | ||
mr_ank | so (1).kv should return (0,1) - should we write test cases for these things that hang the compiler? | 13:48 | |
jrieks | just do it | ||
I've not time atm | |||
mr_ank | okay | 13:49 | |
jrieks | cya! | ||
mr_ank | byTe | ||
gaal | oh, Aankhen``, mea culpa regarding ChangeLog spellos. | 13:50 | |
kungfuftr | lumi_: yar | 13:55 | |
13:57
cognominal_ is now known as cognominal
|
|||
mr_ank | i'll ask again just in case: | 14:18 | |
Should I write test cases for things that hang pugs? (like (1).kv ) | 14:19 | ||
(i just wrote one and put it in t/data_types - just not sure whether to commit it or not) | 14:20 | ||
PerlJam | mr_ank: Can you wrap that in an eval or something with a timeout so that it doesn't hang indefinitely? | 14:21 | |
mr_ank | PerlJam: sure | ||
I'll give it a shot | 14:22 | ||
PerlJam | If so, then I think you should definitely write tests for things like that. | ||
mr_ank | is there a way to easily wrap it in a timeout? | ||
cause pugs just "goes on a trip" when it tries to evaluate (1).kv | 14:23 | ||
or perhaps I should just put it in t_disabled/? or is that for something else? | 14:27 | ||
geoffb | mr_ank, t_disabled appears to be for things that aren't (yet) relevant, not merely things that are broken. | 14:29 | |
Non-standard Perl dialects, for instance | |||
mr_ank | ah | ||
I have no idea how to implement a pugs-level timeout | 14:30 | ||
geoffb | try t/pugsbugs/, I would think | ||
Haven't looked myself, but perhaps mentioned in the networking examples? | 14:31 | ||
mr_ank | i was just looking at that | ||
iblech | I'd write "fail "(1).kv hangs forever"; #is ~(1).kv, "0 1", "(1).kv works";" or something like that | 14:32 | |
As far as I know, there's currently no way to implememt timeouts | 14:33 | ||
mr_ank | right. They seem to be doing it with loops and counters | ||
if(time() - $last_traffic >= $live_timeout) { # and things like that | |||
iblech: okay | 14:34 | ||
in t/pugsbugs then | |||
geoffb | what does 'UU' before a filename (as opposed to just 'U') mean in 'svk pull' output? | 14:35 | |
iblech | Yep. But this code still has a problem: The readline() of the socket to the server is blocking, that means, that Net::IRC looses control once it readline()s. (BTW, this is the reason why sometimes svnbot has a fairly long delay.) | ||
clkao | content and property changed | ||
autrijus | both content and metadata. | ||
geoffb | gotcha, thx | ||
gaal | it's short for "uberupdate". | ||
gaal reads perlintro for inspiration and surrenly realizes that the description "line noise" is getting clear to fewer and fewer newcomers. | 14:40 | ||
PerlJam really likes slide #6 of apw | 14:43 | ||
geoffb | iblech++ # help with hack.pod | 14:46 | |
svnbot6 | r4618, geoffb++ | New examples/continuation directory added to source map | ||
r4619, mr_ank++ | Added failing test for (1).kv and ('a').kv (will hang Pugs, so it's commented) | |||
geoffb | There are a number of XXXX's in hack.pod, any help to excise those would be appreciated | ||
wolverian | agh, I have to cron this. I'm two hundred revisions behind again. | 14:47 | |
geoffb | wolverian, make it part of your morning routine, it will instill good practices for a lifetime of work. :-) | 14:49 | |
wolverian | :) | ||
svnbot6 | r4620, iblech++ | * Removed empty docs/advocacy/, and updated pugs::hack accordingly. | 14:50 | |
r4620, iblech++ | * Usual svn props added to t/rules/rx_perl5_escape.t and | |||
r4620, iblech++ | t/pugsbugs/one_elem_list_kv.t. | |||
gaal | okay, i think i know how to fix the "is trait + returns" bug, but it looks hacky to me | 14:52 | |
basically after the SubParameters there can be many Traits and possibly one BareTrait "returns" | 14:54 | ||
but they can be interleaved | |||
so that means two more lines: a typ''' and a traits' | |||
isn't there a more elegant way to express this? | 14:55 | ||
mr_ank | iblech: properties i should be setting on new files are svn:mime-type and svn:eol-style right? | 14:56 | |
svnbot6 | r4621, mr_ank++ | Fixed silly typo in test | ||
gaal | also, shouldn't multiple "returns" be an error? eg sub foo returns X (params) returns Y | ||
currently taken to mean returns Y (X silently dropped) | |||
iblech | mr_ank: Yep, see docs/other/development_tests | ||
mr_ank: But it's no problem if you forget to do so | 14:57 | ||
mr_ank | okay :) | ||
geoffb | Why are the docs in lib/ not in docs/ instead? | 14:58 | |
iblech | I think two reason are that perldoc pugs::run works and that the docs are nicely formatted on search.cpan.org | 14:59 | |
geoffb | ah! | ||
Though that just makes me think perldoc and search.cpan.org need to have their horizons widened | 15:00 | ||
iblech | Yep, search.cpan.org should index blib6/ and docs/, too | 15:01 | |
gaal | blib6/ ? does that exist in the source distro? | ||
geoffb | gaal, nope | 15:02 | |
fireartist | anyone know what 'mode change "+e" for user fireartist by services' does / why it's been done? | 15:03 | |
(that's an irc message btw) | 15:04 | ||
integral | +e is the flag you get when you identify to nickserv | ||
fireartist | integral: I'd just never noticed it before, if it's normal though, I'll not worry! | 15:05 | |
geoffb is beginning to get an 'svk pull' twitch -- whenever he's spacing out, his fingers enter 'svk pull' into an xterm apparently by themselves | 15:06 | ||
clkao, is the plan that eventually svk will be able to interact with all open-source source control systems? | 15:09 | ||
clkao | if people want to, yes. but i don't have much incentive for that | 15:10 | |
geoffb | What's working so far -- svn, cvs, and darcs? | 15:11 | |
clkao | s/darcs/perforce | ||
geoffb | ah | ||
kungfuftr | clkao: nihonji? | 15:12 | |
geoffb | clkao, so were the current choices "commonly used systems that insist on having live access to a server"? | 15:13 | |
clkao | ya. but i might have git support rsn | 15:15 | |
geoffb | mmm, git | 15:16 | |
via cogito (or whatever that morphed into, haven't kept up), or directly? | |||
clkao | directly. | ||
cogito is a stinky pile of bash script | |||
geoffb | ah! | 15:17 | |
Well, I only ever read the summaries, so I missed the details | |||
clkao | i missed too, so i didn't know that until yestetrrday i actually try to use it | ||
geoffb wishes the kernel-traffic summaries had just a tad more focus on technical details, rather than just arguments on various topics | 15:18 | ||
Boogie_ | somebody knows, if it's normal, that Pugs cannot 'return($sth)', where $sth is an SQL statement handler from DBI--perl5? Or, to be more precise, it can give it back, but say $sth.rows, or $sth.finish() will give a segmentation fault, while it works fine in the subroutine | 15:21 | |
autrijus | hrm, it's not normal at all | 15:22 | |
write... tests! :) | |||
autrijus goes back writing AST for PIR | 15:24 | ||
Boogie_ | yes, but it's hard to write a test for it, when there's no MySQL around (e.g. on your machine). Anyway, you're right. | ||
autrijus | try using other XS objs. | ||
internal ones. | |||
Boogie_ | it's over my knowledge, but I'll try it. | ||
autrijus | like (I don't know) Digest::MD5 object. | 15:25 | |
Boogie_ | ok. | ||
autrijus | or IO::Handle, or something. improvise :) | ||
Boogie_ | thx | ||
geoffb | Improvise?!? We'd never do that, autrijus! This is strictly a waterfall development model here. | ||
I mean, REALLY. | 15:26 | ||
The NERVE of such a suggestion . . . . | |||
mr_ank | so... autrijus has the biggest bucket? | ||
geoffb | Man, I am clearly PUNCHY | ||
mr_ank, LOL | |||
autrijus | lol | ||
yeah sure. | |||
autrijus DECREES that geoffb MUST IMPROVISE! | 15:27 | ||
there. better? | |||
mr_ank | and that's why i'm holding a tea cup! | ||
geoffb | ROFL | ||
MUCH | |||
autrijus | you're like a forth machine! | ||
(only accepting command words in ALL CAPS) | |||
geoffb is still laughing | 15:28 | ||
mr_ank | really? | ||
you need sleep geoffb! | |||
geoffb | yes, up too late and too early. Damn warm nights | ||
mr_ank | i haven't slept yet ... need to finish a C++ XS API *WITH THREADS* | 15:29 | |
geoffb | ewww | ||
mr_ank | (the thread bit im not touching for now) | ||
geoffb always dreads "Oh, you know XS? Here, I need some help with this . . . ." | 15:30 | ||
good thinking, mr_ank | |||
mr_ank | it's sorta like a DBI driver | ||
but a lot simpler ... and i cheated -- instead of returning a handle, i just wait till the operation is done - threading is nicely encapsulated... im not going there!!! | 15:31 | ||
geoffb | heh, well, that's one way to do it | ||
autrijus | "our interface encapsulates 16,384 objects" | ||
"it's easy to do that because they aren't there" | |||
mr_ank | something like that... i hate these weird C/C++ mixes SO MUCH | 15:32 | |
autrijus | bbiab... need !irc to hack :) | ||
geoffb | nod | ||
geoffb away too . . . about time I woke up the family by changing the cat litter, bleah | 15:34 | ||
svnbot6 | r4622, andras++ | XS object will be bad after returning it - test | 15:50 | |
Boogie_ | somebody can check my "t/unspecced/p5/return.t" if it's really a test (I mean, the file runs fine)? | 15:51 | |
pasteling | "Aankhen``" at 203.101.4.113 pasted "t/unspecced/p5/return.t" (6 lines, 251B) at sial.org/pbot/11013 | 15:54 | |
autrijus | checking | ||
Aankhen``: not built with embedperl5? | |||
Boogie_: you need to check p5 embeddedness just like other p5/* tests. | |||
see eg. basic.t for example of how to use skip_rest. | 15:55 | ||
Aankhen`` | autrijus >> Affirmative. | ||
iblech | Boogie_: Fixed (note that I had to put the check and plan() in a BEGIN block, so Pugs doesn't die because it couldn't load the Perl 5 module (on non Perl 5-embedded builds)) | 15:57 | |
svnbot6 | r4623, iblech++ | * t/subroutines/sub_ref.t -- Tests that macros are Codes, Routines, and Macros. | ||
r4623, iblech++ | * Pugs.Parser -- Parse anonymous macros. | |||
r4624, iblech++ | t/unspecced/p5/return.t -- Usual svn props and test that Perl 5 is embedded. | |||
Enveigler1 | Are there any papers/discussion around showing STM being used on boxes with 1 or 2 cpus rather than massively parallel setups? | 15:58 | |
Boogie_ | iblech: you was faster than me... :) I've tried to commit it and saw that somebody did it before. :) | ||
autrijus: ok | |||
s/was/were/ | 15:59 | ||
autrijus | Enveigler1: the SMP capability is currently in GHC trunk | ||
Enveigler1: so I don't think benchmarks will make sense until say 6.4.1's release | |||
Enveigler1: but in other VMs there may already be SMP support | 16:00 | ||
Enveigler1 | I was looking for more general discussion on STM rather GHC specific. Everything I've found so far show use with 20, 40, 60 + cpu's, which is noce in that world, but I'm wondering how it performs in a more everyday context? | 16:01 | |
autrijus | nod. I havn't seen literature about that either. | 16:07 | |
maybe google scholar a bit more can dig up stuff | |||
ninereasons | ?eval @ARGS[0] ~~ /(nothing)/; +@ARGS | ||
evalbot6 | Error: Can't modify constant item: VUndef | ||
iblech | ?eval @ARGS # @ARGS isn't available in safemode | 16:08 | |
evalbot6 | \undef | ||
iblech | ?eval @ARGS[0] # @ARGS isn't available in safemode | ||
evalbot6 | Error: Can't modify constant item: VUndef | ||
ninereasons | thanks, iblech. | ||
Enveigler1 | Autrijus: Okay. I'll keep digging. Thanks. | 16:09 | |
ninereasons | ?eval my @a; @a[0] ~~ /(nothing)/; +@a | ||
evalbot6 | pugs: src/events.c:265: init_events_first: Assertion `rc == 0' failed. | 16:10 | |
wolverian | hmm, I want a Str.words iterator that gives lvalues to the original string so that I can do "foo bar".words.=map:{ .ucfirst }; without doing a .split or so that loses whitespace | ||
ninereasons | ?eval my @a=(); @a[0] ~~ /(nothing)/; +@a | 16:11 | |
evalbot6 | pugs: src/events.c:265: init_events_first: Assertion `rc == 0' failed. | ||
ninereasons | hmm. | 16:12 | |
ingy | hola | ||
iblech | wolverian: Yeah! That'd be nice! | ||
Chewie[] | 'foo bar'.words >>.ucfirst would work, and it's shorter. | ||
wolverian | yay, someone else likes it too :) iblech++ | ||
iblech | ninereasons: It seems Parrot doesn't work well when limited to 20MiB RAM or so | ||
Chewie[] | Yeah. It's a nice idea. | ||
wolverian | Chewie[]: yes. | ||
I'm not sure if it's been discussed on p6l or something, as I don't think I'd just come up with that by myself | 16:13 | ||
Chewie[] | Perhaps also .tokens to split on given rules. | ||
ninereasons | iblech, I didn't realize that evalbot was targetting parrot already. | ||
Chewie[] | (If that would even be necessary with the PGE.) | ||
iblech | ninereasons: No, but it uses Parrot for Perl 6-rules | ||
ninereasons | oh. | ||
iblech | ?eval my @a = (); @a[0] ~~ rx:Perl5/(nothing)/; +@a | ||
evalbot6 | 1 | ||
ninereasons | there you go. | ||
iblech | ?eval my @a = (); +@a | 16:14 | |
ninereasons | that's what I wanted to show. | ||
evalbot6 | 0 | ||
iblech | Right. Write a test? :) | ||
wolverian | ?eval my @a = (); @a[0] ~~ rx:Perl5/(nothing)/; @a.perl | ||
ninereasons | ok :) | ||
evalbot6 | '[undef]' | ||
wolverian | ah. | ||
chip | [email@hidden.address] | 16:30 | |
autrijus | Data::Dumper::Dumper(\@a) | 16:32 | |
"canonical string representation", man :) | |||
Limbic_Region | Data::Dump::Streamer is head and shoulders better than Data::Dumper when it comes to closures and code refs | ||
autrijus | very true. | 16:33 | |
DDS is the way of the future | |||
gaal | i thought .perl was? :) | ||
or .yaml | |||
autrijus | .perl is the way of the far future | ||
;) | |||
gaal | .pugs is the way of the mear to medium range future. | 16:34 | |
Limbic_Region | oh - it handles weak references too | ||
autrijus | .pugs is for fun :) | ||
autrijus launches the fun optimiser | |||
"fun-ction-al programming" | 16:35 | ||
'fun' as in exciting | |||
'ction' as in ka-ching, big money | |||
'al' as in 'all cool peopl are doing it' | |||
iblech | FWIW, I remember a discussion on p6l about renaming .perl to .pretty(:lang<Perl>), and then extending .pretty to :lang<YAML>, :lang<Perl5>, etc. Not sure what the final ruling was, though | ||
autrijus | (I stole that from some perl monger's presentation) | ||
iblech: yeah. I think it's sane | |||
iblech: I further think it may be saner to have Language::* API. | 16:36 | ||
that unifies .pretty, .eval, .compile etc | |||
iblech | ala Language::Perl6.new(source => "...").compile? | 16:37 | |
gaal | which reminds me! | ||
we need to move eval over to the prelude | 16:38 | ||
Limbic_Region | autrijus - did you see the weird .kv error | ||
?eval (42).kv | |||
evalbot6 | pugs: out of memory (requested 1048576 bytes) | ||
autrijus | iblech: SomeThingLikeThat yes. although I'm not sure about the .new. | ||
Limbic_Region: yes, and I know why too | |||
the Prim "kv" is infinite looping because it can't find a ref | |||
I think "pairs" too | |||
iblech: would you be so kind to investigate a fix? :) | |||
iblech | autrijus: I tried one earlier today, but then stopped, as I thought: (42).kv should mean 42.kv, which should give a "wasn't able to find &Int::kv method" | 16:40 | |
gaal | should it not give (1, 42)? | 16:41 | |
?eval my @a=<42>; @.kv | |||
evalbot6 | Error: Undeclared variable: "$?SELF" | ||
gaal | ahem. | 16:42 | |
?eval my @a=<42>; @a.kv | |||
evalbot6 | (0, '42') | ||
gaal | yeah, i meant 0, 42. :) | ||
iblech | gaal: Yep. So we've to rename Prim.hs eval to Pugs::Internals::eval_perl6, then make Prelude::eval safe, so evalbot can eval Perl 6 code, and then fix all tests using eval_perl5 etc., right? | ||
gaal: Yep, an array should understand .kv -- i.e. [42].kv should work, as well as (my @a = (42)).kv, but $some_num.kv should not, I think | 16:43 | ||
autrijus | iblech: you know... | 16:44 | |
iblech: that was because in Prim it's decl'ed as "kv" | |||
gaal | iblech, re eval - yes, exactly; though there's a lot to s/// in this move. | ||
autrijus | if you change all those "kv" into Array::kv etc | ||
gaal | heh heh heh | ||
autrijus | (look at Scalar::split) | ||
then it will Just Work (tm) | |||
iblech | autrijus: ah! /me tries | 16:45 | |
gaal | but then kv won't work for lists, right? | ||
?eval (1,2,3).kv | |||
evalbot6 | (0, 1, 1, 2, 2, 3) | ||
gaal | the above is what i expect | ||
autrijus | actually, no, | 16:46 | |
gaal | iblech: however, eval lang=>something not perl6 should be unsafe | ||
autrijus | if you declare "kv" as "List::kv" | ||
and then add one line to Pugs.Eval.Var line 315 | 16:47 | ||
that declares all (Syn ",") is of type "List" in invocant position | |||
evalExpType (Syn "," _) = return $ mkType "List" | |||
iblech | gaal: Yep. Should I add a $?SAFEMODE so Prelude::eval can test if safemode is on? | ||
autrijus | then it will Still Just Work | ||
autrijus praises tagged unions, pattern matching, and sanity in general | |||
gaal | hmmmm, actually no i was being silly, just leave the Pugs::Internals::eval_$not_perl6 unsafe | 16:48 | |
iblech | gaal: Ah, yes, of course. | ||
gaal | s/silly/not-thinking-it-through-ful/ | 16:49 | |
anyway: how do we apply this big s///? need also to change Test.pm and everything in ext/ | 16:50 | ||
ninereasons | iblech, what is the formula again, for applying the "usual properties" to a new addition? | ||
iblech | ninereasons: cat docs/other/development_tips | ||
ninereasons | thanks | ||
autrijus | gaal: time to think of a refactoring browser? :) | 16:51 | |
gaal | :-) | ||
autrijus | (apply parser to source, get token ranges, change those ranges) | ||
you wouldn't need a full prettyprint even | |||
gaal | right-click Refactor > Rename... | ||
autrijus | right. | ||
should be a simple matter of walking Exp and change the original String. | |||
by analysing Pos chunks | |||
and emit a set of "Edit" calls | 16:52 | ||
Limbic_Region | autrijus - I am not sure I saw your reply, if there was one, so I will ask again | 16:53 | |
it is obvious that there are a lot of significant changes to Parrot as a result of the hackathon | 16:54 | ||
what is coming down the pipe for Pugs? | |||
autrijus | Limbic_Region: PugsAST is the single larges change | 16:55 | |
svnbot6 | r4625, iblech++ | * Pugs.Prim, Pugs.Eval.Var -- Made (42).kv die and (42,).kv work, autrijus++. | ||
r4625, iblech++ | * t/pugsbugs/one_elem_list_kv.t -- unTODO/unCOMMENT, fix, and added a new test. | |||
r4626, iblech++ | Moved t/pugsbugs/one_elem_list_kv.t to t/builtins/lists/one_elem_list_kv.t, as | |||
r4626, iblech++ | the bug is resolved. | |||
autrijus | Limbic_Region: instead of evaluating the parse tree directly | ||
Limbic_Region: Eval.hs will deal with a much smaller set of nodes | 16:56 | ||
gaal | soooo.... i'll do the eval change now | ||
autrijus | Limbic_Region: basically all the reduceSyn things will be moved to a separate compile pass. | ||
as well as other things like constant folding etc. | |||
gaal | unless iblech you started already? never knowing with the speed demon :) | ||
autrijus | that will result in a much faster interpreter-level performance. | ||
iblech | gaal: No, go ahead :) | ||
autrijus | and will also open the door of other language targetting that PugsAST. | ||
(it's docced in my paper) | 16:57 | ||
currently it's parse -> run | |||
it will become parse -> compile -> (emit|run) | |||
so we won't need to deal with all the Syn constructs in Compile.Parrot and Compile.Haskell anymore | 16:58 | ||
because they'll be normalised and gone | |||
also if I did pull it off and GADTise PugsAST and PIR_AST, then it will also make detection of bogus programs easier and optimisation safer to write. | 16:59 | ||
s/did/do/ | |||
oh, and maybe, just maybe, PugsAST can retarget C-- or LLVM or something else entirely. | |||
so we retain Perl6's retargettability | 17:00 | ||
which I always think as a good thing. | |||
(eof) | |||
this is in scope comparable to the GADT-ITypes grand rewrite | 17:01 | ||
svnbot6 | r4627, ninereasons++ | smartmatch_autovivifies.t: a pugsbug. When a non-existent array element, $n, is tested for a match, the array is auto-dimensioned to $n+1 size. The autovivified elements are undef. | ||
autrijus | which took me two full days :) | ||
so I need to, like, concentrate. | |||
Forth | where should I look into if I want to generate java bytecode? | ||
Limbic_Region | autrijus - sounds like good stuff | 17:02 | |
autrijus | Forth: first, get a good Haskell library that can emit java bytecode from some low level AST | ||
Forth: then hook it up with the PugsAST I'll be producing this week | |||
Forth: you can look at Pugs.Compile.Parrot for some ideas right now, but it's very primitive at this moment | |||
(and yes, Java and Mono retargettability are worth goal too) | 17:03 | ||
what I'll do is make the PugsAST abstract and narrow enough | |||
but the emitters for Java/Mono/LLVM/etc is probably left to other interested lambdacamels | |||
I'll first try targetting Parrot because I can lobby the authors more efficiently :) | 17:04 | ||
hey. if I rename the current src/IMC* to src/PIR* | 17:08 | ||
will people be mad because the P<Tab> completion will break? | |||
autrijus is thinking of a nonconflicting name | |||
autrijus settles for Emit.PIR | 17:10 | ||
gaal | if i have sub foo(?$x = $CALLER::_), and call it foo(undef), will $x be undef or the caller's $_ ? | 17:19 | |
svnbot6 | r4628, cognominal++ | r7@cac94-1-82-67-232-89: stef | 2005-06-13 19:18:08 +0200 | ||
r4628, cognominal++ | added a nice Haskell book | |||
iblech | gaal: I think $x should be undef, as you're explicitely passing an argument to &foo | 17:20 | |
gaal | i hope you're right! | ||
autrijus | I assure you're right. | 17:21 | |
gaal | :) | ||
okay, eval(.... :lang<Haskell> or <haskell>? or make it incasitive? | 17:22 | ||
autrijus | I like that word | 17:23 | |
chip ponders CaseInsensitiveHash | |||
autrijus | make it incasitive, I think. | ||
gaal | avva coined it | ||
obra | hello | 17:27 | |
Darren_Duncan | right now I revisit Locale-KeyedText in an effort to get the whole thing executing | 17:31 | |
and so I may report a few things that Pugs needs to make them work | |||
fyi | |||
svnbot6 | r4629, gaal++ | * eval and related builtins are now implemented in the Prelude | 17:32 | |
autrijus | Darren_Duncan: cool! | 17:33 | |
Darren_Duncan | now hopefully things won't be breaking all over the place with this on-Parrot push | 17:34 | |
autrijus | Darren_Duncan: we have 8k regressions :) | ||
I won't break things all over the place unless they are somehow not testing things as they should | |||
Darren_Duncan | question ... | ||
do you plan to keep Pugs with its standalone option for a long time, or will it be phased out in a few months when Parrot support is working well? | 17:35 | ||
so that Pugs only works with Parrot and not alone | |||
autrijus | Darren_Duncan: to answer that question: no, interpreter core will Always Be There. | ||
Darren_Duncan | okay | 17:36 | |
autrijus | otherwise we will be making the P6C mistake. | ||
"With this design, each term's reduction rules are hard-coded in PIR assembly, | |||
making it prohibitively difficult to reason about the execution. Because P6C | |||
cannot check the resulting assembly code for correctness, subtle bugs often | |||
go unnoticed for a long time. | |||
" | |||
Darren_Duncan | but when Pugs is recoded in Perl 6, that won't be the case, right? | 17:37 | |
autrijus | 6.2.7 released! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 | 17:37 | |
autrijus | Darren_Duncan: yeah but you're talking about 6.283185... | 17:37 | |
and we're just at 6.2.7 :) | 17:38 | ||
they're five milestones apart. | |||
gaal | the question that hasn't come up yet is whether by that time, pugs will also be able to compile haskell. | ||
autrijus | not neccessary pugs. | 17:39 | |
but yeah, whether we can as well compile pugs itself to run on parrot, or on perl6, or something else entirely, etc. | |||
gaal | yes, it'll be called Star | ||
the any-to-any compiler | |||
autrijus | heh :) | 17:40 | |
chip | that's the great thing about bits | ||
no matter how you recycle them, they're still just ones and zeros | |||
autrijus | but anyway. I see the current priority is getting the features in | ||
and get the operational (and some denotational) semantics defined | |||
with a well defined semantics we can freely retarget | |||
with a reasonable hope of keeping portability | |||
without a well defined semantics it's just a random bunch of OP codes that you have to special case to, and that changes from version to version, just like the perl5 mess. | 17:41 | ||
i.e. you can't look at a piece of program and reason about what it will do, without knowing the exact brokenitude of the perl5 interpreter that is to run it. | |||
Limbic_Region | chip - perlmonks.org/index.pl?node_id=463675 perlmonks.org/index.pl?node_id=441152 | 17:42 | |
there are several other links I meant to show you, but you weren't around | |||
oh, and perlmonks.org/index.pl?node_id=460197 too | 17:43 | ||
autrijus | if Python (PyPy) can do it, there's no reason why perl6 can't :) | 17:44 | |
Darren_Duncan | away from comp for a bit while Pugs recompiles with latest patches | ||
eric256_ | are the current milstones on svn.perl.org/perl6/pugs/trunk/docs/...rview.html still valid? or have they changed? if so does that mean improved OO is top priority right now? | ||
autrijus | eric256_: they're still valid. | ||
eric256_: and yes, OO is the current priority (over rules and macros) | 17:45 | ||
eric256_ | ;) cool ;) | ||
chip | Limbic_Region: thanks. I'm having some net issues here. I can get to perl.org just fine, but comics.com seems not to like Austria. Darn it. | 17:47 | |
Limbic_Region | chip - got a feather account? | 17:49 | |
chip | Limbic_Region: yup. chip@ | 17:52 | |
Limbic_Region | I was just going to suggest attempting to fetch the comics from there | 17:57 | |
iblech | gaal: Should we change evals :lang<Parrot> to :lang<PIR>? | 17:58 | |
gaal | dunno? we can make the aliases too | 17:59 | |
Aankhen`` | "Classes and traits" -- does that include stuff like `where` and `but`? *hopeful look* | 18:01 | |
"Can Pugs work with Perl 5 libraries?" seems to be a little outdated... | 18:02 | ||
gaal | afk | 18:04 | |
ninereasons | what is the bug in wizard.p6 ? | 18:12 | |
eric256_ | a new bug in there? it was working last time i left it | 18:14 | |
Darren_Duncan | compile done | ||
ninereasons | eric256_, it isn't running for me. perhaps a problem on my end. | 18:15 | |
eric256_ | let me update and run it | ||
well take a while. ;) | |||
geoffb is really enjoying having autrijus in a US/Pacific-friendly timezone . . . the channel is actually busy during my awake hours | 18:16 | ||
ninereasons | eric256_, "*** No compatible subroutine found: "&new" at examples/games/wizard.p6 line 142, column 14 - line 145, column 2" | ||
iblech | gaal: Aliasing PIR to Parrot sounds good for me, committing... | 18:17 | |
eric256_ | ninereasons -- just starting nmake unoptimized ow. ;) | ||
Aankhen`` | iblech++; gaal++; | 18:19 | |
iblech | gaal++ # Did all the work | ||
autrijus | :) | 18:24 | |
svnbot6 | r4630, iblech++ | Prelude -- Make eval("...", :lang<PIR>) call eval_parrot(). | ||
r4631, gaal++ | You can't just make shit up and expect the computer to know what you mean, Retardo! | |||
eric256_ | hmmm weird error.. | 18:25 | |
okay i don't even know where to start with that....is it haveing trouble processing the class? or something else. | 18:26 | ||
Darren_Duncan | gaal, want to explain that last one? | 18:27 | |
ninereasons | Darren_Duncan, checking the svn diff explains it all :-) | 18:28 | |
Darren_Duncan | yes, but asking is less work | ||
for me | |||
forget it | |||
ninereasons | + die "can't eval language $lang"; | ||
autrijus | eric256_: shockingly | 18:29 | |
eric256_: because the OO system works | |||
your program breaks | |||
eric256_: try changing all your "Object" into "Subject" | |||
and your program will run fine. | |||
because by saying "class Object { has...}" you're saying every single object now has additional attributes | 18:30 | ||
now how actually that breaks things needs to be investigated | |||
but that's probably buggy at one level or another | |||
clkao | cool, eval('...', lang:<perl5>) ! | 18:32 | |
ninereasons | interesting, autrijus. Just as you said s/Object/Subject/g fixes it. | 18:33 | |
Aankhen`` | Isn't that: eval('...', :lang<perl5>) | ||
eric256_ | ahhh | 18:34 | |
and the object part is new | 18:35 | ||
eric256_ doesn't like have the Object class taken like that...shouldn't internal classes like that have some better name? | 18:36 | ||
Perl6::Object or something like that? | |||
i just don't like the idea of internal objects and user objects colliding in such a fashion, it also means if you add internal classes in the future they might clash with existing and working code, seems limiting even if you never plan on adding new classes | 18:37 | ||
iblech | 1. The idea is, I think, that the Object class isn't thaat much internal that it'd need some internal_use_only prefix. 2. If we went with Perl6::Object, we'd have to rename Array, Hash, etc. to Perl6::Array respectively Perl6::Hash, too, even though these are fairly "normal" classes | 18:38 | |
q[merlyn] | is building from SVN failing on OSX expected? | ||
iblech | I.e. it'll be relatively normal to (for example) inherit from Hash if you want to have your tied hash class | 18:39 | |
dkf | q[merlyn]: it is if you're using gcc 4.0 | ||
PerlJam | iblech: Object might just be shorthand for Perl6::Object you know | ||
q[merlyn] | is there a pastebot here | ||
no - I rolledback to 3.3 | |||
Aankhen`` | q[merlyn] >> sial.org/pbot/perl6 | ||
ninereasons | perlbot nopaste | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
autrijus | q[merlyn]: you need to 3.3 on a clean tree | ||
eric256_ | iblech sure. but that doesn't address the concern of adding future classes to the language that could conflict with current user defined classes | 18:40 | |
q[merlyn] | I did sudo gcc_select 3.3 | ||
and "make clean" | |||
chip | q[merlyn]: welcome | ||
q[merlyn] | and rebuilt the Makefile | ||
eric256_ | it means you either have to tell those people too bad, or never create new internal classes....neither of those options seems like the right thing to do | ||
pasteling | "q[merlyn" at 70.212.105.232 pasted "failure on OSX 10.4.1" (10 lines, 286B) at sial.org/pbot/11021 | ||
q[merlyn] | hey chip | ||
svnbot6 | r4632, iblech++ | sub_ref.t -- Fixed test according to p6l and added a comment. | 18:41 | |
q[merlyn] | what the hell is a _fprintf$LDBLStub? :) | ||
PerlJam | eric256_: What do you mean by "internal classes"? Why must they exist? | ||
q[merlyn] | I got 15 minutes before I have to leave CVG | ||
iblech | eric256_: Right. But I'd expect that, for example, if a new core class is introduced in Perl 6.1.0, you'd have to "use v6.1.0" to make it visible | 18:42 | |
eric256_ | Object, Hash, Array, theses are all *internal* classes. Meaning they are defined by the language | ||
or just use Perl6; | |||
iblech why paint ourselves into this obvious restriction on future growth though? | |||
i mean you should just say then, don't define your classes in the base level, becuase we might step on them in the future. | 18:43 | ||
but then the inconvienence is put on the user instead of on the language where it should be | |||
q[merlyn] | any ideas what to try nextg? | ||
autrijus | q[merlyn]: it's possible that "make clean'ōæ½xA2ōæ½xECōæ½xA2ōæ½xF7ōæ½xA2ōæ½xEDōæ½xA2ōæ½xFBōæ½xA2" doesn't really. | 18:44 | |
iblech | I don't think having to add one line ("use v6.1.0") is a hard restriction :) The documentation will simply say "Don't forget to "use v6.1.0" if you want to use the new FooBar class or the new "/" sigil." | ||
autrijus | q[merlyn]: so check out a fresh tree, and make unoptimised with 3.3? | 18:45 | |
eric256_: once upon a time internal classes are called | |||
OBJECT HASH CODE ARRAY REF | |||
then they get to become regular cased and conflict with user classes. fancy that. | 18:46 | ||
Limbic_Region | do p6 array elements have knowledge of there own index? | ||
for @array -> $elem { say $elem.index } | |||
autrijus | (I agree with your point entirely. it should be Perl::Object for all I'm concrebed) | 18:47 | |
q[merlyn] | how do I tell svn to toss anything broken | ||
autrijus | Limbic_Region: .kv | ||
q[merlyn] | I don't have time to do a complete download | ||
autrijus | q[merlyn]: svn st then grep for ? | ||
q[merlyn] | OK | ||
autrijus | '^?' | ||
chip | zero or more beginnings of line | ||
Limbic_Region | for @array.kv -> $i, $elem { say "$i $elem" } | ||
q[merlyn] | Hmm. only two files in that category | ||
src/Pugs/Run/Perl5_stub.{c,h} | 18:48 | ||
autrijus | zero or one, actually. </pedantic> | ||
Aankhen`` | What about having C<class Object {...}> define main::Object, and C<::*Object> refer to the builtin class? | ||
autrijus | q[merlyn]: hm. that doesn't sound right. are you using .dmg GHC builds and 3.3? | ||
eric256_ | should i post a request to the mailing list then or what? or is this still all in flux and don't worry about it at the moment? | ||
Limbic_Region | so if you wanted to know if you were on the last loop, you could do something like | ||
autrijus | eric256_: no, this is The Priority now | ||
eric256_: so please post to p6l. | |||
q[merlyn] | I built GHC from source | 18:49 | |
Limbic_Region | for @array.kv -> $i, $elem { say $elem; say "done" if $i == @array.end } | ||
q[merlyn] | version 6.4 | ||
autrijus | Limbic_Region: you do a LAST{} block. | ||
Limbic_Region: see S04 | |||
Limbic_Region | autrijus - ok, so bad example | ||
autrijus | q[merlyn]: hm. so it's the same gcc that builds ghc and builds pugs? | ||
q[merlyn] | I got five minutes. | ||
yes | |||
in theory. :) | |||
Limbic_Region | autrijus - let's say you wanted to do something every 3rd element | ||
autrijus | q[merlyn]: ok, then it's not linking -lc | ||
q[merlyn] | why? :) | 18:50 | |
Limbic_Region | you could use .kv and then check $i for % 3 | ||
Aankhen`` | $i + 1, actually. | ||
q[merlyn] | What Do I Type To Make It Work? :) | ||
autrijus | q[merlyn]: no idea... but you can goto Makefile and look for ^pugs | ||
Aankhen`` | (assuming the index starts from 0) | ||
Limbic_Region | Aankhen``: yeah yeah - but the point is that it will DWIM | ||
Aankhen`` | Yeh. | ||
autrijus | then change the ghc line to say | 18:51 | |
eric256_ | for @array -> $elem,$b,$c { say $elem; say "done" if $i == @array.end } | ||
autrijus | -lc | ||
before -threaded | |||
PerlJam | Limbic_Region: I wonder if there would be any use in an EVERY block. :-) | ||
Limbic_Region | ?eval my @array = 1..5; @array.kv | ||
evalbot6 | (0, 1, 1, 2, 2, 3, 3, 4, 4, 5) | ||
Aankhen`` | ?eval <foo bar baz>.kv | ||
autrijus | q[merlyn]: I also hear that the upcoming GHC 6.4.1 will be more powerpc friendly | ||
evalbot6 | (0, 'foo', 1, 'bar', 2, 'baz') | ||
autrijus | q[merlyn]: I further hear that the .dmg GHC works for other people; I'll try to convince those people to build binaries for you | 18:52 | |
Aankhen`` | ?eval for <foo bar baz>.kv -> $i, $elem { say $elem; say "done" if $i == 2 } | ||
evalbot6 | Error: No compatible subroutine found: "&say" | ||
Aankhen`` | Oops. | ||
Limbic_Region | ok - thanks - will keep this in my back pocket for the next SoPW at the Monastery for something like this | ||
Aankhen`` | ?eval for <foo bar baz>.kv -> $i, $elem { $elem } | ||
autrijus | q[merlyn]: but in the meantime (that is 3min) I probably can't help a lot. :-/ maybe play on feather at the moment | ||
evalbot6 | undef | ||
dkf | autrijus: I'm running into the same problem using the .dmg GHC | ||
autrijus | dkf: even gcc_select 3.3? | 18:53 | |
but in all fairness, Tiger came out after GHC 6.4 | |||
Aankhen`` | ?eval my (@foo, @bar); @foo = <foo bar baz>; for @foo.kv -> $i, $elem { push @bar, @elem; push @bar, "done" if $i == (@foo - 1); } @bar; | ||
evalbot6 | Error: Undeclared variable: "@elem" | ||
autrijus | so the fix for it will appear in 6.4.1 which is already branched, I think | ||
Aankhen`` | ?eval my (@foo, @bar); @foo = <foo bar baz>; for @foo.kv -> $i, $elem { push @bar, $elem; push @bar, "done" if $i == (@foo - 1); } @bar; | ||
evalbot6 | ['foo', 'bar', 'baz', 'done'] | ||
dkf | autrijus: Yep. But I just checked out a clean tree and I'm building it as we speak... | ||
Limbic_Region | Aankhen`` why @foo - 1 and not @foo.end ? | 18:54 | |
Aankhen`` | ?eval my (@foo, @bar); @foo = <foo bar baz>; for @foo.kv -> $i, $elem { push @bar, $elem; push @bar, "done" if $i == @foo.end; } @bar; | ||
evalbot6 | ['foo', 'bar', 'baz', 'done'] | ||
Limbic_Region | salutations pmichaud | 18:55 | |
q[merlyn] | OK, so I'll just be pugs-disabled for a bit | ||
pmichaud | greetings, lr | ||
q[merlyn] | weirdly, the CPAN release worked | ||
dkf | q[merlyn]: A fresh tree does build with the .dmg GHC. | 18:56 | |
svnbot6 | r4633, iblech++ | t/ -- First part of test fixes (is eval '...' -> is eval('...')). | ||
Limbic_Region | pmichaud - have you had a chance to consider my last response WRT patches to the Synopses? | ||
pmichaud | l_r: I'm just getting to it now, actually :-) | ||
Limbic_Region | okie dokie | 18:57 | |
Limbic_Region will go back to not feeling well | |||
pmichaud | would've done it over the weekend, but this past weekend was my last chance to see the kids for a month so I wanted to take care of that first :-) | ||
Limbic_Region | pmichaud++ # family first | 18:58 | |
q[merlyn] | I hate dmg because they tend to install in mixable locations | ||
I use ghc from darwinports | |||
because I can remove it | 18:59 | ||
Limbic_Region | PerlJam - there is an EVERY thingy - just not called EVERY | 19:01 | |
autrijus | hey pmichaud! | ||
pmichaud | hiya, autrijus | 19:02 | |
autrijus | pmichaud: got time to review my paper? | ||
Limbic_Region | several of them in fact | ||
pmichaud | sorry I didn't get a review of your document back to you before your deadline -- I was out of town (in the middle of nowhere in New Mexico) and didn't get it until late on the 9th | ||
I'll be glad to review anything you'd like me to review now, though :) | |||
(very glad, even) | |||
autrijus | please do; in 2 weeks I'll know if it's accepted | 19:03 | |
(which I think it will) | |||
then I need to prepare a final version | |||
pmichaud | shall I just review the draft you sent or is there an updated version? | ||
autrijus | so your review is still essential | ||
pmichaud: it's in the pugs tree as docs/talks/hw2005.tex | |||
or you can review the pdf at perlcabal.org/~autrijus/hw2005.pdf | |||
pmichaud | okay, I'll review that one. Should do it a bit later this afternoon | ||
autrijus | thanks a lot! | ||
autrijus is doing this unenviable work of writing ASTs for both PugsAST and PIRAST | 19:04 | ||
pmichaud | unenviable indeed | ||
what do you have so far on the PIRAST? | |||
autrijus | pmichaud: I'll check it in later in pugs as Emit.PIR | 19:05 | |
src/Emit/PIR.hs | |||
pmichaud: but part of it is in the paper | |||
pmichaud | autrijus: that would be excellent | ||
I look forward to seeing it | |||
autrijus | it's basically a typechecked AST for the imcc parse tree | ||
not terribly advanced | 19:06 | ||
and only for emitting purpose | |||
so I get to gloss over a lot of parsing | |||
pmichaud | advanced systems often arise from simple starts -- that's the way to go :) | ||
autrijus | nod. the plan is to have a mid-level PugsAST | ||
similar to scope of the intended PAST but much more constrained | |||
almost ANF-level constained | |||
and do PugsParseTree -> PugsAST -> PIRAST -> PIR -> PASM -> PBC | 19:07 | ||
svnbot6 | r4634, iblech++ | Pugs.Prim -- Repair Pair::kv. | ||
r4635, iblech++ | t/ -- Remaining test fixes WRT eval. | |||
r4636, iblech++ | hw2005.tex -- Very minor grammar fix. | |||
autrijus | pmichaud: so, unidiff against hw2005.tex is appreciated -- or you can just commit back; I can hand you a commit bit for that :) | 19:08 | |
pmichaud | I'll do a unidiff -- I'm a bit more comfortable with that | 19:09 | |
autrijus | 'k | ||
thanks in advance :) | |||
pmichaud | it'll also make it slightly easier for you to see what I propose/change :) | ||
autrijus | nod | ||
Darren_Duncan | one missing feature I think, 'is constant' with variables | 19:13 | |
eg, my Str $xy is constant = 'AE'; | |||
not a show stopper yet though | |||
this does not compile | 19:14 | ||
autrijus | danot really missing | ||
my $x := 888; | |||
Darren_Duncan | I started out using that syntax, but changed to 'is constant' later on recommendation that it is more readable | 19:15 | |
or self-documenting | |||
they may not have exactly the same meaning either | 19:16 | ||
Limbic_Region | doesn't the latter allow rebinding while the former wouldn't? | ||
Darren_Duncan | or rather, I started out with '::=' but changed to 'is constant' | ||
the '::=' is compile-time binding | |||
Aankhen`` | ?eval my $foo is rw; | ||
evalbot6 | Error: unexpected "i" expecting "=", ":=", "::=", ";" or end of input | ||
Aankhen`` | ?eval my $foo is Str; | ||
evalbot6 | Error: unexpected "i" expecting "=", ":=", "::=", ";" or end of input | ||
Aankhen`` | Doesn't look C<is> parses. | 19:17 | |
Er, look like. | |||
Aankhen`` wanders off to play some more Battlefield 2. | |||
Darren_Duncan | ?eval my $foo is constant = 3; | ||
evalbot6 | Error: unexpected "i" expecting "=", ":=", "::=", ";" or end of input | ||
Darren_Duncan | yes | ||
that has been the situation for a few weeks now | 19:18 | ||
autrijus | right, because vars don't take traits yet | ||
did it work before? | |||
Darren_Duncan | also, 'trusts Foo' inside a class declaration doesn't work yet | 19:19 | |
?eval class Foo trusts Bar; | 19:20 | ||
evalbot6 | Error: No compatible subroutine found: "&trusts" | ||
Darren_Duncan | ?eval class Foo { trusts Bar; } | ||
evalbot6 | Error: No compatible subroutine found: "&trusts" | ||
autrijus | hrm. I got this mail saying my 45min I18N talk got accepted for Euroscon. | ||
curiously, none of the other 3 perl6/pugs related talks did. | 19:21 | ||
Darren_Duncan | now, assuming that private attributes are being enforced as such, this is a show stopper for my module, since Translator needs to access Message vars | ||
autrijus | Darren_Duncan: not enforced. | ||
Darren_Duncan | though I suppose I could work around it for now using the Message accessors, but the final version shouldn't | ||
autrijus | Darren_Duncan: you can comment the "trusts" out. | ||
Darren_Duncan | it is commented out in the checked in version | 19:22 | |
will add comment about not enforced | |||
autrijus | ok | ||
oh wait you mean $:foo | |||
sorry. I read incorrectly | |||
no accessors are generated for them, yeah. | |||
Darren_Duncan | yes I mean $:foo | 19:23 | |
autrijus | you need to use $.foo for now. is there a "trusts" test? | ||
I can maybe do it later this week | |||
Darren_Duncan | don't know | ||
autrijus | not seeing one | ||
ah. it just takes time for it to flow thru... I got another accepted talk | |||
autrijus wonders what the other two will fare | |||
Darren_Duncan | I don't know if this goes against your principles, but can you make it so 'trusts' compiles, even if it currently doesn't do anything? | ||
autrijus | I have no principles... :) | 19:24 | |
I'm just this implementation monkey | |||
pmichaud | heh, autrijus is like me | ||
I don't have any principles, I just want to get things to work :) | |||
autrijus | right. | ||
autrijus praises monkeyhood | |||
pmichaud | if that means implementing broken things for a while, so be it :) | ||
Darren_Duncan | when I say "principles", I mean that "if it compiles, it behaves correctly" | 19:25 | |
autrijus | oh. no. | ||
pugs compiles. | |||
but there's still loads of TODO tests | |||
1187 TODOs, actually | |||
Darren_Duncan | on the other hand, if things can compile and not run, then I would like for somethings to at least compile asap | ||
autrijus | out of some 7600 | ||
Darren_Duncan | namely the 'trusts Foo;' and 'is constant' | 19:26 | |
autrijus | Darren_Duncan: yes, and I implemented the parsing. | ||
Limbic_Region | pmichaud - ok, I think the biggest problem with people providing patches to the Synopses currently is that only about 1/3 of them are written - so in many cases - there is nothing to patch | ||
I will see what I can do about using the Perl6 Timeline by Apocolypse to frame all of them | |||
autrijus | Darren_Duncan: committing in. I would love a "trusts" test in t/oo/trusts.t | ||
pmichaud | Limbic_Region: well, I'm just about to add S17.pod into the repo | ||
Limbic_Region | will send them directly to you to confer with the cabal about uploading them | ||
autrijus | mmm Threads! | ||
Limbic_Region | and then people can fill in the blanks as they come up | ||
autrijus | @Larry got threads done? | 19:27 | |
pmichaud | no, it's a placeholder | ||
Limbic_Region | and those more ambitious can google for old answers | ||
autrijus | oh. bah. :-/ | ||
Darren_Duncan | can you do a 'my $foo is constant = 3;' parsing also? | ||
pmichaud | sorry :-) | ||
Limbic_Region | pmichaud - sound good? | ||
pmichaud | but I'm sure if someone wanted to draft up a document on threads it would get comments much more quickly | ||
actually, now that I think about it, it may be that @Larry (or $Larry) already had some pretty strong ideas about threads | |||
autrijus | right, except we don't know :) | ||
pmichaud | right | 19:28 | |
autrijus | I know he doesn't want a 5005 share-all-global-by-default model. | ||
but that's the extent. | |||
Limbic_Region | well - kinda hard to know what is left to talk about without knowing what hasn't been filled in yet | ||
pmichaud | so, perhaps what we need is to go ahead and put up frameworks, and for those sections where @Larry or $Larry have claimed they want a hand in drafting it we can put that as a placeholder | ||
so at least people will know if @Larry is working on it or if it's just being waited upon | |||
autrijus | sure. | ||
worksforme. | |||
yes. | |||
semaphores. | |||
pmichaud | lemme propose this to @Larry and make it so | 19:29 | |
autrijus | Darren_Duncan: enjoy. | ||
Darren_Duncan | autrijus, I just added an empty file t/oo/trusts.t to my working dir as a reminder to make the file a bit later | ||
Limbic_Region | pmichaud - $larry didn't yell at me (since I already pretty much said it was a good idea) | ||
autrijus | r4637 | ||
Limbic_Region | pmichaud - see perlmonks.org/index.pl?node_id=465629 | 19:30 | |
Darren_Duncan | updating ... | ||
Limbic_Region | could be that he was waiting to talk to you - but he could have just as easily said "we are not looking for framework until we are ready to talk about all the details" | ||
btw - for the frames, I will be following perlmonks.org/index.pl?node_id=332117 | |||
pmichaud | Limbic_Region: did Larry respond at all to your post? I have the impression he's been a bit busy lately, because he hasn't responded to a few of my messages to p6l | 19:31 | |
Darren_Duncan | back shortly | ||
Limbic_Region | pmichaud - TimToady = $larry | 19:32 | |
pmichaud | oh, thanks -- I wasn't aware of that connection | ||
Limbic_Region | he didn't reply directly to me, but to a reply in that thread | ||
pmichaud | got it | ||
Limbic_Region | S09 looks really interesting too | ||
pmichaud | my reading of his response is that frameworks for the documents is a good idea | ||
Limbic_Region | yeah - me too | 19:33 | |
pmichaud | okay, so here's what I'm going to do | ||
svnbot6 | r4637, autrijus++ | * parse for "trusts" and "my $foo is randomtrait", as suggested | ||
r4637, autrijus++ | by Darren_Duncan++ | |||
Limbic_Region | pmichaud - out of curiosity - there are several headings in S17 I didn't put in as they looked to be covered by other RFCs | ||
can you give the list a sanity check | |||
using perlmonks.org/index.pl?node_id=332117 as reference material | |||
pmichaud | l_r: sure, I'll do as much of a sanity check as I can | ||
but I'll go ahead and check in framework documents, and I'll post an invitation to @Larry (and others) that if there are any specific parts of the synopses they wish to "claim" then let me know and I'll put a marker in to that effect | 19:34 | ||
Limbic_Region | ok - so tomorrow providing tuits, I will frame out all the remaining synopses | ||
and we will mark reserved headings as such | |||
pmichaud | exactly | ||
Limbic_Region | the next task would be to go over the existing synopses and find missing headings | 19:35 | |
since the S now means both synopsis and spec - there is stuff left out | |||
or rather, some stuff is left out which made sense when the S only stood for synopsis but now it doesn't | 19:36 | ||
pmichaud | yup | ||
Limbic_Region | ok - nice doing business with you ;-) | ||
pmichaud | hey, anything that advances the state of Perl 6, I'm for :-) | 19:37 | |
Limbic_Region | me too, but I see myself having a much less significant role | ||
pmichaud | well, when I see what autrijus is accomplishing, I feel pretty insignificant myself at times :-) | 19:38 | |
Limbic_Region wonders how many days remaining until Xmas anyway | 19:39 | ||
autrijus casually notes that autrijus is only responsible for 1806 out of 4637 pugs commits. | |||
so that's <40% :) | |||
(and parrot is almost twice the number of commits.) | 19:40 | ||
so significance is very much overrated :) | |||
pmichaud | it's not just the number of commits, it's the speed :-) | ||
autrijus | well, yes, amphetamines has its uses... | 19:41 | |
...but I think diet coke is good enough for most of my needs | |||
Darren_Duncan | okay, 'trusts' now compiles | ||
Limbic_Region | right - keeps people calm | ||
s/people/ADD/ | 19:42 | ||
err - well, you get the point | |||
autrijus | so some of it is the speed, but not a significant part :) | ||
Limbic_Region | I am not sure it has anything to do with the amount of code or the speed - even though they are both impressive | ||
I think it has more to do with - I am not going to complain or suggest things - I am going to do something | |||
pmichaud | there is that :-) | 19:43 | |
Limbic_Region | and oh by the way - I am not going to work in a vaccuum, everyone is invited to come along and play | ||
autrijus | like, optimising for fun :) | ||
gawd, this PIR AST is 40 node types and counting | 19:44 | ||
Limbic_Region | it creates a synergetic energy that makes people want to help | ||
pmichaud | not much point in doing this if it's not fun. :-) | ||
autrijus | whomever that want to target PIR directly from parse tree is, I repeat, mad | ||
(as pugs currently does, that is.) | |||
Darren_Duncan | and 'is constant' now also compiles | 19:45 | |
Aankhen`` | What about making C<new Proxy: STORE => {...}, FETCH => {...};> compile? :-D | 19:50 | |
Limbic_Region wonders if there is a breakdown of tests for passing/todo/bug/failing ? | |||
autrijus | Aankhen``: er, it's just adding the Proxy class by default. | ||
Aankhen``: you can stuff it into src/Pugs/Context.hs yourself. | |||
Limbic_Region | specifically how many of the tests are todo features | ||
Aankhen`` | :-o | ||
Aankhen`` wanders into Haskell-world. | 19:51 | ||
autrijus | Limbic_Region: I don't think "make test" tallies them | ||
Limbic_Region: but you can grep anyway | |||
Aankhen``: with luck you can even learn to write Proxy::new into Prim.hs and hook it up with ScalarProxy! | |||
(then you get a full Proxy implementation) | |||
Aankhen`` | O_o_O | 19:52 | |
Limbic_Region | autrijus - I am just trying to balance out how much of known design is unimplimented against unknown (with 2/3 of the design docs not published) | ||
IOW - of the 1/3 we know about, how far along are we | 19:53 | ||
Aankhen`` | So this would involve putting it in the big list in initTree? | ||
autrijus | Limbic_Region: we're 7000ish pass with 1000ish todo | ||
Aankhen``: yes | |||
Aankhen`` | OK. | ||
autrijus | so in the known space, I'd say we're 70% there | 19:54 | |
pmichaud | and I'm not entirely sure that the remaining 2/3rds is "unknown space". Lots of it will be similar to perl 5 | 19:55 | |
autrijus | problem is that there's 2/3 not published, so we're more like 25% | ||
pmichaud: aye but similar ne defined | |||
and semantics undefined is verifications denied, or something :) | |||
pmichaud | well, even in the sections that are "defined" the definitions sometimes change from time to time :) | 19:56 | |
Limbic_Region | so assuming all things are equal we can expect around 30_000 tests | ||
autrijus | Limbic_Region: that sounds like correct. | ||
pmichaud | out of curiosity, how many tests does p5 have? | ||
Darren_Duncan | committed v4638 which uses 'trusts' and 'is constant' | 19:57 | |
Aankhen`` | W00t! | ||
I added it. :-D | |||
Shachaf | !seen ingy | 19:58 | |
Darren_Duncan | seen ingy | ||
Khisanth | the bot is not here | 19:59 | |
Darren_Duncan | hi | ||
autrijus | pmichaud: | ||
70_000. | |||
pmichaud | seems like p6 ought to have a similar number of tests :-) | ||
Darren_Duncan | indeed | ||
pmichaud | when it's done | 20:00 | |
autrijus | but Perl 5.6.x has < 12_000 | ||
so... :) | |||
pmichaud | ahhh | ||
seems like p6 ought to have around 30_000 tests... when it's done. :-) | |||
svnbot6 | r4638, Darren_Duncan++ | Locale-KeyedText update to 6v0.1.2 : uncommented 'trusts ...' in KeyedText.pm, uncommented all 'is constant' in all t_LKT_*.pm and LKT_30_TrnMsg.t ; Pugs can now parse those 2 features | ||
r4639, Aankhen++ | * added Proxy to the builtin classes. | |||
Darren_Duncan | but one of the big advantages of 5.8 is the much larger test suite | ||
Limbic_Region | and how many of those tests are generated versus written by hand | ||
Darren_Duncan | over 5.6 | ||
autrijus | right. | ||
pmichaud | either way, 30_000 seems like it might be a lower bound | 20:01 | |
Limbic_Region | meaning pugs/p6 is likely to have far more tests if we go the generated route | ||
Aankhen`` | Hmm. | ||
C<new Proxy:> still doesn't parse. | |||
pmichaud | well, we're also going to have the parrot tests as well | ||
Skilled_sniper | quit | ||
ingy | hola | 20:02 | |
geoffb | hola, ingy | ||
Darren_Duncan | I also hola | ||
geoffb | friendliness++ | ||
Aankhen`` | autrijus >> Actually implementing a Proxy class seems to be a little beyond me. :-) | 20:04 | |
autrijus | Aankhen``: that's fine :) at least write tests. | ||
Aankhen`` | A'right. | 20:05 | |
There are already tests in t/subroutines/lvalue_subroutines.t | 20:08 | ||
autrijus | ok. good | ||
Aankhen`` | I'll add one or two. | ||
svnbot6 | r4640, autrijus++ | * first cut at Emit.PIR -- almost enough to express mandel.p6 | 20:12 | |
r4640, autrijus++ | -- but not quite. need to push the PugsAST side now -- | |||
r4640, autrijus++ | it's just like playing Sokoban... | |||
Limbic_Region googles for Sokoban | 20:16 | ||
geoffb | Limbic_Region, it's a game of pushing squares around a puzzle maze to reach an exit point | 20:20 | |
svnbot6 | r4641, Aankhen++ | * added more tests for lvalue subs. | ||
geoffb | It's actually damned addictive . . . . | ||
It's always the simple game play that keeps 'em coming back | |||
pdcawley | Turing complete as well. | 20:21 | |
geoffb mumbles "Man I wish I had a Robotron arcade machine . . . ." | |||
pdcawley, really? Cool! | |||
autrijus | I think I need to sleep a bit so I don't fall into underclocking mode :) | 20:22 | |
bbl... *wave* | |||
Limbic_Region | sleep well | ||
pdcawley | Yeah. There's a proof somewhere. | ||
geoffb | Have a good rest! | ||
pmichaud | later, autrijus | 20:23 | |
autrijus | :) | ||
Aankhen`` | See ya autrijus. | ||
Limbic_Region heads homewards | 20:29 | ||
svnbot6 | r4642, Aankhen++ | * cleaned up t/subroutines/lvalue_subroutines.t somewhat. | 20:39 | |
Aankhen`` | G'night. | 21:22 | |
eric256_ | do i have to be subscribed to the mailing lists to send a message? | 21:25 | |
wolverian | no. | ||
eric256_ | hmm.. well i'm sure i sent it in before tese other messages. odd | 21:26 | |
pmichaud | eric256_: which mailing list did you send to? | 21:27 | |
wolverian | eric256_: the first mail takes longer to arrive with the perl6-* lists, anyway. | ||
svnbot6 | r4643, ninereasons++ | perl6.vim: add a couple Types keywords | ||
r4643, ninereasons++ | progressive_powerset.p6: s:g/return/last/ fixes a test | |||
pmichaud | I've noticed that the perl6-compiler list often "holds" messages for a few hours before delivering them | ||
I don't know why | |||
wolverian | the lists (-language, anyway) are moderated and you're whitelisted after the first mail. | 21:28 | |
or so I seem to remember someone saying. | |||
eric256_ | perl6-language | ||
pmichaud | wolverian: yes, that's true also. However, I know that I'm whitelisted and my posts still sometimes take a while to come back | ||
pdcawley_ | I think they all are, but I'm not sure. | ||
pmichaud | eric256_: if you haven't posted to p6l in a while, I suspect it's waiting for moderator approval | ||
after that you'll be whitelisted again (I think the whitelisting is good for 30 days or something like that) | |||
wolverian | pmichaud: I had a problem when my mail envelope had the wrong FROM field. that's against the spec and awfully wrong (tm) and it made the whitelisting process fail. | 21:29 | |
eric256_ | ahh okay | ||
wolverian | things like that can happen when you're, well, me. :) | ||
pmichaud | wolverian: well, that might explain some of my problems too. But I've even noticed that with the weekly summaries the p6c copy of the summary arrives significantly after the p6i and p6l ones | 21:30 | |
wolverian | pmichaud: oh, okay. I haven't participated in p6c, can't compare myself. | 21:31 | |
svnbot6 | r4644, Darren_Duncan++ | Locale-KeyedText updates : uncommented all tests in MsgProps.t and TrnProps.t, removed 2 tests from MsgProps.t and 1 from TrnProps.t (the same tests were removed in the Perl 5 version), reorganized t_LKT_Util.pm, split up a test in Compile.t to match the Perl 5 version, cleaned up several KeyedText methods that fetch properties ; there are now no runtime deaths, but many wrong answers are still returned | 21:52 | |
Darren_Duncan | I'm stopping for today | 21:56 | |
my main problems right now seem to concern Pugs transforming one container or variable or value type into another type | 21:58 | ||
question: if you say 'return;' inside a constructor method new(), is the calling code supposed to receive an object or undef? | 22:06 | ||
and if that's true, then how do you indicate that a constructor has failed due to bad input, without throwing an exception? | 22:07 | ||
in Perl 5, the undef is returned by 'return;' and a caller will know if the constructor failed by seeing that; seeing an object meant success | 22:08 | ||
Pugs worked this way a few weeks back but now it seems to always return an object | |||
testing more ... | |||
okay, that may not be the problem, ignore what I said | 22:15 | ||
22:22
Limbic_Region_ is now known as Limbic_Region
|
|||
geoffb hopes Limbic_Region ate or something in between there, and doesn't face a nearly 2 hour commute . . . . | 22:27 | ||
wolverian | hmm, got my friend to learn haskell | 22:59 | |
geoffb | wolverian++ | ||
wolverian | :) | 23:00 | |
is there syntax for constructing a lazy list in perl6 specced? | |||
er, rephrase that as needed. I suck at 2am | |||
geoffb | I recall seeing something, but I also recall seeing something saying that it changed. Useless answer, I know, but what I mean is "I don't know for sure, but I wouldn't necessarily trust AES on this one." | 23:01 | |
wolverian | right. I recall a thread on p6l on this subject without a final decision from anyone. | 23:02 | |
wolverian digs it up | |||
geoffb | nodnod | ||
geoffb is reading Perl5 test library to see if there are techniques we can steal^Wborrow^Wclone^Wuse | |||
Judging by the amount of crap special-casing VMS testing, this comment is appropriate | 23:03 | ||
# VMS will avenge. | |||
Yep. | |||
wolverian | wow, did google change back to the before-beta version of the google groups interface? yay! | ||
eric256_ | yea my message posted to p6l ;-) | ||
SamB | wolverian: ooh, cool! | 23:06 | |
why did they even change it? | |||
SamB wonders why it went "beta" all of a sudden in the first place | |||
wolverian | SamB: I don't know. the beta version SUCKED. | 23:07 | |
SamB | yeah | ||
geoffb | Someone thought they were being clever. | ||
revdiablo | the beta seemed to be a knock-off of the gmail interface | ||
geoffb | Google Maps -- now that's clever. | ||
Maybe done by the same people, before they started Gmail? | |||
revdiablo | maybe at the same time, part of a Grand Unified Scheme | 23:08 | |
wolverian | my @fibs = 1, 1, [+] zip @fibs, @fibs.tail; # I want this to work correctly (lazily) :) | ||
geoffb | BTW, from reading these Perl5 tests, I think I can definitively say "If Win32 is the least sane platform you've ever worked on, count yourself LUCKY." | ||
wolverian, ooh, cute. | 23:09 | ||
wolverian | geoffb: yes. :) this is why I want to know how laziness works on the syntax level. to compare with haskell! | ||
(the above was given to me in haskell as an example of its elegance.) | |||
(well, as an example of _something_. I don't know what the purpose was, really.) | 23:10 | ||
geoffb | *chuckle* | ||
cognominal | in svn.openfoundry.org/pugs/src/Emit/PIR.hs, what the following means? | 23:13 | |
{- | |||
... | |||
-} | |||
kelan | cognominal: multi-line comments in haskell | 23:14 | |
actually inline comments because you can put them inside expressions | 23:15 | ||
cognominal | thx | 23:16 | |
SamB | {-# FOO #-}, on the other hand, would be a pragma... | 23:17 | |
mugwump | whereas {-< >-} is a Tie Fighter | 23:18 | |
SamB | no, the TIE cockpits are spherical | ||
whereas that has a diamond shaped cockpit | 23:19 | ||
mugwump | {-( )-} {- happy? -} | ||
geoffb | Well, |-o-| might be better, since Tie Fighters have flat sides, only Tie Interceptors are curved on the sides | 23:20 | |
I can't believe I even have that in my brain | |||
eric256_ | lol. ;) | 23:21 | |
hmm... circumfix operators could be used to create a multiline comment ;) | 23:22 | ||
wolverian | hmm. shouldn't ?SUB work as well, besides &?SUB? | ||
mugwump notes you can get all these craft and more in Celestia from the www.celestiamotherlode.net | 23:23 | ||
eric256_ searches for the spec on circumfix operators | 23:30 | ||
mugwump | eric256_: it's only in the relevant apocalypse iirc | 23:31 | |
A06 | 23:32 | ||
also A12 | 23:33 | ||
eric256_ | thanks | 23:35 | |
i would never have checked A06 | |||
23:48
_meppl_ is now known as meppl
|
|||
Limbic_Region | seen chip | 23:51 | |
he's probably sleeping |