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