Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-08-24

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:03 tadzik okay, sleepytime for me. G'night guys
00:04 jasonmay thanks for hacking!
00:04 soh_cah_toa see ya
00:05 lue goodnight tadzik o/
00:15 whiteknight joined #perl6
00:25 flussence nom: our Int $blah = 5; # is the error message right?
00:25 p6eval nom: OUTPUT«===SORRY!===␤Cannot put a type constraint on an 'our'-scoped variable at line 1, near " = 5; # is"␤»
00:28 wolfman2000 joined #perl6
00:40 dayangkun joined #perl6
00:41 fbass joined #perl6
00:41 fbass anyone know how to unban my nick from #perl?
00:41 colomon joined #perl6
00:41 fbass what do I have to /msg?
00:44 soh_cah_toa fbass: well, there's the 'unban' command but i think it's reserved only for operators
00:44 uasi joined #perl6
00:45 Holy_Cow joined #perl6
00:46 Holy_Cow left #perl6
00:48 fbass if I wait long enough will my nick automatically be unbanned? I was trying out a new irc client which autojoined to many times.
00:51 soh_cah_toa probably not. i would try contacting one of the operators over there
00:57 fbass ok
00:59 REPLeffect joined #perl6
01:01 frhodes joined #perl6
01:08 frhodes joined #perl6
01:16 REPLeffect joined #perl6
01:20 frhodes joined #perl6
01:24 Tene oh, from #perl, not #perl6
01:25 uasi joined #perl6
01:26 REPLeffect joined #perl6
01:28 uasi_ joined #perl6
01:31 sjohnson Tene: ... that's better!
01:31 sjohnson just kiddin
01:33 uasi joined #perl6
01:40 woosley joined #perl6
01:42 Holy_Cow joined #perl6
02:00 aber joined #perl6
02:13 thou joined #perl6
02:14 frhodes joined #perl6
02:15 frhodes joined #perl6
02:27 REPLeffect joined #perl6
02:44 jaldhar joined #perl6
02:54 jaldhar joined #perl6
02:59 jdhore joined #perl6
03:21 uvtc joined #perl6
03:23 benabik joined #perl6
03:25 soh_cah_toa placing single quotes around a character in a character class is like escaping it, right? it matches the literal charcter so they're not interpreted as metacharacters
03:26 frhodes joined #perl6
03:27 soh_cah_toa b/c it doesn't work with '-'. i still get the message that '..' should be used instead. however, escaping it w/ a backslash does the trick. why would the later work but not the former?
03:28 Su-Shee joined #perl6
03:32 sorear good * #perl6
03:32 sorear soh_cah_toa: I don't think you can use single quotes like that
03:32 sorear perl6: say grep /<[ 'a' ]>/, "'a".comb
03:32 p6eval niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: cannot bind $/ in KERNEL grep␤  at /home/p6eval/niecza/lib/CORE.setting line 1530 (CORE Regex.ACCEPTS @ 3) ␤  at  line 0 (KERNEL grep @ 2) ␤  at /tmp/LIcXooAfyy line 1 (MAIN mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line …
03:32 p6eval ..pugs: OUTPUT«*** Cannot cast from VList [VMatch (MkMatch {matchOk = True, matchFrom = 0, matchTo = 2, matchStr = "'a", matchSubPos = [], matchSubNamed = fromList []})] to Pugs.AST.Types.VCode (VCode)␤    at /tmp/_SY5C8D5qY line 1, column 5 - line 2, column 1␤»
03:32 p6eval ..rakudo a55346: OUTPUT«'a␤»
03:33 benabik I don't think it's suppose to work in character classes.
03:33 soh_cah_toa what quotes?
03:33 soh_cah_toa i'm pretty sure i read that somewhere
03:33 benabik ysH
03:35 sorear seems Rakudo agrees with me... odd error from niecza though
03:35 soh_cah_toa hm, maybe i didn't. so single quotes does mean a literal character EXCEPT in character classes?
03:36 soh_cah_toa guess i just assumed. oh well, not a problem
03:44 frhodes joined #perl6
03:48 [particle] joined #perl6
03:58 birdwindupbird joined #perl6
04:43 soh_cah_toa perl6: my @foo = "\x30".."\x3a"; .say for @foo
04:44 p6eval rakudo a55346, niecza v8-55-g0db7bb8: OUTPUT«(timeout)»
04:44 p6eval ..pugs: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
04:44 soh_cah_toa i knew it. it's not just mine
04:44 soh_cah_toa it gets stuck and runs forever
04:44 cexsum joined #perl6
04:45 soh_cah_toa it supposed to print 0 through 9 and a colon
04:46 [particle] joined #perl6
04:48 TimToady perl6: my @foo = "\x30" ... "\x3a"; .say for @foo
04:48 p6eval pugs: OUTPUT«*** ␤    Unexpected "\"\\"␤    expecting operator or ","␤    at /tmp/hq743KMyXU line 1, column 22␤»
04:48 p6eval ..niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: Unable to resolve method ord in class Str␤  at /home/p6eval/niecza/lib/CORE.setting line 1758 (CORE C788_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1793 (CORE C821_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line…
04:48 p6eval ..rakudo a55346: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤:␤»
04:48 soh_cah_toa perl6: for @foo = '\x30'..'\x3a'; say "$_" for @foo
04:48 p6eval rakudo a55346: OUTPUT«===SORRY!===␤Missing block at line 22, near "; say \"$_\""␤»
04:48 p6eval ..niecza v8-55-g0db7bb8: OUTPUT«[31m===[0mSORRY![31m===[0m��Variable @foo is not predeclared at /tmp/sc5raUrzC_ line 1:�------> [32mfor [33m�[31m@foo = '\x30'..'\x3a'; say "$_" for @foo[0m��Missing block at /tmp/sc5raUrzC_ line 1:�------> [32mfor @foo = '\x30'..'\x3a'[33m�[31m;…
04:48 p6eval ..pugs: OUTPUT«*** ␤    Unexpected " ="␤    expecting "::"␤    Variable "@foo" requires predeclaration or explicit package name␤    at /tmp/ZhI16PxZdK line 1, column 9␤»
04:49 TimToady note that ... works better
04:49 soh_cah_toa whoops
04:49 soh_cah_toa perl6: my @foo = '\x30'..'\x3a'; say "$_" for @foo
04:49 cexsum joined #perl6
04:49 p6eval pugs, rakudo a55346, niecza v8-55-g0db7bb8: OUTPUT«\x30␤\x31␤\x32␤\x33␤\x34␤\x35␤\x36␤\x37␤\x38␤\x39␤»
04:49 uvtc nom: say 1 .. 10
04:49 p6eval nom: OUTPUT«1..10␤»
04:49 uvtc rakudo: say 1 .. 10
04:49 p6eval rakudo a55346: OUTPUT«12345678910␤»
04:50 agentzh joined #perl6
04:50 soh_cah_toa what's the difference between '..' and '...'?
04:50 TimToady well, .. should promote to ... in this case, but doesn't apparently
04:50 TimToady ... is specced to treat single characters specially
04:50 TimToady so that 9 doesn't wrap to 00
04:51 TimToady which is why you're running forever
04:51 uvtc soh_cah_toa, sorry, didn't mean to distract you. After looking at what you were doing, I was going to ask if 10 .. 1 should work.
04:51 TimToady no, but 10...1 works
04:51 uvtc nom: say 10 ... 1
04:51 p6eval nom: OUTPUT«10 9 8 7 6 5 4 3 2 1␤»
04:51 uvtc neat!
04:51 soh_cah_toa interesting. what synopsis is it covered in?
04:51 TimToady .. is just interval arithmetic, which means 10..1 is a null range
04:52 TimToady ... is dwimmier, and intended to produce sequences
04:52 TimToady .. just happens to promote to ... in list contxt
04:53 TimToady S03:1777
04:54 soh_cah_toa yeah, there it is
04:54 uvtc TimToady: thanks for the link
04:55 TimToady also S03:3376
04:56 soh_cah_toa i'd report it to rt myself but i don't have an account
05:00 soh_cah_toa before i head out...i was wondering, is anybody allowed to make contributions to perl6/book? i noticed that testing was on the chapters todo list so i started writing a chapter on it
05:00 lue how is dies_ok supposed to be used? For some reason    dies_ok ordinal($googol), "this is why"    didn't work ("no applicable candidates found...")
05:04 uvtc soh_cah_toa, I was given access to the perl6 repos a while ago, but IIRC it did not allow me to push to perl6/book.
05:05 soh_cah_toa hm, well i'll ask around again tomorrow
05:06 uvtc soh_cah_toa, maybe ping moritz about
05:06 uvtc missed soh_cah_toa by *that* much. :)
05:13 dalek specs: 187e15b | larry++ | S04-control.pod:
05:13 dalek specs: document that forward goto requires quotes
05:13 dalek specs: review: https://github.com/perl6/specs/commit/187e15bcd1
05:15 Alias joined #perl6
05:22 daniel-s joined #perl6
05:28 tokuhirom joined #perl6
05:29 moritz good morning
05:30 uvtc hi moritz
05:36 uvtc The Rakudo how-to-help page says to email rakudobug@perl.org to submit a bug to the bug tracker. But I assume one should search there first to see if the bug report already exists.
05:37 uvtc How can I search only the existing Rakudo bugs?
05:37 uvtc (so I don't get results at rt.perl.org for P5 issues)
05:42 sorear uvtc: use the "perl6" queue
05:42 satyavvd joined #perl6
05:45 uvtc sorear: Is there a way to only search among bugs listed in the perl6 queue?
05:47 uvtc Sorry, nm. Seems like including "perl6" is the search field works fine.
05:51 wtw joined #perl6
05:55 tokuhirom joined #perl6
06:14 masak joined #perl6
06:14 masak good mornz, #perl6
06:17 mberends g'morn masak
06:17 lue hello masak o/
06:19 lue .oO(I've made a *lot* of commits on Numbers::Ordinal tonight)
06:19 masak lue: url?
06:21 koban joined #perl6
06:21 lue https://github.com/lue/Numbers--Ordinal/
06:21 koban left #perl6
06:21 * masak looks
06:21 lue [well, relatively a lot] and I still want to work on it, but I should start getting ready to go to sleep soon.
06:23 masak nice tests.
06:24 masak the last one looks wrong, though.
06:25 lue I was wondering why dies_ok didn't work (I asked earlier)
06:27 moritz lue: you need to pass a block to dies_ok
06:27 lue [ideally (in terms of full test coverage), the tests would test every number, but that's not feasible. :)]
06:27 moritz lue: grepping roast would have given you > 400 examples :-)
06:30 lue Well now that you mention it, searching the biggest use of the Test module might have helped me out a little (figures I didn't consider it. maybe it's 'cos it's late in the day)
06:35 sorear hello masak
06:38 masak hi sorear
06:38 masak lue: I recommend learning why writing dies_ok without a block around the function call won't/can't work. it's *very* useful knowledge.
06:38 masak lue: I'll be happy to help you along, if you ask pointed questions. :)
06:40 lue My guess is that it needs to control execution of the code, and w/o a block the code is executed before it's passed to dies_ok. The block prevents execution until dies_ok wants it to. Correct?
06:40 sorear masak: really?
06:41 sorear masak: there is (IMO insane) language in the spec that suggests that Perl 6.0 will allow an unblocked dies_ok
06:41 moritz sorear: if it's defined as a macro, sure
06:41 sorear moritz: Capture is specced to be lazy
06:42 moritz sorear: but laziness isn't guarantueed
06:42 sorear captures are read-only but not immutable because accessing positional slots may reify them
06:42 lue [running Numbers::Ordinal on 1 googol returns hilarious results.] goodnight all o/
06:44 moritz phenny: ask soh_cah_toa what's your github ID?
06:44 phenny moritz: I'll pass that on when soh_cah_toa is around.
06:46 uvtc What does '...' mean inside a method definition?
06:46 masak sorear: if there is such language in the spec, it is indeed insane, and we should remove it.
06:47 masak lue: yes, correct.
06:47 masak lue: next up: learning to harness the awesomeness of closures :)
06:48 masak lue: did you know that when a block can be "exported" from e.g. a subroutine and executed somewhere else, it still remembers the variables that were in the subroutine?
06:48 TimToady perl6: ...
06:48 p6eval rakudo a55346:  ( no output )
06:48 p6eval ..niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: >>>Stub code executed␤  at /tmp/7875mbUVfd line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2047 (CORE C953_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2048 (CORE module-CORE @ 57) ␤  at /home/p6e…
06:48 p6eval ..pugs: OUTPUT«*** Cannot use this control structure outside a 'routine' structure␤    at /tmp/3ftouTkZjR line 1, column 1 - line 2, column 1␤»
06:48 SHODAN joined #perl6
06:49 uvtc I'd guessed that it indicates a method that subclasses must implement, but that doesn't seem to be the case...
06:49 TimToady it fails if you execute the ...
06:49 TimToady so it indicates a stub
06:50 masak some people on the Internet might not have seen this sign yet: http://richardwiseman.files.wordpress.com/2011/08/scaled-2.jpg
06:50 TimToady perl6: sub foo {...}; foo // say $!
06:50 p6eval pugs: OUTPUT«*** ␤    Unexpected "say"␤    expecting operator, ":" or ","␤    at /tmp/RElZG5mWR8 line 1, column 23␤»
06:50 p6eval ..rakudo a55346: OUTPUT«===SORRY!===␤Null regex not allowed at line 22, near " say $!"␤»
06:50 p6eval ..niecza v8-55-g0db7bb8: OUTPUT«[31m===[0mSORRY![31m===[0m��Null regex not allowed at /tmp/YI3VaJsV4J line 1:�------> [32msub foo {...}; foo //[33m�[31m say $![0m��Action method quote:sym<//> not yet implemented at /tmp/YI3VaJsV4J line 1:�------> [32msub foo {...}; foo //[33m�[…
06:50 TimToady perl6: sub foo {...}; foo() // say $!
06:50 p6eval niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: >>>Stub code executed␤  at /tmp/NuYPyrlq6L line 1 (MAIN foo @ 3) ␤  at /tmp/NuYPyrlq6L line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2047 (CORE C953_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line …
06:50 p6eval ..pugs:  ( no output )
06:50 p6eval ..rakudo a55346: OUTPUT«Any()␤»
06:51 uvtc TimToady: testing ...
06:51 TimToady well, niecza does it
06:51 TimToady perl6: sub foo {...}; try { foo() } // say $!
06:51 p6eval niecza v8-55-g0db7bb8: OUTPUT«>>>Stub code executed␤»
06:51 p6eval ..pugs, rakudo a55346:  ( no output )
06:53 uvtc nom: class Paint { method foo {...} } class Watercolor is Paint {} my $w = Watercolor.new(); $w.foo;
06:53 p6eval nom: OUTPUT«===SORRY!===␤Confused at line 1, near "class Pain"␤»
06:53 TimToady S03:2342 is the ... doc
06:53 TimToady you can't leave out semicolons when the next statemen is on the same line
06:54 TimToady that is, } assumes semicolon only if it is the final thing on a line
06:54 uvtc nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); $w.foo;
06:54 p6eval nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in method REIFY at src/gen/CORE.setting:4201␤  in method reify at src/gen/CORE.setting:3502␤  in method reify at src/gen/CORE.setting:3502␤  in method gimme at src/gen/CORE.setting:3839␤  in method eager at src/gen/COR…
06:55 uvtc nom: class Paint { method foo {...}; }; class Watercolor is Paint {}; my $w = Watercolor.new(); $w.foo;
06:55 p6eval nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in method REIFY at src/gen/CORE.setting:4201␤  in method reify at src/gen/CORE.setting:3502␤  in method reify at src/gen/CORE.setting:3502␤  in method gimme at src/gen/CORE.setting:3839␤  in method eager at src/gen/COR…
06:55 TimToady that looks like some other bug
06:55 moritz indeed
06:56 TimToady nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new();
06:56 p6eval nom:  ( no output )
06:56 TimToady nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.WHAT
06:56 p6eval nom: OUTPUT«Watercolor()␤»
06:57 TimToady nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.perl
06:57 p6eval nom: OUTPUT«Watercolor<21621624>␤»
06:57 TimToady nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.defined
06:57 p6eval nom: OUTPUT«Bool::True␤»
06:57 TimToady nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.can("foo")
06:57 p6eval nom: OUTPUT«foo␤»
06:57 uvtc TimToady: thanks very much. :)
06:58 TimToady nom: class Paint { method foo {fail "oops"} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.foo
06:58 p6eval nom: OUTPUT«oops␤  in method foo at /tmp/JDxzHKZkYQ:1␤  in mu <anon> at /tmp/JDxzHKZkYQ:1␤  in mu <anon> at /tmp/JDxzHKZkYQ:1␤␤»
06:58 TimToady nom: class Paint { method foo {... "oops"} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.foo
06:58 p6eval nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in method REIFY at src/gen/CORE.setting:4201␤  in method reify at src/gen/CORE.setting:3502␤  in method reify at src/gen/CORE.setting:3502␤  in method gimme at src/gen/CORE.setting:3839␤  in method eager at src/gen/COR…
06:58 TimToady rakudo: class Paint { method foo {... "oops"} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.foo
06:58 p6eval rakudo a55346:  ( no output )
06:58 moritz nom: sub f { ... }; f
06:58 p6eval nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in method REIFY at src/gen/CORE.setting:4201␤  in method reify at src/gen/CORE.setting:3502␤  in method reify at src/gen/CORE.setting:3502␤  in method gimme at src/gen/CORE.setting:3839␤  in method eager at src/gen/COR…
06:58 moritz nom: ...
06:58 p6eval nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in method REIFY at src/gen/CORE.setting:4201␤  in method reify at src/gen/CORE.setting:3502␤  in method reify at src/gen/CORE.setting:3502␤  in method gimme at src/gen/CORE.setting:3839␤  in method eager at src/gen/COR…
06:58 TimToady looks like ... is the culpret
06:59 TimToady *prit
06:59 moritz rakudo: sub f { ... }; my $x = f(); $x.defined; say $x
06:59 p6eval rakudo a55346: OUTPUT«Stub code executed␤»
07:00 moritz nom: fail('Stub code executed')
07:00 p6eval nom:  ( no output )
07:00 moritz nom: my $x = (sub { fail('Stub code executed') }).(); $x.defined; say $x
07:00 p6eval nom: OUTPUT«␤»
07:02 * moritz thinks he sees the problem in Actions.pm
07:02 moritz make PAST::Op.new( :pasttype('call'), :name('&warn'), 'Stub code execute
07:02 moritz d', :node($/) );
07:02 moritz erm, s/warn/fail/
07:03 moritz that tries to pass a parrot String to warn/fail
07:08 * moritz compiles a fix
07:15 moritz nom: !!!
07:15 p6eval nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in method REIFY at src/gen/CORE.setting:4201␤  in method reify at src/gen/CORE.setting:3502␤  in method reify at src/gen/CORE.setting:3502␤  in method gimme at src/gen/CORE.setting:3839␤  in method eager at src/gen/COR…
07:22 wk joined #perl6
07:27 jevin joined #perl6
07:34 Trashlord joined #perl6
07:36 mberends joined #perl6
07:40 dalek rakudo/nom: 90e66fb | moritz++ | src/Perl6/Actions.pm:
07:40 dalek rakudo/nom: make sure that ..., ??? and !!! pass Perl 6 strings to &fail, &warn, &die
07:40 dalek rakudo/nom:
07:40 dalek rakudo/nom: uvtc++ for discovering it
07:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90e66fbe02
07:42 im2ee joined #perl6
07:46 drbean joined #perl6
07:47 wk joined #perl6
07:58 donri joined #perl6
08:02 kfo_ joined #perl6
08:12 envi joined #perl6
08:17 donri joined #perl6
08:26 im2ee joined #perl6
08:28 Trashlord joined #perl6
08:29 mishin joined #perl6
08:30 mj41 joined #perl6
08:34 cosimo joined #perl6
08:34 tadzik do we even have warn()?
08:34 tadzik nom: warn "foo"
08:34 p6eval nom: OUTPUT«Could not find sub &warn␤  in mu <anon> at /tmp/gFXYiPTKT_:1␤  in mu <anon> at /tmp/gFXYiPTKT_:1␤␤»
08:35 moritz tadzik: no, but it was kinda pointless not to fix the &warn call when I fixed all the others :-)
08:36 tadzik :)
08:42 wamba joined #perl6
08:45 orafu joined #perl6
08:47 tadzik oh. Everyone, please contribute to https://github.com/perl6/ecosystem/wiki/State-of-modules-on-nom
08:50 dakkar joined #perl6
08:50 mberends tadzik: ok. has fixing a module for nom ever broken it for master?
08:52 tadzik mberends: ...never tried :P
08:52 tadzik tbh, I don't even have master installed now
08:53 mberends :)
08:57 dalek rakudo/nom: 9323ff6 | moritz++ | NOMMAP.markdown:
08:57 dalek rakudo/nom: add lexical regex lookup to nommap, volunteer pmichaud++ for it :-)
08:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9323ff6750
08:59 moritz nom: say 1 == Any
08:59 p6eval nom: OUTPUT«Use of uninitialized value in numeric context␤Bool::False␤»
08:59 moritz nom: say 0 == Any
08:59 p6eval nom: OUTPUT«Use of uninitialized value in numeric context␤Bool::True␤»
09:03 avar joined #perl6
09:05 moritz tadzik: I've updated that wiki a bit
09:10 tadzik great
09:11 tadzik moritz: CGI::Application is now there twice
09:12 tadzik I was trying to keep the list alphabetically sorted
09:12 moritz sorry
09:12 * moritz fixes
09:14 tadzik no worries
09:15 wk joined #perl6
09:19 tadzik heh, seems that my first commit was not ordered too :)
09:19 tadzik This type cannot unbox to a native string -- File::Find
09:20 tadzik fun enough :)
09:21 * mux guesses one could stringify a File::Find object into a find(1) shell command :-)
09:21 wk joined #perl6
09:22 frettled_ masak++: Forgot to say this earlier, but I loved your YAPC blog entry :)
09:22 scorpil joined #perl6
09:22 moritz tadzik: does File::Find use pir:: stuff?
09:22 tadzik moritz: not at all
09:23 tadzik sorry for the paste
09:23 tadzik This type cannot unbox to a native string
09:23 tadzik in method e at src/gen/CORE.setting:4708
09:23 tadzik in method d at src/gen/CORE.setting:4704
09:23 tadzik in method ACCEPTS at src/gen/CORE.setting:4274
09:24 moritz so it's a file test
09:24 tadzik yes
09:24 tadzik funny, because I don't use :e
09:24 moritz in method d
09:24 moritz which calls .e
09:25 tadzik okay
09:25 moritz nom: say 'foo'.IO
09:25 p6eval nom: OUTPUT«IO<49276216>␤»
09:26 moritz in Cool.pm: method IO() { IO.new(:path(self)) }
09:26 moritz that's... dangerous
09:26 * moritz changes it to self.Stringy, spectests
09:27 moritz nom: 4.IO.e
09:27 p6eval nom: OUTPUT«This type cannot unbox to a native string␤  in method e at src/gen/CORE.setting:4708␤  in mu <anon> at /tmp/jUDg2as2yv:1␤  in mu <anon> at /tmp/jUDg2as2yv:1␤␤»
09:27 moritz nom: 4.IO.d
09:27 p6eval nom: OUTPUT«This type cannot unbox to a native string␤  in method e at src/gen/CORE.setting:4708␤  in method d at src/gen/CORE.setting:4704␤  in mu <anon> at /tmp/pTOkKMwzeS:1␤  in mu <anon> at /tmp/pTOkKMwzeS:1␤␤»
09:28 ab5tract joined #perl6
09:28 tadzik nom: say 'src'.IO ~~ :d
09:28 p6eval nom: OUTPUT«Bool::False␤»
09:28 tadzik nom: say dir
09:28 p6eval nom: OUTPUT«60␤.vim std_mine sprixel Perlito .ccache old_perl5 niecza mono-2.10.1.tar.bz2 .cache partcl-nqp log .pugs_history .bash_history nqp std_hilited 6model _sprixel01 p1 rakudo-star-2011.04.tar.gz .lesshst .aptitude .bashrc .cpanm nom-inst2 rakudo-star-2010.09 .ghc perl5 evalbot …
09:28 tadzik nom: cay '.ccache'.IO ~~ :d
09:28 p6eval nom: OUTPUT«Could not find sub &cay␤  in mu <anon> at /tmp/Qn9VUXrBOD:1␤  in mu <anon> at /tmp/Qn9VUXrBOD:1␤␤»
09:29 tadzik nom: say '.ccache'.IO ~~ :d
09:29 p6eval nom: OUTPUT«Bool::True␤»
09:29 tadzik wow, I still like my File::Find code
09:30 tadzik yes, it's definitely $elem.IO ~~ :d failing
09:30 moritz so what's $elem?
09:30 tadzik nom: dir[1].IO ~~ :d
09:30 moritz a Match maybe?
09:30 p6eval nom: OUTPUT«60␤»
09:30 tadzik wait, why did it print it
09:30 moritz and why does it print 60?
09:30 tadzik yeah, my question
09:30 tadzik why 60, and why printed?
09:31 moritz because I'm stupid, and left in debug output
09:31 moritz moritz--
09:31 tadzik oh wait, it's File::Find::Result()
09:31 tadzik but it's Cool, and has a .Str method
09:31 tadzik it worked in master
09:32 moritz it's a nom bug that Cool.IO doesn't work properly
09:32 moritz I have a fix here
09:32 moritz (File::Find::Result might need to provide a .Stringy method as well)
09:32 tadzik which one is more correct?
09:33 tadzik .Str dispatches to .Stringy?
09:33 moritz nom: class A is Cool { method Str() { 'Foo' } }; say ~A.new
09:33 p6eval nom: OUTPUT«Foo␤»
09:33 moritz nom: class A is Cool { method Stringy() { 'Foo' } }; say ~A.new
09:33 p6eval nom: OUTPUT«Foo␤»
09:33 tadzik maybe F::F::R should just do a Stringy role, instead of being a full blown Cool
09:34 * moritz thinks it makes sense as Cool
09:34 tadzik nom: class A does Stringy { method Stringy { "stringi" } }; my $a = A.new; say "foo$abar"
09:34 p6eval nom: OUTPUT«===SORRY!===␤Symbol '$abar' not predeclared in <anonymous> (/tmp/z2OpYHWThT:1)␤»
09:34 tadzik nom: class A does Stringy { method Stringy { "stringi" } }; my $a = A.new; say "foo$a"
09:34 p6eval nom: OUTPUT«foostringi␤»
09:34 tadzik looks good enough for me
09:34 tadzik F::F::R is not really cool. It's just usable as a String
09:34 tadzik or, someone may want to use it as a string
09:35 tadzik so maybe Stringy is more appropriate here
09:35 tadzik rakudo: class A does Stringy { method Stringy { "stringi" } }; my $a = A.new; say "foo$a"
09:35 p6eval rakudo a55346: OUTPUT«fooA()<0x5f46390>␤»
09:35 moritz someone might want to .match or .subst on the name
09:35 moritz that's a Cool operation right now, not a Stringy
09:35 tadzik oh, ok
09:36 tadzik but method should be Stringy, not Str?
09:36 moritz I think so
09:36 dalek rakudo/nom: da40716 | moritz++ | src/core/Cool.pm:
09:36 dalek rakudo/nom: fix Cool.IO for non-Str
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/da40716e9c
09:36 dalek rakudo/nom: f638895 | moritz++ | src/core/IO.pm:
09:36 dalek rakudo/nom: remove debug output, tadzik++, moritz--
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f6388955d9
09:36 tadzik Cool itself doesn't have either Str or Stringy method, or maybe in the bootstrap
09:38 moritz nom: Cool.^can('Str')
09:38 p6eval nom:  ( no output )
09:38 moritz nom: say Cool.^can('Str')
09:38 p6eval nom: OUTPUT«Str␤»
09:38 moritz I think that one is in Mu
09:38 tadzik okay
09:38 moritz nom: say Cool.^can('Stringy')
09:38 p6eval nom: OUTPUT«Stringy␤»
09:38 tadzik method Stringy() { self.Str }
09:38 tadzik Str it is, then
09:39 tadzik nom: 'revision?'
09:39 p6eval nom:  ( no output )
09:39 tadzik why doesn't it print revision? Sad panda
09:39 tadzik rakudo: 'revision?'
09:39 p6eval rakudo a55346:  ( no output )
09:39 daxim joined #perl6
09:39 cotto joined #perl6
09:41 moritz evalbot rebuild nom
09:41 p6eval OK (started asynchronously)
09:42 [particle]1 joined #perl6
09:42 tadzik nom: sub foo ($a as Str) {}
09:42 p6eval nom:  ( no output )
09:42 tadzik oh, works?
09:42 moritz a no-op, last I looked
09:42 tadzik nom: sub foo ($a as Str) { say $a.WHAT }; foo(5)
09:42 p6eval nom: OUTPUT«Str()␤»
09:42 tadzik \o/
09:42 moritz oh, works \o/ :-)
09:43 tadzik I'm bringing back chdir() and mkdir()
09:44 tadzik I wonder if I could use IoC in panda
09:44 tadzik well, I could, but how cool would that be. The bad part is that it's pretty slow
09:44 tadzik or maybe it's just nom
09:44 dalek evalbot: a8a76b8 | moritz++ | evalbot.pl:
09:44 dalek evalbot: report nom revision
09:44 dalek evalbot: review: https://github.com/perl6/evalbot/commit/a8a76b8162
09:44 tadzik moritz++
09:46 tadzik nom: say dir
09:47 p6eval nom: OUTPUT«60␤.vim std_mine sprixel Perlito .ccache old_perl5 niecza mono-2.10.1.tar.bz2 .cache partcl-nqp log .pugs_history .bash_history nqp std_hilited 6model _sprixel01 p1 rakudo-star-2011.04.tar.gz .lesshst .aptitude .bashrc .cpanm nom-inst2 rakudo-star-2010.09 .ghc perl5 evalbot …
09:47 tadzik nom: ".vim" ~~ :d
09:47 p6eval nom: OUTPUT«Method 'd' not found for invocant of class 'Str'␤  in method ACCEPTS at src/gen/CORE.setting:4274␤  in mu <anon> at /tmp/E9YcNpn6Sd:1␤  in mu <anon> at /tmp/E9YcNpn6Sd:1␤␤»
09:47 moritz evalbot control restart
09:47 tadzik aw, snap :)
09:47 wk joined #perl6
09:51 p6eval joined #perl6
09:52 tadzik rakudo: ".vim" ~~ :d
09:52 p6eval rakudo a55346: OUTPUT«Method 'd' not found for invocant of class 'Str'␤  in 'Enum::ACCEPTS' at line 5598:src/gen/core.pm␤  in main program body at line 1:/tmp/xnKtVDuTy7␤»
09:52 tadzik seems that ./S32-io/chdir.t is bogus
09:52 moritz the network connection of the p6eval server is *really* slow when it comes to opening new connections
09:52 moritz nom: say '.vim'.IO ~~ :d
09:52 tadzik my $subdir = 't'; if $subdir !~~ :d { }
09:52 p6eval nom 90e66f: OUTPUT«Bool::True␤»
09:53 * tadzik fixes it
09:53 moritz there you go, with revision in the output
09:53 tadzik \o/
09:53 tadzik moritz++
09:54 mberends moritz++ :-)
09:56 tadzik A file test, where X is one of the letters listed below. This unary operator takes one argument, either a filename or a filehandle, and tests the associated file to see if something is true about it.
09:56 tadzik Str ~~ :d is allowed then
09:57 masak huh.
09:58 masak where's that from?
09:58 moritz tadzik: that sounds fossilish
09:58 masak agreed.
09:59 tadzik http://perlcabal.org/syn/S32/IO.html#Other_things
09:59 birdwindupbird joined #perl6
09:59 tadzik yay, File::Tools now fully pass their tests
09:59 dalek rakudo/nom: 6e4aa6c | tadzik++ | src/core/IO.pm:
09:59 dalek rakudo/nom: [IO] Add &chdir and &mkdir
09:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6e4aa6ce05
10:01 scorpil is there any useful scripts on perl6 which i can learn from?
10:02 tadzik scorpil: see modules.perl6.org for working examples
10:02 tadzik but first of all, perl6.org/documentation
10:04 moritz rosettacode has lots of perl 6 scripts too
10:04 moritz (but it's linked there, iirc)
10:04 scorpil thanks
10:06 tadzik nom: my $a = eval " sub { [] } "; say $a.perl # correct?
10:06 p6eval nom 90e66f: OUTPUT«Any␤»
10:06 tadzik rakudo: my $a = eval " sub { [] } "; say $a.perl # correct?
10:06 p6eval rakudo a55346: OUTPUT«undef␤»
10:06 tadzik oh, wait
10:06 tadzik rakudo: my $a = eval " sub { 1 } "; say $a.perl # correct?
10:06 p6eval rakudo a55346: OUTPUT«undef␤»
10:06 tadzik hrm, nevermind
10:07 moritz not correct
10:07 moritz undef is gone.
10:07 tadzik no, it's not what I'm looking for
10:07 tadzik nom: my $routine = eval "sub \{ 1 \}";
10:07 p6eval nom 90e66f: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in mu <anon> at /tmp/3wRlqDlNKE:1␤  in mu <anon> at /tmp/3wRlqDlNKE:1␤␤»
10:08 tadzik nom: say pir::typeof(eval "sub \{ 1 \}")
10:08 p6eval nom 90e66f: OUTPUT«Null PMC access in name()␤  in mu <anon> at /tmp/oJ1srPemuQ:1␤  in mu <anon> at /tmp/oJ1srPemuQ:1␤␤»
10:08 tadzik crap
10:09 moritz nom: pir::say pir::typeof(eval "sub \{ 1 \}")
10:09 p6eval nom 90e66f: OUTPUT«Null PMC access in name()␤  in mu <anon> at /tmp/Hq5DGXJuXr:1␤  in mu <anon> at /tmp/Hq5DGXJuXr:1␤␤»
10:09 moritz nom: say eval('sub { 1 }').WHAT
10:09 p6eval nom 90e66f: OUTPUT«Can only use get_what on a SixModelObject␤  in mu <anon> at /tmp/E8bfORx6ge:1␤  in mu <anon> at /tmp/E8bfORx6ge:1␤␤»
10:10 tadzik survey: eval("sub \{ $code \}") or sub { eval $code } ?
10:10 tadzik they're equivalent, aren't they?
10:11 wk joined #perl6
10:11 moritz well, not if $code contains $^x or so
10:12 tadzik I doubt it has
10:12 tadzik see https://github.com/tadzik/benchmark/blob/master/lib/Benchmark.pm6#L13
10:12 tadzik the latter will make it work on nom
10:12 tadzik and also looks more saneish to me
10:13 tadzik are there any circumstances under which sub { eval() } will break here?
10:14 wamba joined #perl6
10:18 tadzik the sub is even not needed
10:23 tadzik PerlJam: sent you a pull request for Benchmark
10:25 bbkr_ rakudo: class A { method ^a ( ::T $a ) { $a.a } }; A.a; # metabomb, hide! :)
10:25 p6eval rakudo a55346: OUTPUT«maximum recursion depth exceeded␤  in 'A::a' at line 22:/tmp/XwLBwOFFu_␤  in 'A::a' at line 22:/tmp/XwLBwOFFu_␤  in 'A::a' at line 22:/tmp/XwLBwOFFu_␤  in 'A::a' at line 22:/tmp/XwLBwOFFu_␤  in 'A::a' at line 22:/tmp/XwLBwOFFu_␤  in 'A::a' at line 22:/tmp/XwLBwOFFu…
10:26 moritz rakudo: class A { method ^a ($a) { $a.a } }; A.a
10:26 p6eval rakudo a55346: OUTPUT«maximum recursion depth exceeded␤  in 'A::a' at line 22:/tmp/PHl8enwptq␤  in 'A::a' at line 22:/tmp/PHl8enwptq␤  in 'A::a' at line 22:/tmp/PHl8enwptq␤  in 'A::a' at line 22:/tmp/PHl8enwptq␤  in 'A::a' at line 22:/tmp/PHl8enwptq␤  in 'A::a' at line 22:/tmp/PHl8enwpt…
10:27 bbkr_ works as expected
10:28 bbkr_ nom: class A { method ^a ( ::T $a ) { $a.a } }; A.a;
10:28 p6eval nom 90e66f: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in method a at /tmp/1ZFpGANydY:1␤  in mu <anon> at /tmp/1ZFpGANydY:1␤  in mu <anon> at /tmp/1ZFpGANydY:1␤␤»
10:28 bbkr_ hmm
10:34 mberends bbkr_: I hope you don't mind that today my load on bbkr.org will be an almost continuous series of nom spectest processes (one CPU only). I'm optimizing benchmarking in tools/test_summary.pl there and on my own Debian system.
10:36 bbkr_ mberends: feel free to heat CPUs as much as you like :)
10:36 mberends heh :)
10:40 bbkr_ anyone else needs free OS X shell for testing/developing P6 or p6 modules?
10:42 mkramer joined #perl6
10:43 Trashlord joined #perl6
10:45 javuchi1 joined #perl6
10:45 javuchi1 hello
10:45 javuchi1 is perl6 ever going to be finished
10:45 javuchi1 ?
10:46 mberends javuchi1: definitely not. We're happy that Perl 5 is not "finished" either, but still getting better :)
10:47 javuchi1 nice tricky response
10:47 tadzik we have experience
10:47 mberends lots
10:47 javuchi1 may i ask them, is perl6 ever going to be ready for production?
10:47 tadzik yes
10:48 tadzik and when will that be, that depends on your production
10:48 javuchi1 when?
10:48 tadzik it already is production ready for some of us, and with the time, the number of satisfied consumers is growing
10:48 tadzik what is your "production ready"?
10:49 javuchi1 answering with a question? ;)
10:49 tadzik what makes you think so? ;)
10:50 mberends some parts of the Perl 6 spec are very stable, and supported in multiple implementations. Other parts almost, or not yet. The classic scoreboard is http://perl6.org/compilers/features
10:50 tadzik when you try to find the answer to my question, you'll notice how hard it is to declare something "production ready"
10:50 javuchi1 gcc is production ready
10:51 tadzik hmm
10:51 tadzik Rakudo is like gcc, it also takes ages to compile
10:51 tadzik it's also like gcc, it doesn't implement all of the spec
10:52 tadzik it's not like gcc for it generates shitty code, we're working on that
10:52 tadzik it's also slow itself, we're working on that to
10:52 tadzik javuchi1: I'd really like to answer you with one sentence, but it really _is_ trickier than that
10:53 javuchi1 definitively you have experience in answering ;)
10:53 mberends javuchi1: you can view the Perl 6's incompleteness from a "glass half full" or a "glass half empty" attitude. Most people here adopt the former.
10:53 javuchi1 did you consider entering politics?
10:54 tadzik I know, you probably think that I'm trying to trick you into thinking that Perl 6 is good enough for you. But believe me, I came here for the same answer, and I'm here for a year and I'm still not sure :P
10:54 javuchi1 haha
10:54 tadzik javuchi1: thought about that, but I'd prefer to be a good programmer one day ;)
10:54 javuchi1 that's a better question
10:55 tadzik so, back into topic: what do you miss from the current implementations?
10:55 Su-Shee try it and then use it or don't use it. in the time asking you could have already written some code ;)
10:55 tadzik as you can see, he have a bit "special" viewpoint on "ready", so if you help us with yours, we may be able to make it more easy to appreciate
10:56 javuchi1 i just don't like the idea of using a language which is not well stablished and not always in continuos development of its core
10:57 tadzik well, so you don't like Perl 5 either?
10:57 mberends javuchi1: unfortunately, Perl 6 is then probably not ready *for you*.
10:58 tadzik you'd like Spec to be stable?
10:58 masak javuchi1: more things might be stable than you think.
10:58 masak javuchi1: a lot of things have fallen into place in the past three years or so. much of the flux is going on at the edges.
10:59 masak but yes, there is flux.
10:59 MayDaniel joined #perl6
10:59 * tadzik afk
11:03 mberends I'm impressed with the general roadmap Jesse Vincent presented recently for Perl 5.16, 5.18 and beyond. It has good provision for evolution (breaking cruft) and still gives a nod to backward compatibility.
11:06 tokuhirom joined #perl6
11:09 im2ee joined #perl6
11:19 javuchi1 joined #perl6
11:24 masak mberends: yes, me too. it provides a fresh hope for Perl 5 -- something that's good both for the Perl community as a whole and for the friendly competition between the sibling languages.
11:25 mberends :)
11:25 tokuhirom joined #perl6
11:29 mj41 joined #perl6
11:31 tokuhirom joined #perl6
11:36 * moritz rereads http://www.modernperlbooks.com/mt/2011/08/no-policy-can-save-wrong-code.html and is again fascinated by the number of wrong assumptions in there
11:37 moritz it sounds as if nqp's primary purse was to decouple rakudo from parrot, so that rakudo can ditch parrot when there's a replacement
11:38 * masak nudges moritz to leave a comment
11:40 moritz that comment box is too small
11:40 moritz I'd have to write a complete blog post
11:40 moritz hm, maybe I should.
11:45 buubot_backup joined #perl6
11:50 masak +1
11:59 yahooooo joined #perl6
12:20 uasi joined #perl6
12:22 cotto masak, privmsg ping
12:25 moritz https://github.com/moritz/perlgeek.de/blob/master/source/blog-source-en/perl-6/why-rakudo-needs-nqp.txt any comments before I publish?
12:25 molaf joined #perl6
12:25 moritz I have the feeling that the end is a bit weak, but I'm kinda at loss of words what else to say
12:34 lumi_ "the grammar with which your source code is," -- Missing a verb
12:35 mberends "back and forth" missing a "between"
12:36 moritz lumi_: thanks
12:36 moritz both fixed, lumi_++ and mberends++
12:37 cotto moritz, I'd sit on it for half a day or a few hours.  I appreciate the clarification from a Rakudo pov, but it does need a bit more of an ending.
12:37 cotto maybe something like "we need the metacircularity, VM portability isn't a big concern, this is how a Perl6 compiler has to work"
12:37 Trashlord joined #perl6
12:37 cotto just to summarize
12:38 moritz cotto: sounds good
12:39 cotto moritz++ for 'splaining
12:42 PerlJam moritz: the paragraph that starts "This is not just because we have a fancy for Perl 6" feels like it's missing something.
12:44 moritz PerlJam: better after reload?
12:45 PerlJam moritz: yes
12:46 moritz good.
12:46 Siddy joined #perl6
12:46 PerlJam moritz: I'd end with the "That's what NQP does for us." paragraph if possible.  It's very  short and to the point and very much like punctuation at the end of the article.
12:47 moritz I considered that too
12:47 moritz now I'm a bit repetitive at the end
12:48 flussence :84s/$/h/
12:48 PerlJam flussence: nice catch :)
12:50 moritz any other opinions for or against stopping after "That's what NQP does for us."
12:51 moritz s/\$/?/ # :-)
12:51 PerlJam moritz++ (I especially like how you mention chromatic's "ramble" without accidentally getting caught up in it :)
12:51 moritz PerlJam: that part took some self-constraint :-)
12:54 PerlJam moritz: If I were the author, I would move the "That's what NQP does for us" paragraph after the succeeding paragraph and remove the final paragraph.  (but that's just me)
12:56 * moritz likes it, and does it that way
12:57 abercrombie joined #perl6
13:00 * tadzik is back
13:07 cggoebel joined #perl6
13:11 daniel-s joined #perl6
13:14 MayDaniel joined #perl6
13:16 mkramer left #perl6
13:24 mberends moritz: s:1st/parrot/Parrot/ and s/\(or a subset thereof\) itself/itself \(or a subset thereof\)/ and s/part to bytecode/parts to bytecode/ and s/technicals/technical/ and s/above refer/above refers/ and s/need to Perl 6/need to be Perl 6/ and s/be Perl 6 object/be a Perl 6 object/
13:26 daniel-s_ joined #perl6
13:28 wamba joined #perl6
13:29 moritz mberends++ # again
13:29 mberends more coming... *sigh* ;)
13:30 moritz mberends: want a commit bit? :-)
13:30 moritz or maybe I should just reread it myself in an hour
13:30 cotto moritz++ for laziness
13:30 cotto mberends++ for industriousness
13:33 frhodes joined #perl6
13:33 PacoLinux joined #perl6
13:38 masak moritz: your post is about my favorite part of Perl 6: the (mutual) metacircularity of the grammar and the object system. :)
13:39 masak moritz++ # very nice post
13:40 moritz thanks
13:42 mberends moritz: s/number literal/numeric literal/ and s/we consequently we/consequently we/ and s/object leaking/objects leaking/ .EOS
13:45 moritz mberends++ # again
13:45 * moritz publishes
13:45 * mberends likes moritz++'s post
13:50 * moritz tries to leave a commen on chromatic's blog, but the OpenID provider produces an Internal Server Error
13:51 tadzik nom: grammar A {}; class A::Actions {}; A.parse('', :actions(A::Actions.new)
13:51 p6eval nom 6e4aa6: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤»
13:51 tadzik nom: grammar A {}; class A::Actions {}; A.parse('', :actions(A::Actions.new))
13:51 p6eval nom 6e4aa6: OUTPUT«too many named arguments: 1 passed, 0 used␤  in mu !cursor_init at src/stage2/QRegex.nqp:491␤  in method parse at src/gen/CORE.setting:5812␤  in mu <anon> at /tmp/WWNc1e9Zob:1␤  in mu <anon> at /tmp/WWNc1e9Zob:1␤␤»
13:53 Siddy joined #perl6
13:55 colomon joined #perl6
13:57 PacoLinux joined #perl6
13:58 tadzik masak: have you seen https://github.com/perl6/ecosystem/wiki/State-of-modules-on-nom today?
13:59 bluescreen10 joined #perl6
14:00 moritz om: grammar A {}; A.parse('')
14:00 moritz nom: grammar A {}; A.parse('')
14:00 p6eval nom 6e4aa6: OUTPUT«Method 'TOP' not found for invocant of class 'A'␤  in method parse at src/gen/CORE.setting:5812␤  in mu <anon> at /tmp/5_hyf_mnDJ:1␤  in mu <anon> at /tmp/5_hyf_mnDJ:1␤␤»
14:00 moritz nom: grammar A {}; A.parse('', :actions)
14:00 p6eval nom 6e4aa6: OUTPUT«too many named arguments: 1 passed, 0 used␤  in mu !cursor_init at src/stage2/QRegex.nqp:491␤  in method parse at src/gen/CORE.setting:5812␤  in mu <anon> at /tmp/EH132Kycx5:1␤  in mu <anon> at /tmp/EH132Kycx5:1␤␤»
14:01 moritz tadzik: seems that reductions are simply NYI in QRegex
14:02 Holy_Cow joined #perl6
14:02 daxim http://www.modernperlbooks.com/mt/2011/08/no-policy-can-save-wrong-code.html  # other side of the story, plz?
14:02 moritz daxim: http://perlgeek.de/blog-en/perl-6/why-rakudo-needs-nqp.html
14:03 moritz daxim: I tried to post a comment on chromatic's blog, but the openid provider gave a 500 internal error :/
14:03 _twitch joined #perl6
14:05 masak tadzik: looking.
14:06 masak tadzik: nice initiative.
14:06 masak tadzik++
14:07 masak moritz++ flussence++
14:10 abercrombie Hi, will there be a 'wrap' method for Sub?
14:10 tadzik rakudo: Sub.^can('wrap')
14:10 p6eval rakudo a55346:  ( no output )
14:10 tadzik rakudo: say Sub.^can('wrap')
14:10 p6eval rakudo a55346: OUTPUT«wrap␤»
14:10 Aridai joined #perl6
14:11 tadzik there is one :)
14:12 masak abercrombie: in general, S06 contains answers to questions about subroutines.
14:12 masak not that we don't like answering them here; it's just that it's a good source of information.
14:14 abercrombie Thanks. I only tried nom so I was not sure
14:15 moritz nom: say Sub.^can('wrap')
14:15 p6eval nom 6e4aa6: OUTPUT«␤»
14:15 masak bug?
14:15 moritz NYI
14:16 jevin joined #perl6
14:18 wk joined #perl6
14:19 masak OIC
14:20 moritz YRL
14:20 moritz :-)
14:25 kaare__ joined #perl6
14:31 mkramer joined #perl6
14:33 mkramer left #perl6
14:34 bbkr_ moritz++ # NQP explanation, finally I know what it is for :)
14:35 moritz :-)
14:35 tadzik (:
14:36 * tadzik writes a subjective Production Ready post
14:39 mls joined #perl6
14:39 tadzik loliblogged: http://ttjjss.wordpress.com/2011/08/24/what-is-production-ready/
14:39 mls hi perl6!
14:39 moritz \o/ mls
14:39 tadzik hi mls!
14:40 mls I've a proof-of-concept patch for faster return handling: https://gist.github.com/1168212
14:40 mls Is that a completely insane approach?
14:42 mls seen jnthn
14:42 aloha jnthn was last seen in #perl6 16 hours 55 mins ago saying "sleep &".
14:43 mls overslept...
14:43 moritz pmichaud might appear soonish
14:43 masak seems you port a bunch of PAST to C. is that correct?
14:43 masak or "to PMC" is perhaps more precise.
14:44 mls Not really. Instead of setting up a new continuation in the wrap_return function I reuse the existing continuation of the call context
14:44 moritz mls: I'm not really qualified to comment on that patch, I just noticed that the Q:PIR blok can be written as pir:: calls, which is generally a bit prettier
14:44 mls This means I also have to simulate the lexical lookup
14:44 moritz pir::findlex__PS('$parcel')
14:44 tadzik mls: did you try it in-field?
14:45 masak I'm intrigued by the patch, but I also can't accept/reject it. pmichaud will have to do that.
14:45 masak mls: did you run the spectests on it?
14:45 mls Yes, it's just proof-of-concept. There's also a really ugly check if the subname starts with _block, which should be done very different
14:45 mls Oh, please do *not* accept it in its state ;)
14:45 tadzik :P
14:45 moritz mls: I might know the solution for that one
14:45 tadzik just curious of the effects
14:46 mls I ran t/spec/S06-advanced_subroutine_features/return.t, seems to work
14:46 moritz mls you can check the type of pir::perl6_code_object_from_parrot_sub__PP($block)
14:46 tadzik is it visibly faster?
14:46 moritz mls: if it's not Routine, it's Block
14:46 mls Yes, that's what I was looking for
14:46 mls It should be much faster
14:47 mls Dunno about the "visibly" ;)
14:47 mls It's basically just an idea for pm/jnthn to evaluate
14:50 mls S04-statements/return.t fails because of the _block test. Might work with the Routine check as suggested by you
14:50 tadzik damn this whitespace backtracking :/
14:51 mls Anyway, I'm experimenting with it because we need to implement "leave" at some time
14:51 mls For leave we must be able to jump to some context, which is what the patch does
14:55 Trashlord joined #perl6
14:56 moritz tadzik++ blog post
14:58 moritz now that's some fine polemic: http://twitter.com/#!/chromatic_x/status/106377278556082176
15:00 moritz mls: fwiw your patch causes some spectest failures (I know about it being an experiment only, yes... :-)
15:00 wamba joined #perl6
15:01 tadzik hehe
15:01 mls probably because of the _block check
15:01 moritz $ ./perl6 t/spec/S03-operators/context-forcers.rakudo|grep ^notnot ok 37 - trailing chars cause failure
15:01 moritz there should be a newline after the first 'not'
15:01 tadzik for how long we have nqp?
15:02 moritz well, it startes as nqp-rx in 2009
15:02 felher moritz++, tadzik++ blogposts.
15:03 tadzik so much for "fourth annual rewrite"
15:04 scorpil joined #perl6
15:04 moritz the first nqp specific commit seems to have been c0a8057a6c5b9ec13f690d81c79783726814ee70, from September 2010
15:05 masak moritz: chromatic's tweet seems to be made by someone who didn't read your post.
15:06 moritz masak: he's know as a prolific writer, not as a prolific reader :-)
15:06 masak :P
15:06 tadzik or someone who doesn't want to spoil his "I'm angry at you" viepoint
15:06 masak maybe his mental model is blocking his understanding of the blog post.
15:11 tadzik there we go: http://www.reddit.com/r/perl/comments/jsw59/why_rakudo_needs_nqp/
15:12 masak chromatic: "nqp is X". moritz: "why nqp is Y rather than X". chromatic: "I'd rather read 'why nqp is X'"
15:12 masak wow, and chromatic already commented on reddit.
15:12 moritz and he's full of wrong assumptions again.
15:13 masak more of them, it seems.
15:13 colomon I dunno, I think he's coming from a pretty reasonable place.
15:14 moritz that doesn't stop him from being wrong.
15:15 colomon actually, I don't see anything I think is wrong in that reddit comment
15:15 moritz Why is NQP imported into Parrot?
15:15 moritz it is not
15:16 colomon isn't there an NQP in the Parrot project?
15:16 moritz there's NQP-rx
15:17 masak the new NQP is hosted outside of Parrot too, isn't it?
15:18 moritz yes
15:18 masak https://github.com/perl6/nqp
15:18 chromatic joined #perl6
15:18 masak chromatic: hi.
15:18 chromatic Hey, here's a thought. How about reading the entirety of my post?
15:18 phenny chromatic: 28 Sep 22:43Z <[Coke]> tell chromatic planetsix points to your use.perl URL. Do you have a different one you'd like plugged in?
15:19 moritz chromatic: I did. Did you read mine?
15:19 chromatic I did, and I don't see what it has to do with mine. Hence my suggestion.
15:19 * masak notes croseed wires in both directions
15:19 moritz well, your question "Why does the current rewrite of Rakudo need a VM independence layer?" indicates that you didn't
15:20 masak <masak> chromatic: "nqp is X". moritz: "why nqp is Y rather than X". chromatic: "I'd rather read 'why nqp is X'"
15:22 chromatic I never wrote "NQP is x."
15:22 moritz chromatic: starting with nonesense like "4th annual rewrite" on twitter doesn't exactly help the discussion either
15:24 chromatic Why, how many versions of PCT/NQP have there been?
15:24 chromatic Or, perhaps more accurately, how many times has Rakudo had a rewrite of its Parrot layer?
15:24 TimToady not enough
15:25 moritz chromatic: dunno, but I'm pretty sure we're on the first one that's happening this year
15:25 masak chromatic: with "x" I meant the second-to-last paragraph in http://www.modernperlbooks.com/mt/2011/08/no-policy-can-save-wrong-code.html
15:25 chromatic masak, and that's not what I wrote.
15:25 moritz I don't quite see the "annual"
15:26 chromatic masak, do you see the phrase "NQP" anywhere in that post? I don't. I didn't use "NQP" for a very specific reason.
15:26 TimToady 4th annual == '4x a year' vs '1x for 4 years' is a potential misunderstanding here
15:26 masak chromatic: which layer do you mean, ooc?
15:26 masak chromatic: 6model?
15:26 chromatic The VM abstraction layer within NQP-rx.
15:26 moritz rakudo/nom doesn't use NQP-rx at all.
15:26 * masak is confused now
15:27 masak chromatic: how much do you know about current Rakudo development?
15:27 masak finding that out may save us some time.
15:27 chromatic All of the PIR gets shuttled into an abstraction layer, correct?
15:28 moritz please define "All of the PIR"
15:28 moritz there's lots of unabstracted generated PIR code in a rakudo/nom build
15:28 chromatic Rakudo used to have some handwritten PIR.
15:28 moritz and it still has, but not much
15:28 chromatic NQP-mumble had an inline PIR syntax.
15:28 masak there's an nqp:: namespace that can be used in Rakudo, if that's what you mean...
15:29 moritz because it caused lots of problems
15:29 moritz chromatic: the nqp still has an inline PIR syntax.
15:29 wamba joined #perl6
15:30 chromatic Is the current handwritten inline PIR getting abstracted away?
15:30 masak we did remove .pir files from the nom branch: http://pmthium.com/2011/06/14/rakudo-nom-reaches-milestone-no-more-pir-files/
15:30 moritz for example if you did Perl 6 introspection of routines written in PIR, you'd get a BOOMO very soon
15:30 moritz *BOOM
15:30 moritz chromatic: some of it. Not all.
15:31 chromatic What part of what Patrick wrote in "the pir:: opcodes will ultimately replaced with abstract nqp:: operations that can be more universal than just Parrot." is wrong then?
15:31 moritz just do an  ack -iw pir src/  in rakudo to see what's still there
15:32 moritz chromatic: it was overly optimistic
15:32 masak PIR won't go away anytime soon. :)
15:32 chromatic Is that not a goal?
15:33 TimToady depends on whether PIR evolves into a more usable direction
15:33 mls What's wrong in moving some pir from rakudo to nqp? The pir itself doesn't go away.
15:33 tadzik istr Parrot people think about removing PIR one day. It seems like a logical step to abstract PIR away then
15:33 mls Isn't it a good thing to have the vm specific stuff in one place?
15:34 TimToady from the viewpoint of a language, yes
15:34 uasi joined #perl6
15:34 moritz chromatic: since nqp::split compiles down to pir::split, the PIR stays
15:34 TimToady not necessarily from the viewpoint of the VM :)
15:34 moritz in some snese
15:34 moritz *sense
15:35 chromatic So what of all of this is incompatible with what I wrote?
15:36 moritz chromatic: you made it sound as if you meant NQP with the abstraction layer, and as if the abstraction layer was its primary purpose
15:36 moritz chromatic: as I mentioned in my blog post
15:36 Trashlord joined #perl6
15:37 masak I also (wrongly) took "the abstraction layer" to mean "nqp".
15:37 chromatic Out of my entire post, that's all the message you took?
15:37 masak surely not.
15:37 moritz chromatic: of course not
15:37 masak it was a nice post, overall.
15:37 moritz chromatic: and I never claimed to reply to the entirety of your post
15:37 masak I liked the metaphors.
15:38 TimToady chromatic: you seem a bit determined to pick a fight
15:38 chromatic TimToady, I'm not pleased with a bunch of gossipy speculation on IRC as to my motives and meaning based on a single sentence where I didn't name the thing people seem to be assuming I named.
15:38 moritz chromatic: I just found something that sounded wrong (althought it might not have been wrong if interpreted defensively), and wrote a blog post that clarified it
15:39 chromatic If I wanted to pick a fight, I wouldn't be subtle about it.
15:39 moritz chromatic: oh, it's not a single sentence, you've made plenty of pejorative remarks towards NQP before
15:40 moritz oh, you think that's subtle? /me *chuckles*
15:40 masak chromatic: in http://www.reddit.com/r/perl/comments/jsw59/why_rakudo_needs_nqp/c2euj4w you seem to be very plainly talking about NQP, and not being happy about it.
15:40 chromatic Sure, I think Rakudo and Parrot have taken the wrong technical directions and are getting wronger.
15:41 chromatic I wrote a post about that yesterday in fact.
15:41 moritz chromatic: indepently of technical matters, how do you feel about rakudo potentially targeting other backends than parrot?
15:42 chromatic Independent of technical matters? I have no current interest in working on it, but I'm not going to tell other people what to work on or not.
15:42 moritz chromatic: and how do you feel about it?
15:42 moritz I didn't ask what you would tell other people about it
15:42 masak chromatic: "another project external to both Parrot and Rakudo" -- just so I understand here, which external project *did* you mean? what should we have understood you to mean here?
15:43 chromatic I think it's a distraction currently, but probably good for the Perl 6 ecosystem in the long term.
15:43 chromatic masak "another" means "besides Parrot and Rakudo"
15:43 masak which one?
15:43 moritz chromatic: ok, thanks
15:44 masak chromatic: I'm asking because I keep re-reading that paragraph, and the answer that pops up in my mind -- even after your correction -- is NQP.
15:44 masak I think it might be a bit unclear the way it's stated.
15:44 M_o_C joined #perl6
15:45 chromatic But that point is more or less irrelevant to the point of the post.
15:45 chromatic That's my concern.
15:45 moritz chromatic: but which did you mean, if not NQP?
15:45 chromatic If I'd wanted to say "Look, worrying about VM independence right now in Rakudo is a silly distraction" I'd have written that.
15:45 chromatic I didn't write that because that's irrelevant to my point.
15:46 mkramer joined #perl6
15:46 moritz chromatic: I'm confused.
15:46 moritz chromatic: you said you didn't write about NQP, but it was NQP you meant
15:46 chromatic Forget NQP. That point is irrelevant.
15:46 moritz chromatic: I wrote about NQP, and you implied I missed the point.
15:47 masak chromatic: your point seems to be that there's an extra layer between Parrot and Rakudo. your beef with us now seems to be that we thought it was NQP.
15:48 masak we didn't misunderstand you on purpose. we're happy to be corrected as to your intents.
15:48 chromatic As I wrote in the final paragraph, there are three projects and no one's sure which one is driving.
15:48 chromatic That is my point.
15:49 chromatic There is a PCT imported into Parrot.
15:49 chromatic There is an NQP-rx snapshot imported into Parrot.
15:49 chromatic There is an NQP which isn't the NQP which preceded NQP-rx but is a successor to NQP which isn't imported into Parrot, but is imported into Rakudo.
15:49 chromatic Then there's nom.
15:50 chromatic At least two of those projects are dead, deprecated, disused, discouraged, or some other word which starts with d.
15:50 chromatic Now try to figure out where a feature gets added.
15:50 moritz I'm not aware of that
15:50 moritz which ones would be dead?
15:51 chromatic You tell me!
15:51 chromatic Are people encouraged to use NQP-rx? PCT?
15:51 moritz well, they all don't look dead to me
15:51 chromatic Does NQP-rx get any support?
15:51 masak chromatic: I think that's a good point. it's not a point I got from your post.
15:51 moritz does parrot get any suport?
15:51 moritz does rakudo get any support?
15:52 * masak has to go
15:52 masak good luck agreeing violently.
15:52 chromatic If the new NQP is the wave of the future, why should anyone use NQP-rx?
15:52 moritz because it's shipped with parrot, and battle-tested
15:52 moritz and because parrot uses it for the compilation process, it's going to be there for a while
15:53 moritz and it's covered under the deperaction policy (I think), so it gives users stability
15:53 moritz (which nqp doesn't)
15:53 chromatic It's only shipped with Parrot because Rakudo wanted it! It's an external project developed outside of Parrot so as not to fall under the deprecation policy!
15:53 chromatic Are you starting to see the problem?
15:53 TimToady I think it's obvious that we have two drivers here, and that's why we need an emulation layer that has enough flexibility to be driven from both ends.
15:54 moritz PCT and NQP-rx are really complementary: you use NQP-rx for parsing and building an AST, and PCT to compile it down to PIR
15:54 xinming joined #perl6
15:55 chromatic But there's a PCT as part of the Parrot distribution and NQP-rx isn't part of the distribution.
15:55 moritz but NQP-rx needs parrot, so it uses parrot's PCT
15:55 chromatic But NQP-rx has a successor called NQP now.
15:56 moritz successor for Rakudo. It doesn't need to be the successor for everyone
15:56 moritz and it has a quite drastic philosophy change compared to NQP-rx
15:56 moritz (do you start to see a pattern here? :-)
15:57 chromatic Yes, I believe I mentioned rewrites.
15:57 moritz and just to be clear, we don't love rewrites, we do them when we see no better option
15:57 TimToady "I will not say, do not rewrite, for not all rewrites are an evil."  --Gandalf
15:58 chromatic Does NQP-rx have a future?
15:58 chromatic Does NQP-rx have a maintainer?
15:58 chromatic Not that my post was about NQP.
15:59 moritz like with all open source projects, it has a future if somebody makes a future for it
16:00 autin joined #perl6
16:00 moritz if your question is "will the Rakudo folks give NQP-rx a future", the answer is probably "no"
16:00 chromatic My question is "Is there a maintainer right now?"
16:00 moritz if you mean a formal role, no
16:01 TimToady but we haven't exactly ordered the horse to be sent to the glue factory either
16:03 chromatic Is it wrong to characterize it as a project of uncertain future, instigated by a project which no longer uses it?
16:04 TimToady emotionally laden words
16:04 TimToady why?
16:04 chromatic Well I'd like to get a straight answer. If that means being a little provocative, fine.
16:05 moritz is it wrong to characterize parrot as a project of uncertain future, instigated by a project which no longer uses it?
16:05 moritz then "yes"
16:05 chromatic I don't understand, moritz.
16:05 moritz chromatic: is "yes" understandable?
16:06 chromatic Yes, but I don't believe you.
16:06 moritz chromatic: so would you rather have a "no"?
16:06 * moritz confused
16:06 chromatic Does anyone maintain NQP-rx?
16:06 chromatic Is anyone going to?
16:06 chromatic Is there a good reason to use it?
16:06 chromatic Why does it continue to exist?
16:07 moritz http://irclog.perlgeek.de/perl6/2011-08-24#i_4319918
16:07 chromatic But again, that's not the point of my post yesterday.
16:07 arnsholt .u arrow up
16:07 phenny U+0356 COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW (◌͖)
16:09 * moritz -> decommute, will backlog
16:09 awoodland joined #perl6
16:11 TimToady ooh, a chance to backlog :)
16:16 Trashlord joined #perl6
16:18 maja joined #perl6
16:20 mberends colomon: I've locally given tools/test_summary.pl a --timing option that does not delay execution at all when not used, and adds less than 6% to the time when used. I still hope you'll use it occasionally :)
16:20 colomon mberends++
16:20 mberends just finishing some final tests on OS X before committing...
16:21 * colomon suddenly wonders how hard it would be to port Niecza to run on Parrot...
16:23 mberends about as hard as porting Rakudo to .NET ?
16:23 PerlJam colomon: at a guess--really hard.
16:23 PacoLinux joined #perl6
16:26 slavik left #perl6
16:35 jnthn evening, #perl6
16:35 mberends o/ jnthn
16:35 PerlJam greetings jnthn!
16:35 colomon \o
16:35 tadzik hello jnthn
16:36 * jnthn is a little sick today :/
16:36 jnthn Was too energyless to look for the memory leak last night. May do better this evening. Maybe. :S
16:37 * moritz wishes jnthn a quick recovery
16:37 tadzik insightful: http://ttjjss.wordpress.com/2011/08/24/what-is-production-ready/#comment-83
16:37 jnthn Thanks. I'm taking the weekend and days around it as mostly offline break.
16:38 jnthn (Visiting some lovely friends who are very good at looking after me :))
16:39 frhodes joined #perl6
16:41 jnthn On Rakudo to .Net port - largely I'm waiting for the PAST-in-NQP thing to resume that, same as we need for inlining. pmichaud++ and I discussed a bunch of stuff at YAPC::EU for the overall roadmap here, but it didn't make a ROADMAP doc yet. I'll fix that after my break if nobody beats me to it :)
16:42 jnthn Immediately priorities beyond nom -> master are the serialization bits, and getting an optimizer that can do static decisions about what multis will be called, when we can figure that out.
16:42 jnthn s:1st/ly//
16:43 frhodes joined #perl6
16:49 mj41 joined #perl6
16:49 benabik jnthn: PAST and POST are working for PIR generation in my Parrot branch.  It comes with a nice side of much slower though.
16:49 benabik jnthn: And are written in NQP, forgot that part.
16:49 jnthn benabik: Yeah, I read that.
16:49 tadzik benabik: NQP or NQP-rx?
16:49 jnthn benabik: Long story short, NQP needs an optimizer.
16:50 benabik tadzik: -rx, but I don't see any reason why it wouldn't work in the newer one.
16:50 bbkr_ how recv() in IO::Socket::INET knows there are no more bytes to receive? in other words - why https://github.com/cosimo/perl6-lwp-simple/blob/master/lib/LWP/Simple.pm#L156 does not hang forever?
16:50 jnthn (Which, yes, is on my todo list. I actually did have a barebones optimizer in nqpclr...)
16:51 tadzik bbkr_: I suppose Parrot socket is smart enough
16:51 moritz probably the peer closes the socket (or a timeout occurs)
16:53 bbkr_ peer closing socket on the other side answered my question.
16:54 bbkr_ and raises another one - is there a way to check if there are more bytes to receive from socket if this socket is not closed?
16:55 PerlJam bbkr_: that's what select is for
16:57 tadzik (which we don't have :()
16:57 tadzik (well, we do, but Parrot hasn't merged that yet)
16:57 tadzik (for the last 6 months or so)
17:01 bbkr_ ok, thanks. this is nice-to-have option in my MongoDB driver (to validate if response does not exceed declared length on open socket), but if it's NYI I can go without that.
17:01 Chillance joined #perl6
17:01 moritz I think you can always do a  $socket.recv($number_of_byters)
17:04 bbkr_ moritz: yes, and I do that. Mongo Wire protocol returns int32 first that declare how many bytes are there left to fetch. I wanted to implement/port protection against unexpected trash in response. but this can wait.
17:12 flussence nom: Buf.new: ???
17:12 p6eval nom 6e4aa6: OUTPUT«Could not find sub &warn␤  in mu <anon> at /tmp/hDvQXpzmsa:1␤  in mu <anon> at /tmp/hDvQXpzmsa:1␤␤»
17:12 flussence didn't expect that...
17:12 benabik nom: ???
17:12 p6eval nom 6e4aa6: OUTPUT«Could not find sub &warn␤  in mu <anon> at /tmp/kyl_Tz75xj:1␤  in mu <anon> at /tmp/kyl_Tz75xj:1␤␤»
17:12 jnthn nom: warn 'no warn yet'
17:12 p6eval nom 6e4aa6: OUTPUT«Could not find sub &warn␤  in mu <anon> at /tmp/DTMHeqSXF9:1␤  in mu <anon> at /tmp/DTMHeqSXF9:1␤␤»
17:12 jnthn ah
17:13 jnthn I bet Buf is trying to warn you it's NYI or something
17:13 jnthn But failing because there's no warn :)
17:13 flussence Buf.new()
17:13 flussence nom: Buf.new()
17:13 p6eval nom 6e4aa6:  ( no output )
17:13 benabik It's the ???
17:13 jnthn oh!
17:13 jnthn yes :)
17:13 flussence ISTR that woud die a few days ago...
17:13 flussence s/$typo/$correct/g
17:14 * jnthn didn't spot the ??? somehow. :)
17:14 flussence nom: Buf.new([0, 1, 2, 3]).perl.say
17:14 p6eval nom 6e4aa6: OUTPUT«Default constructor only takes named arguments␤  in method new at src/gen/CORE.setting:461␤  in mu <anon> at /tmp/HUIM2VDzw6:1␤  in mu <anon> at /tmp/HUIM2VDzw6:1␤␤»
17:14 flussence nom: my $a = Buf.new;
17:14 p6eval nom 6e4aa6:  ( no output )
17:14 flussence nom: my $a = Buf.new; say $a.perl
17:14 p6eval nom 6e4aa6: OUTPUT«Method 'iterator' not found for invocant of class 'Buf'␤  in method reify at src/gen/CORE.setting:3502␤  in method reify at src/gen/CORE.setting:3502␤  in method gimme at src/gen/CORE.setting:3839␤  in method eager at src/gen/CORE.setting:3815␤  in method join at src/…
17:14 mls jnthn: how do I do a type check in perl6.ops?
17:15 flussence ouch.
17:15 flussence nom: my $a = Buf.new; say $a.^methods».name.perl
17:15 p6eval nom 6e4aa6: OUTPUT«("elems", "infinite", "item", "Int", "Num", "Numeric", "Str", "abs", "conjugate", "sqrt", "sign", "rand", "sin", "asin", "cos", "acos", "tan", "atan", "atan2", "sec", "asec", "cosec", "acosec", "cotan", "acotan", "sinh", "asinh", "cosh", "acosh", "tanh", "atanh", "sec…
17:15 flussence nom: my $a = Buf.new; say $a.^methods(:local)».name.perl
17:15 p6eval nom 6e4aa6: OUTPUT«()␤»
17:15 flussence er...
17:15 flussence not quite implemented? :)
17:16 tadzik I suppose so :)
17:16 tadzik I think it's a stub in Boostrap
17:16 jnthn mls: v ~~ T is along the lines of STABLE(v)->type_check(interp, v, T)
17:17 mls thanks, will use that.
17:17 jnthn mls: Which in the usual case boils down to a several pointer comparissions to get an answer.
17:19 tadzik another insight on production-ready Perl 6: http://ttjjss.wordpress.com/2011/08/24/what-is-production-ready/#comment-85
17:20 PerlJam then Perl 6 is ready!
17:20 PerlJam O'Reilly already has a "book about Perl 6"
17:21 * jnthn saw masak reading it the other day :)
17:24 bbkr_ I agree with cognominal on the "production ready" debate. Perl is meant for data processing, and pack/unpack is not still declared in spec.
17:24 * PerlJam doesn't want a "proper equivalent" to perldoc.
17:24 * PerlJam wants something better!
17:25 tadzik litchkind plans to write something close to https://metacpan.org/module/grok I suppose
17:26 flussence It's 2011, a perldoc clone should at least make use of colour terminals :)
17:26 pmichaud good morning, #perl6
17:26 jnthn hi, pmichaud
17:26 mls morning pm!
17:26 tadzik good evening pmichaud
17:26 PerlJam greetings Pm
17:26 tadzik flussence: doesn't perldoc?
17:27 tadzik it's pretty colorful for me
17:27 flussence hm, the default output is basically a manpage, I suppose it's limited by whatever the man code does.
17:28 pmichaud (okay, I guess it's actually "good afternoon" here.)
17:28 tadzik http://imgur.com/3DQE7
17:28 flussence I think the linux VT console started using colour to emulate bold/underline recently...
17:28 tadzik worksfortadzik
17:28 sjohnson a lot of work has gone into p6!
17:28 PerlJam flussence: looks like it according to tadzik's screenshot
17:28 flussence oh, there you go then.
17:28 mls pm: I've an idea for a different implementation of return: https://gist.github.com/1168212
17:28 masak joined #perl6
17:29 flussence those red bits are bold on my boring default setup...
17:29 masak lleho.
17:29 tadzik sjohnson: happyface!
17:30 sjohnson ( `ー´)
17:30 masak chromatic: with the best of my efforts, my summary of what you seemed upset about earlier is "you got that thing wrong that I hinted about near the end of my blog post, but I'm not going to spell it out because it doesn't matter." :/
17:32 pmichaud mls: what's the purpose of the different implementation?
17:32 tadzik sjohnson
17:32 tadzik ++
17:32 tadzik eeps
17:32 sjohnson heheh
17:32 mls the idea is to not create a new continuation, but reuse the invoke continuation of the context
17:32 mls so no overhead for return
17:33 mls I think we might need something like this anyway to implement 'leave'
17:33 jnthn mls: Does that not accidentally bypass e.g. return type checks?
17:33 sorear good * #perl6
17:33 chromatic masak, my point is that I believe all of these efforts to work around the deprecation policy are increasing divergence and not improving things.
17:33 jnthn mls: Or am I misunderstanding?
17:34 masak chromatic: yes. agreed.
17:34 mls no, the perl6_return op does the type checking (code copied from perl6_type_check_return_value)
17:34 masak chromatic: but we don't work around the deprecation policy because we like being difficult.
17:34 jnthn mls: And unboxing?
17:34 masak chromatic: we do it because we're developing Perl 6.
17:34 jnthn (if it's not "is rw")
17:35 mls dunno about unboxing, but if it doesn't work with the current patch I don't see whay it can't be made to work
17:35 jnthn ok.
17:35 chromatic I have no intention of questioning anyone's motives. All I can do is describe my understanding of the entire process and point out where I think it needs improvement.
17:36 masak chromatic: and I agree with your conclusion.
17:36 masak chromatic: I disagree that an unnamed middle layer hurts things further. but we'll see.
17:36 mls It's just an idea with some proof-of-concept patch to show that it might work
17:37 tadzik I'm wondering about a possible performance win
17:37 mls So instead of having extra ops in the routines, we have a perl6_return op that does everything
17:37 pmichaud I'd like to see some timings to show how much this actually improves performance.
17:38 pmichaud it feels like a premature optimization.
17:38 jnthn If I understand mls++'s patch correctly, it's a good chance of being a win...but what pmichaud++ said.
17:38 chromatic moritz, IFF features migrated into Parrot, it wouldn't bother me. But they haven't and they don't appear to, 6model notwithstanding. Divergence appears to be increasing.
17:40 masak maybe that was directed at me.
17:40 masak tab completion reaps another victim.
17:41 PerlJam funny, I didn't even notice he'd typed "moritz" until you said something
17:41 masak chromatic: what divergence I've seen doesn't worry me too much. do you have something particular in mind, assuming that 6model will get into Parrot?
17:41 masak (which would be really great, by the way)
17:42 pmichaud pct is diverging.
17:48 pmichaud .oO( was it something I said? )
17:48 * pmichaud reads posts.
17:48 jnthn :)
17:48 tadzik quick, get into #parrot and help with Select PMC!
17:51 masak chromatic: do you have something particular in mind?
17:51 * pmichaud jumps into #parrot and "helps" with the Select PMC.  :-)
17:52 mls moritz: there's a "say $elems;" in your &dir implementation, is that intentional?
17:52 tadzik mls: git pull
17:52 * PerlJam wonders if select will be bikeshedded to death.
17:52 tadzik mls: we tracked that down this morning
17:53 mls ok, missed that.
17:53 pmichaud PerlJam: that's why I've been advocating that we prototype it in the rakudo repo, along with IO::Socket or whatever p6 api we decide to have.  At least the bikeshedding occurs in one place.  Also, whoever writes the implementation gets first dibs on what it looks like :)
17:54 tadzik and we can say "write your own if you don't like this one" and people will shut up :P
17:55 tadzik (no offence to anyone, I'm just looking funny in p6l direction)
17:56 masak I really like the idea of prototyping on the HLL level and then integrating stuff into Parrot.
17:56 pmichaud yeah
17:56 masak requirements flow top-down.
17:56 pmichaud that's really what happened when the HLLs were part of the Parrot repo, but moving things out of the repo meant that it didn't work well that way any more
17:56 dalek rakudo/nom: 40fbe3e | (Martin Berends)++ | / (2 files):
17:56 dalek rakudo/nom: [tools/test_summary.pl] add --timing option for simple benchmarking
17:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/40fbe3e628
17:56 sjohnson is lisp a compiled language?
17:57 tadzik which lisp implementation do you mean?
17:57 jnthn Is English a compiled language? :)
17:57 tadzik yeah, this ;)
17:57 mls pmichaud: return speed: seems to make a function with a single "return 1" 10% faster
17:57 tadzik ooh
17:57 * tadzik waits for a recursive fibonacci benchmark :P
17:58 jnthn sjohnson: For many language you can write an interpreter or a compiler.
17:58 jnthn sjohnson: I'm pretty sure lisp has examples of both.
17:58 sjohnson jnthn: ok.  what do you think it's most common usage is?
17:58 flussence test_summary.pl line 183: "processes all unfudged files" - but the code doesn't appear to ignore fudged ones...
17:58 masak chromatic: with the nom branch, Rakudo is taking a big leap forward in terms of features and general model robustness. you complain about divergence. when I ask for specific examples, you go silent.
17:58 sjohnson i would say for p5, running an interpretor.  same with lisp maybe?
17:59 PacoLinux joined #perl6
17:59 tadzik the divergence is caused by Parrot not doing things well enough, I suppose
17:59 mls point is, with leave() we need to either do something like the patch does or add a continuation to every block
17:59 pmichaud I don't think we can implement leave() without some very specific parrot support.
17:59 jnthn mls: I'm starting to see the connection with leave() :)
17:59 mls tadzik: 10% isn't that much
17:59 tadzik mls: I still like it
18:00 pmichaud and so I'm hesitant to commit to a particular strategy for handling it before we see what we can get from parrot.
18:00 mls I'd call 10% premature optimization if it makes the code more complex
18:00 jnthn pmichaud: It may be that "find the correct return continuation and invoke it" is a sane approach, but yeah, I'd like to consider more. Especially given than it doesn't answer how LEAVE gets done.
18:01 pmichaud yeah, 10% here isn't a 10% overall speedup, it's just a 10% improvement for the return statement.
18:01 jnthn sjohnson: Dunno, I'm not much of a lisp user. I just know how its meta-model works. :)
18:01 mls not really, 10% for every function (regardless of return)
18:01 pmichaud 10% for every function containing one statement.
18:02 mls it's the wrap_return_handler code I want to get rid of
18:02 tadzik I don't think it's linear
18:02 chromatic masak, dispatch, subs, objects, primitives, etc.
18:02 pmichaud if a function contains a bunch of statements, then the percentage reduction is obviously much less :)
18:02 tadzik chromatic: Parrot's metamodel turned out to be not enough. He-who-must-not-be-named has its own, working for us, and now Parrot wants to adopt it. What's wrong with prototyping stuff outside of Parrot?
18:03 mls yes, of course. as I said, 10% isn't much.
18:03 pmichaud anyway, I'm not opposed to the patch -- I'm glad to see it developed -- but I'd really like to see how we'll handle leave too.
18:03 chromatic Nothing's wrong with prototyping. Whoever said otherwise?
18:04 mls you mean LEAVE{}, not leave(), right?
18:04 pmichaud mls: well, both.
18:05 miso2217 joined #perl6
18:05 mls leave() is easy
18:05 Lorn joined #perl6
18:05 tadzik chromatic: I had an impression that you don't really like nqp having its own objects, dispatching and so. If I'm wrong, nevermind
18:05 mls if you have the parrot ctx, just return from it (like the patch does)
18:05 masak chromatic: I think each of these features correspons to dozends of closed RT tickets. if we were still using Parrot's building blocks, they'd still be open.
18:05 masak corresponds*
18:06 chromatic tadzik, I don't.
18:06 PerlJam masak: um ... that sounds like part of chromatic's point to me.  (in a meta way)
18:06 mkramer left #perl6
18:06 tadzik pardon then
18:06 masak PerlJam: yeah, I think so too.
18:06 masak PerlJam: part of talking past each other is that we probably agree to some extent.
18:07 PerlJam indeed
18:07 masak we're just being flamey and asbestosy about it.
18:07 simcop2387 joined #perl6
18:07 chromatic Divergence--especially for prototyping-is fine *if* convergence happens.
18:07 pmichaud chromatic: your post recommends "The right solution is to invent a time machine and not kick Rakudo out of the nest.".  Given that time machines are in short supply, I couldn't tell what your proposed fallback solution is (if there is one)
18:07 masak chromatic: naturally.
18:07 chromatic pmichaud, kick stuff out of NQP and back into Parrot as much as possible.
18:08 tadzik everyone's waiting for m0 I guess
18:08 PerlJam chromatic: that doesn't not sound like a recipe for success right now
18:08 tadzik I mean, whiteknight++ plans to migrate 6model to Parrot
18:08 pmichaud I don't have any desire to be re-bound by Parrot's cultural and policy constraints.
18:08 PerlJam er, s/doesn't not/does not/
18:08 chromatic That's because Parrot's constraints are wrong
18:08 pmichaud No argument there.
18:08 chromatic and part of the reason they're still wrong is because this divergence continues.
18:08 mux who needs success?
18:09 chromatic Declaring Parrot as 1.0 and treating it as an end user black box product was foolish and wrong.
18:09 mls pmichaud: for LEAVE and friends, do you think that we could implement it with a pct block handler?
18:09 pmichaud mls: not likely.
18:09 pmichaud mls: the problem is that we need some way of invoking continuations as parrot subs are being "rolled up"
18:10 mls and use some introspection in perl6_return to call the LEAVE blocks in the return case?
18:10 jnthn mls: Taht won't work.
18:10 pmichaud mls: I think we have to have Parrot automatically call our leave blocks.
18:10 jnthn mls: We have to unwind after running an exception handler too.
18:10 jnthn Unless it decides to resume, in which case we never unwind.
18:10 mls Yes, I'm pondering if we need the magic in parrot or on the rakudo side
18:11 pmichaud chromatic: I agree that "end user black box product" has been demonstrably wrong also.
18:11 chromatic I should add "in retrospect this is obvious". At the time it wasn't so obvious.
18:11 masak is there any way to back down from that decision?
18:11 mls we have control over return and exception unrolling, so it might work with rakudo
18:11 birdwindupbird joined #perl6
18:11 pmichaud I did say at PDS 2008 that I thought it was horribly wrong and that Rakudo couldn't possibly work with that.  :)
18:11 chromatic Yes you did.
18:12 chromatic masak, first there has to be rough agreement that a problem exists here and second a rough agreement on what the problem is.
18:12 PerlJam This feels like an echo-chamber discussion without involving #parrot.
18:12 pmichaud PerlJam: I disagree.
18:13 pmichaud PerlJam: it would be good for us to know what we seek from parrot before we seek it.  :)
18:13 benabik PerlJam: There's a subsection of #parrot watching…
18:14 jnthn afk for a bit
18:14 * flussence just realised test_summary.pl is inflating the total spectest count by about 14000 or so
18:14 pmichaud flussence: very likely.
18:15 flussence on the positive side, I've rewrote my graph thing to extract the numbers from make spectest, so I get a (working) parallel implementation for free. Might be feasible to redo the entire thing...
18:15 mls also afk...
18:23 PerlJam pmichaud: so ... what would you seek from parrot?  I get the impression that putting things "back the way they were" would be counter productive.  Would a faster release cycle help?   Is the crux of the problem, the deprecation policy or something more?
18:24 mberends flussence++: excellent sleuthing! I'll look into fixing the 'plan' totals :)
18:25 pmichaud PerlJam: I'm no longer seeking things from parrot, tbh.
18:26 flussence mberends: it seems to be counting t/spec/* instead of t/spec/*.t, so every fudged file gets counted twice. It'd explain why my graph has random sudden spec changes...
18:27 mberends flussence: indeed, test_summary.pl:187, but istr that grep fails on a *.t because the directory names do not end in .t
18:28 flussence I just decided to use ack -G for mine :)
18:29 flussence .oO( now there's an idea: making ack usable as a module... )
18:29 mberends ack is not always installed, I'd rather work around to not add a dependency (Debian's ack is called ack-grep for example)
18:30 flussence well, find | grep | xargs grep would work...
18:30 mberends yeah, that's an idea :)
18:30 jnthn grep...xargs...what're those? :P
18:30 flussence a series of tubes.
18:30 mberends oops
18:30 jnthn ;-)
18:31 * jnthn , your handy Win32 troll :)
18:31 flussence (nooooo, not File::Find again...)
18:31 tadzik what's wrong with it?
18:33 flussence I dunno, I think I just like the command line stuff for being shorter
18:35 mberends the existing code collects all the filenames as well, lines 197-198 extract them but do not filter (yet).
18:36 PacoLinux joined #perl6
18:37 ab5tract joined #perl6
18:37 mberends flussence: fixing and testing... # holding on to the pumpkin a little longer
18:44 sftp joined #perl6
18:51 wamba joined #perl6
18:58 * TimToady would certainly like to bikeshed select to death and replace it with a sane event handler
18:59 * pmichaud hands TimToady a commitbit.  :-)
18:59 * TimToady already abuses the commitbits he has
19:00 pmichaud "forgiveness" > "permission"  :-P
19:01 mkramer1 joined #perl6
19:01 TimToady dunno, there are some things I've done that a heap o' people haven't forgiven me for yet :)
19:02 frhodes joined #perl6
19:02 pmichaud I wonder if that's an unintended consequence of "Rule 2" somehow.  :)
19:02 masak rakudo: say "forgiveness" gt "permission"
19:02 TimToady though, it's more like the things I haven't done that people hold against me :)
19:02 p6eval rakudo a55346: OUTPUT«Bool::False␤»
19:02 masak :)
19:04 pmichaud rakudo:  say "forgiveness" gt "Permission"
19:04 p6eval rakudo a55346: OUTPUT«Bool::True␤»
19:04 pmichaud rakudo:  say "forgiveness" gt " permission"
19:04 p6eval rakudo a55346: OUTPUT«Bool::True␤»
19:04 mberends ooh, the cheats!
19:04 TimToady ooh, a whitespace dependency
19:05 TimToady why do we call it "whitespace" when it's black on my terminal?
19:06 masak blame Gutenberg.
19:06 pmichaud because most of us are used to writing on light-colored media
19:07 TimToady like blackboards :)
19:07 sbp take a photo, the negatives might hold the answer
19:07 sbp anybody got a 35mm film camera still?
19:08 mberends or a 35mm still camera?
19:08 TimToady I have lots of stills
19:08 tadzik I have lots of cameras
19:09 Trashlord joined #perl6
19:09 pmichaud stills are legal in Calif?
19:09 pmichaud now I know where TimToady++ gets some of his wackier ideas.  :) :)
19:09 tadzik since d156fc0bbf7 we now have non-blocking IO capabilities :)
19:10 masak wow!
19:10 masak does that imply non-blocking sockets, too?
19:10 nebuchadnezzar joined #perl6
19:10 TimToady ooh, quick, write a thread scheduler
19:11 tadzik masak: long story short, we have select
19:12 tadzik I'm now writing IO::Select
19:12 masak \o/
19:12 tadzik it'd probably help if I used the original IO::Select even once, but yeah, whatever. I can look at the tests
19:13 supernovus joined #perl6
19:14 jnthn tadzik++
19:14 tadzik do we have a way to obtain a File Descriptor from an IO handle? Something that could uniquely identify it?
19:14 * TimToady tries to make a pun on still-born ideas, and fails...
19:15 masak all you got was an autopun.
19:16 * TimToady always tries to level-up without also un-level-downing
19:16 masak that's strange and a bit loopy. :)
19:17 * TimToady rarely GC's his continuations
19:17 masak this explains so much :P
19:18 * pmichaud wonders how much GC takes place at all.  :)
19:18 pmichaud "one man's trash is another's treasure", and all that.  :)
19:19 sftp joined #perl6
19:20 pmichaud U.S. east coast seems to be the site of the apocalypse.  Earthquakes, an impedingin category 3/4 hurricane, and then Congress is back in session.
19:20 pmichaud *impending
19:21 TimToady well, they all make trash, fershure
19:25 natureboy joined #perl6
19:29 pmichaud benabik: in what context does   sub a:b['c'] { ... }   arise, ooc?
19:29 benabik pmichaud: token special_character:sym['$<']
19:29 benabik pmichaud: The abc example is just me trying to golf the error.
19:29 pmichaud benabik: where is that from?
19:30 lue hello planet o/
19:30 benabik pmichaud: nom:src/Perl6/Grammar.pm
19:30 tadzik hello lue o/
19:31 pmichaud that should be rewritten to use angles
19:31 tadzik what is the nom way of making RPA an Array?
19:31 pmichaud tadzik: normally RPAs become Parcels
19:31 pmichaud but if you want it to become an array, use  nqp::p6list
19:31 benabik pmichaud: Sorry, special_variable:sym['$<']
19:31 javuchi joined #perl6
19:31 tadzik pmichaud: I just want something I can map over
19:32 javuchi left #perl6
19:32 lue pmichaud: on the west coast, a once-every-300-years tsunami/earthquake is overdue, as well as some volcanic eruptions up in Washington :/
19:32 pmichaud tadzik: are all of the elements of the RPA Perl 6 objects?
19:33 tadzik pmichaud: I'm quite sure none is
19:33 benabik pmichaud: Rewriting it would probably make it work, but wouldn't fix the underlying problem.  That syntax should be disallowed or work properly.  Getting the raw address of a PCT node in there instead is wrong.
19:33 pmichaud benabik: NQP doesn't try to be strict about syntax.
19:33 tadzik I think they're parrot strings
19:33 pmichaud benabik: NQP is lower level than that.
19:34 pmichaud tadzik: if they're parrot strings, then simply putting them into an Array container won't help.
19:34 wk joined #perl6
19:35 tadzik pmichaud: I'm doing @ids.map: { %!handles{nqp::unbox_s($_)} };
19:35 tadzik where @ids is an RPA
19:35 pmichaud tadzik: that won't work, for many reasons.
19:36 pmichaud for one, you're passing an unboxed string to postcircumfix:<{ }>
19:36 tadzik pmichaud: ...but I just did unbox it?
19:37 tadzik oh, I see
19:37 pmichaud I don't think we're allowed to pass unboxed values to Perl 6 functions.
19:37 pmichaud at least, not yet.
19:37 tadzik I should box it instead, I suppose
19:37 tadzik a typo of mine
19:37 pmichaud even if you box it, the problem then is that $_ is being bound to a non-p6 type
19:37 pmichaud which means that the block invocation itself will fail
19:37 tadzik I see
19:38 pmichaud (because we can't pass Parrot Strings to P6 blocks)
19:38 tadzik so I can't use map?
19:38 pmichaud not on an RPA
19:38 tadzik oh, I can't use for either
19:38 benabik pmichaud: The assertion that NQP is too low level for syntax errors bothers me.  If nothing else, the only reason I noticed nom wouldn't parse $< correctly is because I happened to be looking through the generated PIR.  Silent errors are bad.
19:38 tadzik pmichaud: what if I nqp::p6list() it?
19:38 pmichaud benabik: yes, I can agree with that.  The solution will be for NQP to disallow the syntax.
19:38 pmichaud benabik: but there are lots of places where NQP "allows" things that aren't really valid.  NQP is intended to be light and simple, ultimately.
19:39 Sarten-X joined #perl6
19:39 pmichaud tadzik: p6list doesn't help, because the elements aren't p6 objects
19:39 pmichaud p6list doesn't know how to map Parrot values
19:39 tadzik I see
19:40 tadzik but I can manually iterate over them?
19:40 pmichaud you can use  nqp::iterator($rpa)
19:40 pmichaud and nqp::shift
19:42 tadzik okay, I'd use that
19:42 pmichaud note that the iterator and shifted values both have to be bound to a variable of type Mu
19:42 tadzik hrm, can I load a dynpmc with a pir:: or Q:PIR, or do I have to stick them into Rakudo/nqp somewhere?
19:43 tadzik yeah, I know I can't assign
19:43 tadzik rakudo: Q:PIR { loadlib 'OS' }
19:43 p6eval rakudo a55346: OUTPUT«===SORRY!===␤error:imcc:The opcode 'loadlib_sc' (loadlib<1>) was not found. Check the type and number of the arguments␤   in file '(file unknown)' line 34186795␤»
19:44 pmichaud I don't remember if there's an opcode for dynpmcs.  probably needs to be added to the static list.
19:44 tadzik rakudo: Q:PIR { $P0 = loadlib 'OS' }
19:44 p6eval rakudo a55346:  ( no output )
19:44 tadzik nom: Q:PIR { $P0 = loadlib 'OS' }
19:44 p6eval nom 40fbe3:  ( no output )
19:44 tadzik hrm
19:44 jnthn nom: pir::loadlib('OS');
19:44 tadzik nom: Q:PIR { $P0 = loadlib 'select' }
19:44 sftp joined #perl6
19:44 p6eval nom 40fbe3: OUTPUT«===SORRY!===␤error:imcc:The opcode 'loadlib_p_p' (loadlib<2>) was not found. Check the type and number of the arguments␤     in file '(file unknown)' line 15466162␤»
19:44 p6eval nom 40fbe3:  ( no output )
19:44 jnthn nom: pir::loadlib__vs('OS');
19:44 tadzik I get Confused at line 1, near "Q:PIR { $P"
19:44 p6eval nom 40fbe3: OUTPUT«===SORRY!===␤error:imcc:The opcode 'loadlib_s' (loadlib<1>) was not found. Check the type and number of the arguments␤       in file '(file unknown)' line 32698035␤»
19:45 pmichaud tadzik: you might need a semi
19:45 pmichaud Q:PIR blocks don't (yet) imply the semi at the closing brace
19:45 jnthn nom: pir::loadlib__vs('OS'); say 'ok'
19:45 tadzik nah, doesn't help
19:45 p6eval nom 40fbe3: OUTPUT«===SORRY!===␤error:imcc:The opcode 'loadlib_s' (loadlib<1>) was not found. Check the type and number of the arguments␤       in file '(file unknown)' line 331␤»
19:45 jnthn nom: pir::loadlib__Ps('OS'); say 'ok'
19:45 p6eval nom 40fbe3: OUTPUT«ok␤»
19:46 tadzik thanks jnthn
19:49 envi joined #perl6
19:51 envi joined #perl6
19:52 moritz tadzik: fwiw the &dir function has an example of how to iterate a ResizableStringArray
19:52 tadzik for now I have to struggle with loadlib :)
19:53 moritz it's not the prettiest of solutions, but works solidly
19:53 masak rakudo: sub superlative { $^s.subst(/y$/, 'i') ~ 'est' }; say "Perl 5's { superlative "spunky" } little sister!"
19:53 p6eval rakudo a55346: OUTPUT«Perl 5's spunkiest little sister!␤»
19:53 masak \o/
19:53 tadzik rakudo: sub superlative { $^s.subst(/y$/, 'i') ~ 'est' }; say superlative 'b'
19:54 p6eval rakudo a55346: OUTPUT«best␤»
19:54 masak :P
19:54 jnthn rakudo: sub superlative { $^s.subst(/y$/, 'i') ~ 'est' }; say superlative 'sly'
19:54 p6eval rakudo a55346: OUTPUT«sliest␤»
19:54 masak hey!
19:55 masak rakudo: sub esperanto-superlative { "plej $^s" }; say esperanto-superlative "bona"
19:55 p6eval rakudo a55346: OUTPUT«plej bona␤»
19:55 masak regulatity++
19:56 tadzik rakudo: sub esperanto-superlative { "plej $^s" }; say esperanto-superlative "ground"
19:56 p6eval rakudo a55346: OUTPUT«plej ground␤»
19:56 tadzik it's funnier if you know polish pronounciation :)
19:56 jnthn :D
19:56 masak :P
20:00 pmichaud I'm wondering if I should comment on various aspects of chromatic++'s and moritz++'s posts, or if I should just let things sit a while and see what develops.
20:01 moritz pmichaud: the latter probably wastes fewer resources :-)
20:01 pmichaud moritz: yeah, that's likely true.
20:01 moritz pmichaud: though of course if you found errors or inaccuracies in my post, I'd like to know anyway :-)
20:01 * jnthn isn't planning to comment, fwiw
20:02 frhodes joined #perl6
20:02 * TimToady has already sniped^Wcommented all he wants to...
20:02 chromatic Sadly I suspect nothing is going to change for the better.
20:03 pmichaud chromatic: yeah, which is why I'm thinking it's not useful to stir the pot.  :)
20:03 pmichaud both posts are excellent, btw.
20:03 chromatic I take the opposite approach. Sometimes you have to talk about the elephant in the room if you want to get rid of it.
20:03 tadzik chromatic: by "change for the better" you mean "Rakudo folks start to backport things down to Parrot"?
20:04 chromatic If that's the right solution, yes. It might not be.
20:04 pmichaud sometimes talking about the elephant in the room simply means people start to ignore you as being part of the elephant.  That's been my experience with this particular elephant.
20:04 tadzik as if we had enough manpower
20:04 chromatic I see it as a question of priorities.
20:05 * masak .oO( we need more elephant-power )
20:06 diakopter who's got the elephant-gun
20:06 jnthn I had one, but I left it in my trunk...
20:06 pmichaud the main comment I have is on "... in the hope that someday someone will add another VM backend ...".  It's not merely a hope to us... it's part of the plan.  Granted, it's a medium-term and not short-range plan, and perhaps it's chasing at windmills, but that is where we intend to go.
20:06 lue From those two posts, I gather that the core of Rakudo (the grammar) is written in NQP, compiled to PBC by nqp, then that compiles the P6 of the rest of the project to PBC.
20:06 * sjn likes e elephants. especially the pink belgian ones.
20:06 masak chromatic: I have no reason to assume that your goals are different from the Rakudo team's. but we do seem to have different perspectives on that goal.
20:07 chromatic Sure.
20:07 chromatic From my perspective, the Rakudo approach seems to be "Add as many features as fast as possible" and that leads to lots of rewrites.
20:07 masak er.
20:08 chromatic That also leads to a lot of "Parrot can't move fast enough for Rakudo" and "Sure, we poked into lots of Parrot guts, but you can't break things per the deprecation policy."
20:08 mberends would Parrot people ever consider the total abolition of their deprecation policy? It seems to cause practical problems, but has only theoretical benefits.
20:08 masak chromatic: "add features => rewrites". you're not factually wrong, but that's an odd way of putting an essentially good causal relation.
20:08 moritz chromatic: if we knew how to add the features without having to redoing them later on, we would
20:08 moritz chromatic: you know, the research aspect you mentioned yourself
20:09 TimToady From my perspective, Perl 6 will have the bigger elephant gun in a year, and will end up rescuing Parrot from the so-what-ers.
20:09 lue remember, nobody's ever implemented a complete Perl 6 compiler.
20:09 masak chromatic: maybe we're skewed by our experiences, but around here rewrites tend to correspond to improvements. improvements that couldn't be made before the first round was attempted.
20:09 masak lue: Yapsi is complete.
20:09 masak :P
20:10 chromatic Do you hear the sound of that cognitive dissonance?
20:10 lue (so things are going to be done right the first time 'round, unless you're lucky)
20:12 pmichaud masak: why is there no column for Yapsi in the features matrix?  ;-)  (j/k)
20:12 masak chromatic: yes. I do.
20:12 chromatic From my perspective, it seems like there's always time for Rakudo to do it wrongish, then rewrite a couple of times but there's never time for Parrot to do it right.
20:12 cotto_work chromatic: I appreciate you stirring the pot and have yet to confuse you for an elephant.
20:12 masak chromatic: I can sympathise with that.
20:13 cotto_work Rakudo has the advantage of a spec.  Parrot has the advantage of Rakudo having a spec.
20:13 masak chromatic: but on the flip side, this feels like Parrot saying "we want to be in on it too!" after an extended period of saying "Parrot is *not* supposed to be Perl 6-centric."
20:14 chromatic Well I've always said that point of view is on its face nonsense.
20:14 masak ok.
20:14 chromatic But again, I only speak for myself and have no desire to tell other people what they must do.
20:14 cotto_work Is TimToady the only one who can change his mind? ;)
20:15 * lue has always seen Parrot as a bit P6-centric despite what's said. Then again, he's not that familiar with Parrot, so don't listen to him :)
20:15 molaf joined #perl6
20:15 pmichaud No, others have been able to change TimToady's mind.
20:15 diakopter pmichaud: heh
20:15 TimToady heh
20:16 masak you just have to take the chance during a very rare GC run :P
20:17 TimToady the trouble is that my mind has no clear deprecation policy...  :)
20:17 lue ?(GC == "Garbage Collection")
20:17 masak lue: backlog :)
20:18 frhodes joined #perl6
20:20 frhodes joined #perl6
20:21 diakopter TimToady: I'm thinking the Apocalypses, Exegeses, and Synopses might do well to have some Epistles
20:22 diakopter maybe those are the RC entries
20:22 pmichaud 20:08 <chromatic> That also leads to a lot of "Parrot can't move fast enough for Rakudo" and "Sure, we poked into lots of Parrot guts, but you  can't break things per the deprecation policy."
20:23 pmichaud fwiw, I don't think we've ever claimed a deprecation violation on a place where we poked into Parrot guts.
20:23 cognominal I am curious to know how to parse in Perl 6 a language which implictely add a statement terminator if the line ends and an operand is not expected. It should be nice to be able to set a variable when an infix or prefix operator has been recognized. I am not too sure how to do it elegantly.
20:23 pmichaud afaik, we fully accept that if we rely on Parrot guts for something and it changes, it's our problem and not Parrot's.
20:24 masak cognominal: that's how the optable parser works.
20:24 lue Epistles?
20:24 pmichaud If there's a counter-example, I'd like to be reminded of it.
20:24 lue (I just read what they are, but what would they do in the spec?)
20:26 diakopter lue: I was thinking of another outlet for canonical writings
20:27 masak I've been toying with the idea of modernizing the Exigeses.
20:28 cognominal masak: I know that the optable parser uses such a variable but it is not exposed to the grammar writer. He just declares the operator types and their respective precedences.
20:28 lue So have I, a sort of Exegeses for the Synopses. (My first thought for naming them was the "Tutorials", though I'm not attached to it)
20:29 pmichaud call them the "Lessons".  Or perhaps they should be parables.  :-)
20:29 pmichaud "sermons"?
20:29 pmichaud "indoctrination tapes"
20:30 cognominal or is this variable exposed?
20:30 lue As long as it doesn't start with an S, A, or E (or else confusion arises when typing things like "check S05" if you mean the "sermons")
20:31 masak cognominal: no, it's more like it threads through the whole semantics. you can't avoid it.
20:31 mkramer joined #perl6
20:33 cognominal so how can you write a parser that treats   "a+b\n+c"  as two statements and "a+b+c" as one.
20:33 masak just make "\n" a statement separator :)
20:34 cognominal nope
20:34 cognominal "a+\nb" would not be parsed correctly
20:34 chromatic pmichaud, I don't have any handy either, but even the question of "Wait, why did the order of hash iteration change?" seemed too close to that for me.
20:35 cognominal the \n must be a statement separator only when it makes sense.
20:35 masak cognominal: oh, I see what you mean.
20:35 Juerd joined #perl6
20:35 Juerd Hi. I'm going to do a feather dist-upgrade again
20:35 cognominal see javascript, or coffeescript as an example
20:35 Juerd Be prepared for random failure
20:36 masak cognominal: make "\n" am infix operator, then?
20:36 cognominal coffeescript is even weirder, because indentation is syntax.
20:36 pmichaud chromatic: That was more an expression of surprise for me.... since a previous "order of hash iteration change" caused Rakudo to break once before (and it occurred in a supported release)
20:37 pmichaud I can see how that could be taken as an expression of a deprecation violation... although I think I took extra special care to make it clear that we weren't claiming such.
20:37 chromatic But then there's also the question of how much NameSpace refactoring is possible and when.
20:37 cognominal masak: does not work either
20:38 chromatic It's fair enough to blame that on Parrot's deprecation policy. I'm really uninterested in blaming anyone in particular. As far as I care to believe, pretty much everyone acts in good faith.
20:38 cognominal if the state variable is exposed, I think it can be handled elegantly in the grammar
20:38 REPLeffect joined #perl6
20:38 masak cognominal: I'd be happy to see a patch for that.
20:38 cognominal probably pmichaud is the more competent to give an answer.
20:38 pmichaud what "state variable"?
20:39 pmichaud afaik there ain't no such animal.
20:40 cognominal the rakudo qequivalent of the perl5 PL_expect
20:40 pmichaud afaik there ain't no such animal.
20:40 cognominal which says if an operand or operator is expected at a given point.
20:40 masak pmichaud: ISTU cognominal is proposing one.
20:40 pmichaud "expect an operator" and "expect a term" are handled by being at different points in the EXPR sub
20:42 tadzik nom: my $a = open 'README', :r; say $a.w
20:42 p6eval nom 40fbe3: OUTPUT«Unable to open filehandle from path 'README'␤  in method open at src/gen/CORE.setting:4645␤  in sub open at src/gen/CORE.setting:4755␤  in mu <anon> at /tmp/4Ds6POsYv2:1␤  in mu <anon> at /tmp/4Ds6POsYv2:1␤␤»
20:42 tadzik nom: say dir
20:42 p6eval nom 40fbe3: OUTPUT«.vim std_mine sprixel Perlito .ccache old_perl5 niecza mono-2.10.1.tar.bz2 .cache partcl-nqp log .pugs_history .bash_history nqp std_hilited 6model _sprixel01 p1 rakudo-star-2011.04.tar.gz .lesshst .aptitude .bashrc .cpanm nom-inst2 rakudo-star-2010.09 .ghc perl5 eval…
20:42 tadzik nom: my $a = open '.bash_history' :r; say $a.w
20:42 p6eval nom 40fbe3: OUTPUT«===SORRY!===␤Confused at line 1, near "my $a = op"␤»
20:42 cognominal pmichaud, the problem is to handle language like javascript where a ; is a statment terminator only when it makes sense.
20:42 tadzik nom: my $a = open '.bash_history', :r; say $a.w
20:42 p6eval nom 40fbe3: OUTPUT«Bool::True␤»
20:42 tadzik I suppose that's broken
20:43 tadzik method w() is nqp::p6bool(pir::new__Ps('OS').can_write(nqp::unbox_s($!path)))
20:43 cognominal ISTU?
20:43 pmichaud ISTU = "I seem to understand"
20:43 cognominal ok, thx
20:43 jnthn nom: my $a = open '.bash_history', :w; $a.say "lolwut"; $a.close;
20:43 p6eval nom 40fbe3: OUTPUT«===SORRY!===␤Confused at line 1, near "$a.say \"lo"␤»
20:44 jnthn nom: my $a = open '.bash_history', :w; $a.say("lolwut"); $a.close;
20:44 p6eval nom 40fbe3:  ( no output )
20:44 jnthn nom: say slurp('.bash_history')
20:44 p6eval nom 40fbe3: OUTPUT«lolwut␤␤»
20:44 pmichaud tadzik: is .w supposed to report on the file itself or on the filehandle?
20:44 jnthn Oh, I'd assumeed it was on the file :)
20:44 jnthn In which case the answer is correct
20:44 pmichaud jnthn: same here.
20:44 tadzik pmichaud: I'd expect it to report on the filehandle
20:44 jnthn er, I hope overwriting .bash_history was OK.
20:44 tadzik maybe it's on the file
20:45 jnthn <= windows noob :)
20:45 pmichaud S32 says they are "file tests"
20:45 jnthn .oO( I bashed the history... )
20:45 tadzik is there any way to check if the file is opened for reading then?
20:46 TimToady cognominal: all you have to do is make your infix parser recognize such a newline, and return failure
20:46 cognominal "my" infix parser?
20:47 pmichaud TimToady: except I think EXPR consumes <.ws>  prior to calling <.infixish>
20:47 masak overload <.ws>
20:47 pmichaud overloading <.ws> would seem to need a state variable to distinguish operator and term position :)
20:48 TimToady examine the ws retroactively
20:48 pmichaud retroactive <.ws> could work, I guess.
20:48 cognominal for coffeescript with indentation as syntax, overlaoding <ws> is necessary.
20:48 TimToady no, I mean just look at what .ws returned last time
20:48 pmichaud I was wondering if instead the .termish should denote a statement end if it sees a \n
20:49 TimToady there are various possibilities
20:51 [particle]1 joined #perl6
20:53 tadzik horray, I've stumbled on that GC bug again!
20:53 REPLeffect joined #perl6
20:55 tadzik https://gist.github.com/1169203#file_gistfile1.txt
20:58 * cognominal tries to get inspiration from the perl6 grammar.
20:59 jnthn tadzik: ooh
20:59 TimToady but yeah, keeping a lexer state variable is one of the many ways that P5 cheats, and we try to avoid keeping things other than where they belong in P6
20:59 pmichaud cognominal: we have a similar case when parsing closing braces followed by newlines, if that helps.
20:59 jnthn tadzik: Under gdb?
20:59 jnthn tadzik: Curious, that one looks like a potentially missing wb or something
20:59 jnthn tadzik: Though it could just be getting unlucky with memory layout.
20:59 tadzik jnthn: I think it's the same one as with the .WHY ordering
21:00 cognominal pmichaud: thx, that seems close enough
21:00 pmichaud cognominal: that's definitely a case where parsing of a term followed by a newline prevents certain types of parsing from occurring
21:00 tadzik jnthn: doesn't segfault under gdb
21:00 dalek rakudo/nom: b0da692 | (Martin Berends)++ | tools/test_summary.pl:
21:00 dalek rakudo/nom: [tools/test_summary.pl] do not count plans in fudged files, flussence++
21:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b0da692c8e
21:01 pmichaud flussence++ mberends++
21:01 pmichaud can we get some updated numbers?  ;-)
21:01 mberends I have some from OS X
21:01 dual joined #perl6
21:01 mberends "Synopsis", "pass","fail","todo","skip","plan","spec"
21:02 mberends "total",     13227,     3,   543,  1658, 15431, 21997
21:02 pmichaud nice
21:02 pmichaud I like those numbers.
21:03 pmichaud (I'll like it more when "pass" and "plan" are higher... but this looks good for now)
21:03 mberends the plan and spec were previously bogus, counting both the .t and the .rakudo files :/
21:03 jnthn We've yet to get back mass.t
21:03 flussence my current plan is to get a script that can reproduce the same numbers using make spectest, then use -j on that instead of trying to run multiple parallel builds myself
21:03 jnthn mberends: ouch!
21:03 benabik mass.t?  Is that testing to ensure the various parts of the compiler weigh the right amount?
21:04 tadzik I thought Rakudo passes like 21k of tests
21:04 tadzik I mean, master
21:04 pmichaud master is in the 21k range, yes.
21:04 tadzik so spec is not much wider
21:04 flussence master does, but the stuff on smolder.parrot.org counts TODO as pass IIRC
21:04 mberends S32-trig/pi.t aborted 3 tests
21:05 tadzik jnthn: it stopped segfaulting. Memory layout, it seems
21:08 pmichaud afk, lunch
21:10 flussence on 54e85a2, my code's close now but not exact: {fail => 0,  files => 462,  pass => 14408,  plan => 14951,  skip => 1658,  spec => 21861,  todo => 543}
21:10 flussence (test_summary from that revision prints "13230,0,543,1658,15431,31181,459")
21:11 flussence (oh, I think the TAP tarball might be out of date... hm)
21:15 lue is there an easy way to remove certain elements from an Array, in this case any element that is the string "" ?
21:16 masak lue: grep { $_.chars }, @array
21:16 flussence if you don't need to modify it in place, it's easier
21:16 masak well, @array.=grep(*.chars)
21:16 flussence or that :)
21:18 lue well, .=grep(*.chars) doesn't work, but the first one does.
21:19 REPLeffect joined #perl6
21:19 flussence try ({$_.chars}), I noticed nom has a problem currying sometimes...
21:19 masak rakudo: my @a = "foo", "bar", "", "baz", ""; @a.=grep(*.chars); say @a.perl
21:19 p6eval rakudo a55346: OUTPUT«["foo", "bar", "baz"]␤»
21:19 wamba joined #perl6
21:21 PacoLinux joined #perl6
21:22 lue Curses. Using the grep command takes me from 2 failing tests to *-1 failing tests (and that's only because 'zeroth' is handled specially)
21:23 lue I get the error    splice() not implemented in class 'Mu'    .
21:25 tadzik Curses. Select hangs given a one-second-timeout
21:28 mberends bad news from the test_summary.pl: nom spectests are running quicker than master because of shorter startup times, but minimum per-test execution is up from about 3ms to 20ms in all test files :-(
21:31 Holy_Cow left #perl6
21:32 masak Curses. I never get anything done in the evenings anymore.
21:33 mberends masak: is that because you have a life nowadays? ;)
21:33 masak mberends: the correlation is too strong to dismiss...
21:34 lue .oO(After I'm done hacking on Numbers::Ordinal, I should get to writing an IF game...)
21:34 masak but it'll get better, it seems. I've maneuvered myself into a position where I can have a Perl 6 day a week.
21:34 masak and then I'll work on macros :>
21:35 pmichaud ...masak got a life?
21:35 masak maybe that's a bit of an exaggeration.
21:35 masak I got a full-time job.
21:36 flussence this is odd, I get files=>459 after accounting for obvious things, test_summary.pl and make spectest say I should have 458.
21:36 pmichaud mystery spectests!
21:36 mberends *chuckle*
21:36 masak maybe it's testing '.' and '..' :P
21:37 diakopter obo
21:37 jnthn mberends: Curious. Once I'm back from $trip I'd like to dig into those numbers a bit.
21:41 mberends jnthn: for more timing data I looked a little at setting up Popolnik whilst visiting moritz++, but got bogged down. I'll continue with that soon.
21:41 jnthn mberends: Every time you go to look at that, you get led ashtray :P
21:41 jnthn ;)
21:42 mberends :)
21:44 masak jnthn++ # best pun in a while! :)
21:44 * diakopter read that as 'in a whale' at first
21:45 masak bwhaha
21:45 masak it's jnthn, not Jonah.
21:45 Trashlord joined #perl6
21:46 mberends oh, recently autopunned: I haven't used 'goto' 'for' a 'while' :/
21:47 * masak wonders if that qualifies as an autopun
21:49 masak nom: role Container { method cry-for-help { say "Help, I'm trapped inside a $?CLASS.perl()!" } }; class Whale does Container {}; Whale.new.cry-for-help
21:49 p6eval nom 40fbe3: OUTPUT«Help, I'm trapped inside a Whale!␤»
21:49 jnthn Bible stories...told with parametric polymorphism.
21:49 masak there's a blogging series for ya.
21:50 lue is there an opposite to bless() in P6?
21:50 tadzik curse()
21:50 tadzik I do that all the time
21:50 masak the curse() builtin strips an object of its classhood.
21:50 masak having it stand there naked as just a low-level representation.
21:51 masak like a void *struct.
21:54 pmichaud hmmm... I wonder if "desecrate" or "defile" might be better :-)
21:55 pmichaud or.... "excommunicate"
21:55 pmichaud "banish"
21:55 masak "blaspheme", "maledict", "sacrilege".
21:56 pmichaud "expel"
21:56 masak "damn"
21:56 pmichaud "exile"
21:56 masak "jinx"
21:56 masak "hex" :P
21:56 pmichaud "curse" is what we tend to do at the beginning of variable names.    $!this-damned-attribute
21:57 pmichaud %!wtf ?
21:57 pmichaud @*welcome-to-the-seventh-ring-of-hades
21:57 masak @!fsking-twigils
21:57 pmichaud %?under_scores_are_e_v_i_l_2
21:58 pmichaud I've been trying to formulate a response to the hyphen-vs-underscore discusson on p6l
21:58 masak $!oh-and-apostrophes-aren't-evil?
21:58 frhodes joined #perl6
21:58 pmichaud I like apostrophes and hyphens.
21:58 * masak too
21:58 diakopter std: say !$$*a
21:58 * jnthn has found himself leaning to hyphens
21:58 p6eval std 516268a: OUTPUT«ok 00:01 119m␤»
21:58 jnthn I find them easier on the eye
21:59 chromatic joined #perl6
21:59 lue .oO(underscores are just deflated hypens)
21:59 diakopter specks in the eye are better than planks/beams
21:59 pmichaud ultimately I want to have a convention whereby I always know when to use hyphens and underscores... my best formulation at the moment is "always use hyphens, and if it doesn't work it means there's a bit more magic going on that you need to be aware of before using this"
22:00 masak I will probably keep using underscores for ALL_CAPS_IDENTIFIERS.
22:00 pmichaud all, since ALL_CAPS already means "magic here", that's probably okay.
22:00 lue nom: my $em—dash = 5; say $em—dash; # the real question is why do only *some* hyphens work?
22:00 p6eval nom 40fbe3: OUTPUT«===SORRY!===␤Confused at line 1, near "my $em\u2014das"␤»
22:01 masak tadzik: this might be of interest, btw: http://dev.perl.org/perl6/rfc/47.pod
22:01 wolfman2000 joined #perl6
22:01 pmichaud ...we still pay attention to the rfcs?  ;-)
22:01 masak I do. :)
22:01 masak lue: because it'd be hard to distinguish a hyphen and an em dash?
22:02 sorear good * #perl6
22:02 tadzik masak: for now, I'm stuck with Select returning wrong results on timeout = 0, and hanging on timeout = 1 :)
22:02 masak lue: you could always subclass the standard grammar and add it to the appropriate rule.
22:02 pmichaud lue: because we need to preserve em dash as a possible operator for better obfuscation possibilities?  ;-)
22:02 masak sorear: \o
22:02 tadzik hello sorear
22:03 lue nom: my sub infix:<–>($a, $b) { return $a..$b;}; say 2–5; # en dash
22:03 p6eval nom 40fbe3: OUTPUT«===SORRY!===␤Confused at line 1, near "say 2\u20135; #"␤»
22:03 lue :(
22:03 sorear pmichaud: I -1 the idea of using interior underscores to mark "magic" identifiers, for the simple reason that we can't mark one-word identifiers, and so it's inconsistant
22:03 pmichaud $_marked
22:03 sorear pmichaud: I would prefer to see us adopt the Unix libc convention of "magic internal identifiers have a single leading underscore"
22:03 sorear right
22:04 sorear and because of the SETTING === UNIT::OUTER genius, we don't need to ban _identifiers in user code
22:04 pmichaud sorear: I'm not saying so much that all magic identifiers should have underscores
22:04 frhodes joined #perl6
22:04 pmichaud that's not really my point.
22:04 pmichaud my point is that underscore usage should be exceptional
22:04 sorear there's no possibility of "user defines a _putc_unlocked, bam linker error, let's make _\w+ erroneous)
22:05 flussence ...and now that I've run test_summary.pl again it changed to 459! argh.
22:05 tadzik waagh
22:05 tadzik tadzik--
22:05 mberends hi sorear: if we reschedule #phasers, what days/times would suit you?
22:07 sorear mberends: my schedule hasn't completely settled.  I'd prefer to wait a week before deciding that.
22:07 flussence ok, all these numbers except for pass count match up... I get 14408, test_progress gets 13230. Going to check make spectest one more time
22:07 pmichaud wait a week is fine, I think.
22:07 mberends sure
22:08 pmichaud we can hold #phasers at the traditional time for now (more)
22:08 pmichaud sorear: if you come across  a better date/time that would suit you, let us know
22:10 lue all tests in Numbers::Ordinal pass! (for now, anyway. That'll likely change in the near future)
22:11 tadzik yay
22:11 tadzik lue: nom?
22:11 lue yes
22:11 tadzik mark it on the wiki then :)
22:12 lue Well, it doesn't contain all the features it should (in particular ordinal_digit). Once it does I'll change the wiki.
22:13 * lue wonders how much farther past 'trillion' &ordinal should go
22:15 tadzik yay, it passes!
22:16 sorear lue: does this module produce English text?
22:16 flussence make spectest still says 458 files, wtf...
22:16 flussence oh well, these numbers are close enough
22:18 mberends lue: you may have seen it, http://en.wikipedia.org/wiki/English-language_numerals
22:18 lue ordinal(25); # returns "twenty-fifth"
22:19 sorear lue: tip, modules like that are convnetionally named Lingua::EN::Something
22:19 lue mberends: Yes, I have. I frequently end up there when wanting english words like "duodenary"
22:20 REPLeffect joined #perl6
22:21 lue sorear: OK. I have thought about the language issue with a module like this.
22:21 sorear lue: there's an established convention in the Perl 5 community.  I don't think we should ignore it
22:22 sorear CPAN has lots of modules like Lingua::EN::Whatever, Lingua::DE::Whatever, Lingua::JA::Whatever
22:22 lue .oO(I was thinking of something like Numbers::Ordinal::en though.)
22:23 masak lue: what sorear said. my first reaction to the module was "oh my, that's very English-centric". should maybe be marked as such.
22:24 tadzik behold! https://github.com/tadzik/IO-Select
22:24 frhodes joined #perl6
22:24 lue Alright. Just so you know, I haven't ignored this issue, I had just been more concerned with getting working code up to this point. (will rename module to something like Numbers::Ordinal::EN)
22:26 sorear why not Lingua::EN::Ordinal?
22:27 mberends jnthn: nom test timings for you at jnthn.net:~mberends/2011/perl/nom/docs/test_summary.times and s/nom/rakudo/ for master.  That box smokes! Minimum test time on master 2.6ms, nom 12ms.
22:29 lue I could do that. In my mind Numbers::Ordinal::EN describes it better than Lingua::EN::Ordinal, but it doesn't matter too much to me how it's denoted as english. (Certainly won't do Lingua::EN::Numbers::Ordinal though)
22:29 sorear lue: see http://search.cpan.org/search?mode=all&amp;query=Lingua%3A%3AEN
22:30 gfldex joined #perl6
22:31 mberends lue: the point is that many other people have already adopted a convention, it helps you and them to "get with the program".
22:31 masak +1
22:31 masak let's not reinvent already round wheels.
22:32 lue Alright, I'll go for Lingua::EN (esp. seeing as someone already created Lingua::EN::Numbers::Ordinate)
22:33 jnthn mberends: thanks!
22:33 jnthn mberends: yes, it's fast :)
22:33 dalek ecosystem: a8e2417 | tadzik++ | META.list:
22:33 dalek ecosystem: Add IO::Select
22:33 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/a8e24175f8
22:34 lue [In case you haven't noticed, I'm not one to pay attention to P5 much, but I'll go along with it 'cos there's no reason not to :)]
22:34 pothos_ joined #perl6
22:35 mberends jnthn: and its uptime is 733 days :)
22:44 lue There, module renamed. (I just wish I could rename the repo on github to reflect the change more accurately)
22:44 tadzik can't you?
22:45 tadzik I think I did Pies -> panda
22:45 mberends istr the 'Edit' link lets you rename
22:45 tadzik or maybe I just created the new one and pushed the same things
22:45 masak lue: there's a rename function somewhere under Admin.
22:46 masak remember to update the ecosystem :)
22:46 tadzik and the wiki ;)
22:47 lue (that's why I couldn't find the rename function. NoScript hid the admin button)
22:48 tadzik NoScript on Github? Madness
22:50 masak NoScript is the only sane option in an insane world.
22:51 tadzik it may be sane, but I generally prefer to have working websites
22:52 frhodes joined #perl6
22:54 masak 'night, channel
22:54 frhodes joined #perl6
22:54 tadzik 'night Carl
22:54 lue actually I enabled javascript for github, but it needed to use an external website for the admin button
22:55 tadzik oddness
22:58 lue frequently big sites use many other sites for javascript (I hate when website use google analytics APIs in code that doesn't need it)
23:00 mberends aye
23:02 drbean joined #perl6
23:04 dalek ecosystem: cf986b1 | lue++ | META.list:
23:04 dalek ecosystem: Update my module entry in META.list (Lingua::EN::Numbers::Ordinal)
23:04 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/cf986b1ea2
23:05 lue I hear thunder. Goodbye planet o/
23:09 whiteknight joined #perl6
23:16 tadzik good night #perl6
23:19 [Coke] joined #perl6
23:24 plobsing joined #perl6
23:29 wamba joined #perl6
23:39 Psyche^ joined #perl6
23:46 thou joined #perl6
23:57 Holy_Cow joined #perl6

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

Perl 6 | Reference Documentation | Rakudo