Camelia, the Perl 6 bug

IRC log for #perl6, 2009-09-19

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:10 zerhash vijs?
00:12 zerhash is there a bugtracker for perl6?
00:14 diakopter there are several Perl 6 implementations; would you like to report a bug?
00:15 zerhash no id just like to write some tests against bugs etc
00:15 diakopter do you have parrot+rakudo?
00:18 zerhash yes
00:19 diakopter here's the url for those bugs: http://rt.perl.org/rt3/Search/Results.htm​l?Query=Queue%20%3D%20'perl6'%20AND%20(St​atus%20%3D%20'open'%20OR%20Status%20%3D%2​0'new'%20OR%20Status%20%3D%20'stalled')
00:21 zerhash thank you
00:21 zerhash is there a way for me to help you with vijs?
00:22 diakopter probably not for a while.. :D it's still in "incubation", as it were.
00:22 Tene Is there a function form of reduce?
00:24 avuserow Tene: http://perlcabal.org/syn/S​32/Containers.html#reduce
00:24 Tene Ah, thanks.
00:27 ruoso joined #perl6
00:36 PacoLinux joined #perl6
00:38 jrtayloriv joined #perl6
00:53 payload joined #perl6
00:55 am0c joined #perl6
00:58 pugs_svn r28293 | diakopter++ | [vijs] implemented string interpolation and scalar declaration.
00:59 maja joined #perl6
00:59 diakopter p6eval: you so slow
01:04 sevvie joined #perl6
01:11 TiMBuS joined #perl6
01:30 diakopter vijs: my $a="Be Good"; my $b = 4; my $c = "I say '$a'. $b"; say "    $c ";
01:30 p6eval vijs 28293: OUTPUT«    I say 'Be Good'. 4 ␤␤      time in interpreter: 0.017817 s␤»
01:52 PZt joined #perl6
02:25 SmokeMachine joined #perl6
02:42 pugs_svn r28294 | sunnavy++ | typo fix
03:05 pugs_svn r28295 | lwall++ | [S06] typoish tweaks
03:23 molaf joined #perl6
04:05 dukeleto joined #perl6
04:05 _jaldhar joined #perl6
04:08 punter joined #perl6
04:09 punter perl6: say 3;
04:09 p6eval elf 28295, pugs, rakudo 4b141a: OUTPUT«3␤»
04:13 dukeleto_ joined #perl6
04:21 Kannah joined #perl6
04:25 Kannah hi can any help me
04:27 Kannah i am ready to put my efforts to help developing perl 6
04:27 Kannah pls any one guide me
04:28 TimToady what are your skills and interests?
04:31 Kannah i am a devloper working in perl
04:32 TimToady have you downloaded Perl 6 yet?
04:32 Kannah not yet
04:33 TimToady I'd suggest visiting perl6.org and following the download button first
04:33 Kannah ok
04:33 TimToady what kind of machine/OS are you on?
04:33 Kannah windows xp
04:33 Kannah and having linux too
04:34 TimToady people have done it on windows, though I'm running linux myself
04:34 alester joined #perl6
04:34 TimToady which Perl are you using on windows?
04:35 Kannah 5.10.0
04:35 TimToady people have been having the best luck with Strawberry Perl, I think
04:35 Kannah avtive perl
04:39 carlin joined #perl6
04:46 justatheory joined #perl6
04:51 finanalyst joined #perl6
04:52 finanalyst good localtime. anyone here this time on friday/saturday?
04:55 TimToady <crickets>
04:56 finanalyst TimToady: Am I right that map {+ ... },... should disambiguate a closure from a hash?
04:57 TimToady well, yes, but you'd better want ... to return something numeric
04:57 finanalyst so + imposes a numeric context on the contents?
04:59 TimToady yes, unlike P5
04:59 TimToady usually it's sufficient to put { ... ; }
05:00 finanalyst ok. I thought i had found a bug.
05:00 finanalyst rakudo: my %x=<a b c>Z 1,'a',3; say (map {+ %x{$_} },<a b c>).join(' ')
05:00 p6eval rakudo 4b141a: OUTPUT«1 0 3␤»
05:01 finanalyst i couldnt work out why i was getting 0 and not 'a'
05:01 TimToady well, a ~ would work for a string
05:01 finanalyst after getting strange errors before with map, i tend to put map {+ everywhere
05:01 TimToady and that shouldn't make a hash in any case, I think
05:01 finanalyst rakudo: my %x=<a b c>Z 1,'a',3; say (map {~ %x{$_} },<a b c>).join(' ')
05:02 p6eval rakudo 4b141a: OUTPUT«1 a 3␤»
05:02 finanalyst rakudo: my %x=<a b c>Z 1,'a',3; say (map {; %x{$_} },<a b c>).join(' ')
05:02 p6eval rakudo 4b141a: OUTPUT«1 a 3␤»
05:02 TimToady rakudo: my %x=<a b c>Z 1,'a',3; say (map { %x{$_} },<a b c>).join(' ')
05:02 p6eval rakudo 4b141a: OUTPUT«1 a 3␤»
05:03 TimToady don't need anything
05:04 finanalyst i know. but being lazy i dont want to (i cant) figure out whether the {} after a map is going to be considered a closure or a hash
05:04 finanalyst so i want to make sure
05:09 finanalyst @seen pmichaud
05:11 quietfanatic joined #perl6
05:11 quietfanatic rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; $b.unself; say $a
05:11 p6eval rakudo 4b141a: OUTPUT«Use of uninitialized value␤␤»
05:12 quietfanatic Telling $b to undefine self makes $a also undef.
05:12 quietfanatic rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; undefine $b; say $a
05:12 p6eval rakudo 4b141a: OUTPUT«A()<0xb5b35c98>␤»
05:12 quietfanatic However, calling undefine $b does not undefine $a.
05:13 quietfanatic It undefines the container instead of the object.
05:13 quietfanatic undefine self causes all containers that point to it to become undefined.
05:13 quietfanatic Is this a feature, or an accident?
05:16 quietfanatic Specifically, the containers become Failures.
05:16 TimToady maybe it's an accidental feature
05:16 quietfanatic ..or point to Failures.
05:17 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; $b.undefine; say $a
05:17 p6eval rakudo 4b141a: OUTPUT«Method 'undefine' not found for invocant of class 'A'␤»
05:18 quietfanatic I tried that ^.^
05:18 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; $b.=Object; say $a
05:18 p6eval rakudo 4b141a: OUTPUT«Method 'Object' not found for invocant of class 'A'␤»
05:20 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; undefine(Var($b)); say $a
05:21 p6eval rakudo 4b141a: OUTPUT«Could not find non-existent sub Var␤»
05:21 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; undefine(VAR($b)); say $a
05:21 p6eval rakudo 4b141a: OUTPUT«A()<0xb692ab30>␤»
05:24 carlin rakudo: sub foo { my $a = 1; undefine $a; }; foo*42;
05:24 p6eval rakudo 4b141a: OUTPUT«Null PMC access in can()␤in Main (/tmp/LUkzspJGAW:2)␤»
05:24 carlin rakudo: sub foo { my @a = 1; for @a { pop @a; }; }; foo*42;
05:25 p6eval rakudo 4b141a: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/Pi670ldCzk:2)␤»
05:53 cmv joined #perl6
05:59 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; undefine(($b)[0]); say $a
05:59 p6eval rakudo 4b141a: OUTPUT«Method 'postcircumfix:[ ]' not found for invocant of class 'A'␤»
06:00 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; undefine([$b][0]); say $a
06:00 p6eval rakudo 4b141a:  ( no output )
06:00 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; undefine([$b][0]); say $a
06:00 p6eval rakudo 4b141a: OUTPUT«A()<0xb6383e58>␤»
06:03 Confield left #perl6
06:09 azawawi joined #perl6
06:10 mikehh joined #perl6
06:19 am0c joined #perl6
06:21 mberends @tell diakopter "would anyone like to write a test driver/harness against the spectests for vijs?": Yes, I would like to do that very much.
06:21 mberends ENOLAMBDABOT
06:21 mberends phenny, tell diakopter "would anyone like to write a test driver/harness against the spectests for vijs?": Yes, I would like to do that very much.
06:21 phenny mberends: I'll pass that on when diakopter is around.
06:22 meppl joined #perl6
06:31 xinming joined #perl6
06:40 orafu joined #perl6
06:55 mikehh rakudo (4b141a8) builds on parrot r41352 - make test / make spectest (up to 28295) PASS - Ubuntu 9.04 i386
06:56 lucs_ joined #perl6
07:00 synth^2 joined #perl6
07:05 azawawi joined #perl6
07:08 azawawi moritz_: http://ahmadzawawi.blogspot.com/2009​/09/new-padre-perl-six-updater.html
07:08 moritz_ good morning
07:08 azawawi moritz_: good morning :)
07:09 azawawi moritz_: i have just sent you a link...
07:09 moritz_ azawawi++
07:09 moritz_ yes, I've seen it
07:10 azawawi I may also add nightly/weekly binary builds for win32 and may other platforms
07:10 azawawi s/may other/maybe other/
07:11 am0c joined #perl6
07:32 Su-Shee joined #perl6
07:32 Su-Shee good morning.
07:38 moritz_ oh hai Su-Shee
07:38 moritz_ Su-Shee: http://sandbox.rakudo.de/
07:39 Su-Shee ui, you were a busy-ritz :)
07:39 moritz_ ;-)
07:40 Su-Shee meh. and I'm stuck with perl 5.8 ;)
07:45 pugs_svn r28296 | moritz++ | [new perl6.org] page about hacking perl6.org
07:46 moritz_ I'm still not sure what to do with the download button
07:46 moritz_ and if I need a third row of colored boxes on the front page
07:47 Su-Shee download should be easy access no scrolling middle-ish somewhere.
07:48 moritz_ I'll just restore it for now, and worry later ;-)
07:49 Su-Shee good choice. :)
07:52 pugs_svn r28297 | moritz++ | [new perl6.org] download button, menu for 'about' page
07:59 TiMBuS is there a way to make repetition counts in rakudo regexes interpolate
07:59 TiMBuS / a ** $min..$max /
07:59 TiMBuS that sort of thing
08:00 moritz_ no
08:00 moritz_ you currently have to fall back to eval() to do that kind of thing
08:00 TiMBuS aw
08:00 TiMBuS will it eventually work?
08:01 iblechbot joined #perl6
08:02 TiMBuS because if perl6 flat out won't support it i may as well just use a bit of manual string manipulation.
08:04 desertm4x__ joined #perl6
08:04 Zloyrusskiy joined #perl6
08:07 moritz_ it will
08:10 moritz_ at least **{$min..$max} will surely work
08:35 abra joined #perl6
08:51 kidd joined #perl6
08:57 dakkar joined #perl6
08:59 JimmyZ joined #perl6
09:06 sevvie joined #perl6
09:14 dalek rakudo: 0d77e42 | mberends++ | tools/test_summary.pl:
09:14 dalek rakudo: [tools/test_summary.pl] use Time::HiRes to work on Windows, code cleanup
09:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​d77e42397500afbfa78daa7e70d64d80fbc1c50
09:34 ejs joined #perl6
09:45 meppl joined #perl6
09:51 mberends rakudo: @*INC>>.say
09:51 p6eval rakudo 0d77e4: OUTPUT«/home/evalenv/.perl6/lib␤/home/evalenv/p2/l​ib/parrot/1.6.0-devel/languages/perl6/lib␤lib␤.␤»
09:56 moritz_ mberends++ # pre-configured lib
09:57 mberends now to use it for something...
09:57 pugs_svn r28298 | moritz++ | [new perl6.org] fix typo; more hacking notes
10:02 mberends rakudo: say $*CWD
10:02 p6eval rakudo 0d77e4: OUTPUT«/home/evalenv/rakudo␤»
10:07 M_o_C joined #perl6
10:11 szabgab pmichaud, hi, would it be possible to include http://ahmadzawawi.blogspot.com/search/label/perl6 in to http://planetsix.perl.org/  ?
10:12 Su-Shee hi szabgab :)
10:13 szabgab Su-Shee, hi!
10:15 mikehh rakudo (0d77e42) builds on parrot r41361 - make test / make spectest (up to 28298) PASS - Ubuntu 9.04 i386
10:15 cognominal joined #perl6
10:24 Whiteknight joined #perl6
10:46 payload joined #perl6
10:54 masak joined #perl6
10:56 jnthn lolitsmasak
10:56 masak \o/
10:56 masak lolitsweekend
10:56 * jnthn only just noticed the Rakudo release announcement - nice work all. :-)
10:57 masak all++
10:57 jnthn (all as a method name)-- ;-)
10:57 masak 哈哈
10:57 carlin rakudo: sub foo { say 'foo'; }; undefine foo; foo;
10:57 p6eval rakudo 0d77e4: OUTPUT«foo␤maximum recursion depth exceeded␤in method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print
10:57 p6eval ..(src/…
10:58 masak whoa.
10:58 jnthn rakudo: say &undefine.WHAT
10:58 p6eval rakudo 0d77e4: OUTPUT«Code()␤»
10:59 carlin rakudo: sub foo { foo; }; foo;
10:59 p6eval rakudo 0d77e4: OUTPUT«maximum recursion depth exceeded␤in sub foo (/tmp/R0vNMc7qlg:2)␤called from sub foo (/tmp/R0vNMc7qlg:2)␤called from sub foo (/tmp/R0vNMc7qlg:2)␤called from sub foo (/tmp/R0vNMc7qlg:2)␤called from sub foo (/tmp/R0vNMc7qlg:2)␤called from sub foo (/tmp/R0vNMc7qlg:2)␤called from
10:59 p6eval ..sub fo…
10:59 jnthn rakudo: sub foo { say 'foo'; }; undefine foo; say "alive"
11:00 p6eval rakudo 0d77e4: OUTPUT«foo␤maximum recursion depth exceeded␤in method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print
11:00 p6eval ..(src/…
11:00 jnthn rakudo: sub foo { say 'foo'; }; foo;
11:00 p6eval rakudo 0d77e4: OUTPUT«foo␤»
11:03 carlin Should I ticket them?
11:03 jnthn The undefine issue looks like a bug, yeah.
11:07 masak do it!
11:07 carlin Sent :)
11:08 masak carlin++
11:08 masak moritz_: http://sandbox.rakudo.de/ looks very nice.
11:09 * masak looks at that page and has an urge to improve u4x somehow
11:10 masak my latest plan is to split up the work into half-hour chunks, put them in a list, and (1) start working on the chunks myself, one by one, (2) announcing that others are welcome to pick a chunk and work on it, too
11:10 masak it would be fun to have something ready for Christmas 2009.
11:11 masak but I talk too much. what do you think? :)
11:13 jnthn Stop talking and do a chunk. ;-)
11:14 xinming joined #perl6
11:14 jnthn Breaking it down into managable little tasks is probably helpful though.
11:14 jnthn I guess it's a pretty intimidating project otherwise.
11:15 masak aye.
11:15 masak I'm not going to do a chunk today, I have two other projects I want to work on.
11:16 masak Web.pm/Squerl, and a secret one.
11:20 masak I'll start with Squerl, since it's more serious work. #seriouslyyouguys
11:22 carlin rakudo: sub foo {}; undefine undefine foo;
11:22 p6eval rakudo 0d77e4: OUTPUT«Null PMC in copy␤»
11:22 masak :)
11:22 * carlin loves undefine :-)
11:22 masak carlin: you're on fire today!
11:23 jnthn .oO( may have undefined behavior )
11:23 jnthn ooh, I should find dinner
11:23 jnthn bbiab
11:23 carlin it's amazing what happens when you type silly things into a terminal ;-)
11:24 viklund YAY!
11:24 viklund now i've made myself an obscure JAPH
11:24 viklund (slightly ot...)
11:24 viklund http://twitter.com/johanviklund/status/4100664178
11:25 masak slightly? :)
11:25 carlin should I ticket that, or is one ticket about undefine enough?
11:25 masak carlin: definitely ticket that separately.
11:25 viklund mebbe I should port it to p6
11:26 masak viklund: 'maybe'? :) :)
11:26 masak viklund: anyway, cool JAPH. :)
11:26 viklund aye
11:26 viklund oh, and by the way:
11:26 viklund Ahoy!
11:26 masak ARRR!
11:27 masak Avast, going to write me some code and drink me some rum!
11:29 carlin Sent. I wonder what else I can break ;-)
11:29 masak Arrr, no rum!
11:30 masak carlin: I like yer attitude, mate. keep at it!
11:31 mikehh rakudo (0d77e42) builds on parrot r41362 - make test / make spectest (up to 28298) PASS - Ubuntu 9.04 i386
11:32 cognominal rakudo:  eval( 'sub A::t {  print @{$_[1]}, "\n"  };   bless {}, A', :lang<perl5> ).t( < j a p h > )
11:32 p6eval rakudo 0d77e4: OUTPUT«Method 't' not found for invocant of class 'Nil'␤»
11:32 cognominal don't know why it does not work here
11:51 finanalyst joined #perl6
11:52 zloyrusskiy joined #perl6
11:55 zloyrusskiy joined #perl6
11:58 moritz_ cognominal: as long as blizkost's build system is not fixed, I don't trust evalbot in that respect
11:59 moritz_ rakudo:  eval( 'sub A::t {  print @{$_[1]}, "\n"  }; bless {}, A', :lang<perl5> ).t( < j a p h > ) # with blizkost recompiled
11:59 p6eval rakudo 0d77e4: OUTPUT«Method 't' not found for invocant of class 'Nil'␤»
11:59 diakopter phenny: hi
11:59 phenny diakopter: 06:21Z <mberends> tell diakopter "would anyone like to write a test driver/harness against the spectests for vijs?": Yes, I would like to do that very much.
12:00 moritz_ vijs: say('foo')
12:00 p6eval vijs 28298: OUTPUT«foo␤␤  time in interpreter: 0.006706 s␤»
12:00 diakopter LOL
12:01 cognominal moritz_, what's wrong with blizkost's build system?
12:01 diakopter mberends: hi, I mean
12:01 moritz_ cognominal: it doesn't rebuild the binary when a .pmc changes (at least not always9
12:01 moritz_ s/9/)/
12:01 cognominal indeed
12:02 cognominal I just get used to do a  make clean
12:03 diakopter moritz_: I got my $a = declaration working; also string interpolation of them
12:03 diakopter also infix ~
12:06 moritz_ cool
12:07 diakopter 'tis easy when the ast is already proper
12:07 pugs_svn r28299 | moritz++ | [evalbot] 'make clean' in blizkost
12:08 moritz_ carlin++ # going through RT, commenting where appropriate
12:08 rfordinal3643 joined #perl6
12:09 diakopter hm, I never can find Test.pm :P
12:09 moritz_ which one? ;-)
12:09 mberends diakopter: I need to learn what wil be involved in a vijs test harness in particular, so it may take me a few days to come up with a plan. I very much like where this is leading already.
12:09 diakopter any? just the signatures of the isok() and all that
12:10 diakopter mberends: well
12:10 moritz_ diakopter: probably mp6 and mildew have the simplest Test.pms (ie the ones that need the least features)
12:11 diakopter I can fake/mock just about anything already
12:11 mberends diakopter: oh, so you need it today? ;-)
12:11 moritz_ v6/v6-MiniPerl6/lib/Test.pm
12:11 JimmyZ joined #perl6
12:12 diakopter mberends: yeah I think maybe what would really help is some more abstraction in viv
12:12 moritz_ sub ok($what, $desc?)
12:12 moritz_ sub is($got, $expected, $desc?)
12:12 moritz_ erm
12:12 moritz_ sub is(Object $got, Object $expected, $desc?)
12:12 moritz_ we don't want no autothreading over test functions
12:13 mberends diakopter: is the 'use' command working to pull in a Test.pm ?
12:13 diakopter mberends: well, I don't know.  give me a day or two :)
12:14 diakopter moritz_: no, but I suspect I could hack it in so it fakes it...
12:14 diakopter :)
12:14 diakopter I mean, technically use '' will re-enter viv/STD
12:15 moritz_ viv: say 3 ~ 4
12:15 moritz_ vijs: say 3 ~ 4
12:15 p6eval vijs 28298: OUTPUT«34␤␤   time in interpreter: 0.008141 s␤»
12:15 moritz_ vijs: say 3 + 4
12:15 p6eval vijs 28298: OUTPUT«execute(): execute error: Additive not yet implemented; srsly!!?!? at viv line 139.␤»
12:15 mberends you could probably fake a 'use' by emulating #include behaviour.
12:15 moritz_ (awesome error messages)+
12:15 mberends srsly!! lol
12:15 diakopter but for Test, I'll just make it declare those builtins
12:17 diakopter vijs: my $a="Be Good. "; my $b = 4; my $c = "I say '$a $b'"; say "$c $c";
12:17 p6eval vijs 28298: OUTPUT«I say 'Be Good.  4' I say 'Be Good.  4'␤␤      time in interpreter: 0.018506 s␤»
12:17 mberends diakopter++
12:18 diakopter TimToady++ # lots of very quickly implemented fixes/enhancements to viv/STD
12:19 diakopter vijs: say(say)
12:19 p6eval vijs 28298: OUTPUT«execute(): execute error: TypeError: Cannot read property 'length' of undefined at viv line 139.␤»
12:20 diakopter oopsies
12:20 moritz_ btw empty say() is forbidden
12:20 diakopter ah.
12:20 moritz_ vijs: say say 3
12:20 diakopter wait, really?
12:20 moritz_ ORLY
12:20 p6eval vijs 28298: OUTPUT«3␤1␤␤   time in interpreter: 0.017954 s␤»
12:21 Su-Shee joined #perl6
12:22 diakopter vijs: ~(" hi "," foo ")
12:22 p6eval vijs 28299:  ( no output )
12:22 diakopter std: ~(" hi "," foo ")
12:22 p6eval std 28299: OUTPUT«ok 00:04 41m␤»
12:22 diakopter I dunno what that's supposed to do
12:22 moritz_ vijs: say "a { 3 } b"
12:22 p6eval vijs 28299: OUTPUT«execute(): execute error: escape__S_Cur_Ly not yet implemented; srsly!!?!? at viv line 139.␤»
12:23 moritz_ it should give " hi   foo ", no?
12:23 diakopter vijs: say ~(" hi "," foo ")
12:23 moritz_ stringifying a two-element list joins them with a space
12:23 p6eval vijs 28299: OUTPUT«execute(): execute error: Symbolic_unary not yet implemented; srsly!!?!? at viv line 139.␤»
12:23 moritz_ rakudo: say ~(" hi "," foo")
12:23 p6eval rakudo 0d77e4: OUTPUT« hi   foo␤»
12:24 diakopter to "implement" something in vijs, all you do is add a function to the "disp" object there in interp.js
12:24 diakopter with the name of that "op" (aka node type from STD)
12:25 diakopter the node itself is in the function's "this" object
12:27 diakopter this.phase stores which "step" in the op is current (next)
12:27 diakopter store all other state of the op (if it'll be "calling" other ops) on the this object too
12:28 moritz_ diakopter: you really should have a HACKIING document in js/ where you describe such things
12:28 moritz_ IRC is volatile
12:28 diakopter return [next_op_node,this] to call next_op_node, where next_op_node can be constructed
12:28 diakopter return [this.invoker] to end the op
12:28 moritz_ CPS
12:29 diakopter I implemented string interpolation by constructed a Concatenation node
12:29 diakopter constructing
12:29 diakopter yeah; CPS in a sense
12:30 diakopter in that each op knows its next one, but it can also inject into the stream
12:30 diakopter or divert it entirely
12:31 diakopter makes closures braindead easy
12:31 zloyrusskiy joined #perl6
12:31 diakopter er, any kind of subroutine, I mean
12:32 diakopter because a node just needs cloned shallowly to re-enter it
12:32 diakopter and have its .phase reset
12:34 diakopter and actually, every function could theoretically be a tailcall, so at some point the trampoline can be removed
12:34 diakopter the trampoline is interp()
12:35 diakopter HACKIING indeed
12:36 pugs_svn r28300 | moritz++ | [new perl6.org] -Ofun
12:36 * diakopter looks at the ast for  use Test;
12:36 moritz_ any more fun links for the website?
12:37 diakopter is runpugs still around
12:37 diakopter vijs: use Test; say 'hi!';
12:37 p6eval vijs 28299:  ( no output )
12:38 diakopter hm
12:38 moritz_ diakopter: I think it died the bitrot death
12:43 carlin moritz_: I wasn't commenting, they're all new (unless that's not what you meant, in which case ignore me :) )
12:47 moritz_ maybe I was just confused
12:48 sm` joined #perl6
12:50 hugues23 joined #perl6
13:02 pugs_svn r28301 | moritz++ | [new perl6.org] Whatever
13:07 pugs_svn r28302 | moritz++ | [new perl6.org] documentation
13:10 pugs_svn r28303 | moritz++ | [new perl6.org] more Camelia
13:12 TopoMorto joined #perl6
13:18 pugs_svn r28304 | fglock++ | [mp6] Javascript fixes
13:19 * ruoso o/ now I can pester jnthn to implement .cando($capture)
13:20 * ruoso goes to write a spectest for that
13:21 masak ruoso++ # writing a spectest -- I dig that definition of 'pester'
13:25 moritz_ any objections to switching perl6.org to http://sandbox.rakudo.de/ ?
13:27 masak not from me.
13:28 masak but -- unrelatedly -- I wish we'd use tables instead of floats for the boxes.
13:28 arnsholt masak: Careful. The CSS police are going to knock on your door soon =p
13:28 masak that way, people with narrow browser windows would get a horizontal scroll bar instead of a botched-up layout.
13:28 jnthn masak: The 90s just called asking for you.
13:28 jnthn ;-)
13:29 jnthn Heh.
13:29 masak I don't care about you people's taunts.
13:29 jnthn CSS makes it too hard to do layout well though, i agree.
13:29 masak http://giveupandusetables.com/
13:29 jnthn I occasionally have. ;-)
13:30 masak http://www.eod.com/devil/a​rchive/web_standards.html
13:30 jnthn Spending an hour failing to make something work with CSS that I coulda done in 2 minutes with tables always irks me.
13:31 masak Google doesn't close their elements, preferring speed to standards. they've got the right idea, if you ask me.
13:31 masak as long as you're in tag soup land, you might as well play to your advantage.
13:32 kidd moritz_: someone said in the reddit thread about perl6.org that the download button should be in the upper side.  I don't know if it makes sense but...
13:32 arnsholt Butbutbut, it's wrong! The pragmatic in me agrees wholeheartedly
13:32 arnsholt But my purist side cringes =)
13:33 carlin It's supposed to look like the temple in Rakudo's logo IIRC
13:33 jnthn Trouble is, the purist side believes it's wrong to hit the pragmatic side over the head with a hammer, whereas the pragmatic side just wants to get the job done. :-)
13:34 arnsholt jnthn: Exactly =)
13:34 masak both sides have a point, of course.
13:34 masak there's no sense in being a purist unless it's also a long-term pragrmatic win.
13:35 moritz_ kidd: since the boxes are now smaller than before, I don't think it makes sense to move the download button to the top row
13:35 moritz_ kidd: but thanks for informing me
13:36 kidd :)
13:37 dadone joined #perl6
13:38 moritz_ masak: using xhtml and declaring it as such has advantages
13:38 pugs_svn r28305 | carlin++ | [New perl6.org] Added the closing p tag to the footer for XHTML validity
13:39 masak moritz_: certainly. at the same time, I've heard excellent arguments against using XHTML.
13:39 moritz_ masak: for example in the IRC logs I notice very quickly if something is not escaped properly, because I'll get error messages from the browser immediately
13:39 masak maybe they're getting a bit dated, but at least they used to hold.
13:39 masak moritz_: that's certainly fine for a closed environment like the logger.
13:39 moritz_ masak: and only with XML can you incorporate SVG elements directly into the page (not as an embed, for example)
13:40 masak that's a good argument.
13:40 masak I have to try that.
13:41 moritz_ actually it applies to all extension languages
13:41 moritz_ mathml for example
13:41 masak nod.
13:41 masak because of XML namespaces.
13:41 moritz_ aye
13:41 moritz_ carlin++ # cleaning up my mess
13:42 masak carlin++ # there's a frood who really knows where his towel is
13:45 pugs_svn r28306 | ruoso++ | [S06] adds $multi.push($candidate)
13:45 pugs_svn r28306 | [spectest] adds a spec test for the introspection S06 section
13:45 Juerd The biggest problem with XHTML is that it is not forward compatible.
13:46 ruoso the biggest problem with XHTML is that nobody cares about it
13:46 Juerd You can't use any tag that hasn't already been fully specced and implemented, except by putting it in a different namespace which is too much work so it doesn't happen.
13:46 ruoso and so W3C is going for HTML 5 instead
13:46 ruoso Juerd, that's a good thing, actually...
13:46 Juerd HTML 5 does not replace XHTML, because you can still write it as XML if you wish.
13:47 alester joined #perl6
13:47 Juerd It supersedes both HTML 4.01 and XHTML 1.0
13:47 ruoso but it still allows <b>foo<i>bar</b>baz</i>
13:47 Juerd No
13:47 Juerd It requires browsers to be forgiving. That's different.
13:47 Juerd s/1.0/1.1/
13:48 ruoso html is not xml, it's sgml... so it doesn't have to comply with DOM
13:48 Juerd <b><i></b><i> is still wrong and doesn't validate.
13:48 ruoso so, <b>foo<i>bar</b>baz</i> is valid
13:48 Juerd Bollocks.
13:48 Juerd I can only urge you to read the spec if you're really convinced.
13:49 jnthn As I understood it, HtML 5 is spec'd as a DOM, and it has both XML and SGML serializations.
13:51 Juerd jnthn: This appears to be the case
13:51 jnthn Juerd++ # haven't heard that word used for AGES, btw. :-)
13:51 * jnthn heard it plenty in the UK
13:51 Juerd Unfortunately this does mean that <html>, and <body> are no longer optional :(
13:51 Juerd jnthn: Which word is that?
13:52 jnthn "Bollocks"
13:53 Juerd Hm
13:53 jnthn It had many uses in Yorkshire dialect, including the one you just used. :-)
13:53 ruoso jnthn, btw... I have a new spectest for you :)
13:53 Juerd http://en.wikipedia.org/wiki/Bollocks  # Only few words have dedicated wikipedia articles :D
13:53 ruoso t/spec/S06-other/introspection.t
13:53 jnthn ruoso: btw, I'm on vacation *grin*
13:55 masak .oO( http://www.shapingyouth.org//wp-cont​ent/uploads/2009/06/cheshirecat.jpg )
13:55 jnthn ruoso: hmm
13:55 jnthn # .signature
13:55 jnthn ok(&only-sub.signature ~~ \(1,2),"an only sub implements .signature");
13:55 jnthn orly?
13:55 jnthn I thought it was capt ~~ sig that you'd want here?
13:55 ruoso oops
13:56 jnthn That is, "can I have this capture bound to me"?
13:56 jnthn Same for some others further down.
13:56 * ruoso goes fixing
13:57 jnthn Looks sane other than that though.
13:57 jnthn Or at least, that's the only thing that jumped out at me.
13:58 jnthn ruoso++
13:58 jnthn Now I "just" need to implement it...
13:58 pugs_svn r28307 | ruoso++ | [spectest] oops, wrong order in ~~, as pointed by jnthn
13:58 jnthn my name is jnthn++ in commit messages :-P
13:59 ruoso jnthn++ ruoso--
13:59 * ruoso .oO( that's what happens at saturday mornings )
13:59 jnthn ruoso++ # tests look good now
13:59 jnthn OK, all that remains is a simple matter of programming. ;-)
14:00 ruoso ;)
14:00 pugs_svn r28308 | carlin++ | [New perl6.org] Escape HTML entity and remove repated p closing tags, will probably need a followup to get it to validate
14:00 jnthn I'll get that buch passing when I'm doing the other sig bits in oct/nov.
14:02 ruoso jnthn, if you can make .cando work before that, it would allow me to write a very neat thing
14:02 ruoso :)
14:02 masak (very neat things)++
14:03 jnthn ruoso: How close is that find_many_candidates thingy?
14:04 jnthn I'd expect it's not so far off.
14:04 jnthn Apart from the small issue of not really knowing what a capture is...
14:04 ruoso not very much, the main difference is the signature
14:05 jnthn *nod*
14:05 ruoso basically, instead of .find_possible_candidates(1,2), it's .cando(\(1,2))
14:05 ruoso which is aligned with .postcircumfix:<( )>(\(1,2))
14:06 jnthn aye, but Rakudo doesn't really believe that either yet. ;-)
14:06 ruoso but I guess you can implement .cando(1,2) while you have .postcircumfix:<( )>(1,2)
14:06 ruoso so you're consistently wrong ;)
14:06 jnthn ;)
14:06 ruoso then refactor both later
14:06 jnthn I'll probably just try and get 'em both right.
14:07 jnthn It likely won't be too hard.
14:08 ruoso jnthn, you said find_many_candidates... is that different from find_possible_candidates?
14:08 jnthn oh, I think I menat the latter.
14:08 jnthn There's one with a name like that.
14:08 ruoso ah... ok
14:09 pugs_svn r28309 | carlin++ | [New perl6.org] Remove one more repeated /p tag
14:09 * carlin hates having to commit to see if it worked or not
14:10 ruoso carlin, doesn't it work accessing with file://
14:11 M_o_C carlin, you can also submit the document to the validator as attachment if that's what you're trying to do.
14:12 carlin The validator would choke on the HTML template calls
14:12 carlin I suppose I could manually add the header/footer etc and try direct input
14:12 ruoso jnthn, anyway... I left the "Signature" room left for you in S06 introspection ;)
14:21 payload joined #perl6
14:21 masak would it be possible to put a perl6.org link here? http://dev.perl.org/perl6/
14:21 arthur-- joined #perl6
14:25 pugs_svn r28310 | carlin++ | [New perl6.org] Convert some li tags to /li tags
14:25 flip747 joined #perl6
14:26 flip747 I think that the hyper-ops need adverbs for depth-first or parent-first
14:26 masak but the hyper-ops don't recurse, do they?
14:26 flip747 yes, they do
14:26 flip747 So that a $tree_root.».add_nodes correctly asks the child nodes
14:27 flip747 for other to-be-inserted nodes
14:27 flip747 (the newly created child nodes, that is)
14:27 flip747 and similar $tree_root.».delete should go depth-first
14:27 flip747 so two adverbs would be fine, I think
14:27 masak I don't see that use case needing a hyper-op. even if hyper-ops do recurse, that is.
14:27 masak just make .add_nodes recurse on its own.
14:28 flip747 But that's ugly, if recursion is already built-in .... http://svn.pugscode.org/pugs/do​cs/Perl6/Spec/S03-operators.pod
14:28 flip747 says:
14:29 flip747 More generally, a dwimmy hyper operator works recursively for any object
14:29 flip747 matching the C<Each> role even if the object itself doesn't support
14:29 flip747 the operator in question:
14:29 flip747 In particular, tree node types with C<Each> semantics enable visitation:
14:29 flip747 $tree.».foo;        # short for $tree.foo, $tree.each: { .».foo }
14:29 flip747 And I like the parallelization that is defined for hyper
14:29 flip747 just some use-cases need an order defined
14:30 masak rakudo: class A { my @methods = <foo bar>; eval qq[method $_ \{ say "OH HAI $_" \}] for @methods }; given A.new { .foo; .bar }
14:30 flip747 And what's two small adverbs (that will be needed in quite a few cases), compared with having to loop and recurse?
14:30 p6eval rakudo 0d77e4: OUTPUT«OH HAI foo␤OH HAI bar␤»
14:30 masak (steampunk metaprogramming)++
14:30 masak (whoever made that work)++
14:31 pugs_svn r28311 | carlin++ | [New perl6.org] Add ul../ul tags
14:34 sm` joined #perl6
14:34 pugs_svn r28312 | moritz++ | [new perl6.org] robots.txt
14:35 * moritz_ flips the switch
14:35 flip747 Well, thanks for listening ... and maybe I'll find that in some changelog. Who knows?
14:36 carlin moritz_: good timing, everything now validates :-)
14:36 moritz_ carlin: thanks for working on that
14:36 flip747 masak: Please avoid citing song texts near me. I still have my ears full of "Hotel California" ... although it's slowly being pushed aside by "Turn around".
14:37 moritz_ I need to install the local xhtml validator in my browser again
14:37 flip747 Don't know why I'm so sensitive ... but then again "Nobody knows" ;-)
14:38 moritz_ "Nobody knows", but "Everybody Hurts"
14:38 moritz_ SCNR
14:38 avuserow perl6.org's site is nicely designed, and reasonably handles narrow browser windows. ++ to the relevant people
14:38 moritz_ avuserow: thanks
14:38 * avuserow assumes that's moritz_++ and carlin++ :)
14:38 masak phenny: tell flip747 http://img11.imageshack.us/​img11/3199/125056667391.jpg
14:38 phenny masak: I'll pass that on when flip747 is around.
14:38 moritz_ mostly Su-Shee++
14:39 avuserow Su-Shee++ especially then.
14:41 M_o_C masak: Makes me thinking of http://www.youtube.com/watch?v=xuZl9tRqjoQ
14:43 masak :)
14:44 * masak gets "invoke() not implemented in class 'Undef'" from Rakudo, and glares back at it, wishing for a line number
14:44 sri_kraih joined #perl6
14:44 masak even a filename would be helpful.
14:45 Psyche^ joined #perl6
14:45 masak M_o_C: it was just an average parody until the 'listen to blips of the heart' line :)
14:45 moritz_ masak: a well-maintained list of exceptions not containing a back trace might be worth considering
14:46 masak yes, but I have my complainer's hat on right now, not my improver's hat. :)
14:47 moritz_ masak++ # switching hats now and then
14:47 * masak dives deeper into his implementor's hat
14:56 jauaor joined #perl6
14:57 sri_kraih joined #perl6
14:58 carlin hmm ... the documentation tab doesn't underline when it's the active link
14:58 araujo joined #perl6
14:59 Confield joined #perl6
14:59 moritz_ ah, I know why
14:59 moritz_ carlin++
14:59 pugs_svn r28313 | moritz++ | [perl6.org] fix documentation menu name
15:01 moritz_ carlin: feel free to add yourself to the credits list in source/about/index.html
15:02 JimmyZ joined #perl6
15:05 sri_kraih joined #perl6
15:07 carlin moritz_: What should I put as my contribution?
15:07 carlin (pedantic bug fixing) ? ;-)
15:07 moritz_ carlin: if you like ;-)
15:09 TimToady Ow, who turned on the morning so early?!?
15:09 pugs_svn r28314 | moritz++ | [perl6.org] formulate masak++'s contribution a bit more positive; added email contact
15:10 masak I have what I believe to be an interesting (but frustrating) Rakudo bug. I'm stuck, however. would someone like to reproduce it for me, and perhaps provide a fresh set of ideas?
15:11 moritz_ sure
15:11 masak great. I'll just push this first. be right back.
15:12 pugs_svn r28315 | carlin++ | Add self to credits
15:13 masak moritz_: there. you'll need latest Web.pm and perl6-sqlite. http://github.com/masak/web http://github.com/tene/perl6-sqlite
15:13 carlin carlin-- # almost commited without the closing </li> tag
15:13 moritz_ carlin++ # not quite commited without the closing </li> tag ;-)
15:14 masak moritz_: then, with Web.pm/lib, perl6-sqlite/lib and Rakudo in PERL6LIB, run t/squerl/02-dataset.t
15:14 masak moritz_: here, it runs ok until after test 39, then it dies.
15:15 moritz_ is perl6-sqlite in proto yet?
15:15 masak it is.
15:15 masak sometimes the error ("invoke() not implemented in class 'Undef'") ends up on the same line as the ok of test 39, sometimes on the line after.
15:16 masak I tried outputting an 'A' before the Squerl::Dataset.new(''). the 'A' ended up being after the error, but before the line description of the error. (and the line is given as 0)
15:17 masak all in all, lots of impossible things at once.
15:17 jnthn masak: That could just be output buffering I guess.
15:18 TimToady sounds like line-buffering vs no buffering
15:18 moritz_ masak: dies here after 39 too
15:18 TimToady or possibly two different line bufferings
15:19 masak moritz_: good. now, what's the Undef in question?
15:19 masak I tried outputting debug info in the Squerl::Dataset.new method. it doesn't seem to get that far.
15:20 masak I then started suspecting that the error is caused during parameter binding to that method, but I have no direct evidence of that so far.
15:20 masak all my one-liners that try to mimic the error work fine.
15:21 pugs_svn r28316 | carlin++ | [New perl6.org] Put the period before the /p tag, so it isn't on a different line
15:23 moritz_ hm, adding a say() inside the new isn't printed
15:23 masak right. see above.
15:24 moritz_ making the new() method non-multi didn't help either
15:26 masak the error persists if I remove everything before the .new call.
15:27 jrtayloriv joined #perl6
15:27 masak and everything after it.
15:27 * moritz_ slaps masak
15:27 masak o.O
15:27 moritz_ s/Sequel/Squerl/
15:28 masak arghmlph!
15:28 masak :(
15:28 masak that's the Undef, then. :(
15:28 masak moritz_++
15:28 pugs_svn r28317 | lwall++ | [introspection.t] isolate some duplicate my declarators
15:28 masak masak--
15:28 moritz_ aye, that it is
15:28 masak thanks for the help.
15:28 moritz_ you're welcome
15:29 moritz_ you know, I did the same bug in Perl 5 a hundred times
15:29 moritz_ or something similar
15:29 moritz_ I mis-spelled the package Foo; declaration
15:29 masak I'm translating spec tests directly from Sequel, and sometimes I write 'Sequel' without thinking.
15:29 TimToady is there anything that would make such bugs easier to locate?
15:30 masak correct line numbers.
15:30 masak the name of the class.
15:30 carlin A compiler with precognition?
15:31 TimToady sometimes a compiler-writer with precognition is sufficient...
15:31 araujo joined #perl6
15:32 sri_ joined #perl6
15:34 masak heh, I have my prototypical tote harness using Mac OS X's `say` command, so it keeps saying 'compiling', 'testing', 'back to coding' in the background. :)
15:36 masak TimToady: I'm currently reading A12. I find the Apocalypses to be very good for understanding design decisions, even though their age shows. (The updates are often out-of-date!) I have two questions, for when you have a moment.
15:37 * moritz_ wonders why http://rakudo.de/proto-projects-list.png won't update
15:37 masak I'll just go ahead and ask them. (1) "This implicit initialization is based not on whether the attribute is undefined, but on whether it was initialized earlier in BUILD. (Otherwise we could never explicitly create an attribute with an undefined value.)" what's the mechanism behind telling whether an attribute was initialized earlier? is it something that can be written out in Perl 6 code?
15:37 TimToady non compos momenti
15:38 masak (2) is the 'method self:<sort> (Array @a is rw) {...}' syntax still around? I don't remember seeing it mentioned in S12...
15:39 moritz_ std: method self:<sort> (Array @a is rw) {...}
15:39 p6eval std 28315: OUTPUT«ok 00:03 40m␤»
15:40 TimToady (1) I always thought of it as a bit vector managed by the BUILD, but it's purposefully unspecced as implementation dependent, though if we need meta-api for it...
15:41 masak my agenda is mostly seeing it implemented soon. I like the feature.
15:41 TimToady (2) would presumably be supplied by some kind of mixin these days
15:42 TimToady (presuming I even remember what self:<sort> did... :)
15:42 masak I was a bit confused by just that part.
15:42 TimToady that part was just a bit confusing :)
15:43 masak I was wondering whether it's still around so I would know whether to spend time trying to grok it or not :)
15:43 TimToady let me glare at the context a bit more
15:46 masak sure.
15:46 masak rakudo: sub foo(:&a) { bar(:&a) }; sub bar(*%_) { say "OH HAI" }; foo()
15:46 p6eval rakudo 0d77e4: OUTPUT«Symbol '&a' not predeclared in foo␤in Main (src/gen_setting.pm:3469)␤»
15:46 * masak submits rakudobug
15:46 desertm4x_ joined #perl6
15:48 TimToady hmm, okay, it was for something other than I remembered.  it's syntax for responding to .= directly, rather than being constructed out of the non-mutator
15:48 TimToady not sure self: is the right way to mark that though
15:49 masak right.
15:49 moritz_ maybe we should just allow method '=sort' { ... }
15:49 masak for a while, I toyed with the idea of a syntax based on '=sort' :)
15:49 masak aye. :)
15:50 masak but I agree that something:<=sort> would be the construct of choice, then.
15:50 TimToady 'course, then someone would write =sort(@array) and confuse POD completely...
15:52 TimToady maybe self:sort isn't so bad
15:53 dalek rakudo: 2c40a5b | moritz++ |  (2 files):
15:53 dalek rakudo: support smolder reports in harness and Makefile. Patch courtesy by jdv79++
15:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​c40a5bc9ffe585e84516f252adba4a5565e0175
15:54 TimToady mutate:sort rw:sort inplace:sort
15:54 carlin rakudo: class Mamal { method breath { say 'Breathing'; } }; class Dog is Mamal {}; undefine Mamal; my $dog = Dog.new;
15:54 TimToady feels like something that wants to be de-huffmanized in any case
15:54 p6eval rakudo 0d77e4: OUTPUT«No such attribute '$!exception' in class 'Failure'␤in Main (/tmp/49Y6dCXl7s:2)␤»
15:55 TimToady but if it's only ever a method, then method =sort would be fine
15:56 TimToady and .= is the only way to invoke it (without introspection)
15:57 masak carlin: why, you naughty boy. :)
15:58 * avuserow finds carlin++'s snippet very funny for some reason
15:59 TimToady seem like undefine ought to be no-op on something that's already officially undefined...
15:59 avuserow rakudo: my $a = "qwerty"; undef $a; say $a.perl
15:59 p6eval rakudo 0d77e4: OUTPUT«Confused at line 2, near "$a; say $a"␤in Main (src/gen_setting.pm:3469)␤»
15:59 avuserow rakudo: my $a = "qwerty"; undefine $a; say $a.perl
15:59 p6eval rakudo 0d77e4: OUTPUT«undef␤»
15:59 carlin I guess we can't claim that no animals were harmed in the making of rakudo now
15:59 avuserow rakudo: my $a = undef; say $a.perl
15:59 p6eval rakudo 0d77e4: OUTPUT«undef␤»
16:00 frew__ joined #perl6
16:00 molaf joined #perl6
16:00 carlin rakudo: class Animal {}; undefine Animal.BUILD;
16:01 p6eval rakudo 0d77e4: OUTPUT«Null PMC access in inspect_str()␤in Main (/tmp/XNcoIBkeRZ:2)␤»
16:01 masak o.O
16:01 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; $b.unself; say $a
16:01 p6eval rakudo 0d77e4: OUTPUT«Use of uninitialized value␤␤»
16:01 TimToady rakudo: class A {method unself {undefine self}}; my $a = A.new; my $b = $a; undefine $b; say $a
16:01 masak who knew &undefine contained so much naughtiness?
16:01 p6eval rakudo 0d77e4: OUTPUT«A()<0xb5b53e78>␤»
16:01 TimToady that's the pair of cases quietfanatic found last night
16:02 moritz_ maybe undefine() should only work on variables, really
16:02 masak I'm not sure I see anything wrong with the latter case.
16:02 masak rakudo: undefine 5; say 5
16:02 moritz_ I mean undefine will surely bind its argument as rw
16:02 p6eval rakudo 0d77e4: OUTPUT«5␤»
16:03 moritz_ so undefine(5) will fail to dispatch
16:03 moritz_ likewise undefine(Mammal)
16:03 moritz_ unless undefine is more magical than normal subs
16:05 pugs_svn r28318 | moritz++ | [perl6.org] fix typo in name, moritz--
16:11 masak magic--
16:12 diakopter rakudo: caffeine((eval('sub caffeine($a){say $a}')));
16:13 p6eval rakudo 0d77e4: OUTPUT«caffeine␤»
16:13 carlin undefining things to see what breaks is certainly -Ofun ;-)
16:13 TimToady perhaps undefine should only be a method, and we can only request that an object undefine itself
16:13 M_o_C I'm amazed that diakopter's example works...
16:14 TimToady then VAR($x).undefine would be distinguishable from $x.undefine
16:14 Zloyrusskiy joined #perl6
16:14 pugs_svn r28319 | moritz++ | [perl6.org] outsource small camelia into an include file
16:14 moritz_ TimToady: is that so bad?
16:14 diakopter TimToady: ^^ caffeine?
16:14 diakopter std: caffeine((eval('sub caffeine($a){say $a}')));
16:14 p6eval std 28317: OUTPUT«Undeclared routine:␤   caffeine used at 1␤ok 00:02 37m␤»
16:15 M_o_C Should the example work? Because it seems pretty evil.
16:15 moritz_ no
16:15 masak M_o_C: it only seems evil to me at first glance.
16:15 moritz_ existence of subroutines should be checked at CHECK time, or so
16:15 moritz_ but the eval runs at run time
16:15 masak O RLY?
16:16 masak that's news to me.
16:16 moritz_ unless I'm wrong, of course
16:16 diakopter rakudo: caffeine(eval('sub caffeine($a){say $a}'));
16:16 p6eval rakudo 0d77e4: OUTPUT«caffeine␤»
16:17 diakopter rakudo: eval('sub caffeine(){say 44}'); caffeine();
16:17 p6eval rakudo 0d77e4: OUTPUT«44␤»
16:17 syntheticore joined #perl6
16:18 TimToady rakudo doesn't do the check at the correct time
16:18 moritz_ so I was right that it should be a compile time error?
16:18 M_o_C masak: Well, maybe evil is the wrong word, but it's strange that it would execute the argument of the function without ensuring that the function exists.
16:18 TimToady yes, though STD is out of spec in making it a mere warning
16:19 masak M_o_C: indeed. as moritz_ informed us, it shouldn't.
16:19 diakopter oh; didn't notice the trailing 'ok'
16:20 TimToady but yes, it should fail at CHECK time
16:22 diakopter rakudo: my $caffeine; $caffeine(eval('$caffeine=sub{say 55}'));
16:22 p6eval rakudo 0d77e4: OUTPUT«55␤»
16:22 TimToady std: caffeine(); { my sub caffeine {...} }
16:22 p6eval std 28319: OUTPUT«Undeclared routine:␤   caffeine used at 1␤ok 00:02 37m␤»
16:22 TimToady that's a fun one to catch
16:23 TimToady std: caffeine(); my sub caffeine {...}
16:23 M_o_C diakopter++ for coming up with the snippet.
16:23 p6eval std 28319: OUTPUT«ok 00:02 37m␤»
16:23 diakopter there're more where that came from
16:24 TimToady yow, I'm not sure I want to guarantee that one...
16:24 diakopter rakudo: eval('ENOERRORMESSAGE?'); say 'fine and dandy; peachy keen';
16:24 p6eval rakudo 0d77e4: OUTPUT«fine and dandy; peachy keen␤»
16:25 moritz_ rakudo: eval('ENOERRORMESSAGE?') // say $!
16:25 p6eval rakudo 0d77e4: OUTPUT«Confused at line 1, near "?"␤␤»
16:25 TimToady since it depends on not dereffing $caffeine as a variable till the call
16:25 diakopter TimToady: which example?
16:25 TimToady 55
16:26 opensourcer joined #perl6
16:26 pugs_svn r28320 | moritz++ | [t/spec] test that subroutines must be post-declared
16:26 diakopter JS behaves as rakudo is (not dereffing it)... *most* of the time...
16:26 sri_ joined #perl6
16:27 diakopter not even checking "declaration" even
16:27 diakopter even
16:27 * moritz_ rakudobugs the caffeine example
16:27 diakopter odd.
16:28 nihiliad joined #perl6
16:28 diakopter rakudo: eval('ENOERRORMESSAGE') // say $!
16:28 p6eval rakudo 0d77e4: OUTPUT«Could not find non-existent sub ENOERRORMESSAGE␤»
16:29 diakopter rakudo: eval('ENOERRORMESSAGE') // say $!; say 4;
16:29 p6eval rakudo 0d77e4: OUTPUT«Could not find non-existent sub ENOERRORMESSAGE␤4␤»
16:29 TimToady the question is whether invoke($routine,@args) passes $routine as a value or as a variable
16:30 TimToady or $routine.invoke(@args)
16:30 TimToady I would argue that invoke doesn't see the varaible
16:30 TimToady ia
16:31 diakopter but
16:31 carlin rakudo: sub foo($bar) { say $bar }; my $x = 'x'; foo(undefine $x);
16:31 p6eval rakudo 0d77e4: OUTPUT«Null PMC access in isa()␤in sub foo (/tmp/MFiaifDhR7:2)␤called from Main (/tmp/MFiaifDhR7:2)␤»
16:32 masak carlin++ # still going strong
16:34 carlin Should I report these or can we just conclude that undefine is compeletely broken?
16:35 moritz_ please report
16:35 moritz_ the two options are not mutually exclusive ;-)
16:37 M_o_C TimToady: "I would argue that invoke doesn't see the varaible" # An implication of this would be, in regards of example 55, that Perl6 would dynamically convert $caffein to sub {}, or am I wrong? (I must admit I haven't read the spec yet)
16:37 M_o_C s/)/. Only moritz++'s blog posts)/
16:38 nErVe joined #perl6
16:38 sageb1 joined #perl6
16:38 sageb1 hello
16:38 * masak now has the harness script exclaiming 'checkpoint! yeah!' -- surprisingly invigorating
16:39 masak sageb1: oh hai! welcome!
16:39 sageb1 ctcp version?
16:39 colomon moritz_: on your latest blog post, the perl6.org link goes to perl.org.
16:39 sageb1 wtf? am i being fingered?
16:39 sageb1 :p
16:39 diakopter ?
16:39 masak ¿
16:39 M_o_C Freenode does that upon connect.
16:39 sageb1 ooo ahhh, the server is fondling my ctcp version. oooo ahhh don't touch me like that :p
16:39 avuserow sageb1: one of the freenode services does that
16:40 masak sageb1: did you come in here just to emit techno-porn?
16:40 sageb1 my title on my browser is flashing between activity and the channel name. that's what the ctcp is doing.
16:40 masak get a real client. :P
16:41 sageb1 technoporn is when you dance to techno whilst emitting asci porn
16:41 masak been there, done that.
16:41 TimToady hugme: hug sageb1
16:41 * hugme hugs sageb1
16:41 diakopter TimToady: a statement node sometimes has an .arg - what's that
16:42 diakopter oh, unary
16:42 diakopter std: my $a=4;++$a
16:42 p6eval std 28320: OUTPUT«ok 00:03 40m␤»
16:43 sageb1 mmm a real client will get bumped from here until i use a user account unless i enter #sudo -u [username] $(locate bin/irc) irc.freenode.net --channel=perl6 --nick=sageb1
16:43 sageb1 yes, i use root. i own this computer!
16:43 sageb1 i forgot how to hug back, hugme
16:43 sageb1 can you teach me?
16:44 masak hugme: help
16:44 hugme masak: (add \$who to \$project | list projects | show \$project | hug \$nickname)
16:44 diakopter TimToady: should Autoincrement be a statement or under EXPR?
16:44 sageb1 hm
16:44 sageb1 hug hugme
16:44 TimToady it's an EXPR
16:44 masak diakopter: well, 4 + ++$a is valid, no?
16:45 sageb1 hugme: help
16:45 hugme sageb1: (add \$who to \$project | list projects | show \$project | hug \$nickname)
16:45 masak sageb1: you need to address it directly.
16:45 diakopter oops sry; misreading the yaml
16:45 M_o_C Should it really be _auto_increment? ;) Increment's suffice IMHO.
16:45 diakopter indents are too invisible
16:45 sageb1 that would work? (command \$who to ... etc?)
16:45 carlin rakudo: undefine grammar;
16:45 masak M_o_C: 'auto' as in 'to itself'.
16:45 p6eval rakudo 0d77e4: OUTPUT«Compilation unit cannot be anonymous at line 2, near ""␤in Main (src/gen_setting.pm:1619)␤»
16:45 masak M_o_C: I've wondered that, too.
16:46 sageb1 hugme, can you teach me in simple terms?
16:46 masak moritz_: why the backslashes in the hugme help?
16:46 sageb1 because the special chars are also words in the yaml?
16:46 TimToady M_o_C: I doubt that anything is going to autovivify into a sub, more likely it'll try to call .() on Object, which would be a no-op coercion
16:46 sageb1 "$" is a word too
16:47 sageb1 just like add
16:47 sageb1 $[word] is probably a memory register
16:47 * masak hugs sageb1 too, just to be on the safe side
16:47 M_o_C masak: Ok.
16:48 sageb1 i.e. $who is probably the pointer to an address or node
16:48 opensourcer How I write perl6 code and use modules from cpan I mean lwp, dumper or any.
16:48 opensourcer how can
16:48 diakopter rakudo: .WHAT
16:48 p6eval rakudo 0d77e4:  ( no output )
16:49 diakopter rakudo: !WHAT
16:49 p6eval rakudo 0d77e4: OUTPUT«Syntax error at line 2, near "!WHAT"␤in Main (src/gen_setting.pm:3469)␤»
16:49 opensourcer using perl6::* will help me ?
16:49 sageb1 so the "\" is an escape to reuse "$" as a character
16:49 masak opensourcer: well, there's http://github.com/jnthn/blizkost
16:49 masak opensourcer: it's a recent effort to make a bridge between Perl 6 and Perl 5
16:49 sageb1 opensourcer, have you read the FAQ?
16:50 TimToady sageb1: you're being boring, which is a no-no on an entertainment channel like this
16:50 opensourcer I just started exploring
16:50 opensourcer Installed perl6 (raduko)
16:50 sageb1 timtoady, but a question was asked about why "\" is used infront of "$".
16:51 sageb1 these questions are easy. opensourcer's are challenging
16:51 diakopter unterminated string constant
16:52 sageb1 opensourcer, how would you preface "perl6::*" and not get the perl "shell" to poop?
16:52 opensourcer well the thing I want to start writing perl6 style syntax and use the perl5 modules
16:52 masak hm, at this point I actually wish I had the op bit...
16:53 opensourcer perl6::* ->Bundle-Perl6-0.12
16:53 sageb1 wouldn't that consist of running perl6 "shell" and pulling in the perl5 modules?
16:53 was kicked by masak: Kicked by masak
16:53 masak thanks.
16:53 TimToady no problem, I assure you!
16:53 masak :)
16:53 diakopter hm
16:53 carlin undefine sageb1;
16:53 masak *lol*
16:54 opensourcer sageb1 will Bundle-Perl6-0.12  this help to achieve my target (write perl6 code and use perl5::modules)
16:54 arthur-_ joined #perl6
16:55 clkao joined #perl6
16:55 jrtayloriv Could not find non-existent sub sageb1
16:56 TimToady std: undefine sageb1;
16:56 p6eval std 28320: OUTPUT«Undeclared routine:␤   sageb1 used at 1␤ok 00:02 37m␤»
16:56 carlin jrtayloriv: 'cause masak++ already kicked him
16:56 TimToady ah well, we shouldn't make fun of the insane
16:57 masak I interpreted his trolliness as loneliness.
16:57 masak but I guess s/insane/lonely/ still holds.
16:57 TimToady I interpreted it as someone who thinks unabated free association is funny
16:58 moritz_ masak: (re backslashes in hugme help) because of refactoring gone wrong ;-)
16:58 masak moritz_: ah. well, now you know.
16:58 TimToady btw, why isn't hugme marked with a +?
16:59 carlin hugme: hug moritz_
16:59 * hugme hugs moritz_
17:02 hugme joined #perl6
17:02 moritz_ hugme: help me
17:02 hugme moritz_: (add $who to $project | list projects | show $project | hug $nickname)
17:02 moritz_ hugme: cuddle carlin
17:02 * hugme cuddles carlin
17:03 Zloyrusskiy joined #perl6
17:06 * masak hugs hugme
17:06 TimToady hugme++
17:06 carlin @karma hugme
17:06 TimToady ENOBOT
17:06 JimmyZ joined #perl6
17:07 JimmyZ joined #perl6
17:08 moritz_ I kicked it after some accidential flooding, and it's been sulking since then
17:08 moritz_ (I also invited it again)
17:08 moritz_ movie &
17:09 TimToady well, Perl 6 has lambdas too, so we could have a lambdabot of our own
17:10 TimToady hopefully one that doesn't use such a common first character...
17:10 TimToady or that at least shuts up on things it doesn't recognize
17:11 masak that's what I programmed zarah to do.
17:11 masak she also has a few bareworkd commands, such as 'karma' and 'google', which don't require the '@'.
17:11 masak hilarity can ensue when people start their sentences with 'google', however.
17:12 masak s/workd/word/
17:12 TimToady I think ` would be a good opening character, at least on my keyboard
17:13 avuserow google is a company?
17:13 avuserow hm. no hilarity.
17:13 avuserow oh, no bot
17:13 TimToady ENOBOTAGAIN
17:15 mberends joined #perl6
17:17 M_o_C Re lambdabot: Until recently I did not know that there's a picture of lambdabot (http://www.haskell.org/haskellwiki/Lambdabot)...
17:20 snearch joined #perl6
17:21 TimToady maybe it should be sort:dirty
17:22 TimToady then we could have method talk:dirty
17:22 TimToady which changes yourself for the worse
17:23 rhr_ joined #perl6
17:24 * mberends sometimes does talk:self and maybe should sort:self
17:25 TimToady I was going to suggest just "does Mutation", but it really wants to be part of the name so you can write both versions if you want
17:25 JimmyZ good localtime, #perl6
17:26 viklund I feel like writing some code, where should I dive in?
17:26 TimToady 你好
17:26 TimToady the deep end
17:26 viklund masak: suggestions?
17:26 masak viklund: oh boy, yes!
17:26 JimmyZ TimToady: 你也好啊
17:27 * masak collates
17:27 mberends viklund: do you fancy re-writing proto *again* ?
17:27 masak 我们都好
17:28 masak viklund: hm, what mberends said, I think. proto is mid-refactor, and looks very interesting, but I'm mostly tied up with Web.pm.
17:28 masak so pairing up with mberends would be Very Good.
17:28 viklund I'll have a look, haven't run any perl6 for several months, so I need to get rakudo et. al.
17:29 masak viklund: the refactor is in a branch.
17:30 JimmyZ masak++; for his improving mandarin
17:30 * viklund checks out githum
17:30 viklund masak: installed-modules?
17:31 mberends yup
17:31 masak JimmyZ: I wish it were improving. :) that's intro stuff.
17:31 masak viklund: aye.
17:31 viklund does --gen-parrot work as it did in march?
17:31 viklund i.e. can I call rakudo from other dirs?
17:31 viklund (read smth about installed parrot somewhere)
17:31 azawawi joined #perl6
17:31 azawawi colomon: ping
17:31 masak viklund: you basically need to install Parrot and Rakudo nowadays.
17:31 mberends viklund: you need to 'make install'
17:32 azawawi masak: hey!
17:32 TimToady I just use --gen-parrot and make install
17:32 TimToady seems to work everywhere
17:32 masak with Parrot, make install-dev, even.
17:32 viklund ok, I'll do that then
17:32 colomon azawawi: yes?
17:32 masak azawawi: ahoj!
17:32 sm^^^ joined #perl6
17:33 azawawi colomon: what's the problem with perl6.exe ?
17:33 opensourcer what's the difference between --gen-parrot and make and make install-dev ?
17:33 colomon doesn't do anything, as far as I can tell.  (this is with the padre installer on 64-bit VIsta.)
17:34 mberends opensourcer: install-dev is in Parrot's Makefile, and is called automatically by Rakudo's 'Configure.pl --gen-parrot'
17:34 colomon (this is the perl6 in the strawberry\six\bin directory)
17:35 azawawi colomon: Please Check "Edit/preferences/Run parameters/Use external windows for execution"
17:35 azawawi colomon: and run a script that says "hello world" or something
17:35 * viklund does some household stuff while waiting for compile
17:36 colomon azawawi: do that, and then it pops up an external window which simply says "Press any key to continue"
17:37 azawawi colomon: on the command line, c:\strawberry\six\bin\perl6 -e "say 1;"
17:37 colomon azawawi: Nothing again.
17:37 opensourcer ppl can give me the links for the perl6 tutorials
17:37 colomon perl6 --version doesn't give me anything either.
17:38 azawawi colomon: oh...
17:38 colomon dir
17:38 colomon sorry, wrong window!  :)
17:38 opensourcer may be u all got some excellent resources better than I have got
17:38 TimToady dur!
17:38 colomon azawawi: no errors, either, it's just giving me the silent treatment.
17:39 mberends opensourcer: http://www.perlgeek.de/blog-en/perl-5-to-6/ by moritz_++
17:39 azawawi colomon: come over to #padre @ irc.perl.org
17:39 TimToady read them in the order of the side bar
17:39 opensourcer thanks mberends
17:39 alester joined #perl6
17:40 masak jog &
17:40 justatheory joined #perl6
17:41 opensourcer i got this when I was trying to compile /usr/bin/ld: cannot find -lperl ->blizkost
17:41 opensourcer what is lperl
17:42 TimToady moritz_: why aren't 5-to-6 articles more obvious on perl6.org?
17:48 Tene opensourcer: for all practical purposes, it's not possible to use PErl 5 modules from Perl 6 yet.
17:48 TimToady well, except in pugs
17:48 TimToady depending on what you mean by "practical" :)
17:49 Tene aw, ENOMASAK
17:50 payload joined #perl6
17:55 carlin 'night all
17:56 FOAD joined #perl6
17:57 TimToady night carlin
17:58 zostay joined #perl6
17:59 mikehh rakudo (2c40a5b) builds on parrot r41366 - make test / make spectest (up to 28320) PASS - Ubuntu 9.04 i386
18:05 opensourcer pugs ?
18:05 Tene Pugs is an earlier Perl 6 compiler that is no longer maintained or developed.
18:06 viklund mm, back
18:08 viklund mberends: what needs to be done?
18:08 viklund in the proto branch
18:09 mberends viklund: in proto's installed-modules branch, the proto script contains a long TODO list at the end. Take a look, and we can discuss it here
18:09 viklund ok
18:16 viklund I see that 9 is partly done
18:16 * diakopter lol at http://perlcabal.org/svn/pugs/revision/?rev=28320
18:16 viklund is it the 'no makefile exists'-part left?
18:17 viklund hmm, didn't install november either...
18:19 mberends the 'no makefile exists' is partly implemented
18:19 viklund ok
18:20 diakopter again, Pugs *is* maintained, just not in the pugscode repo. It has its own category in Hackage: http://hackage.haskell.org/packag​es/archive/pkg-list.html#cat:pugs
18:22 viklund hmm
18:22 mberends diakopter: that's good news :)
18:24 viklund question, is RAKUDO_DIR really necessary when the installed-modules branch is finished?
18:26 viklund mberends: so, what works is everything up to 'install'
18:27 viklund no that works too
18:28 mberends 'install'' currently works *only* if 'fetch' has been done. That must be fixed.
18:28 viklund install doesn't fetch?
18:28 mberends no yet, but it should
18:29 viklund I can look into that for a start
18:29 viklund personally, I find it quite strange that 'fetch' 'builds'
18:29 mberends we may clean that up
18:30 viklund ahh, I can see the big TODO in the first for-loop in method install
18:31 mberends exactly!
18:31 viklund things are checked via $.ecosystem.get-state?
18:31 mberends yes
18:32 mberends that may not be orthogonal for all states yet, because there were methods such as is-fetched() before
18:33 sevvie left #perl6
18:34 viklund orthogonal?
18:35 mberends state is a newcomer in this branch. previously there were is_*() methods and no central store of state
18:36 mberends the refactoring has not been bold enough yet to move all the functionality across
18:36 viklund ahh
18:38 viklund hmm, an unexisting project fails
18:38 viklund no state to check
18:38 viklund and the parsing of the file fails
18:38 viklund projects.state
18:39 mberends it's *fragile*
18:39 viklund needs to fix that first then I guess...
18:40 viklund but now, my daughter calls
18:40 viklund brb
18:43 Su-Shee left #perl6
18:44 zev joined #perl6
18:54 MicrosoftWord joined #perl6
18:54 kaesebrot joined #perl6
18:56 Frakfrak joined #perl6
18:56 Frakfrak hi
18:59 payload joined #perl6
18:59 TimToady moritz_: bad link in your blog, see the comment there
19:07 viklund ahh, now she's sleeping
19:08 mberends viklund: ok, another TODO will be restructuring as a MVC application: http://irclog.perlgeek.de/​perl6/2009-09-18#i_1512466
19:09 viklund yes
19:10 viklund is-fetched and is-installed should be removed from Ecosystem?
19:10 viklund is-installed isn't even used, removing
19:11 azawawi moritz_: perl6 compiled on 32-bit win32 does not print out anything on 64-bit win32
19:11 azawawi moritz_: c:\strawberry\six\bin\perl6 -e "say 1;" => nothing
19:11 azawawi moritz_: and build seems to fail to 64-bit
19:11 mberends viklund: correct
19:17 viklund is 'notinstalled' really a good state for a failed install?
19:18 viklund isn't 'failedinstalled' or smth better
19:20 viklund 'failed-install'
19:20 jaldhar joined #perl6
19:23 mberends the bikeshed meeting is about to begin...
19:23 viklund whatever..
19:23 viklund I'll just do then
19:23 viklund and you complain later ;)
19:24 mberends while it's in the branch there is little impact from renaming things anyway.
19:24 mberends sometimes it's better to let it have a few names to see how they 'feel'
19:25 viklund but the following (successfull) states should exist <fetched tested installed> right?
19:26 viklund ahh, and built
19:26 mberends yes, but fetched is implied by the existence of a directory in cache/
19:27 viklund yes, but shouldn't get-state return 'fetched'?
19:28 mberends ah, got ya
19:28 am0c joined #perl6
19:28 mberends it returns 'fetched' but without depending on projects.state
19:28 viklund yes
19:29 mberends :-)
19:29 azawawi moritz_, pmichaud: rakudo Seattle build error over 64-bit 2003 server http://gist.github.com/189558
19:36 lucs joined #perl6
19:47 viklund ehm, if a project is installed, install is a no-op, right?
19:48 mberends probably, the only other action might be re-install (as an update or repair)
19:49 mberends no-op, Keep It Simple, Stupid
19:50 opensourcer left #perl6
19:53 diakopter rakudo: say ++'hi'
19:53 viklund what is the motivation behind method vs. submethod>
19:53 p6eval rakudo 0d77e4: OUTPUT«Unable to set lvalue on PAST::Val node␤in Main (src/gen_setting.pm:3469)␤»
19:53 mberends I think submethods are hidden outside of the class
19:53 viklund ok, like private..
19:54 mberends right
19:54 viklund isn't there smth with inheritence as well...
19:54 * viklund looks for the spec
19:56 mberends right, S12 says submethods are not inherited
19:57 quietfanatic rakudo: multi x ($x) {$x.say}; map &x, (3, 4)
19:57 p6eval rakudo 0d77e4: OUTPUT«No applicable candidates found to dispatch to for 'map'␤in sub map (src/gen_setting.pm:333)␤called from Main (/tmp/1ugAgyaI3e:2)␤»
19:58 quietfanatic map doesn't work on multis.
19:58 quietfanatic rakudo: sub x ($x) {$x.say}; map &x, (3, 4)
19:58 p6eval rakudo 0d77e4: OUTPUT«3␤4␤»
19:58 quietfanatic This is unfortunate.
20:00 diakopter quietfanatic: want to fix it? :P
20:00 TimToady rakudo: multi x ($x) {$x.say}; say &x.WHAT
20:00 p6eval rakudo 0d77e4: OUTPUT«␤»
20:00 TimToady O_O
20:00 quietfanatic How can I?
20:00 mberends class A { submethod sm() { "oh hai".say } }; A.new.sm; # viklund: it's not private
20:00 TimToady rakudo: sub x ($x) {$x.say}; say &x.WHAT
20:00 p6eval rakudo 0d77e4: OUTPUT«Sub()␤»
20:01 * diakopter keeps bumping into walls
20:01 bctrainers joined #perl6
20:01 TimToady &x should be of type Sub regardless
20:03 TimToady rakudo: multi x ($x) {$x.say}; say &x.(42)
20:03 p6eval rakudo 0d77e4: OUTPUT«42␤1␤»
20:04 spinclad rakudo: class A {method unself {my $c = self; undefine VAR($c)}}; my $a = A.new; my $b = $a; $b.unself; say $a
20:04 TimToady rakudo: multi x ($x) {$x.say}; say &x.PARROT
20:04 p6eval rakudo 0d77e4: OUTPUT«A()<0xb6459f88>␤»
20:04 p6eval rakudo 0d77e4: OUTPUT«Perl6MultiSub␤»
20:04 TimToady it's a leaky concretion
20:04 spinclad rakudo: class A {method unself {undefine VAR(self)}}; my $a = A.new; my $b = $a; $b.unself; say $a
20:04 p6eval rakudo 0d77e4: OUTPUT«Could not find non-existent sub VAR␤»
20:08 spinclad .oO{ nice context-dependent macro VAR, only visible when its arg _is_ a var... }
20:11 synth joined #perl6
20:11 spinclad should this error message be more like «Could not apply macro VAR to non-variable», or should it hide in the shadows until it applies?
20:13 * TimToady is now thinking about multi macros...
20:14 spinclad rakudo: sub VAR($a) { say "hai from $a !" }; my $foo; undefine VAR($foo)
20:14 p6eval rakudo 0d77e4:  ( no output )
20:14 spinclad rakudo: sub VAR($a) { say "hai from $a !" }; my $foo; undefine VAR($foo); say $a
20:14 viklund *sigh* november and html-template are dependent on perl6.pbc ...
20:14 p6eval rakudo 0d77e4: OUTPUT«Symbol '$a' not predeclared in <anonymous> (/tmp/VbQCLi8KZJ:2)␤in Main (src/gen_setting.pm:3469)␤»
20:14 spinclad rakudo: sub VAR($a) { say "hai from $a !" }; my $foo; undefine VAR($foo); say $foo
20:14 p6eval rakudo 0d77e4: OUTPUT«Use of uninitialized value␤␤»
20:14 spinclad (yeesh!)
20:14 spinclad rakudo: sub VAR($a) { say "hai from $a !" }; my $foo = 1; undefine VAR($foo); say $foo
20:14 p6eval rakudo 0d77e4: OUTPUT«Use of uninitialized value␤␤»
20:15 spinclad (sorry for spam)
20:15 quietfanatic rakudo: sub VAR($a) { say "hai from $a !" }; class A {method unself {undefine VAR(self)}}; my $a = A.new; my $b = $a; $b.unself; say $a
20:15 p6eval rakudo 0d77e4: OUTPUT«hai from A()<0xb5c598c0> !␤maximum recursion depth exceeded␤in method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called
20:15 p6eval ..from…
20:16 quietfanatic Um.
20:18 diakopter nice one
20:20 TimToady perhaps we should undefine undefine
20:20 diakopter quietfanatic: here you go:
20:20 diakopter rakudo: undefine .say; say(3)
20:21 spinclad rakudo: class A {method unself {undefine say "hai from A !"}}; my $a  = A.new; my $b = $a; $b.unself; say $a
20:21 p6eval rakudo 0d77e4: OUTPUT«Use of uninitialized value␤␤maximum recursion depth exceeded␤in method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print
20:21 p6eval ..(src/gen_setting.pm:1308)␤called fro…
20:21 p6eval rakudo 0d77e4: OUTPUT«hai from A !␤maximum recursion depth exceeded␤in method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method
20:21 p6eval ..IO::pr…
20:21 spinclad rakudo: class A {method unself {undefine 1}}; my $a  = A.new; my $b = $a; $b.unself; say $a
20:21 viklund what?
20:21 quietfanatic Aha.
20:21 p6eval rakudo 0d77e4: OUTPUT«A()<0xb5b929b0>␤»
20:22 quietfanatic rakudo: undefine &undefine; undefine 1
20:22 p6eval rakudo 0d77e4:  ( no output )
20:22 spinclad rakudo: class A {method unself {undefine say 1}}; my $a  = A.new; my $b = $a; $b.unself; say $a
20:22 p6eval rakudo 0d77e4: OUTPUT«1␤maximum recursion depth exceeded␤in method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print
20:22 p6eval ..(src/ge…
20:22 TimToady how 'bout we just make sure .defined is rw instead so people can say .defined = 0
20:22 quietfanatic rakudo: my $a = 1; undefine &undefine; undefine $a; say $a
20:22 p6eval rakudo 0d77e4: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (/tmp/aMYHkxC6H6:2)␤»
20:23 quietfanatic Yep, I undefined undefine.
20:23 diakopter har
20:23 diakopter now undefine invoke
20:23 TimToady and then implement undefine as sub ($obj) { $obj.defined = 0 }
20:23 spinclad rakudo: undefine say 1; say 2;
20:23 p6eval rakudo 0d77e4: OUTPUT«1␤maximum recursion depth exceeded␤in method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print
20:23 p6eval ..(src/ge…
20:24 spinclad rakudo: sub undefine ($obj) { $obj.defined = 0 }; undefine say 1; say 2;
20:24 p6eval rakudo 0d77e4: OUTPUT«1␤2␤»
20:24 viklund right, now it's possible to install stuff by doing ./proto install <project>
20:25 spinclad (so what is  undefine say 1  undefining?)
20:25 viklund nothing pushed yet though
20:26 diakopter rakudo: my $und = .undefine;
20:26 p6eval rakudo 0d77e4: OUTPUT«Method 'undefine' not found for invocant of class 'Failure'␤»
20:26 spinclad rakudo: sub undefine ($obj) { say $obj }; undefine say 1; say 2;
20:26 p6eval rakudo 0d77e4: OUTPUT«1␤1␤2␤»
20:26 mberends viklund++
20:26 spinclad rakudo: sub undefine ($obj) { say $obj.WHAT }; undefine say 1; say 2;
20:26 p6eval rakudo 0d77e4: OUTPUT«1␤Bool()␤2␤»
20:27 spinclad rakudo: undefine Bool::True
20:27 p6eval rakudo 0d77e4:  ( no output )
20:27 diakopter ETOOMUCHFUN
20:27 spinclad rakudo: undefine Bool::True; say 2
20:27 p6eval rakudo 0d77e4: OUTPUT«maximum recursion depth exceeded␤in method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print (src/gen_setting.pm:1308)␤called from method IO::print
20:27 p6eval ..(src/gen_…
20:27 spinclad ( aha )
20:28 quietfanatic rakudo: say undefine &say
20:28 p6eval rakudo 0d77e4: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (/tmp/gBxT3hYe1o:2)␤»
20:29 TimToady I think I'd better drag quietfanatic away from this cesspool of destruction
20:29 diakopter rakudo: (undefine &say).say
20:29 quietfanatic Herm.
20:29 p6eval rakudo 0d77e4: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/PH2hGKtjOH:2)␤»
20:30 diakopter TimToady: plz add make_undefinable, too, plz.  please.
20:31 quietfanatic .=drag &
20:31 TimToady I'll have to make make_undefinable definable first...
20:31 spinclad .kick; .scream
20:31 viklund pushed
20:31 * TimToady enters dragging mode &
20:32 diakopter also, make sure to make make_undefinable undefinable.
20:33 diakopter wait.
20:33 diakopter I meant.
20:33 diakopter make_nondefinable
20:33 diakopter also, make_nonundefinable
20:33 snearch joined #perl6
20:34 diakopter hence the confusion.
20:34 diakopter rakudo: (undefine &say).say
20:34 p6eval rakudo 0d77e4: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/FdnMJlNLjF:2)␤»
20:35 diakopter rakudo: (undefine &undefine).undefine
20:35 p6eval rakudo 0d77e4: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/4ODgJsBB72:2)␤»
20:35 diakopter rakudo: (undefine &undefine).say
20:35 p6eval rakudo 0d77e4: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/2ZgMVATqRN:2)␤»
20:35 diakopter oh
20:36 mberends viklund: pulled, viewing http://github.com/masak/proto/commit/69​6962ba3l0123db6c55fe6cb2546bbfd67bf16c0
20:37 mberends nice, the Ecosystem class is doing a good job as MVC Model
20:40 viklund :(
20:40 viklund sry
20:40 viklund :)
20:43 viklund smiley-fail
20:45 mberends :-]
20:46 viklund update should only work on installed projects right?
20:46 mberends right
20:46 etoxam joined #perl6
20:46 viklund so it's similar to refresh
20:47 mberends yes, in fact it probably depends on refresh
20:47 viklund yes... hmm
20:47 mberends and test
20:47 viklund update is simple
20:47 viklund (I think)
20:47 viklund famous last words...
20:48 mberends there may be dragons in multiple project installs, and dependency trees
20:48 mberends ok, dependency lists in proto
20:49 viklund but an update should install a new dep right
20:49 viklund at least, that's what I would expect
20:50 mberends the new version of a project may depend on more or fewer others
20:50 viklund yes
20:50 viklund does that matter?
20:50 viklund update: check @projects are installed -> refresh -> install
20:50 mberends so maybe uninstall old, then install from scratch
20:51 viklund mberends: right, but uninstall doesn't remove old deps, but it should remove old files that might not be used anymore...
20:51 viklund and unistall will be tricky if there's no Makefile
20:52 viklund (unless we keep track of thinks)
20:52 mberends that means uninstall removes from ~/.perl6/lib but not from cache/
20:52 viklund ahh, we can use the cache to uninstall the projects wo Makefile
20:52 viklund nice
20:53 mberends Makefile is optional, requiring two different install and uninstall strategies
20:53 viklund yes
20:53 mberends but from what u just wrote, also two cache directories (old and new)
20:54 viklund mberends: in case update fails...
20:55 mberends there is that, and for the without-Makefile scenario, the old cache tells proto what to uninstall
20:55 viklund ahh, you're delaying uninstall untill just before install...
20:55 viklund s/ill/il/
20:56 mberends testing (if config.proto mandantes it) might also fail
20:56 mberends this was for the update case
20:56 viklund yes
20:57 mberends yes, the user will expect a failed update to leave the old install intact
20:58 viklund Yes, my first reaction was to uninstall, run all the update thingies and if anything failed install the old one again, but I see now that that was kind of, ehm, wrongish
20:58 mberends oh, that seems to need a kind of transaction rollback
20:59 * mberends remembers why he hadn't written this part
20:59 * mberends remembers masak++ not offering to do it either ;)
21:00 viklund basically we need to change the ecosystem<Proto projects cache>, temporarily for the update
21:01 viklund and make sure that all commands return success on success and error on error
21:01 hugme joined #perl6
21:01 viklund hug hugme
21:01 mberends hugme: hug moritz_
21:01 * hugme hugs moritz_ and blushes
21:01 etoxam joined #perl6
21:02 viklund ahh
21:02 viklund hugme: hug me
21:02 * hugme hugs viklund
21:02 viklund of course
21:02 diakopter hugme: kill me
21:02 diakopter hm
21:02 mberends thank goodness
21:02 diakopter hugme: hug hugme
21:02 * hugme hugs hugme
21:03 diakopter (and cringes)
21:04 jaldhar joined #perl6
21:04 mberends viklund: you're right about success/fail status, I guess TODO 12 about robustness vaguely means that without saying how.
21:05 moritz_ TimToady: re "why isn'6 perl-5-to-6 more obvious on perl6.org?", maybe I should put them somewhere sequentially, and point perl6.org there
21:05 mberends before delving into uninstall and update, it might help to develop the non-clobbering file copy routine for install. (Installer.pm:411)
21:06 viklund mberends: *sigh*, ok...
21:06 viklund :D
21:06 viklund so, how to traverse a tree...
21:07 mberends it's probably a matter of listing the files, then copying one by one. Uninstall can use the same listing.
21:07 sparc joined #perl6
21:07 viklund or rather; time to read S32/IO
21:08 mberends if directory reading is NYI, we may have to qx{ls -r}
21:10 mberends rakudo: say qx{ls -R}; # not -r
21:10 p6eval rakudo 0d77e4: OUTPUT«operation not permitted in safe mode␤in Main (/home/evalenv/p2/lib/parrot/1.6.0-de​vel/languages/perl6/lib/Safe.pm:25)␤»
21:10 mberends Safe++
21:12 viklund hmm, I don't understand how that IO::Directory is supposed to be used, I'll go with qx instad
21:15 mberends qqx{ls -R $project-dir} returns one long multiline string
21:15 viklund aye
21:16 viklund .split(/\n+/)
21:16 mberends good, that + is helpful
21:16 viklund yes, I noticed it was necessary
21:17 viklund the ls -R output is slightly off
21:17 viklund s/off/of/
21:17 viklund or maybe not
21:18 mberends the lines ending in : are your tree
21:18 viklund whatever, isnt 'find <dir>' better, we'll get full pathnames
21:18 viklund qqx{ find $project-dir -type f }
21:19 mberends right, much more convenient
21:22 mberends the non-clobbering aspect would be to test for the non existence of all the files before copying, and to fail if any files already exist (because they belong to other projects)
21:22 viklund yes, I thought so too
21:22 mberends the error message had better say exactly what's wrong, otherwise we have to add a --force option
21:23 viklund ;)
21:23 mberends rather let the user fix it manually (and take the blame)
21:24 viklund won't install since the file $destination already exists?
21:25 jauaor joined #perl6
21:26 mberends yes. in MVC style, that message should not be printed by Installer, but passed to the View (which does not yet exist).
21:26 viklund yes
21:26 viklund so, do you know any project off-hand that doesn't have a Makefile?
21:27 mberends there are some, form possibly
21:27 viklund it's a good a start as any I guess
21:28 viklund nope, had a makefile
21:30 mberends I have tried './proto fetch all', it falls over a little but gets there after a restart.
21:31 viklund mberends: good idea, I was thinking of doing a 'install all', but I guess that fetch is better
21:31 mberends you're right though that auto-building is somewhat odd
21:33 mberends it might be fairly easy to separate out those activities
21:34 * mberends runs './proto fetch all' on the the branch out of curiosity
21:35 viklund ahh csv doesn't have a makefile
21:35 mberends project epoxy-resin fails to download
21:39 viklund ahh
21:40 abra joined #perl6
21:40 mberends "downloading november..."
21:46 mberends submethod download-and-build-projects​-and-their-deps(@projects) # combined the fetching and building because dependencies had to be downloaded and built before the dependent projects could be built.
21:47 mberends but if the API is changed so that the download returns a longer list of projects to be built, then the two activities can be separated.
21:47 viklund yes
21:49 viklund the checking of existing files is almost done
21:49 mberends *applause*
21:50 opensourcer joined #perl6
21:51 gbarr joined #perl6
21:51 diakopter zounds
21:53 viklund pushed
21:54 zamolxes joined #perl6
21:56 mberends pulled
21:57 viklund as I said csv is without Makefile
21:58 mberends right, fetching csv
22:00 bctrainers left #perl6
22:00 viklund ahh, day change
22:01 viklund time to go to bed
22:01 viklund good night all
22:01 mberends ok, thanks for the good work!
22:01 viklund I'll probably pop in tomorrow as well
22:02 mberends :)
22:08 mikehh rakudo (2c40a5b) builds on parrot r41370 - make test / make spectest (up to 28320) PASS - Ubuntu 9.04 i386
22:26 alester joined #perl6
22:42 alester joined #perl6
22:50 opensourcer left #perl6
23:08 diakopter rakudo: 1++
23:08 p6eval rakudo 0d77e4: OUTPUT«Unable to set lvalue on PAST::Val node␤in Main (src/gen_setting.pm:3469)␤»
23:38 mikehh joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs