Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-06-11

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 lue afk
00:03 mantovani joined #perl6
00:10 xinming is perlcabal.org down?
00:15 dalek joined #perl6
00:16 pmichaud joined #perl6
00:16 pmichaud that server seems to be having some sort of connection issue
00:17 pmichaud afk for a bit
00:22 pugssvn joined #perl6
00:26 Wolfman2000 moritz_: I did a test video to see how things would sound. My laptop fan is clearly audible through the whole thing. If you want tutorial videos, I'm unsure if you want that or if there is a way for me to silence it.
00:26 Wolfman2000 well, if not the fan...then something
00:30 yinyin joined #perl6
00:31 masonkramer joined #perl6
00:43 sorear jnthn: perl5 and parrot both use custom buffered I/O layers
00:43 sorear sharing a filehandle between them won't work very well
00:43 jnthn sorear: Ah.
00:43 jnthn Yeah, I guess that's rather non-trivial.
00:43 sorear I've got some vague plans to write a proxy object which acts to Perl 5 like a tied filehandle, but forwards I/O to the Parrot buffered I/O engine
00:44 jnthn Ah, that would well work.
00:44 jnthn *could
00:44 sorear blizkost needs a tracker, I think
00:45 sorear since it doesn't appear to be possible to handle *all* aspects of interaction equally well... I need to draw the line somewhere
00:46 sorear I also need to come up with a good solution for handling people with a statically-linked perl
00:47 sorear automatically downloading and installing a dynamic perl probably isn't useful since modules aren't shared between perl versions
00:48 jnthn sorear: Aye, I'm just feeding you a few little things I've run into from trying to use it a little bit.
00:48 jnthn Well, succeeding to use it, actually. :-)
01:00 tyoshii_ joined #perl6
01:05 rgrau_ joined #perl6
01:14 arnsholt std: my Str|Array @stuff;
01:14 p6eval std 31188: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed my at /tmp/2a_jk9FSWH line 1:␤------> [32mmy Str[33m⏏[31m|Array @stuff;[0m␤    expecting any of:␤ multi_declarator␤ scoped declarator␤        typename␤Parse failed␤FAILED 00:01 107m␤»
01:18 planetman joined #perl6
01:28 stephenlb joined #perl6
01:28 rurban joined #perl6
01:31 stepnem joined #perl6
01:38 snarkyboojum http://proto.perl6.org/ shows now projects currently
01:39 plobsing joined #perl6
01:39 snarkyboojum *no projects
01:41 * jnthn -> nap, train, plane, bus, metro, beer
01:49 Tene phenny: tell masak that I pushed a basic ratel test.
01:49 phenny Tene: I'll pass that on when masak is around.
01:56 snarkyboojum looks like some of the repos are currently offline at github, and proto doesn't just cache the previous list, it's throws up nothing/shows not project list when it gets an error - potential enhancement.
02:03 arnsholt std: my Positional[Str|Array] $stuff;
02:03 p6eval std 31188: OUTPUT«ok 00:01 108m␤»
02:03 lue ohai again
02:04 lue Is there any way in NQP [or possibly PIR] to use something along the lines of .pick() ?
02:07 hatseflats joined #perl6
02:07 Juerd joined #perl6
02:07 pmichaud joined #perl6
02:08 lue ohai pmichaud
02:09 pugssvn joined #perl6
02:21 lue hrm, how to create random numbers in NQP ?
02:24 lue help?
02:24 colomon our Num method rand() {
02:24 colomon pir::box__PN(pir::rand__NN(self))
02:24 colomon }
02:24 snarkyboojum could use rand() in PIR
02:24 colomon is the definition of rand in Rakudo.
02:25 snarkyboojum heh
02:25 sorear term:<rand>, no?
02:28 lue I actually would like to use .pick(), but NQP has it not :/ so, I must use rand.
02:29 _jaldhar joined #perl6
02:33 jrtayloriv joined #perl6
02:33 justatheory joined #perl6
02:36 lue rakudo: say pir::box_PN(pir::rand__NNN(self, 10));
02:36 p6eval rakudo c43bca: OUTPUT«===SORRY!===␤Symbol 'self' not predeclared in <anonymous> (/tmp/vo6ns_ZSE9:11)␤»
02:37 Gormanilius joined #perl6
02:38 lue hrmm
02:39 lue rakudo: say pir::box_PN(pir::rand__NNN(10));
02:39 p6eval rakudo c43bca: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P48')␤  in file 'EVAL_1' line 66477126␤===SORRY!===␤syntax error ... somewhere␤»
02:40 lue rakudo: my $a = pir::box_PN(pir::rand__NNN($a, 10)); say $a
02:40 p6eval rakudo c43bca: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P52')␤  in file 'EVAL_1' line 79␤error:imcc:syntax error, unexpected ')' (')')␤     in file 'EVAL_1' line 80␤===SORRY!===␤syntax error ... somewhere␤»
02:41 _jaldhar joined #perl6
02:44 lue (getting...very...annoyed)
02:44 ShaneC joined #perl6
02:50 colomon rakudo: say pir::box_PN(pir::rand__NN(10));
02:50 p6eval rakudo c43bca: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P48')␤  in file 'EVAL_1' line 65694878␤===SORRY!===␤syntax error ... somewhere␤»
02:50 colomon rakudo: say pir::rand__NN(10);
02:50 p6eval rakudo c43bca: OUTPUT«7.78186193524988␤»
02:53 lue rakudo: say pir::rand__II(10)
02:53 p6eval rakudo c43bca: OUTPUT«2␤»
02:53 lue :D Thank you, colomon! I got confused in all the pir:: stuff
02:58 agentzh joined #perl6
02:58 xuser joined #perl6
03:03 jrtayloriv joined #perl6
03:05 szabgabx joined #perl6
03:06 lue afk feeling happy
03:09 snarkyboojum joined #perl6
03:17 araujo joined #perl6
03:19 justatheory joined #perl6
03:23 xuser left #perl6
03:56 dalek joined #perl6
03:57 pugssvn joined #perl6
03:58 pmichaud joined #perl6
03:59 hatseflats joined #perl6
04:02 sorear joined #perl6
04:21 Juerd joined #perl6
04:23 snarkyboojum joined #perl6
04:46 araujo joined #perl6
04:54 davidm123 joined #perl6
05:09 saaki joined #perl6
05:20 jrtayloriv joined #perl6
05:21 Su-Shee joined #perl6
05:25 kaare joined #perl6
05:37 orafu joined #perl6
06:11 pugssvn r31189 | moritz++ | [S06] print default usage messag to standard output, by petition from avar++
06:13 TiMBuS joined #perl6
06:16 uniejo joined #perl6
06:18 dalek rakudo: 51dfa74 | patrickas++ | src/core/MAIN.pm:
06:18 dalek rakudo: Correct handling for case sub MAIN('add' , ) {}
06:18 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
06:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​1dfa743edd4bac76ce01a2ba181f98ab5f5a87a
06:18 dalek rakudo: 9c0f9ec | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
06:18 dalek rakudo: Much better sub dispatching thanks to jnthn++
06:18 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
06:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​c0f9ec52be13b95c6bac5dc5923e421739a8916
06:18 dalek rakudo: d1aeb84 | moritz++ | src/core/MAIN.pm:
06:18 dalek rakudo: USAGE is not polluting the user's space anymore. If the user defined a sub USAGE
06:18 dalek rakudo: it will be called instead
06:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​1aeb846e2777f23d208172f0e701673628aefb8
06:18 moritz_ phenny: tell avar that the current commits to rakudo wrt USAGE sub print to STDOUT again
06:18 phenny moritz_: I'll pass that on when avar is around.
06:18 ingy leto++ helped me add a PIR emitter and a PIR parser!!! to cdent
06:18 ingy this means I can compile p6 js and py modules to pir
06:19 ingy and I can compile pir modules to a dozen different languages
06:19 ingy :)
06:19 moritz_ wow, I wish I could compile Perl 6 modules :-)
06:19 ingy :)
06:20 moritz_ once you can compile modules, compiling programs / mainline code should be SMOP
06:20 moritz_ and then you're done
06:20 ingy I'll need to think about that after sleep
06:21 ingy I need to update http://cdent.org/examples/hello-world/
06:24 mjk joined #perl6
06:27 mjk joined #perl6
06:32 snarkyboojum ingy: broken link on http://cdent.org/examples/
06:36 snarkyboojum ingy: and http://cdent.org/home/
06:39 snarkyboojum ingy: and Source Repository and Installation under the Download left hand nav
06:40 yinyin joined #perl6
06:41 jrtayloriv joined #perl6
06:43 pnate joined #perl6
06:52 yinyin joined #perl6
06:58 Ross joined #perl6
07:14 tao_ is perl6 ready for everyday use?
07:14 Su-Shee depends on what you use every day. ;)
07:15 tao_ is it stable enough?
07:15 tao_ like
07:15 tao_ if it was in debian
07:15 tao_ would it be in testing or unstable?
07:15 Su-Shee no idea what that means. I don't use debian.
07:16 Su-Shee try it, do stuff and see for yourself.
07:16 tao_ I am not that proffesional to judge like that :O
07:17 tao_ i belive perl6 will be superawesome
07:17 tao_ it'll kill haskell and java
07:18 Su-Shee tao_: just try and play with it, you'll see.
07:19 tao_ yeah im playing with it
07:19 tao_ with rakudo
07:19 tao_ but having a compiler would be cool too
07:19 tao_ just imho
07:30 moritz_ good morning
07:30 moritz_ TheDamian++ contacted me by mail, asking for a rationale for printing  USAGE messages to STDOUT
07:31 * sorear stares at RT#75668
07:31 sorear moritz_: LHF
07:34 moritz_ sorear: then write a patch :-)
07:34 moritz_ not obvious to me how to fix it
07:36 arnsholt Did anyone ever write an @*ARGS parser module?
07:36 moritz_ arnsholt: we have sub MAIN
07:37 arnsholt MAIN does parameter munging from @*ARGS?
07:37 moritz_ arnsholt: the backend logic in src/core/MAIN.pm comes very close to a traditional option parser
07:37 moritz_ yes
07:37 moritz_ it introspects the signature of MAIN
07:37 moritz_ and uses that as specification for options
07:37 arnsholt Nifty. I've learnt something already today, then
07:37 arnsholt Hopefully that bodes well for my exam ^^
07:38 moritz_ patrickas++ implemented most of it these past three weeks
07:38 moritz_ and we've plugged it into rakudo this week
07:38 moritz_ arnsholt: good luck with your exam(s)
07:38 dalek rakudo: d59da85 | (Solomon Foster)++ | src/core/Real.pm:
07:38 dalek rakudo: Change Real.Str to use Num instead of Bridge internally.  (Results should be
07:38 dalek rakudo: identical ATM.)
07:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​59da850db1d539d497889679d117a918082f5d9
07:38 arnsholt Thanks. It's just the one, thankfully
07:39 moritz_ topic?
07:40 arnsholt Gothic and proto-Norse
07:40 arnsholt =)
07:40 mathw Can't help with that
07:41 * moritz_ only knows proto-regexes :-)
07:41 mathw But now I've got two people to wish good luck to
07:41 mathw arnsholt: good luck!
07:41 arnsholt Thanks
07:44 Su-Shee mathw: gir sounds really interesting.
07:45 mathw Su-Shee: yup
07:45 mathw the Python bindings are moving over to using it exclusively
07:45 mathw and the JavaScript bindings already do
07:45 mathw seems to work very well for them
07:46 Su-Shee mathw: what I didn't get from reading around: do the libs you apply gir on have to use gobjects or can you use it for _any_ c lib?
07:50 mathw it's for GObject
07:52 Su-Shee a really well done OO api for gui would be really nice.
07:54 pugssvn r31190 | moritz++ | [S06] more elaborate $*OUT/$*ERR selection for USAGE printing
07:54 pugssvn r31190 |
07:54 pugssvn r31190 | This should make both avar++ happy who wants './prog --help|less' to DWHM,
07:54 pugssvn r31190 | and also TheDamian, who wants in good UNIX tradition a pipe of the form
07:54 pugssvn r31190 | './prog | sort > file' to print usage messages to $*ERR to catch mistakes.
07:55 mathw Su-Shee: I intend to ensure it happens, either by doing it myself or encouraging others.
07:55 mathw Probably a mixture of both
07:58 Cognominal joined #perl6
07:58 westery joined #perl6
08:00 Cognominal Rakudo:  say "hi"
08:00 moritz_ p6eval is case sensitive
08:00 moritz_ rakudo: say "hi"
08:00 p6eval rakudo 9c0f9e: OUTPUT«hi␤»
08:00 Cognominal Damn iPod
08:01 moritz_ Does It Capitalize Everything Except iPod? :-)
08:01 mathw I imagine it does the start of lines
08:01 mathw thinking they're the openings of sentences
08:01 mathw rather like my phone does
08:01 westery left #perl6
08:01 mathw touchscreen input is not usually designed for programmers. Or for entering complex passwords.
08:03 Su-Shee mathw: I'll support you/the idea/the code then.
08:03 Su-Shee mathw: or code little examples or something.
08:04 szabgabx joined #perl6
08:05 mathw \o/
08:07 Su-Shee (and that also means that I can have my native cairo-clutter based wiget set more easily :)
08:13 sorear joined #perl6
08:17 szabgabx joined #perl6
08:17 szabgabx rakudo: ("ab dddd", "ac    yy xx").grep(m/\S/).map({"<$_>"})
08:17 p6eval rakudo 9c0f9e:  ( no output )
08:17 szabgabx rakudo: ("ab dddd", "ac    yy xx").grep(m/\S/).map({"<$_>"}).perl
08:17 p6eval rakudo 9c0f9e:  ( no output )
08:17 szabgabx rakudo: ("ab dddd", "ac    yy xx").grep(m/\S/).map({"<$_>"}).say
08:17 p6eval rakudo 9c0f9e: OUTPUT«<ab dddd><ac    yy xx>␤»
08:17 moritz_ szabgabx: try /\S/, not m/\S/
08:18 szabgabx rakudo: ("ab dddd", "ac    yy xx").grep(m/\S/).map({"<li>$_</li>"}).say
08:18 p6eval rakudo 9c0f9e: OUTPUT«Method 'postcircumfix:<{ }>' not found for invocant of class 'Str'␤  in <anon> at line 1␤  in 'say' at line 5623:CORE.setting␤  in 'say' at line 4655:CORE.setting␤  in 'Mu::say' at line 1137:CORE.setting␤  in main program body at line 11:/tmp/OCIR5KttOB␤»
08:18 szabgabx rakudo: ("ab dddd", "ac    yy xx").grep(/\S/).map({"<li>$_</li>"}).say
08:18 moritz_ szabgabx: m/\S/ matches immediately, and doesn't pass the regex to grep at all
08:18 p6eval rakudo 9c0f9e: OUTPUT«Method 'postcircumfix:<{ }>' not found for invocant of class 'Str'␤  in <anon> at line 1␤  in 'say' at line 5623:CORE.setting␤  in 'say' at line 4655:CORE.setting␤  in 'Mu::say' at line 1137:CORE.setting␤  in main program body at line 11:/tmp/wglGSnfnCh␤»
08:18 szabgabx the problem seem to be in the map
08:18 szabgabx rakudo: ("ab dddd", "ac    yy xx").map({"<li>$_</li>"}).say
08:18 p6eval rakudo 9c0f9e: OUTPUT«Method 'postcircumfix:<{ }>' not found for invocant of class 'Str'␤  in <anon> at line 1␤  in 'say' at line 5623:CORE.setting␤  in 'say' at line 4655:CORE.setting␤  in 'Mu::say' at line 1137:CORE.setting␤  in main program body at line 11:/tmp/ctKG_3hxVJ␤»
08:18 szabgabx rakudo: ("ab dddd", "ac    yy xx").map({"<li>" ~ $_ ~ "</li>"}).say
08:18 p6eval rakudo 9c0f9e: OUTPUT«<li>ab dddd</li><li>ac    yy xx</li>␤»
08:19 szabgabx oh, that did not work on my machine :)
08:19 moritz_ rakudo: say {"<li>$_</li>"}.WHAT
08:19 p6eval rakudo 9c0f9e: OUTPUT«Block()␤»
08:19 * moritz_ doesn't understand the problem
08:20 szabgabx you mean my problem?
08:20 szabgabx or rakudos problem?
08:20 szabgabx std: ("ab dddd", "ac    yy xx").map({"<li>$_</li>"}).say
08:20 p6eval std 31190: OUTPUT«ok 00:01 109m␤»
08:20 moritz_ rakudos problem
08:21 moritz_ ah
08:21 moritz_ now I see
08:21 moritz_ $_</li>
08:21 moritz_ is a postcircumfix
08:21 szabgabx oh
08:21 moritz_ just like %h<stuff>
08:21 moritz_ and STD.pm doesn't complain, because the syntax is valid
08:21 szabgabx std: ("ab dddd", "ac    yy xx").map({"<li>{$_}</li>"}).say
08:21 p6eval std 31190: OUTPUT«ok 00:01 106m␤»
08:21 szabgabx rakudo: ("ab dddd", "ac    yy xx").map({"<li>{$_}</li>"}).say
08:21 p6eval rakudo 9c0f9e: OUTPUT«<li>ab dddd</li><li>ac    yy xx</li>␤»
08:22 szabgabx thanks
08:23 moritz_ you're welcome
08:23 moritz_ it's a bit wtf-y
08:27 dakkar joined #perl6
08:27 eternaleye_ joined #perl6
08:33 gfx joined #perl6
08:50 snarkyboojum joined #perl6
08:56 clintongormley joined #perl6
08:57 rob-_- joined #perl6
09:45 masak joined #perl6
09:47 masak oh morning, #perl6.
09:47 phenny masak: 01:49Z <Tene> tell masak that I pushed a basic ratel test.
09:47 masak nice.
09:48 masak rakudo: grammar G { rule TOP {^ foo } }; say ?G.parse("foo")
09:48 p6eval rakudo d59da8: OUTPUT«1␤»
09:48 masak rakudo: grammar G { rule TOP { ^ foo } }; say ?G.parse("foo")
09:48 p6eval rakudo d59da8: OUTPUT«1␤»
09:49 masak I'm trying to find a case where http://rt.perl.org/rt3/Tic​ket/Display.html?id=75668 manifests as a bug.
09:49 moritz_ rakudo: grammar G { rule TOP { ^ \S+ } }; say ?G.parse("+")
09:49 p6eval rakudo d59da8: OUTPUT«1␤»
09:49 moritz_ rakudo: grammar G { rule TOP { ^ \S+ } }; say ?G.parse(" +")
09:49 p6eval rakudo d59da8: OUTPUT«0␤»
09:50 moritz_ rakudo: grammar G { rule TOP {^ \S+ } }; say ?G.parse(" +")
09:50 p6eval rakudo d59da8: OUTPUT«1␤»
09:50 moritz_ well, I guess it's correct here, if less-than-awesome
09:50 moritz_ a rule is non-backtracking
09:50 moritz_ so the initial, implicit <.ws> matches a space
09:50 moritz_ and then ^ fails
09:51 moritz_ boom
09:51 snarkyboojum I saw that when trying to get an advent test going
09:51 moritz_ so rakudo should only change if the spec special-cases it
09:52 moritz_ let's wait what TimToady has to say about it.
09:53 masak ah. so a possible non-bug.
09:53 mathw This is why I don't use 'rule'
09:54 mathw All that implicitness confuses me
09:57 moritz_ in general it's highly desirable for the leading space to be significant
09:57 snarkyboojum actually scratch what I said about the advent test.. could just look like the same sort of thing
09:57 gfldex joined #perl6
10:04 masak inside [] groups, leading space *isn't* significant. sorear++ made a spec clarification about that recently.
10:05 moritz_ that's not "in general" but "in []" :-)
10:07 masak http://stackoverflow.com/questions/3018456/how-t​o-know-the-version-of-perl6-rakudo-i-am-running
10:08 moritz_ we have a patch for that in rt
10:08 moritz_ but I didn't want to apply it without feedback from pmichaud
10:08 masak if it's the patch I'm remembering, pmichaud was a bit hesitant about doing it that way. but maybe it's a new patch.
10:09 moritz_ I think it's a new patch, but I'm not sure
10:12 pugssvn r31191 | moritz++ | [t/spec] --help should produce a usage message to $*OUT, normal dispatch failure to $*ERR
10:15 mathw Is anybody replying to the StackOverflow question to say there's a patch in the works?
10:18 moritz_ http://rt.perl.org/rt3/Tic​ket/Display.html?id=73148
10:19 * moritz_ replies
10:21 mathw moritz_++
10:21 moritz_ it's not a particularly good reply :(
10:39 jaffa4 joined #perl6
10:54 mjk joined #perl6
11:11 kfo_ joined #perl6
11:28 Bzek joined #perl6
11:29 jhuni joined #perl6
11:37 rv2733 joined #perl6
11:37 quester_ joined #perl6
11:38 quester_ .
11:39 moritz_ you have a point :-)
11:39 * masak borrows it to dot an "i"
11:41 moritz_ the week is nearing its end, time to think about next week's challenge
11:41 moritz_ any ideas?
11:42 moritz_ I have a very selfish and idea: implement automatic step size adaption in Math::RungeKutta
11:42 moritz_ but it's only Perl 6 userland code, not Perl 6 development per se
11:45 masak indeed. feels like we could easily find something closer to the main trunk of development.
11:47 moritz_ diakopter: anything in csmeta/sprixel/perlesque that you could hand over to a beginner?
11:51 envi^home joined #perl6
12:00 bluescreen joined #perl6
12:03 arnsholt Are Perl 6 blocks labelled with the same syntax as in Perl 5?
12:03 moritz_ yes
12:04 arnsholt Excellent
12:08 masak can you do 'next LABEL' and have it dynamically find the LABEL?
12:09 moritz_ not sure... need to read S04 for that
12:09 ciphertext joined #perl6
12:09 takadonet morning all
12:13 masak \o
12:13 quester_ moritz_: I redid the git format-patch for http://rt.perl.org/rt3/Tic​ket/Display.html?id=73148, so if you've been having problems merging it, it should go in more smoothly now.  (For some outlying values of "should" and "smoothly".)
12:14 moritz_ quester_: thanks. I still want to get input from pmichaud before applying it though
12:14 awwaiid joined #perl6
12:15 quester_ moritz_:  Yes, of course.  Thank you.
12:25 pmurias joined #perl6
12:31 masonkramer_ joined #perl6
12:59 moritz_ rakudo: (1...2).perl
12:59 p6eval rakudo d59da8:  ( no output )
12:59 moritz_ rakudo: say (1...2).perl
12:59 p6eval rakudo d59da8: OUTPUT«(1, 2)␤»
12:59 moritz_ rakudo: say (4...^5).perl
12:59 p6eval rakudo d59da8: OUTPUT«(4, 3, 2, 1)␤»
13:00 moritz_ now I'm confused
13:00 moritz_ rakudo: say (^5).perl
13:00 p6eval rakudo d59da8: OUTPUT«0..^5␤»
13:00 moritz_ rakudo: say (4 ... 0, 1, 2, 3, 4).perl
13:00 p6eval rakudo d59da8: OUTPUT«(4, 3, 2, 1)␤»
13:01 moritz_ why does it throw away all those additional values? bug?
13:01 moritz_ colomon, any idea?
13:01 masak I'd say it's a bug, yes.
13:02 moritz_ masak: care to submit it?
13:02 * masak submits it
13:02 masak hm, should http://en.wikipedia.org/wi​ki/Parrot_virtual_machine be updated to mention not only PGE, but also nqp-rx?
13:03 moritz_ masak: btw I found it while checking an older bug report of yours, RT #72912
13:03 moritz_ which seems to be resolved, just needs tests
13:03 * moritz_ takes it
13:03 colomon you rang?
13:03 moritz_ yes, should be updated
13:03 colomon oh, that's easy.  bug
13:03 colomon well, NYI
13:03 moritz_ ok
13:03 masak I'll include that in the ticket.
13:06 * moritz_ never concisouly understood the relation between imutability and laziness, but yesterday's conversation here made it clear to me
13:07 masak I think I need to read that conversation in its entirety... but what's the relation?
13:11 pmurias moritz_: re anything in perlesque to be handed to a beginner, perlesque needs a lot of test writting
13:11 sjn joined #perl6
13:11 moritz_ masak: iterating lazily over mutable arrays is going to cause lots of confusion
13:11 masak pmurias: any clearly delimited task?
13:11 moritz_ pmurias: is that something on a level that Perl 6 beginners can do it?
13:12 masak moritz_: sounds like Java's ConcurrentModificationException...
13:12 moritz_ masak: never heard of it
13:14 masak http://java.sun.com/j2se/1.4.2/docs/api/jav​a/util/ConcurrentModificationException.html
13:14 masak buubot: eval my @a = (1, 2, 3); my $i = 4; for my $elem (@a) { print $elem, "\n"; push @a, ++$i if $elem % 2 }
13:14 buubot masak: 1 2 3 5 6 7 8
13:14 masak Perl 5 clearly has at least some resilience in this area.
13:16 masak rakudo: my @a = 1, 2, 3; my $i = 4; for @a -> $elem { say $elem; push @a, ++$i if $elem % 2 }
13:16 p6eval rakudo d59da8: OUTPUT«1␤2␤3␤»
13:17 masak I half-remember a p6l discussion about this. the list in the for loop is cloned, because we cannot guarantee that what we're iterating over is one single array anyway. might as well be 'for @a, @b -> $elem'.
13:18 masak I *think* that was the rationale. it doesn't feel very strong now that I recount it.
13:19 moritz_ my "enlightenment" was that laziness worked so well in haskell because there's so little mutable data that can cause such problems
13:19 pmurias masak, mortiz_: it's looking at the list of thing perlesque supports and write tests for that
13:19 moritz_ pmurias: 1) that's not specific enough; We'd have to pick one subject
13:19 moritz_ pmurias: 2) writing tests for a language you're just learning isn't easy for most people
13:20 pmurias moving the laptop outdoors &
13:20 moritz_ when you write a test, you never know if it's right or wrong
13:20 masak moritz_: right. I've had the same feeling about Clojure. it works so hard at immutability (for that very reason) that even seemingly mutable structures are immutable.
13:20 moritz_ when you write "normal" code, you need much less confidence, because running code tells you if it works
13:21 moritz_ I'd love to set people out to write tests, but it'd be much more concrete, with pointers to small parts of the spec, a defined scope...
13:25 mathw yes, laziness works superbly well with immutability
13:25 pmurias joined #perl6
13:25 masak is it too early to take a guess at common pitfalls for lazy lists in Perl 6?
13:26 masak how will users shoot theirselves in the foot?
13:26 moritz_ masak: it's too early for me at least, because there are many corner cases of laziness in Perl 6 that I don't understand
13:27 masak right.
13:27 colomon well, for sure if you write something with gather / take and side effects, things will get dicey.
13:27 pmurias shouldn't common pitfalls be found by observing usage instead of guessed (just like questions in an FAQ)?
13:27 colomon moritz_: there are many corner cases of laziness in Perl 6 that no one understands yet.
13:27 moritz_ pmurias: yes, they should; sometimes it's fun to predict though
13:28 masak do I understand it correctly that if you bind an array variable to a gather construct, and then never access it, the gather block is never executed?
13:28 colomon masak: probably.
13:28 moritz_ masak: it *may* be executed, but it's not forced to
13:29 masak moritz_: I don't like that that aspect isn't nailed down.
13:29 moritz_ it's not strict laziness as in haskell, afaict
13:29 colomon masak: I think you're going to have to live with that.
13:29 masak so it *may*, in the case of an infinite list, run forever?
13:29 masak that kinda sucks.
13:29 moritz_ nope
13:30 masak oh? what's the difference I'm missing?
13:30 moritz_ for infinite lists it may not run forever
13:30 masak er.
13:30 moritz_ an implementation is allowed to batch the next 10 values
13:30 pmurias moritz_: in haskell things may execute in a strange order, but because of the purity you can't observe that
13:30 masak moritz_: oh, ok. I still don't like it, but I can live with that.
13:30 moritz_ but it's not allowed to batch *all* values
13:31 moritz_ it just may turn out that all < 10 in some cases :-)
13:31 masak is that 10 in the spec, or is it impl-dependent?
13:31 moritz_ impl-dependent
13:31 moritz_ it's like the difference between unbounded and infinite
13:31 masak so I can make an impl that batches 0 elements? good.
13:32 moritz_ there's no upper bound to the batching, but it may not be infinite
13:33 pmurias moritz_: where is that specced?
13:34 moritz_ pmurias: S07 iirc
13:34 moritz_ though I don't know how much that still reflect @larry's mind
13:36 * pmurias should start coding instead of relaxing on irc on the terrace...
13:36 Trashlord joined #perl6
13:37 masak yesterday, I ran into a Null PMC access when trying to adapt Buf.decode to the new ByteBuffer. I don't really know how to debug it; as far as I can see, I'm not doing anything different from what byetbuffer.t is doing.
13:37 masak I literally took a piece of code from in there and put it in the PIR block of my method.
13:38 moritz_ there are some differences between plain PIR code and PIR blocks embedded in Perl 6
13:38 ggoebel joined #perl6
13:38 moritz_ for one you're in a different HLL
13:38 [Coke] masak: show me the code?
13:38 moritz_ I think I've observed once that .local doesn't work n PIR blocks, but I could be wrong
13:39 moritz_ there are also not all registers available in embedded PIR blocks
13:39 moritz_ like $P11 or so
13:40 masak [Coke]: http://gist.github.com/434483
13:40 masak moritz_: I used .local in Str.encode without a problem.
13:41 moritz_ where does it Null PMC access?
13:41 masak line 19, AFAICT.
13:41 moritz_ oh
13:41 moritz_ %r = box s
13:41 moritz_ rakudo doesn't like anything bug PMCs as return values
13:41 masak oh!
13:41 masak trying that.
13:42 [Coke] or just %r = bb.'get_str...'
13:42 rgrau joined #perl6
13:42 moritz_ does that return a PMC?
13:42 vdrab joined #perl6
13:42 [Coke] if %r is a pmc, yes.
13:43 [Coke] methods should autobox.
13:43 moritz_ parrot never ceases to amaze me - in both ways :-)
13:43 masak only two ways? :P
13:43 moritz_ positive and negative
13:46 moritz_ ok, and unexpected-but-not-really-good-or-bad
13:46 masak reminds me of '... experiencing our two emotions (fear and not fear)' from http://ieet.org/index.php/IEET/more/2181/ :P
13:47 masak now the code doesn't crash! moritz_++
13:48 moritz_ \o/
13:48 moritz_ does it also produce sensible output? :-)
13:48 mathw Or does it just explain the universe in Common Lisp
13:53 quester_ left #perl6
14:00 cggoebel joined #perl6
14:01 dolmen joined #perl6
14:01 fda314925 joined #perl6
14:26 SmokeMachine joined #perl6
14:30 plobsing joined #perl6
14:36 jaffa4 hi
14:36 jaffa4 where did you manage to compile pugs?
14:40 masak jaffa4: I'm not sure I understand the question. 'where', as in, 'on which computer'?
14:42 jaffa4 on Windows
14:42 [mark] joined #perl6
14:43 jaffa4 was it you who mentioned that you managed to compile it?
14:43 masak I suspect that moritz_, who said yesterday that he built it a while ago, is on Linux.
14:43 jaffa4 There are problems on Windows
14:43 jaffa4 some functions are not defined
14:44 jaffa4 I mean posix functions
14:48 masak I'd ask for a nopaste of those errors, but I'm afraid I won't be any help troubleshooting anyway.
14:49 jaffa4 I think I have managed to understand Haskell to a degree
14:51 jaffa4 here you are...
14:51 jaffa4 http://pastebin.com/KwjDTUT3
14:52 jaffa4 if you change your mind.
14:53 masak I'm looking at it. as I expected, I have no clue what's wrong. maybe someone else will.
14:56 jaffa4 some function definitions are missing
14:56 mathw Hmm
14:56 mathw so Pugs has a module which is trying to provide POSIX compatibility, it seems
14:56 mathw but it won't build due to missing type constructors and functions
14:56 jaffa4 those functions are missing on Windows
14:56 mathw I wonder if it's expecting to get them from a platform library which has changed
14:57 jaffa4 has it ever compiled on Windows anyway?
14:57 jaffa4 I read that it compiled on Cygwin
14:57 jaffa4 but I guess not on pure Windows.
14:57 masak jaffa4: http://www.perlmonks.org/index.pl?node_id=431492
14:59 mathw ah so it did used to compile
14:59 mathw in that case I might suspect changes in the Haskell Platform causing the failure
14:59 mathw Unfortunately I'm not entirely up to date on those myself
15:00 mathw and it's time for me to disappear and have a singing lesson
15:00 mathw &
15:04 pugssvn r31192 | pmurias++ | [smop] Build test runs one test
15:05 dolmen joined #perl6
15:10 pugssvn r31193 | colomon++ | [spec] Document Numeric.Real, Numeric.Int, Numeric.Rat, Numeric.Num, and Real.Str.
15:14 plainhao joined #perl6
15:16 wallberg joined #perl6
15:17 xabbu42 joined #perl6
15:20 moritz_ http://my.opera.com/cstrep/blog/2010/06/10/perl6​-hacking-grammars-digest-md5-and-caffeine-levels cosimo++
15:20 masak I really think that a tryperl6.org or tryrakudo.org site would make a real difference. we should be thinking about which subtasks can be made into weekly challenges.
15:22 pugssvn r31194 | pmurias++ | [smop] all the tests for s0native are run
15:23 moritz_ masak: +1
15:23 moritz_ masak: I have a rough plan in my head... maybe I should write it down
15:24 justatheory joined #perl6
15:24 masak moritz_: yes, please do. getting people on the same page (and enthusiastic) is a good thing.
15:25 pmurias what would be nice is to share backends between the evalbot and tryperl6.org
15:25 masak the evalbot needn't preserve state between executions.
15:26 masak but perhaps that's an insignificant difference.
15:26 moritz_ other way round
15:26 ash__ joined #perl6
15:26 moritz_ the website needs it, evalbot doesn't
15:26 masak that's what I said.
15:26 moritz_ ah
15:26 moritz_ I misread needn't for 'need'. Sorry
15:26 masak np :)
15:26 moritz_ and it makes a whole lot of a difference
15:27 masak I once took a look into the trypugs code. there are some scary heroics in there. :/
15:27 moritz_ because it means we need to have sessions, and keep a process running the background
15:28 moritz_ an interactive $compiler process, that is
15:28 moritz_ OH NOEZ, autoprinting is b0rked here
15:28 moritz_ ./perl6
15:28 moritz_ > 1
15:28 moritz_
15:28 moritz_ (empty line)
15:29 moritz_ maybe that was the MAIN patch... :(
15:29 Ross joined #perl6
15:30 masak bisection time...
15:30 Ross joined #perl6
15:31 moritz_ we need freakin' tests for freakin' EVERYTHING!
15:32 masak t/spec/S01/everything.t
15:41 masak since the jury is still mostly out on nested classes in Perl 6, this might be interesting reading: http://gbracha.blogspot.com/​2010/06/nest-of-classes.html
16:03 moritz_ can I check in action methods if something is a known name of a subroutine?
16:03 moritz_ kinda like $/.CURSOR.is_name, but for routines, not types
16:04 moritz_ it was inded the MAIN sub that broke autoprinting :(
16:04 moritz_ moritz_--
16:06 isBEKaml joined #perl6
16:07 isBEKaml hey, folks!
16:08 perlygatekeeper joined #perl6
16:08 masak isBEKaml! \o/
16:08 moritz_ hi
16:08 isBEKaml masak: tried building alpha, couldn't just install it at all. (I'm aware `make install` isn't available in it, though)
16:09 moritz_ I'm pretty sure it is
16:09 masak it is.
16:10 masak isBEKaml: I have a built alpha here. since it's not changing, I'm pretty sure something other than a recent change must be the problem.
16:10 masak isBEKaml: you do need an older Parrot, of course.
16:11 moritz_ the one in build/PARROT_REVISION
16:11 masak but that will solve itself if you build with `perl Configure.pm --gen-parrot`
16:11 isBEKaml http://pastebin.com/u8XqdqKz
16:11 masak my alpha Parrot runs r43486.
16:11 patspam joined #perl6
16:12 isBEKaml masak: I did use gen-parrot.
16:12 TimToady I note that masak++'s linked nest-of-classes article uses "namespaces" as I use it, and counter to parrot's usage.  :)
16:12 masak isBEKaml: good. then that's not the issue.
16:13 masak isBEKaml: I don't recognize the error you're getting, but it's not an error in 'make install', it looks like an error in 'make'.
16:13 moritz_ looks like the parrot build or install failed in a non-obvious way
16:13 masak isBEKaml: which tells me that something went wrong earlier than what you've nopasted.
16:14 isBEKaml masak: I didn't see any error while building it with make. I will try once again.
16:14 moritz_ I'd try to rm -rf parrot parrot_install
16:14 TimToady perhaps someone should file a bug against parrot's usage of "namespace"...
16:14 moritz_ and then try again with --gen-parrot
16:14 masak yeah. start with that.
16:14 [Coke] left #perl6
16:14 masak TimToady: well volunteered!
16:14 masak I think you should, fwiw.
16:16 isBEKaml masak: yes, building it now. Let's see what happens. :)
16:16 jedai joined #perl6
16:16 masak isBEKaml++ # I suspect you're installing alpha for Yapsi :)
16:17 isBEKaml masak: Got a great weekend ahead. Can't wait to get started on Yapsi! :)
16:18 isBEKaml yay for Friday nights!
16:18 masak excellent. maybe I should land the if branch soonish, then. I think with that one as an example, it won't be difficult for an intrepid hacker to add while loops.
16:18 masak I have a branch with a partial commit that implements the parsing part of if/else.
16:19 isBEKaml wonderful. Should get started reading up the source up/down while this builds.
16:23 meppl joined #perl6
16:23 dual joined #perl6
16:25 jrtayloriv joined #perl6
16:26 kensanata joined #perl6
16:34 TimToady very odd, the word "TOP" does not occur in the specs...
16:35 macdaddy joined #perl6
16:36 Ross joined #perl6
16:38 ash__ joined #perl6
16:39 pyrimidine joined #perl6
16:44 REPLeffect joined #perl6
16:45 _kaare joined #perl6
16:49 PerlJam joined #perl6
16:50 moritz_ TimToady: wouldn't be the first regex concept that has been in use for a long before appearing in the specs
16:50 moritz_ like reduction methods
16:55 szabgabx joined #perl6
17:00 pugssvn r31195 | lwall++ | [S05] mention TOP, and explain how parsing is initiated and how it actually works
17:02 cdarroch joined #perl6
17:02 cdarroch joined #perl6
17:03 isBEKaml awww, shucks. Now that I read the error message closely, I think I mv'd the folder from testrakudo to alpha sometime. Though I don't actually remember doing it. :(
17:04 isBEKaml alpha built fine now. :)
17:05 pyrimidine moritz_: manage to decomplexify the .trans spec in S05?
17:06 moritz_ pyrimidine: hope, I've hit a Wall :-)
17:06 pyrimidine :)
17:06 TimToady there's that missing ascender
17:08 TimToady on the laziness requiring immutability question, I think it doesn't, actually.  I think it only requires decoupling of the side effects of sources and sinks
17:09 TimToady i.e. non-deterministic behavior is fine when non-deterministic behavior is fine.  :)
17:09 moritz_ "only"
17:09 isBEKaml iff? :)
17:10 TimToady it is also my (unproven) belief that many cases of interaction can be caught and explained to the user, though of course not all of them.
17:12 TimToady and that we can get at the immutability ideal by cultural stricture rather than enforcing it from first principles
17:12 isBEKaml Concerning immutability, is it possible to have "final" variables that are set down by the programmer?
17:12 moritz_ TimToady: I've read that some commercial static analyziers (coverity, iirc) removed some concurrency related checks (like dead locks, race conditions) simply becasue they were too hard to explain to the casual programmer
17:12 TimToady I could be wrong, but I don't want to invent another useless functional language :)
17:14 isBEKaml i.e. variables that can never be modified or changed state once assigned?
17:14 TimToady my vision of laziness is more like a unix pipeline, I guess
17:14 TimToady you can get races there too...
17:14 moritz_ std: my constant $x = 3;
17:14 p6eval std 31194: OUTPUT«ok 00:01 108m␤»
17:14 moritz_ isBEKaml: like that?
17:14 isBEKaml moritz_: yes, that one.
17:15 TimToady that is compile-time
17:15 isBEKaml rakudo: my constant $x = 42; $x += 2;
17:15 p6eval rakudo d59da8: OUTPUT«===SORRY!===␤Malformed my at line 11, near "constant $"␤»
17:15 moritz_ isBEKaml: though it only makes the container immutable
17:15 TimToady my $x ::= 3 is run-time readonly
17:15 isBEKaml NYI. I guess.
17:15 moritz_ not the object stored
17:15 moritz_ so even my $x ::= []; $x.push(3); would not throw an error
17:15 TimToady the compiler is free to inline constants, for instance
17:16 TimToady rakudo: constant $x = 42;
17:16 p6eval rakudo d59da8: OUTPUT«===SORRY!===␤Symbol '$x' not predeclared in <anonymous>␤»
17:16 TimToady alpha: constant $x = 42
17:16 p6eval alpha 30e0ed:  ( no output )
17:16 isBEKaml moritz_: container immutable? was that reference immutability and not state immutability?
17:16 TimToady but it has it in the 'my' slot
17:16 TimToady alpha: my constant $x = 42;
17:16 p6eval alpha 30e0ed: OUTPUT«Malformed declaration at line 10, near "constant $"␤in Main (file <unknown>, line <unknown>)␤»
17:16 TimToady as that shows
17:17 moritz_ isBEKaml: $x ::= $thing  means you can't assign to $x after that
17:17 moritz_ isBEKaml: but if $thing has methods that mutate it, nothing going to stop you
17:17 isBEKaml moritz_: yes, as I understand it, that's reference immutability.
17:18 TimToady my $*FOO ::= 42; means that you can copy 42 into a subscope as a value, and forget about the $*FOO container
17:18 TimToady but object's values are their reference, so you can still mutate the object, yes
17:18 TimToady non-value objects, I should say
17:19 TimToady the terminology isn't quite clear here...
17:19 isBEKaml again, it looks to me like $x ::= $thing stores the reference to $thing in $x and if $thing has mutators, all bets are off on immutability.
17:20 moritz_ right
17:20 TimToady I was agreeing with you
17:21 TimToady shower & work &
17:21 TimToady or is that shower | work &
17:22 isBEKaml TimToady: We can push multiple jobs to bg! :)
17:23 * moritz_ thinks that TimToady is too mutable to be lazily shared between work and shower at the same time :-)
17:24 moritz_ so, MAIN sub broke autoprinting on the REPL
17:24 moritz_ the reason is that I inject a a call to MAIN_HELPER at the end of each compilation unit
17:24 moritz_ because I thought that the return values of compiluation units isn't used
17:25 moritz_ so there are various possible fixes
17:25 sahadev joined #perl6
17:25 moritz_ 1) detect that we're in a REPL, and don't emit MAIN_HELPER calls then (pmichaud won't like that)
17:26 moritz_ 2) try to detect if there was a MAIN sub, and only then inject a call to MAIN_HELPER (no idea how to do that though)
17:26 moritz_ 3) generally inject MAIN_HELPER in a way that the return value is passed through (will likely mess up backtraces though)
17:27 PerlJam MAIN_HELPER is what does the printing?
17:27 moritz_ rakudo: sub a($x) { 3 }; sub b { die 8 }; a(b())
17:27 p6eval rakudo d59da8: OUTPUT«8␤  in 'b' at line 11:/tmp/hgPGpD_Csn␤  in main program body at line 11:/tmp/hgPGpD_Csn␤»
17:27 PerlJam (in the REPL I mean)
17:27 PerlJam oh, I guess not from your #1
17:27 moritz_ PerlJam: MAIN_HELPER is what detects if there is a MAIN sub, if yes introspects its signature, calls it etc.
17:27 PerlJam what is MAIN_HELPER?
17:28 moritz_ calls USAGE if the dispatch fails
17:28 PerlJam gotcha
17:29 moritz_ 3) probably won't mess up backtraces, but it will cause the last statement not to be in sink context once we detect that.
17:30 moritz_ 4) call MAIN as part of an immediately-after-runtime phaser. Problem is then to obtain a reference to MAIN, and keep its lexical environment
17:30 PerlJam wait ... you call MAIN_HELPER at the end of each compilation unit?   How does it know when to call USAGE?  If I've got 3 compilation units and the "last" one has MAIN, what does MAIN_HELPER do in the first 2?
17:30 moritz_ 5) pray that pmichaud++'s planned YOU_ARE_HERE refactors magically fix it, in short time
17:31 PerlJam moritz_: so far,my gut is liking #4
17:31 moritz_ PerlJam: a compilation unit is something like a file, or a line on the REPL
17:31 moritz_ PerlJam: so in ordinary code (non-REPL) you just have one compilation unit
17:31 moritz_ (except modules)
17:31 moritz_ so your question is moot
17:32 isBEKaml moritz_: uh, isn't that what you're doing in MAIN_HELPER?(obtaining the lexical env and a ref to MAIN)
17:33 * PerlJam goes to look at the code.
17:33 moritz_ isBEKaml: yes. And it works now because the call to MAIN_HELPER is in the same scope as the lexical environment of MAIN
17:33 isBEKaml so #4 kinda looks circular to me.
17:33 moritz_ I don't know if it would still work that way if it fired as a phaser instead
17:34 moritz_ rakudo: say  {3; END { 5 }}.()
17:34 p6eval rakudo d59da8: OUTPUT«Null PMC access in type()␤  in main program body at line 11:/tmp/LORCYC3MO8␤»
17:34 moritz_ seems like phasers might not solve my problem at all
17:35 pmichaud good afternoon, #perl6
17:35 sorear joined #perl6
17:35 PerlJam greetings pm
17:35 isBEKaml hello, pmichaud
17:35 moritz_ hi pmichaud
17:36 colomon o/
17:36 moritz_ pmichaud: if you backlog a few minutes, there's something I'd like to have you opinion on
17:36 moritz_ starting from http://irclog.perlgeek.de/​perl6/2010-06-11#i_2425471
17:36 pmichaud 16:34 <TimToady> very odd, the word "TOP" does not occur in the specs...
17:36 pmichaud ...it was there.
17:36 pmichaud at one time.
17:37 moritz_ I dimly recall that too
17:37 pmichaud not in S05, though.
17:37 * moritz_ does a long grep in git log -p
17:37 pmichaud iirc, it was in S03 under smart matching, before we decided that   $x ~~ GrammarName  should test that $x does GrammarName
17:38 moritz_ it was in S05
17:38 PerlJam It's in my S05 right now
17:38 pmichaud (i.e., back when $x ~~ GrammarName was the mechanism for invoking a grammar)
17:38 pmichaud PerlJam: TimToady++ just added it :)
17:38 moritz_ removed in r29953, "[S05] kill {*} and #="
17:38 PerlJam oh
17:38 moritz_ though it didn't explain that TOP is invoced automagically
17:39 pmichaud right, automagic TOP was in S03.
17:39 pmichaud a-n-y-w-a-y
17:39 pmichaud so, what's up today?  ;-)
17:40 sorear LHF: reply to and close RT#75668
17:41 sorear pmichaud: did I ever manage to actually ask you about NQP-rx and bootstrapping tips?  net was flaky last night
17:41 pmichaud sorear: if you did, I missed it.
17:45 pmichaud ah, I see it in #parrot now
17:45 pmichaud I don't know that I have any specific tips.  I know that turning the crank the first time was the hardest.
17:46 pmichaud make sure to have frequent snapshots so you can easily back up without losing an intermediate step.  :-)
17:46 sorear moritz_: My patch to fix the bug is ""
17:46 nadim joined #perl6
17:46 pmichaud as soon as I get lists and closures done, I'll likely be refactoring YOU_ARE_HERE (unless someone else beats me to it), which may invalidate much of the work being done on MAIN.
17:47 pmichaud probably won't completely invalidate it, but it may cause a lot of things to get ripped out
17:53 * pmichaud goes back to work on lists
17:53 colomon \o/
17:53 pmichaud after yesterday's discussion with TimToady++, I have a feeling it's actually solvable now :)
17:53 colomon :)
17:54 pmichaud a lot of pieces become much simpler when iterators become immutable.
17:54 colomon yesterday's conversation made me feel like I'd completely missed Act 2, if you know what I mean.
17:54 colomon but don't let me distract you!  ;)
17:55 pmichaud it will all be equally confusing when I'm done :-)
17:55 pmichaud so you haven't missed anything :)
17:55 sahadev left #perl6
17:56 sorear I always hated mutable iterators
17:56 sorear I feel vindicated
17:56 pmichaud well, the lists that wrap the iterators will be mutable, but the iterators themselves will be (conceptually) immutable
17:58 pmichaud sorear: the steps I did for bootstrapping nqp-rx begin around October 28.
18:02 pmichaud joined #perl6
18:08 ruoso joined #perl6
18:15 sorear 2009?
18:16 PerlJam sorear: yes
18:16 szabgabx joined #perl6
18:26 pmichaud TimToady: preliminary designs seem to indicate that immutable iterators makes everything _much_ simpler.
18:32 colomon \o/
18:53 kiffin joined #perl6
18:53 ash__ joined #perl6
19:11 patrickas joined #perl6
19:13 patrickas hello perlsixers
19:14 PerlJam greets patrickas
19:14 colomon \o
19:15 patrickas oh ... MAIN broke the repl :-(
19:16 isBEKaml hey, patrickas!
19:17 patrickas hello PerlJam colomon isBEKaml :-)
19:18 REPLeffect joined #perl6
19:20 patrickas done with the backlog so it seems we do't have an easy fix for MAIN and the REPL!
19:21 isBEKaml patrickas: pmichaud++ is here, no is worry! ;)
19:22 patrickas :-)
19:27 szabgabx hi ppl
19:27 patrickas well untill we have a correct fix maybe we can go with the ugly hack of detecting the repl and not runnign main helper there ... short of totally reverting the patch
19:28 patrickas hello szabgabx
19:28 szabgabx can someone tell me please what do I need to do to have history in the perl6 REPL
19:28 szabgabx ?
19:28 pmichaud szabgabx: you need to have readline installed.
19:28 sjohnson y0
19:28 pmichaud szabgabx: on ubuntu systems, this means installing  libreadline5-dev package
19:28 szabgabx thanks
19:28 patrickas also you probably need a REPL from last week cause this week's is borked :-)
19:29 pmichaud (you'll then need to rebuild parrot so that it detects the presence of readline)
19:29 pmichaud colomon: ping
19:29 szabgabx oh
19:30 isBEKaml Some Linux distros don't come with readline installed? (hmm, I seem to have taken certain things for granted ;))
19:30 pmichaud they come with readline installed (ubuntu does), but Parrot doesn't recognize it unless libreadline5-dev is also present.
19:30 szabgabx I think upgrading to 10.4 broke it
19:31 colomon colomon is away from his computer ... back in about 15 minutes
19:31 pmichaud i.e., Parrot wants to see the readline headers and development files for linking
19:31 pmichaud colomon: okay, no rush
19:31 szabgabx I just hardly did any perl6 coding recently
19:31 szabgabx and now I am preparing a talk for tomorrow
19:31 pmichaud szabgabx: were you at German Perl Workshop?  how did it go?
19:31 szabgabx I was there 1 day
19:31 pmichaud ah.
19:31 colomon (sez his wife :) )  I'll let him know he's been pinged
19:31 sorear libreadline-dev is required to use readline from high-level languages
19:31 szabgabx and now I am at LinuxTag berlin
19:32 sorear there's special magic to allow C programs to run with only libreadline5 itself, but the magic doesn't extend to Parrot and other systems using FFIs
19:32 pmichaud wish I could've made it.  Turns out it was better that I remained at home.
19:32 szabgabx there were only 70 or 80 ppl
19:33 isBEKaml ah, yes. I see now. Ubuntu does seem to suffer from separating dev and userland packages. (Or I may be gnorw :)
19:33 szabgabx and on the first day all the talks were in german
19:33 szabgabx except mine :)
19:33 pmichaud colomon (and others):  for when you get back -- http://docs.google.com/Doc?id=dg3jqmpv_16fk7kdjdb  # my current notes on lists and iterators
19:34 pmichaud comments welcomed.  it now looks straightforward enough that I can begin implementing :)
19:36 patrickas "this design explores a design" probably "this document"?
19:36 pmichaud fixed.
19:37 pmichaud (note that visitors currently have editing privs -- feel free to add questions/comments at the bottom)
19:38 szabgabx rakudo: say qq<<a>\n>
19:38 p6eval rakudo d59da8: OUTPUT«===SORRY!===␤Confused at line 11, near "say qq<<a>"␤»
19:38 pmichaud rakuso:  say qq{<a>\n}
19:38 pmichaud rakudo:  say qq{<a>\n}
19:38 p6eval rakudo d59da8: OUTPUT«<a>␤␤»
19:39 szabgabx ty
19:39 pmichaud rakudo:  say qq(<a>\n)
19:39 p6eval rakudo d59da8: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤»
19:39 pmichaud oh yeah, that makes it a function.  :-|
19:39 pmichaud rakudo:  say qq (<a>\n)
19:39 p6eval rakudo d59da8: OUTPUT«<a>␤␤»
19:40 pmichaud std:  say qq(<a>\n);   # curious
19:40 p6eval std 31195: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse argument list at /tmp/4ZcRxThRTB line 1:␤------> [32msay qq[33m⏏[31m(<a>\n);   # curious[0m␤Couldn't find final ')'; gave up at /tmp/4ZcRxThRTB line 1:␤------> [32msay qq(<a>\[33m⏏[31mn);   # curious[0m␤    expecting any of:␤
19:40 p6eval ..   p…
19:40 pmichaud std++
19:41 ShaneC joined #perl6
19:41 patrickas std:  say qq(<a>);
19:41 p6eval std 31195: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤      'qq' used at line 1␤Check failed␤FAILED 00:01 104m␤»
19:41 colomon pmichaud: pong
19:41 pmichaud colomon: see link above
19:41 pmichaud actually, repasting
19:41 pmichaud Questions/comments/observations:
19:41 pmichaud oooops
19:41 colomon already looking.
19:41 szabgabx yes that qq( ) confuses me
19:41 pmichaud ah.
19:41 pmichaud nm.
19:42 pmichaud szabgabx: any identifier immediately followed by parens is treated as a function call.
19:42 sorear pmichaud: ( without preceding space is disambiguated as a function call
19:42 sorear see all the .notfun
19:42 pmichaud sorear: yes, I know.
19:42 pmichaud I was just curious to see what error std produced.
19:43 isBEKaml pmichaud: I thought Arrays were mutable while Lists are not. (vaguely remembers some conversation here... )
19:43 pmichaud isBEKaml: *were*
19:43 pmichaud that's a very old design.
19:43 pmichaud basically, forget what you "know" from previous mis-designs :)
19:44 pmichaud also note that Seq is currently gone from this model -- it's not needed yet.
19:44 isBEKaml pmichaud: :). So what is it now? Arrays -> immutable. Lists -> mutable?
19:44 TimToady we've realized that Lists and Arrays are essentially the same data structure, but the APIs make different assumptions about keeping values
19:44 pmichaud isBEKaml: iterators -> immutable.  lists -> mutable..  Array does List
19:45 pmichaud actually, the primary difference I've seen is in how the values are kept.  Lists keep the actual values, while arrays do the equivalent of assigning the values to scalar containers
19:45 TimToady basically, if it's a List, you do .get, while if it's an Array, you do .shift to do the same thing
19:45 ShaneC left #perl6
19:45 pmichaud s/assigning/binding
19:45 TimToady yes, there may be an extra level of indirection in an Array
19:46 pmichaud I didn't yet address the notion of .get/.shift in this document.  I'm feeling they're ultimately the same.
19:46 TimToady could be
19:46 isBEKaml Ah, it's clear now. TimToady++, pmichaud++
19:47 TimToady mabye we should throw away both .shift and .get and replace 'em with .pull
19:47 pmichaud wouldn't bother me too much :-)
19:47 colomon pmichaud: how would you handle something like a file-reading iterator or a pipe?
19:47 TimToady and then push/pull make sense, kinda
19:47 isBEKaml One more question, though. In the case of GatherIterators, we have a "world" facing sub .get that throws out values whenever an iterator obj is called. What happens to it?
19:48 pmichaud isBEKaml: ??
19:48 TimToady an iterator wouldn't have a .get method
19:48 pmichaud iterator has .reify
19:48 colomon pmichaud: it seems like the naive designs will trip up immutability?
19:49 TimToady an iterator has a comparable method that returns a new iterator that happens to contain the pulled valued
19:49 pmichaud colomon: a file-reading "iterator" is no longer an "iterator" in this model
19:49 TimToady s/d//
19:49 TimToady or otherwise returns it out-of-band
19:49 colomon pmichaud: interesting.
19:49 isBEKaml no more .get(), that's better than having one do everything as we have now. :)
19:50 pmichaud colomon: IO.lines() returns a List with an iterator that lazily produces lines
19:50 pmichaud but yes, it would be possible for someone to make things seem "out of order" by manipulating IO before all of the lines have been produced.  That's accepted in basically any stream-consuming model we have at present.
19:51 colomon pmichaud: that wasn't my worry about it.
19:51 TimToady generally we'll set it up so you have to be explicit when you want to see an iterator; default will always be to hide the naked singularity in a LIst
19:51 colomon I was thinking in terms of a given iterator always returning the next value in the sequence, no matter how many times it is called.
19:52 pmichaud colomon: right.  if we choose to preserve that characteristic into IO, then IO isn't our iterator
19:52 pmichaud we'll have an IOIter
19:52 pmichaud and it will preserve chains
19:52 pmichaud in fact,  IO.lines could be written as
19:53 pmichaud method lines() { gather { take self.get; } }
19:53 pmichaud with appropriate EOF-handling
19:53 colomon pmichaud: I believe that's how it's written now.
19:53 pmichaud and since GatherIter already preserves iteration chains, we're in business :)
19:53 pmichaud er,   gather { take self.get while ... }
19:54 colomon right, and it's a little more complicated because it takes a "number of lines to read" parameter.
19:54 colomon ah, yeah, I guess gather is required to do all the heavy lifting, isn't it?
19:54 pmichaud it's not required, but it's trivially available for it :-)
19:55 kensanata joined #perl6
19:56 pmichaud anyway, gather/take can handle our immutability issue for us.
19:56 colomon I mean, gather has to preserve all the immutability properties, and therefore anyone else can use them easily.
19:56 pmichaud correct
19:56 pmichaud which is somewhat the point of having a gather/take :)
19:56 pmichaud (to be available for others to use easily)
19:56 pjcj joined #perl6
19:56 PerlJam I don't quite understand "Binding a positional container to a List actually binds to a flattening clone of the List."  particularly that last part about "a flattening clone"
19:56 pmichaud PerlJam: we have flattening and non-flattening lists.  that part ok?
19:57 PerlJam implicitly or explicitly?
19:57 PerlJam or, how do I tell the difference?
19:57 pmichaud well, lists can be flattening, in which case they reduce parcels and other flattening values into a single sequence
19:57 pmichaud the @ sigil implies "flattening"
19:58 pmichaud my @a = (1, (2, 3), 4);   # @a.elems == 4, not 3
19:58 colomon pmichaud: given that .reify returns a Parcel containing N values and M iterators, how do we tell where the values stop and the iterators begin?  Is it illegal to return an iterator as a value?
19:59 PerlJam colomon: M interators?  I thought there was just 1?
19:59 pmichaud colomon: if we need an iterator as a value, we'll capture it
19:59 colomon "followed by any additional iterator(s)"
19:59 pmichaud colomon: but in general, a List doesn't contain any naked iterators in its reified portion
19:59 colomon okay.
19:59 pmichaud PerlJam: continuing on...
19:59 colomon So working with a List of Lists is fine, but a List of iterators is out.  Seems reasonable.
20:00 pmichaud sub foo(@a) { say @a.elems; };   foo((1, (2, 3), 4));
20:00 pmichaud outputs 4
20:00 pmichaud thus the parcel was flattened
20:00 PerlJam and non-flattening?
20:01 pmichaud I forget the latest slicing syntax at the moment, but that would do non-flattening.
20:01 PerlJam okay
20:01 pmichaud so, "flattening list" makes sense?
20:01 PerlJam aye
20:01 TimToady I'm not sure the *-less sig should flatten
20:02 TimToady *@a certainly flattens, and **@a certainly slices
20:02 pmichaud TimToady: that would be a significant spec change if it doesn't.
20:02 pmichaud rakudo:  sub foo(@a) { say @a.elems; };   foo((1, (2, 3), 4));
20:02 Trashlord joined #perl6
20:02 p6eval rakudo d59da8: OUTPUT«4␤»
20:03 pmichaud I'm fine if it is *is* a spec change, I'm just noting that it would be one.  :)
20:03 pmichaud s/is//
20:04 Psyche^ joined #perl6
20:04 pmichaud PerlJam: so, since we can safely clone any list, the bound container is bound to a flattening clone
20:04 TimToady I'm not sure it is specced.
20:04 pmichaud TimToady: well, we asked you specifically about it some time ago, and that was the answer you gave.  :-)
20:06 pmichaud PerlJam: this behavior eliminates the problem we had with    sub foo(@a) { say @a.elems; for @a { ... }; }    where the .elems would end up eating all of the elements of @a so that the subsequent loop didn't see anything.
20:07 pmichaud (when @a is bound to something that is consumable)
20:08 pmichaud while preserving the behavior that     foo().map( ... )   doesn't mean we keep around all of the elements the list coming from foo()
20:08 pmichaud (still some wiggle needed in that part of the design)
20:09 PerlJam Hmm.
20:10 pmichaud anyway, I'm very happy with this result at the moment, now to try to implement it :)
20:10 pmichaud it feels "right".
20:10 PerlJam (until it doesn't  :)
20:11 pmichaud true, but so far all of the things I think of become trivial answers in this design.  :)
20:11 pmichaud like the fact that Parcels are self-iterating.
20:11 PerlJam so ...  I guess if I stop paying attention now, tomorrow when I show up on #perl6 and ask "what's new?" there will be a chorus of "pmichaud++ made lists work"
20:12 colomon I'm still perplexed by how we make iterators immutable in this model.  The details of it, I mean.  It's clear that if they are immutable, most (all?) of the other issues that have plagued us go away.
20:12 pmichaud colomon: the two iterators I gave as examples are immutable
20:12 pmichaud that's the general pattern
20:12 pmichaud each iterator has a value and a reference to the next iterator
20:12 pmichaud (or value*s* and a reference to the next iterator)
20:12 colomon pmichaud: I'm looking at GatherIter.  What happens if you clone it before $!nextIter is initialized?
20:13 pmichaud in general, we don't clone iterators.
20:13 pmichaud but if we needed to, we could say that cloning implies reification.
20:13 isBEKaml .reify doesn't clone but stores state from the current position in the object?
20:14 isBEKaml I didn't quite understand what "thunking" meant here... :s
20:14 pmichaud "thunk" means that we perform an operation on an object, and then remember the results for all future references to that object
20:14 pmichaud or something like that
20:14 pmichaud essentially, we ask the iterator "compute your value" once, and then forever more it returns that value
20:15 isBEKaml ah, so that matches what I was thought it meant. Thanks for clarifying.
20:15 pmichaud (i.e., it's a lazily generated immutable value)
20:16 colomon actually, we ask it to compute its value and its next iterator, right?
20:16 pmichaud sure
20:16 pmichaud the return value of .reify is values + iterators
20:16 pmichaud that's the thunked part
20:17 pmichaud okay, time to head home (I escaped from the house -- was too noisy to think there) and get started on an implementation :)
20:18 pmichaud bbi30ish
20:18 colomon o/
20:19 masak joined #perl6
20:19 masak ahoy!
20:20 sorear so basically, an iterator is exactly the same as a Haskell list
20:21 masak TimToady: MyGrammar.parse($filename, :actions($action-object)) -- should be .parsefile, no?
20:21 TimToady nod
20:21 sorear ?
20:22 TimToady nod
20:22 masak !
20:22 TimToady .
20:22 colomon sorear: I think that was the idea, anyway.
20:23 masak "The experienced user will usually know what's wrong." :)
20:24 colomon I've got to admit I'm still having trouble squeezing my head around how to implement these iterators.
20:24 colomon I guess I can kind of see how to make it work in C++, so it is doable.
20:24 * diakopter having trouble squeezing my head around how to implement everything
20:24 TimToady it's chortles all the way down
20:25 colomon but it's not obvious to me how you'd make it work in p6.
20:25 colomon TimToady: I think there's a giant guffaw at the bottom.
20:26 isBEKaml I think the difference between Haskell List and P6 Iterator is that the p6 programmer will never deal with iterators directly (naked iterators are not possible, as I understand it)
20:26 TimToady they are, but you have to ask for them
20:27 ash__ doesn't gather/take create a 'naked' iterator?
20:27 TimToady as soon as you look at it, it's a list
20:27 colomon ash__: not once pmichaud++ is done today.
20:28 ash__ got ya
20:28 isBEKaml hmm
20:28 TimToady or really, a parcel
20:29 TimToady but sounds like list and parcel are converging now
20:29 colomon TimToady: they can't, or returning a Parcel from .reify will get real ugly real fast, won't it?
20:30 Wolfman2000 moritz_: http://www.youtube.com/watch?v=WyLYQ56NN60 <-- There's my first video attempt in awhile. It's not perl 6 related, but if you think it's decent enough (and if the laptop fan isn't too loud), then I can look into the Perl 6 video tutorials.
20:30 TimToady colomon: don't see a problem there
20:31 TimToady and if there is a problem, it can probably be dealt with by explicit return type from .reify
20:31 Schwern joined #perl6
20:31 TimToady which suppresses any extra parcel wrapping
20:32 colomon TimToady: if your mechanism for returning the values of a List is a Parcel, and a Parcel is actually a List, how do you ever get the value out?
20:32 colomon it would be .reify all the way out to infinity.
20:33 TimToady you explicitly return some other composite type; this suppresses Parcel warpping, as I said
20:33 TimToady I don't think that other composite type is necessarily List
20:34 colomon Hmmm... actually, it seems to me that having .reify return a Pair could be nice...
20:34 Wolfman2000 ...huh? I don't recall seeing .reify in the Sypnosis before. Wonder what that command is.
20:35 TimToady .reify has to return a new cursor (or cursors, in a backtracking setup like regexen), and the value probably rides along with the cursor
20:35 colomon Wolfman2000: we just started discussing it today.  it's definitely not in the Spec yet.
20:35 TimToady there may be a primitive for extracting that without parcelization
20:36 Wolfman2000 ah. new development
20:36 isBEKaml Wait, iterators are bidirectional traversing? I thought we go in one direction until they exhaust themselves out?
20:36 TimToady much like regex cursors magically end up with match objects
20:36 TimToady that is very close to the circularity saw that p6 builds into itself
20:37 colomon isBEKaml: they're not bidirectional.
20:37 colomon but they are repeatable.
20:37 colomon (I mean, under the new plan.)
20:37 TimToady there's a little cloud down there somewhere between cursors and results that is labelled: "Magic happens."
20:38 masak grrr... cloud technology.
20:38 TimToady yes, they're repeatable till you throw them away
20:38 isBEKaml right, got it.
20:38 isBEKaml masak: technology cloud? ;)
20:39 isBEKaml or clouded technology, perhaps? :P
20:39 masak I have my email in the cloud. I probably shouldn't. don't want magic to 'happen' to it. :/
20:40 TimToady and backtracking an iterator to match a different signature is precisely that; keeping the initial iterator into the list at the point we're trying to bind the set of signatures
20:40 TimToady that's the big cloud.  this is a little cloud.
20:40 masak does the fact that iterators are immutable imply that every time you ask an iterator to iterate, it just gives you another iterator?
20:41 TimToady correct
20:41 masak \o/
20:41 masak then I grok.
20:41 TimToady just like STD/Cursor does it
20:41 TimToady or at least pretends to do it when it's not cheating
20:41 masak cheating is OK, as long as you're never caught.
20:43 TimToady bbl &
20:43 isBEKaml what I don't grok is:" backtracking an iterator to match a different signature " What does this mean?
20:44 isBEKaml maybe I understand signatures specific to methods/subs. I may be sorely gnorw here..
20:44 pmichaud Actually, I see Parcel and List as different.
20:44 pmichaud Parcel is immutable, List isn't.
20:45 pmichaud (that might not work out to be the real case, but that's what it looks like so far)
20:45 masak makes sense.
20:45 masak I've never wanted to mute a Parcel.
20:45 masak why do Lists need to be mutable?
20:46 pmichaud we want to be able to shift elements off of list as they are consumed -- e.g., via map or grep
20:46 pmichaud so that we aren't keeping reified values around when they're no longer needed
20:46 pmichaud (i.e., so we can implement a real feed/streaming behavior)
20:47 pmichaud more ot the point, we don't want    (1..10000).map(...)   to have to keep the 10,000 integers around
20:47 pmichaud so it ends up looking more like
20:47 pmichaud (1..10000).list.map(...)
20:47 masak oh, fair enough.
20:47 pmichaud and the List is mutable as we remove ("munch") elements off the list as they're being mapped.
20:48 sorear does that mean that for @foo { .say } will destroy @foo?
20:48 pmichaud no.
20:48 pmichaud because that will end up being    for flat(@foo) { .say }
20:48 masak why not?
20:48 masak ah!
20:48 PerlJam those flattening clones we were talking about earlier
20:48 pmichaud i.e., the list that gets iterated isn't @foo itself.
20:48 sorear and flat() lazily clones the list?
20:49 pmichaud effectively, yes.
20:49 pmichaud it's not precisely that, but close enough for now.  Essentially, flat interpolates the list into its own list
20:49 pmichaud where interpolation means  "insert its reified and unreified portions"
20:50 pmichaud and since the iterators are immutable, it doesn't matter if they appear in multiple lists
20:51 pragma_ pmichaud: you look much sexier when you talk without the @ on your name.
20:52 * pmichaud doesn't see @'s anyway in his client.
20:52 masak uh, I think I was just referred to as 'a sooth dude' by some russian twitterer... http://twitter.com/Shiroginne/status/15927032950 :)
20:52 PerlJam masak: you are quite soothful.
20:53 masak er. s/sooth/smooth/ :)
20:53 masak I'm not sure "smooth" is a compliment in Russian, though.
20:53 colomon I like sooth better.
20:53 PerlJam yeah, I like sooth better too :)
20:53 masak and I'm pretty sure I didn't say "We are here...". but I should probably send them the ufo URL. :P
20:54 PerlJam masak: you think "smooth" in Russian is more like "car salesman smooth" than "cool guy smooth" ?
20:54 masak PerlJam: yeah, might well be.
20:56 PerlJam Well, if you sell a Perl 6 car you rack up good will in commission, I think.  Sounds like a win still to me :)
20:57 pmichaud "Yes, it's the new Rakudo Perl 6 car!  Some of the features aren't yet there yet, and it only goes up to 10kph, and it guzzles gasoline, and some of the seats are still missing, and the seatbelts don't work.  But isn't she a beauty?!?"
20:58 * masak gets visions of Ballmer o.O
20:58 supernovus joined #perl6
20:58 masak http://www.youtube.com/watch?v=tGvHNNOLnCk
20:59 masak pmichaud: promise me never to sink that low. :)
20:59 pmichaud masak: *you're* the one being called "smooth"  :-)
21:00 masak :)
21:00 pmichaud and, alas, by working on Perl 6 for as long as I have, I think I've given up any claim to there being a bottom to how low I can sink.  :-)
21:00 sorear you get a free pass because you're actually helping
21:02 * masak hugs pmichaud
21:02 masak no hugme today :)
21:02 moritz_ feather still not reachable?
21:02 hugme joined #perl6
21:03 masak hugme: hug hugme
21:03 * hugme hugs hugme
21:03 isBEKaml pugs is hosted on feather, right? i can svn up it...
21:04 wasy_ joined #perl6
21:04 moritz_ isBEKaml: yes, it's back
21:04 pmichaud I'm thinking very seriously of buying a small solid-state linux box that I can keep on at the house to hold my screen session, since feather has been so flaky.
21:04 pmichaud Either that or I'll just do it on my already existing server, although they aren't too keen about irc there.  :-)
21:05 pugssvn r31196 | masak++ | [S32-str/encode.t] refudgings
21:05 sorear your main computer is a laptop?
21:06 pmichaud desktop, but it's a bit heavy-duty to leave on 24/7
21:06 pmichaud I suppose I could do that.
21:06 pmichaud plus, the desktop does get rebooted from time to time.
21:06 isBEKaml moritz_: good. I never thought an svn repo could go down or did it?
21:07 dukeleto joined #perl6
21:07 Tene pmichaud: I know several people who rent little VMs primarily for purposes like that.
21:07 pmichaud I have a VPS already.... just haven't convinced myself to run screen+irssi on it.
21:07 moritz_ isBEKaml: it did
21:07 pmichaud I should probably do that.
21:08 dukeleto howdy
21:08 masak dukeleto: \o
21:08 dukeleto i was wondering if http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=75650 was going to get applied, or if it needs to be modified
21:09 dukeleto masak: good $localtime
21:10 dukeleto the smarts for running parrot_config can be removed if that is not wanted. Having a test for loading bytecode is the most important part
21:10 supernovus joined #perl6
21:11 moritz_ dukeleto: do you know which vesion of Test::Harness is required for supporting closures for the exec option?
21:12 jferrero joined #perl6
21:15 dukeleto moritz_: hmmm, i can try to find out
21:16 * moritz_ -> bed
21:18 dukeleto moritz_: 3.12    2008-06-22
21:18 dukeleto moritz_: TAP::Harness 3.12 added the feature on that date
21:20 SmokeMachine joined #perl6
21:23 foodoo joined #perl6
21:23 pmichaud A lot of systems are still running Test::Harness 2.64, so that could be a blocker to RT #75650.
21:25 pmichaud seems to me that one could write a test using run("...") though.
21:25 pmichaud (write a test in Perl 6 that uses run("...") )
21:26 pmichaud or even qx()
21:26 * PerlJam wonders how the latest drupal revelations will ultimately affect the various perl/parrot sites.
21:30 sorear revelations?
21:42 dukeleto pmichaud: ok, that is possible
21:42 tedv joined #perl6
21:47 christine joined #perl6
21:48 * masak finds -- and realizes he should probably read -- http://docs.parrot.org/parrot/devel/h​tml/docs/pdds/pdd28_strings.pod.html
22:00 pugssvn r31197 | sorear++ | [STD,viv] Revert to a verified working version (r31153)
22:00 sorear :(
22:11 REPLeffect joined #perl6
22:20 REPLeffect joined #perl6
22:31 REPLeffect joined #perl6
22:34 lue sorear: aww
22:35 lue $everybody: hi
22:36 masak hellue!
22:37 lue masak! Did you catch my latest blog post?
22:38 masak the one with the pretty colo[u]red errors? yes, I did!
22:38 masak nice work!
22:38 diakopter PerlJam: is this what you meant? http://www.theregister.co.uk/201​0/06/10/drupal_security_changes/
22:38 pragma_ diakopter: you just unsexied pmichaud :(
22:39 lue Then I went and added a bright red random prefix to the beginning of each red error. That's why I was trying to get PIR randomization.
22:40 szabgabx joined #perl6
22:42 REPLeffect joined #perl6
22:42 diakopter pragma_: sorry
22:43 pragma_ :(
22:44 pragma_ I'd rather be the sexy one.
22:44 masak I'm not sure I understand this sexiness algebra.
22:48 tylerni7 joined #perl6
22:50 * diakopter neither
22:51 lue That reminds me; one time I saw this Star Wars related equation that proved the more stormtroopers, the more likely evil loses.
22:51 lue [or something like that]
22:52 REPLeffect joined #perl6
22:52 sorear lue: http://tvtropes.org/pmwiki/pmwiki​.php/Main/ConservationOfNinjutsu
22:54 Chillance joined #perl6
22:54 masak every day on this channel, I learn something new. :)
22:57 lue The Star Wars equation was huge, factoring in things like how many Jedis and if certain characters were there [IIRC]
23:01 diakopter wow. an aspiring screenwriter might cringe (or rejoice) upon discovering that site
23:03 Tene or just lose several days of any productivity.
23:03 Tene I've learned the hard way to never click a tvtropes link.
23:03 diakopter .. or playwright, novelist, comedian, or any other storyteller
23:04 Tene http://abstrusegoose.com/275
23:04 lue I have only heard of the blackhole nature of TvTropes, I guess I was lucky until now.
23:05 lue how do I create a patch w/ git? I've done git add [files] and git commit. Now what?
23:05 Schwern joined #perl6
23:05 Tene git format-patch HEAD^
23:05 Tene or whatever other reference to a previous commit.
23:06 Tene That will generate a series of patches, one for each commit in the series
23:07 Tene (use 'git log' to identify the endpoint to start generating patches from, and use the commit id of the commit *before* that one.)
23:08 lue well, nopaste doesn't paste to perl6 anymore ō.o
23:08 lue [onto gist then]
23:08 Tene I didn't know nopaste had a bot on freenode...
23:10 * diakopter prepares to lose the next 10 days to webcomics
23:13 lue don't worry, they may show up in lost+found/ :)
23:14 lue http://gist.github.com/435176 is the colored errors patch. Feel free to look at it.
23:15 Tene lue: why don't you just fork rakudo on github and push commits to your fork.
23:15 Tene Then people can use actual git tools to get your commits and apply them to the rakudo repo
23:16 lue Eh, it's how I've done it before. When I commit more often [i.e. 5 days from now], I'll do that.
23:17 Tene 'k
23:18 masak I'd just like to take this moment to point out that I hope colored error messages, nice as they sometimes are, won't become default in Rakudo.
23:19 Tene why?
23:20 sorear TimToady: How is CORE.pad generated?
23:20 patspam joined #perl6
23:21 masak because I like my tools to work over interfaces that haven't heard of ANSI.
23:21 lue Yeah
23:21 masak that's the reason colors aren't on by default in git, by the way.
23:22 lue Unless for some reason I need to get rid of it [or I don't feel like it anymore], I'll keep it :)
23:22 masak something like "the benefits to those who benefit are still smaller than the outrage of those who suffer"
23:22 sorear also, I'm opposed to hard-coding escape sequences when use Curses:from<parrot> is a possibility
23:22 lue (my Unicode motto comes to mind)
23:24 sorear buubot: seen pmurias
23:24 buubot sorear: I last saw pmurias saying "(011) . (11)" at Thu Mar 25 12:51:53 2010 Z.
23:24 lue You can look at that as a preface to my summer of coding if you like :)
23:24 lue afk
23:25 REPLeffect joined #perl6
23:27 masak 'night, #perl6.
23:33 sorear aha
23:33 sorear I have figured out what CORE.pad does
23:33 sorear and I can delete it
23:49 ash__ joined #perl6
23:51 pnate joined #perl6
23:52 REPLeffect joined #perl6

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

Perl 6 | Reference Documentation | Rakudo