# IRC log for #perl6, 2013-10-17

All times shown according to UTC.

Time Nick Message
00:07 jeffreykegler joined #perl6
00:13 jeffreykegler Tweet re Larry & craiglist: https://twitter.com/jzawodn/status/390609563113631744
00:14 araujo joined #perl6
00:14 jeffreykegler I
00:15 jeffreykegler I am assuming it's true, and if so, congrats
00:18 Psyche^ joined #perl6
00:22 BenGoldberg So I've got a silly question... I realize of course that the "proper" perl6 idiom for returning a numerically 0 value whose boolean truth-y-ness is True, is "return 0 but True".  However, it seems to me that it will probably be faster and more memory efficient to simply "
00:22 BenGoldberg to simply "return '0e0';"
00:23 grondilu r: say so 0e0
00:23 camelia rakudo e22ac2: OUTPUT«False␤»
00:23 BenGoldberg r: say so '0e0'
00:23 camelia rakudo e22ac2: OUTPUT«True␤»
00:24 grondilu oh
00:24 BenGoldberg Quotes matter
00:24 grondilu well, that's a neet trick.  Maybe the optimizer could turn 0 but True into '0e0'
00:25 grondilu though it would not do the Boolean role.
00:25 grondilu r: say '0e0' ~~ Bool
00:25 camelia rakudo e22ac2: OUTPUT«False␤»
00:25 grondilu r: say (0 but True) ~~ Bool
00:25 camelia rakudo e22ac2: OUTPUT«False␤»
00:26 grondilu r: say '0e0' ~~ True
00:26 camelia rakudo e22ac2: OUTPUTÂ«Potential difficulties:â�¤    Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* insteadâ�¤    at /tmp/hGrSAs45BG:1â�¤    ------> [32msay '0e0' ~~[33mâ��[31m True[0mâ�¤0e0Trueâ�¤Â»
00:26 grondilu r: say (0 but True) ~~ True
00:26 camelia rakudo e22ac2: OUTPUTÂ«Potential difficulties:â�¤    Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* insteadâ�¤    at /tmp/c7apyxHS64:1â�¤    ------> [32msay (0 but True) ~~[33mâ��[31m True[0mâ�¤0Trueâ�¤Â»
00:27 grondilu ah nevermind
00:27 BenGoldberg Well, ideally, the optimizer would create a singleton 0 but True object, and all places which do "return 0 but True" would really do "return \$zerobuttrue.clone" or some such.
00:28 BenGoldberg r: say True ~~ Bool
00:28 camelia rakudo e22ac2: OUTPUT«True␤»
00:29 BenGoldberg r: say False ~~ Bool
00:29 camelia rakudo e22ac2: OUTPUT«True␤»
00:29 BenGoldberg r: say (-1 but False)
00:29 camelia rakudo e22ac2: OUTPUT«-1␤»
00:29 BenGoldberg r: say (-1 but False) ~~ Bool;
00:29 camelia rakudo e22ac2: OUTPUT«False␤»
00:35 grondilu r: my \$one = "one" but 1; say \$one + 2;
00:35 camelia rakudo e22ac2: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏one' (indicated by ⏏)␤  in method Numeric at src/gen/CORE.setting:11892␤  in sub infix:<+> at src/gen/CORE.setting:3884␤  in sub infix:<+> at src/gen/CORE.setting…»
00:35 grondilu n: my \$one = "one" but 1; say \$one + 2;
00:35 camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Cannot parse number: one␤  at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3745 (ANON @ 10) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3747 (NumSyntax.str2num @…»
00:36 * grondilu thought this would work
00:36 diakopter :}
00:39 [Coke] nqp: say(nqp::what(nqp::rand_n(100.2)))
00:39 camelia nqp: OUTPUT«error:imcc:syntax error, unexpected NREG, expecting '(' ('\$N5001')␤ in file '(file unknown)' line 60382055␤␤␤»
00:39 grondilu r: say 1 but "one"
00:40 camelia rakudo e22ac2: OUTPUT«one␤»
00:40 grondilu r: say 2 + (1 but "one")
00:40 camelia rakudo e22ac2: OUTPUT«3␤»
00:40 grondilu r: say 2 + ("one" but 1)
00:40 [Coke] nqp-jvm: say(nqp::what(nqp::rand_n(100.2)))
00:40 camelia rakudo e22ac2: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏one' (indicated by ⏏)␤  in method Numeric at src/gen/CORE.setting:11892␤  in sub infix:<+> at src/gen/CORE.setting:3884␤  in sub infix:<+> at src/gen/CORE.setting…»
00:40 camelia nqp-jvm: OUTPUT«␤»
00:40 [Coke] nqp-jvm: say(nqp::rand_n(100.2))
00:40 camelia nqp-jvm: OUTPUT«22.108048225152885␤»
00:41 [Coke] nqp-m: say(nqp::rand_i(123124))
00:41 camelia nqp-moarvm: OUTPUT«7502744162270190791␤»
00:41 [Coke] O_o
00:41 [Coke] is that a bug?
00:42 [Coke] nqp-m: say(nqp::rand_n(12.3124))
00:42 camelia nqp-moarvm: OUTPUT«0.406725␤»
00:42 [Coke] nqp-m: say(nqp::rand_n(12.3124))
00:42 camelia nqp-moarvm: OUTPUT«0.406725␤»
00:42 [Coke] nqp-m: say(nqp::rand_n(12.3124))
00:42 camelia nqp-moarvm: OUTPUT«0.406725␤»
00:42 [Coke] O_o
00:42 [Coke] nqp-m: nqp::srand();say(nqp::rand_n(12.3124))
00:42 camelia nqp-moarvm: OUTPUT«No registered operation handler for 'srand'␤compile_op␤»
00:42 [Coke] nqp-m: nqp::seed();say(nqp::rand_n(12.3124))
00:42 camelia nqp-moarvm: OUTPUT«Arg count 0 doesn't equal required operand count 1 for op 'seed'␤compile_mastop␤»
00:42 [Coke] nqp-m: nqp::seed(124);say(nqp::rand_n(12.3124))
00:42 camelia nqp-moarvm: OUTPUT«0.249771␤»
00:43 [Coke] nqp-m: nqp::seed(124);say(nqp::rand_n(12.3124))
00:43 camelia nqp-moarvm: OUTPUT«0.249771␤»
00:43 [Coke] nqp-m: nqp::seed(4);say(nqp::rand_n(12.3124))
00:43 camelia nqp-moarvm: OUTPUT«0.161399␤»
00:43 * [Coke] forgets the low level bit. :P
00:43 [Coke] anyway, we have 3 different backends each with 3 different sets of rand*.
00:47 Mouq nqp-m: for (0,1,2,3,4,5) { say(nqp::rand_n(12.3124)) }
00:47 camelia nqp-moarvm: OUTPUT«Rebuild in progress␤»
00:48 Mouq .oO( I need to make errors and program output output from camelia differently sometime, but that requires serious code refactoring)
00:49 Mouq nqp-m: for (0,1,2,3,4,5) { say(nqp::rand_n(12.3124)) }
00:49 camelia nqp-moarvm: OUTPUT«0.406725␤0.878274␤0.947417␤0.207722␤0.03578␤0.900015␤»
00:50 Mouq nqp: say(nqp::rand_n(12.3124))
00:50 camelia nqp: OUTPUT«error:imcc:syntax error, unexpected NREG, expecting '(' ('\$N5001')␤ in file '(file unknown)' line 43759623␤␤␤»
00:51 Mouq ...huh?
01:16 TimToady yes, I am now officially at craigslist as Artist in Residence, which is all true, except for the "residence" part, and maybe the "artist" part :)
01:17 TimToady I guess I'm just "in", except that doesn't seem too true either...
01:19 dayangkun joined #perl6
01:20 pdurbin joined #perl6
01:21 [Coke] I hope it's a great situation for you.
01:27 TimToady they have real good health insurance :)
01:27 TimToady and so far they seem like a great bunch of folks
01:29 TimToady the sort of folk who just like to quietly do good in the world :)
01:30 pdurbin TimToady: the best kind. and nice that they mentioned perl6 right in the tweet. congrats!
01:31 TimToady yes, they are intentionally supporting what I am already doing :D
01:31 pdurbin a nice hack
01:32 TimToady and put it very plainly that I was not allowed to feel like I was mooching :)
01:32 pdurbin TimToady: after all you've done... mooch a little :)
01:33 TimToady I do expect I can help them too, but for now I'm just hanging out on the internal channels too see if there's anything I can give advice on
01:34 TimToady also "we're hiring" :)
01:34 pdurbin :)
01:36 TimToady but they're also really excited by the potential of Perl 6 to help them down the road
01:38 diakopter o_O
01:41 TimToady potential efficiency, concurrency, internationalization
01:42 pdurbin gotcha
01:42 TimToady as with most people in this line of work, they'd like to get more done with less electricity :)
01:45 pdurbin oh sure. green computing
01:45 * [Coke] checks out the job postings.
01:48 pdurbin I was listening to http://mostlyerlang.com/2013/10/07/019-elixir-with-jose-valim/ today and https://twitter.com/joeerl was talking about http://elixir-lang.org , saying something to the effect that Elixir is the first language he knows of that's designed with so much input from so many people on the Internet... very different than when he designed Erlang in relative isolation. But of course, I was thinking,
01:48 pdurbin "What about http://perl6.org/archive/rfc/ ?"
01:57 colomon joined #perl6
02:53 sniz joined #perl6
02:55 Mouq rnp: sub foo (**@slice) { say +@slice }; foo; foo();
02:55 camelia pugs: OUTPUT«*** ␤    Unexpected "*@"␤    expecting formal parameter␤    at /tmp/MZifywwrna line 1, column 11␤»
02:55 camelia ..niecza v24-98-g473bd20: OUTPUTÂ«[31m===[0mSORRY![31m===[0mâ�¤â�¤Slice parameters NYI at /tmp/q5sm00iBec line 1:â�¤------> [32msub foo (**@slice[33mâ��[31m) { say +@slice }; foo; foo();[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.settiâ€¦Â»
02:55 camelia ..rakudo e22ac2: OUTPUT«0␤0␤»
02:57 jeffreykegler joined #perl6
02:57 Mouq r: sub foo (**@slice) { say +@slice }; foo; foo(); foo('a',('b','c'))
02:57 camelia rakudo e22ac2: OUTPUT«0␤0␤2␤»
03:11 xinming joined #perl6
03:11 xenoterracide joined #perl6
03:20 mattp_ joined #perl6
03:45 Myk267 joined #perl6
03:46 preflex joined #perl6
03:50 mattp_ joined #perl6
03:56 uvtc joined #perl6
03:57 uvtc Hi, #perl6. I've seen the term "fakecutable" (fake executable) in the logs here and in #moarvm. What is a fakecutable?
03:58 uvtc Also, congratulations on the work news, TimToady. Sounds like a nice company.
04:02 uvtc Well, contratulations to them as well, actually. :)
04:04 BenGoldberg A fake executable is a script pretending to be an executable :)  For example, a program named 'rakudo' which you can use to run perl6 programs, but which is actually an sh script instead of an executable binary program
04:07 xinming_ joined #perl6
04:08 jeffreykegler joined #perl6
04:09 uvtc Oh. Thanks, Ben. Yes. Like when you expect the program to be a binary, but it turns out to be a script which delegates to the binary --- or is a symlink to it.
04:12 uvtc So, eventually, there should be a `perl6` fakecuteable which delegates to rakudo, or moar, or whichever Perl 6 impl you've selected/installed. Reminds me of the Debian alternatives system.
04:13 jeffreykegler TimToady: a very classy and assertive move by craiglist.  As I understand it, your ability to devote full-time to Perl 6 will be a change, right?
04:15 uvtc r/installed/installed, I'm guessing/
04:15 TimToady well, getting paid for it will be :)
04:18 jeffreykegler Again, congratulations on this much deserved piece of good fortune
04:19 uvtc Oh, little appearance of Perl 6 in a reply to <https://news.ycombinator.com/item?id=6559177>.
04:40 diakopter uvtc: actually we use fakecuteable to mean an executable compiled from generated C that is a wrapper to launch the VM with your sript precompiled as bytecode or something
04:43 uvtc diakopter, Ah, that's a mouthful. :) Now I remember where I first heard that term. Back when Rakudo on Parrot was just coming on line, or, well, when a perl6 executable was finally becoming available.
04:45 uvtc diakopter, Thanks for the clarification.
04:46 diakopter uvtc: mouthful is my middle name
04:46 uvtc :)
04:51 uvtc left #perl6
04:52 fgomez joined #perl6
04:58 lue .oO(diamouthfulkopter?)
05:13 dwarring joined #perl6
05:13 genehack joined #perl6
05:13 dwarring r: say False but True
05:13 camelia rakudo e22ac2: OUTPUT«True␤»
05:14 dwarring ;)
05:28 rindolf joined #perl6
05:36 diakopter r: say True but False
05:36 camelia rakudo e22ac2: OUTPUT«False␤»
05:36 diakopter r: say False but False
05:36 camelia rakudo e22ac2: OUTPUT«False␤»
05:37 diakopter r: say False but False but False but False but False
05:37 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/MpBa8Rm41kâ�¤Operators 'but' and 'but' are non-associative and require parenthesisâ�¤at /tmp/MpBa8Rm41k:1â�¤------> [32msay False but False [33mâ��[31mbut False but False but False[0mâ�¤    expectingâ€¦Â»
05:37 lue r: say False but "FILE_NOT_FOUND"
05:37 camelia rakudo e22ac2: OUTPUT«False␤»
05:37 diakopter r: say False but die
05:37 camelia rakudo e22ac2: OUTPUT«␤  in block  at /tmp/rx2k5yAdpK:1␤␤»
05:37 diakopter r: say False but ...
05:37 camelia rakudo e22ac2: OUTPUT«Stub code executed␤current instr.: 'throw' pc 402455 (src/gen/CORE.setting.pir:169079) (src/gen/CORE.setting:10512)␤called from Sub 'sink' pc 438520 (src/gen/CORE.setting.pir:182308) (src/gen/CORE.setting:11902)␤called from Sub 'MAIN' pc 399 (src/gen/perl…»
05:39 diakopter r: say False but but
05:39 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/K0JB24qy5Zâ�¤Undeclared routine:â�¤    but used at line 1â�¤â�¤Â»
05:39 rindolf joined #perl6
05:42 dwarring heh
05:42 JimmyZ r: say False but Pi
05:42 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/e7AiPvaQ2tâ�¤Undeclared name:â�¤    Pi used at line 1â�¤â�¤Â»
05:43 dwarring r: say False but True but False
05:43 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/uEl3fsPFoaâ�¤Operators 'but' and 'but' are non-associative and require parenthesisâ�¤at /tmp/uEl3fsPFoa:1â�¤------> [32msay False but True [33mâ��[31mbut False[0mâ�¤    expecting any of:â�¤        poâ€¦Â»
05:43 dwarring nah
05:44 dwarring r: say ((False but True) but False) but True
05:44 camelia rakudo e22ac2: OUTPUT«True␤»
05:47 [Sno] joined #perl6
06:05 Myk267 left #perl6
06:09 PZt joined #perl6
06:13 raiph joined #perl6
06:29 dwarring r: say True does False but True
06:29 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8sNBfloiX8â�¤Operators 'does' and 'but' are non-associative and require parenthesisâ�¤at /tmp/8sNBfloiX8:1â�¤------> [32msay True does False [33mâ��[31mbut True[0mâ�¤    expecting any of:â�¤        pâ€¦Â»
06:29 SamuraiJack_ joined #perl6
06:37 FROGGS joined #perl6
07:01 JimmyZ What does this mean? I can't follow it ...
07:05 dayangkun_ joined #perl6
07:08 masak JimmyZ: http://irclog.perlgeek.de/perl6/2013-10-17#i_7723695
07:10 JimmyZ Yeah, I saw it. But I still don't what it is
07:10 JimmyZ don't know
07:10 masak JimmyZ: craigslist? it's a very early c2c site.
07:12 JimmyZ oh, I never heard about it
07:18 nwc10 JimmyZ: http://news.perlfoundation.org/2012/01/craigslist-charitable-fund-don.html
07:18 masak craigslist++
07:18 nwc10 that is pleasing news
07:19 masak ss/craigslist has become <(uquibuitous)> with/synonymous/ # :)
07:20 JimmyZ craigslist++
07:43 woolfy left #perl6
07:44 lizmat craigslist++ indeed # TimToady
07:44 salv0 joined #perl6
07:44 * lizmat continues with decommute&
07:48 darutoko joined #perl6
07:51 * masak .oO( \$decommute.resume )
08:01 iSlug joined #perl6
08:05 berekuk joined #perl6
08:08 daxim joined #perl6
08:09 mathw I think I might know too many cool programming languages
08:16 FROGGS mathw: write slangs for all of them and then you just can mix them properly :o)
08:17 sqirrel joined #perl6
08:26 dakkar joined #perl6
08:31 dmol joined #perl6
09:03 aindilis` joined #perl6
09:10 moritz so, today is rakudo release day, right?
09:10 moritz ++[Coke]
09:16 hlin_ joined #perl6
09:17 hlin_ joined #perl6
09:18 mathw FROGGS: ultimately, that'd be really cool :)
09:18 darutoko joined #perl6
09:32 dansamo joined #perl6
09:32 cognominal joined #perl6
09:33 masak ooh, release day.
09:33 masak now with more Moar!
09:33 masak hm, at least for the NQP release.
09:37 mathw yes, Rakudo on Moar isn't there yet AIUI
09:37 mathw very exciting though
09:38 moritz IMHO it would be nice to git-tag moar for the nqp release
09:39 FROGGS doit
09:39 FROGGS we are unable to checkout that version though
09:39 FROGGS or does --gen-moar handle that?
09:41 moritz is there a --gen-moar?
09:43 FROGGS I thought there is
09:43 FROGGS (and I thought you added it fwiw)
09:44 FROGGS sad, there is no such option :/
09:48 moritz FROGGS: no, I just added --install to moar's Configure.pl
09:49 moritz FROGGS: I meant to do --gen-moar, but so far haven't got around to it
09:49 FROGGS well, I think we won't really need it until rakudo has landed on moar too
09:55 fhelmberger joined #perl6
09:56 nwc10 joined #perl6
09:57 nwc10 left #perl6
09:57 nwc10 joined #perl6
09:58 dalek nqp/unified-build: d9060a7 | moritz++ | / (3 files):
09:58 dalek nqp/unified-build: create a ./nqp launcher
09:58 dalek nqp/unified-build: review: https://github.com/perl6/nqp/commit/d9060a749c
09:58 dalek nqp/unified-build: 4bcb5a1 | moritz++ | tools/build/Makefile-Parrot.in:
09:58 dalek nqp/unified-build: build NQP launcher by default; use it in test runs
09:58 dalek nqp/unified-build: review: https://github.com/perl6/nqp/commit/4bcb5a1ddf
09:58 moritz and with that, the unified-build branch of nqp is testable again
10:01 woosley left #perl6
10:05 moritz meh, nqp install is broken in that branch :/
10:06 masak \o/ /o\
10:06 moritz oh, probably just a stupid thinko on my part, and easy to fix
10:06 * moritz tries to be optimistic
10:12 dalek Perlito: 1bbe89c | (Flavio S. Glock)++ | / (4 files):
10:12 dalek Perlito: Perlito5 - perl6 - refactor_range_operator
10:12 dalek Perlito: review: https://github.com/fglock/Perlito/commit/1bbe89c99a
10:12 dalek Perlito: f7a7e8f | (Flavio S. Glock)++ | / (3 files):
10:12 dalek Perlito: Perlito5 - perl6 - refactor_range_operator - use .keys
10:12 dalek Perlito: review: https://github.com/fglock/Perlito/commit/f7a7e8ff30
10:38 dalek nqp/unified-build: 5dcc094 | moritz++ | tools/build/Makefile-Parrot.in:
10:38 dalek nqp/unified-build: fix installation
10:38 dalek nqp/unified-build:
10:38 dalek nqp/unified-build: also split up "install" in "base-install" and "exec-install".
10:38 dalek nqp/unified-build: The former installs the binary as nqp-p, the latter as nqp as well
10:38 dalek nqp/unified-build: review: https://github.com/perl6/nqp/commit/5dcc094cd7
10:41 moritz ok, rakudo build on top of nqp/unified-build succeeded
10:43 moritz now it just needs a .bat launcher on windows
10:44 avuserow joined #perl6
10:47 pdurbin left #perl6
10:49 dalek Heuristic branch merge: pushed 102 commits to Perlito/replito by creaktive
11:05 berekuk joined #perl6
11:19 berekuk joined #perl6
11:32 grondilu joined #perl6
11:56 * [Coke] thanks moritz++ for reminding him about the release.
11:57 * [Coke] warns folks that it will be late in the day here before it happens.
11:57 * [Coke] has not scheduled his day well around the release. :)
11:58 [Coke] but I am happy to do it.
11:58 * [Coke] scurries away to dayjob.
12:08 cognominal joined #perl6
12:09 cognominal joined #perl6
12:27 c1sung d
12:27 ggoebel7 joined #perl6
12:28 fglock joined #perl6
12:31 fglock p56: 0..\$#x, 0..\$#\$x, 0..\$#{func()}
12:31 camelia p5-to-p6 : OUTPUT«@x.keys(), \$x.keys(), func().keys()␤»
12:31 berekuk joined #perl6
12:36 SamuraiJack joined #perl6
12:43 pernatiy joined #perl6
12:44 PacoAir joined #perl6
12:45 TimToady those parens are never necessary, btw
12:47 colomon joined #perl6
12:53 avuserow joined #perl6
12:55 TimToady fglock: because argumentless methods are indistinguishable from attribute accessors, to Perl 6, and accessors are treated more like nouns than like verbs, so the () is really kinda non-idiomatic
13:00 colomon joined #perl6
13:02 grondilu p5eval: my @x = 1 .. 3; print join ' ', 0 .. \$#x
13:02 p5eval grondilu: 0 1 21
13:02 grondilu p5eval: my @x = 1 .. 3; join ' ', 0 .. \$#x
13:02 p5eval grondilu: 0 1 2
13:02 grondilu r: my @x = 1 .. 3; print @x.keys
13:02 camelia rakudo e22ac2: OUTPUT«012»
13:03 * grondilu thought \$#x was the number of elements
13:05 FROGGS no, highest index
13:05 FROGGS scalar @x is the element count
13:05 grondilu yeah, makes sense
13:06 masak I once read a blog post where someone had found some Perl teaching material that pointed out that \$#x returns @x-1 and then went on to say "this is a bug in Perl and will be fixed in the next version" o.O
13:08 grondilu p56: 1..\$#x
13:08 camelia p5-to-p6 : OUTPUT«1 .. @x.end␤»
13:09 grondilu p56:  0..*  # just curious
13:09 camelia p5-to-p6 : OUTPUT«missing value after operator '..' at perlito5.pl line 1385.␤»
13:09 grondilu oops, wrong sense
13:10 grondilu p65: # testing
13:11 masak p56: my \$x = "HAI"; "OH \${x}"
13:11 camelia p5-to-p6 : OUTPUT«my \$x = 'HAI';␤'OH ' ~ \$x␤»
13:11 masak nice.
13:11 Util r: my (\$x, \$y, \$dx, \$dy) = 15, 25, 1, 10; (\$x, \$y) = (\$x + \$dx, \$y + \$dy); say [\$x, \$y];
13:11 camelia rakudo e22ac2: OUTPUT«16 35␤»
13:11 Util r: my (\$x, \$y, \$dx, \$dy) = 15, 25, 1, 10; (\$x, \$y) Z+= (\$dx, \$dy);         say [\$x, \$y];
13:11 camelia rakudo e22ac2: OUTPUT«15 25␤»
13:12 Util Is this just due to op+= being NYI?
13:12 masak r: my (\$x, \$y, \$dx, \$dy) = 15, 25, 1, 10; (\$x, \$y) Z[+=] (\$dx, \$dy);       say [\$x, \$y];
13:12 camelia rakudo e22ac2: OUTPUT«15 25␤»
13:12 masak r: my (\$x, \$y, \$dx, \$dy) = 15, 25, 1, 10; (\$x, \$y) [Z+]= (\$dx, \$dy);       say [\$x, \$y];
13:12 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Z6OMDgPnr0â�¤Preceding context expects a term, but found infix = insteadâ�¤at /tmp/Z6OMDgPnr0:1â�¤------> [32mdx, \$dy) = 15, 25, 1, 10; (\$x, \$y) [Z+]=[33mâ��[31m (\$dx, \$dy);       say [\$x, \$y];[0mâ�¤Â»
13:13 masak Util: no, I don't know what's going on there.
13:13 masak Util: looks like a bug to me.
13:16 Util masak: thanks!
13:17 masak (it also looks a little familiar, so it might be submut already)
13:19 Util masak: I will check before submitting the bug. It looks familiar to me, too.
13:20 moritz it's something to do with the Z metaop losing the container somewhere, iirc
13:20 moritz or producing a new container
13:20 FROGGS masak: you are a git pro: how can I step back one single commit? like checking out one commit before the one I am on?
13:21 moritz or if you want to revert your branch to it, git reset --hard HEAD^ # loses the newest commit, and potentially uncommitted changes
13:21 masak what moritz said.
13:21 masak I have the latter alternative aliased as 'git undo' here :)
13:22 moritz in #git I would have answered with !revert, which lists that and a few other options
13:22 moritz (like git revert)
13:22 FROGGS ahh, cool
13:22 FROGGS moritz: thanks!
13:22 masak also, the 'loses' is a truth with modification: when you have 'git reflog', nothing is really lost for a month or so.
13:22 moritz right, only the uncommitted changes are actually lost
13:22 timotimo except unstaged changes
13:23 masak right.
13:23 timotimo the uncommitted changes are not lost, if they are staged. but they are really hard to find :P
13:23 masak if you 'reset --hard', don't come to me afterwards and whine about uncommitted changes :P
13:23 masak timotimo: troo
13:23 masak timotimo: but then we are definitely not in the porcelain anymore, Dorothy.
13:24 * masak .oO( timototo )
13:24 moritz timotimo: so how does one recover formerly-staged diffs?
13:24 timotimo if you remember the contents, you can grep your object storage :P
13:24 masak moritz: they will be a tree object somewhere in the object db.
13:25 timotimo i don't think there will actually be a tree
13:25 masak there will.
13:25 masak the staging area is a tree.
13:25 timotimo since the staged changes are usually just in the index file, no?
13:25 masak hm.
13:25 timotimo oh, that also goes into the object db?
13:25 masak suddenly I'm not sure.
13:25 grondilu p5eval: my \$foo = "bar"; sub f { "foo" }; "\${f()}";'
13:25 p5eval grondilu: ERROR: Can't find string terminator "'" anywhere before EOF at (eval 7) line 1.
13:26 moritz p5eval: my \$foo = "bar"; sub f { "foo" }; "\${\f()}";'
13:26 grondilu p5eval: my \$foo = "bar"; sub f { "foo" }; "\${f()}";
13:26 p5eval moritz: ERROR: Can't find string terminator "'" anywhere before EOF at (eval 7) line 1.
13:26 p5eval grondilu: No output
13:26 timotimo masak: i'll set up a little experiment and tell you the result
13:26 moritz p5eval: my \$foo = "bar"; sub f { "foo" }; "\${\f()}";
13:26 p5eval moritz: foo
13:26 masak timotimo: ah, it's not a tree until something does 'git-write-tree' on the staging area...
13:26 masak timotimo: (which generally happens during commit)
13:26 grondilu p56: my \$foo = "bar"; sub f { "foo" }; "\${\f()}";
13:26 camelia p5-to-p6 : OUTPUT«my \$foo = 'bar';␤our sub f (*@_) {␤    'foo'␤}␤\$(\f())␤»
13:27 FROGGS what discussion have I started /o\
13:27 grondilu r: my \$foo = 'bar'; sub f { "foo" }; \$(\f())
13:27 camelia rakudo e22ac2: ( no output )
13:27 masak p56: my \$x = 2; { my \$x = \$x }
13:27 camelia p5-to-p6 : OUTPUT«my \$x = 2;␤{␤    my \$x = \$x␤}␤»
13:27 grondilu r: my \$foo = 'bar'; sub f { "foo" }; say \$(\f())
13:27 masak ^^^ wrong
13:27 camelia rakudo e22ac2: OUTPUT«foo␤»
13:27 moritz r: my \$foo = 'bar';␤our sub f (*@_) { 'foo' }; say \$(\f())
13:27 camelia rakudo e22ac2: OUTPUT«foo␤»
13:28 moritz FROGGS: a fun discussion
13:28 timotimo oh, git stores all objects non-plain? what do they do to the contents?
13:28 * grondilu forgot how to do indirections in P5 :/
13:28 FROGGS ahh, good *phew*
13:28 timotimo i thought a blob object was just the word "blob", a length and then the content or something?
13:29 moritz timotimo: gzip, iirc
13:29 timotimo ah, i should be able to zgrep, right?
13:29 timotimo zgrep doesn't do -r?! :-(
13:29 moritz http://thread.gmane.org/gmane.comp.version-control.git/236238 if you are interested in some pack object details :-)
13:29 masak timotimo: they are all gzipped, yes.
13:30 timotimo no, not pack files please :P
13:30 masak right, pack files are the next step.
13:30 masak things are zipped already in the .git/objects stage.
13:30 jnap joined #perl6
13:30 timotimo moritz: there's a german talk with a recording somewhere, that uses a tool that displays the whole object db as a graph next to a console and then does some operations completely without porcelain *or* plumbing, just writing the files directly
13:31 masak hard-core.
13:31 timotimo surprisingly unhard actually :)
13:32 masak timotimo: if you want to see something nice, check out e83c516 of git.git
13:32 masak timotimo: a *very* small git.
13:32 masak (it's the first git commit)
13:32 timotimo the first git commit of git itself? cool :)
13:32 masak yep.
13:33 masak ~1300 lines of C code.
13:33 moritz and linus only committed it once he was able to commit it with git, of course :-)
13:34 skids joined #perl6
13:35 kaare_ joined #perl6
13:35 masak of course.
13:35 masak but those were purely plumbing commands.
13:35 lowpor03 joined #perl6
13:36 FROGGS moritz: the main-usage-with-j4-bug seems to be introduced by https://github.com/rakudo/rakudo/commit/9e05b525f39f21b41b2ae85dde96f5237cc4b943
13:36 FROGGS moritz: but reverting it doesnt make it go away :o(
13:37 moritz FROGGS: doesn't seem likely to me that that's actually the problem
13:38 FROGGS but the commit before works... which is https://github.com/rakudo/rakudo/commit/cd927656d7a1a379c50cd4cf10edfc4bb66a6857
13:39 jnthn timotimo: If you want to see the contents of a blob, git cat-file -p beefcafe
13:39 moritz FROGGS: IMHO it's more likely that that's a glitch in the bisect
13:40 FROGGS moritz: that is why I re-ran these manually
13:40 timotimo jnthn: i want to grep all my objects to see if one of them has staged-but-not-committed trees
13:40 jnthn git fsck --lost-found # may find them
13:41 FROGGS ohh damn
13:41 FROGGS moritz: false alarm, my windows vm got killed, so the last pass might be a false positive
13:42 jnthn Then look at the ones in .git/lost-found/other
13:42 jnthn they aren't gzip'd under there iirc so you can grep 'em more easily
13:43 lowpro30_ joined #perl6
13:43 jnthn You may also be able to use git grep, if you can find a way to feed it all the trees...
13:43 masak ooh, .git/lost-found
13:44 jnthn ...oh, but you said you didn't have a tree...
13:44 jnthn bbiab
13:46 grondilu p56:  our \$foo = "bar"; \${"foo"}
13:46 camelia p5-to-p6 : OUTPUT«our \$foo = 'bar';␤\$('foo')␤»
13:46 grondilu p5eval: our \$foo = "bar"; \${"foo"}
13:46 p5eval grondilu: bar
13:46 fglock TimToady: re non-idiomatic - thanks, fixing
13:46 grondilu r: our \$foo = "bar"; say \$('foo')
13:46 camelia rakudo e22ac2: OUTPUT«foo␤»
13:47 masak grondilu: \$() just itemizes a thing.
13:47 masak r: my \$foo = 'bar'; say \$::"foo"
13:47 camelia rakudo e22ac2: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
13:47 masak o.O
13:48 masak r: my \$foo = 'bar'; say ::'\$foo'
13:48 FROGGS r: our \$foo = "bar"; say \$::('foo')
13:48 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/E_9tOhWPDDâ�¤Two terms in a rowâ�¤at /tmp/E_9tOhWPDD:1â�¤------> [32mmy \$foo = 'bar'; say ::[33mâ��[31m'\$foo'[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or mâ€¦Â»
13:48 camelia rakudo e22ac2: OUTPUT«bar␤»
13:48 FROGGS r: our \$foo = "bar"; say ::('\$foo')
13:48 camelia rakudo e22ac2: OUTPUT«bar␤»
13:48 * masak submits rakudobug
13:51 TimToady under strict refs, p56 can assume it's getting a hard ref to \${}, but under no strict it can't really know whether it's getting a string or a ref
13:52 TimToady so we probably need to throw a disambiguating call in there that hardens a soft ref
13:53 lowpro30__ joined #perl6
13:55 diakopter o_O
13:55 TimToady diakopter: that's why we changed it in p6 :)
13:56 TimToady symbolic deref is always a different syntax in P6 from normal deref
13:57 hoelzro [Coke]++ # docs
13:57 diakopter o_O at awakeness
13:58 TimToady oh, had to take Tertia et al. to the airport
13:58 diakopter masak: did you see the   rj: constant a = a   in the backlog
13:58 sorear joined #perl6
13:59 diakopter sorear: howdy :)
13:59 lowpro30_ joined #perl6
13:59 colomon sorear!  \o/
13:59 FROGGS hi sorear!
13:59 diakopter rj: constant a = a
13:59 camelia rakudo-jvm e22ac2: OUTPUT«===SORRY!===␤java.lang.NullPointerException␤»
14:00 TimToady so what's gonna be the abbrev for the js backend?  s?  e?
14:01 masak diakopter: does... does that go in the RT perl6 queue? guess it does.
14:01 * masak submits rakudobug
14:02 FROGGS TimToady: not that we have no chars (graphemes?) left some day for new backends O.o
14:03 masak TimToady: abbreviation for the JS backend: 'rq'
14:03 * TimToady ponders what the abbrev for the APL backend will be
14:03 masak cf 'QUnit'.
14:03 masak 'JUnit' was taken by Java.
14:04 hoelzro has anyone writen a unit testing framework named Punitive?
14:04 bluescreen10 joined #perl6
14:04 hoelzro if not, I claim it for Perl 6.
14:05 diakopter hoelzro: how about Compensatory
14:05 masak sorear! \o/
14:05 masak sorear: I'm trying to grok sheaves and the Yoneda lemma. my brain hurts.
14:06 hoelzro diakopter: I don't get it =/
14:06 diakopter http://en.wikipedia.org/wiki/Punitive_damages
14:07 hoelzro ah =P
14:09 moritz if I create an nqp.bat, do I invoke it as ./nqp or as ./nqp.bat (on windows)?
14:09 masak so, compensatory damages is for the sake of the plaintiff, and punitive damages are to deter the defendant from relapsing?
14:09 masak moritz: either.
14:09 TimToady well, or to deter anyone else from trying the same thing...
14:09 masak right.
14:09 moritz masak: takk
14:09 diakopter erm
14:10 diakopter neither
14:10 masak moritz: and the idiomatic is backslash (\) not forward slash (/)
14:10 masak moritz: but I believe forward slash works too.
14:10 masak moritz: also, I think that (effectively) '.' is in \$PATH on Windows.
14:10 diakopter ./ doesn't work
14:10 masak ok.
14:11 masak so it's 'nqp' or 'nqp.bat'
14:11 moritz :(
14:11 TimToady is that punitive or compensatory?
14:12 diakopter OTOH
14:13 diakopter "./e.bat" does work :D
14:13 moritz \o/
14:13 moritz diakopter: does ./e work too?
14:13 masak waitwait
14:14 masak diakopter: if "./e.bat" *does* work, what was it that *didn't* work?
14:14 * TimToady bats his eyelashes
14:14 diakopter C:\Users\mwilson\bin>"./e.bat" foo
14:14 diakopter C:\Users\mwilson\bin>./e foo
14:14 diakopter '.' is not recognized as an internal or external command,
14:14 diakopter operable program or batch file.
14:15 diakopter (there is an e.bat in that dir)
14:16 diakopter it does the same thing as jnthn's e.bat --   @"c:\Program Files (x86)\Notepad++\Notepad++.exe" "%1" "%2" "%3" "%4" "%5" "%6" "%7"
14:16 TimToady Twinkle, twinkle, little bat!  How I wonder what you're at!
14:16 moritz is that leading @ important?
14:16 diakopter suppresses echo
14:16 FROGGS array context
14:17 FROGGS :P
14:18 masak oh, the quotes were part of the command. I see.
14:18 FROGGS diakopter: does "./e.bat" will look up the file in . only or in PATH too?
14:19 diakopter i'll try it
14:20 TimToady Up above the world so high / Like a tea tray in the sky!
14:20 diakopter FROGGS: nope
14:20 diakopter . only
14:20 FROGGS cool
14:20 * diakopter tries with ..
14:21 diakopter yeah, .. does the right thing
14:24 spider-mario joined #perl6
14:28 dalek nqp/unified-build: 1c31dff | moritz++ | / (3 files):
14:28 dalek nqp/unified-build: try to generate nqp.bat launcher for windows
14:28 dalek nqp/unified-build: review: https://github.com/perl6/nqp/commit/1c31dff51c
14:28 moritz anyone want to test that commit on windows?
14:28 moritz I have windows now, but haven't set up the toolchain so far
14:32 bluescreen10 joined #perl6
14:35 masak today's autopun spotting: https://twitter.com/peterseibel/status/390173252129013761
14:35 jnthn diakopter: Why on earth do you have "%1" "%2" ... instead of %* ?:
14:36 masak jnthn: maybe he just really likes to have arguments :P
14:36 jnthn :P
14:38 diakopter because %* strips original quotes
14:39 diakopter which le-breaks
14:39 jnthn oh...I never hit that problem :)
14:39 masak :)
14:39 jnthn also, why the hell... :)
14:39 jnthn That's horrible semantics!
14:39 diakopter well, I thought it did... I'll verify.
14:39 jnthn Well, maye I didn't oen files with spalweces in the name
14:39 jnthn gah
14:40 * masak .oO( when they said "worse is better", they didn't put nearly enough emphasis on the "worse" part... )
14:40 jnthn Well, maybe I didn't open files with spaces in the name
14:40 diakopter .oO( beware the spalweces.. )
14:41 diakopter jnthn: yep, %* does not preserve the quotes
14:41 masak "spalweces" sounds like a lazy contraction of "space whale feces", by professionals who have seen far too much of the latter.
14:42 masak diakopter: what about if you put the %* in quotes? "%*" ?
14:42 jnthn What a crappy profession :P
14:42 masak jnthn: it's a tough job, but someone's gotta do it.
14:42 diakopter it's only a problem when the space whales are the size of galaxy superclusters
14:42 diakopter masak: *cry*
14:43 lowpro30__ joined #perl6
14:44 diakopter erm.
14:44 diakopter actually it does preserve the quotes on %*
14:44 diakopter but...
14:45 diakopter ergh.
14:46 diakopter sigh.
14:46 diakopter apparently somewhere along the way, I acquired that superstition, spuriously
14:47 diakopter or I just can't remember the exact case to reproduce
14:51 dalek Perlito: 18da02f | (Flavio S. Glock)++ | / (2 files):
14:51 dalek Perlito: Perlito5 - perl6 - pretty-print - omit parenthesis when calling func/method without args
14:51 dalek Perlito: review: https://github.com/fglock/Perlito/commit/18da02f98d
14:52 colomon joined #perl6
14:57 TimToady fglock: also, I'd probably just translate \${x} to {\$x} when interpolating
14:58 berekuk joined #perl6
14:59 raiph joined #perl6
15:00 lowpro30_ joined #perl6
15:00 fglock I think now I've got some nice infrastructure for the refactoring
15:01 fglock with splitted steps for perl5 -> ast -> refactor -> pretty print
15:01 fglock this is getting interesting
15:04 masak fglock++
15:04 fglock yes, and I also need to translate chr(10) back to "\n"
15:04 masak fglock: this is highly interesting to watch!
15:04 TimToady translation is always a fascinating subject, where "fascinating" is a euphamism for "terrifyingly open-ended"
15:04 fglock or better, print "\n" to say(...)
15:06 TimToady or print "foo\n" to say "foo"
15:06 fglock yes - that is easy because the "\n" is already stripped off as a special char
15:08 araujo joined #perl6
15:08 c1sung joined #perl6
15:09 c1sung joined #perl6
15:09 c1sung joined #perl6
15:09 TimToady okay, so with the ast approach you could actually turn \$x . "stuff" into "{\$x}stuff" even if they didn't use \${x} in the first place
15:10 c1sung joined #perl6
15:11 TimToady unless one prejudices the pretty printer to use the same kind of operator, asssuming such info is even passed through the ast
15:11 TimToady certainly one must pass comments through, even though those would not typically be kept in a normal ast
15:11 c1sung joined #perl6
15:12 TimToady translating comments is another one of those open-ended topics :)
15:12 fglock yes, actually the AST is the same for "\${a}x" and \$a . 'x'
15:12 TimToady p56: 42; # Life, the Universe, and Everything
15:12 camelia p5-to-p6 : OUTPUT«42␤»
15:13 TimToady yeah, those have to come though, generally
15:13 pmurias joined #perl6
15:13 TimToady but sometimes they're amusingly wrong
15:13 pmurias fglock: you plan to use perlito for p5 -> p5 refactoring?
15:13 TimToady especially ones that say # workaround Perl 5 bug
15:13 fglock specially multi-line comments in a column besides the code
15:14 fglock pmurias: yes, that is something I'm playing with - to make a non-strict script strict by decalring the variables automatically
15:14 TimToady yes, alignment is nice, but not as critical as getting the info through
15:14 fglock or extract subroutines using vim
15:14 benabik joined #perl6
15:14 fglock *declaring
15:15 fglock pmurias: this is something I could use at work :)
15:15 TimToady it's okay to guess as long as you mark the guesses with something that is easy to search for
15:16 TimToady with maybe a suggestion for how to make it guess the other way next time
15:16 fglock I think I can implement the comment stripper as a side effect of <ws>
15:16 fglock like heredocs
15:16 pmurias reformating of the code seems to be an issue for the pretty print approach
15:16 pmurias unless all the code is formated with perltidy to start with ;)
15:17 fglock because it loses formatting, yes
15:17 * TimToady typically just attaches the ws as an attribute of whatever the last token was
15:17 fglock it is a kind of perltidy, just dumber (or smarter, depends how you look)
15:18 fglock but refactoring makes preserving attributes more tricky
15:19 pmurias you could try attaching the orginal source to pieces of ast
15:19 fglock maybe attaching comments to the top node of the statement, with (x,y) info
15:19 c1sung joined #perl6
15:19 TimToady pmurias: you still have to decide what to do when you one set of nodes to a different set
15:19 fglock pmuris: you have cases like m#xyz# #comment
15:20 fglock *pmurias
15:20 TimToady especially when there's a many-to-one or one-to-many mapping
15:20 fglock it is an interesting problem :)
15:20 pmurias TimToady: you mean when transforming the ast?
15:24 iSlug joined #perl6
15:25 fglock another thing I'm considering, is to delay BEGIN block execution and just translate the BEGIN block to perl6
15:26 fglock this will break some code, but I think it is what you would do if you would translate by hand
15:27 fglock executing BEGIN and serializing to perl6 would give funny looking results
15:29 TimToady there might be some recognizable patterns of intent that could be handled by hand
15:30 TimToady but I agree that translating the BEGIN is probably the better default
15:33 fglock decommuting &
15:47 sahadev is there an option to Str.lines that does not chomp the lines before returning? similar to open(..., chomp => False)
15:48 masak sahadev: hmmm... .lines is synonymous with .comb(/N+/)
15:49 masak sahadev: so it feels a little unintuitive to extend it that way.
15:49 masak sahadev: why not just re-add the line breaks with >>~>> "\n" ?
15:49 TimToady not all linebreaks are "\n"
15:49 berekuk joined #perl6
15:49 masak does it matter in this case?
15:50 * TimToady thinks that .comb is the farthest thing from the user's mind when they're using .lines
15:50 TimToady so I'm fine with a :!chomp option
15:50 benabik .split(/<?[\n]>/) ?
15:50 masak anyway, I would pull a pull request with a :!chomp option.
15:51 TimToady but the fact you have to put ! there maybe indicates the default is wrong
15:52 diakopter or a coincidence of naming
15:53 TimToady so maybe :nl to include the newlines, or some such
15:53 masak +1
16:00 jeffreykegler joined #perl6
16:00 TimToady :newlines would be clearer, since :nl might be taken to specify what you want for newline
16:01 TimToady :raw seems a bit too generic
16:01 TimToady :seps is a problem if they think of them as terminators rather than separators :)
16:01 TimToady awks use of RS notwithstanding...
16:02 TimToady same problem as :seps :)
16:03 TimToady of course, unicode talks about LINE and PARAGRAPH SEPARATORs so maybe it's not so bad
16:05 masak :keepnl
16:05 lowpro30__ joined #perl6
16:07 [Coke] :raw would mean bytes.
16:08 sahadev I like :keepnl. the intent is clearest there.
16:08 spider-mario joined #perl6
16:08 TimToady though just :keep couldn't mean much else
16:10 PerlJam :nl could be dual purpose ... :nl -- each line has whatever newlines were in the input.  :nl(\$stuff) -- each line has its newline replaced with \$stuff   :-)
16:11 TimToady that seems like a solution in search of a problem
16:12 timotimo so with :nl(True) you can replace each newline with True? :)
16:13 * masak .oO( :keepnl -- reverse the effects of global warming and rising sea levels! )
16:14 PerlJam does that mean it will eventially plunge us into another ice age?
16:14 TimToady alternatively, forget that option entirely, and force people to specify delimiter of <?after \n> if that's what they mean
16:16 * TimToady was hoping to have beachfront property soon, since currently we're about 15m above sea level
16:18 masak if there's one organization I could actually see surviving being totally submerged under water, it is Google.
16:20 TimToady weather Mountain View --> water temp 18℃ with current from the N at 1.3 knots
16:20 diakopter waves chompy
16:21 sahadev TimToady: how does one specify a delimiter option to .lines? I don't see a supported parameter in the spec.
16:21 sahadev .split could be used, I guess
16:22 prevost joined #perl6
16:22 TimToady the problem with using split is that strings aren't naturally very lazy
16:22 xenoterracide joined #perl6
16:23 TimToady unless they're cats, which are naturally lazy
16:23 TimToady but all the cats are feral so far
16:24 * TimToady had better go buy some kitty litter before our cat decides to go feral...
16:24 sahadev TimToady: I might have misread, but when you said "... forget that option entirely, and force people to specify delimiter of <?after \n> ...", weren't you talking about .lines?
16:24 TimToady .lines(:delim(/<?after \n>/)) or some such
16:25 TimToady presumably whatever open uses for the same kind of option
16:25 PerlJam open uses :nl   :)
16:25 autark joined #perl6
16:26 TimToady otoh it feels like something that should be optimized relative to the normal chomp mode, and that's a pretty complicated option to recognize as doing something simpler
16:27 PerlJam It's weird that open has :chomp which subsequently affects get and lines
16:27 sahadev open uses :chomp too, which is a Bool, whereas :nl is not.
16:27 TimToady it's the wrong default
16:28 TimToady but there's no obvious antonym to "chomp"
16:29 * TimToady --> kitty litter store
16:29 diakopter you don't need another litter of kittens
16:29 diakopter nobody needs more kittens
16:32 mathw I have strange kitty litter
16:32 mathw to aid in the collection of a urine sample so the vet can find out what's wrong with my cat
16:32 mathw the cat, of course, doesn't believe it's litter and refuses to use it
16:33 rindolf joined #perl6
16:34 DarthGandalf joined #perl6
16:42 dalek nqp/unified-build: f55635a | moritz++ | tools/build/Makefile-JVM.in:
16:42 dalek nqp/unified-build: [JVM] move some generated files to gen/jvm/
16:52 raiph joined #perl6
16:58 [Coke] TimToady: I was just talking with ROODE who recalled chop/chomp/chip/chimp. small world.
16:59 [Sno] joined #perl6
17:06 havenwood joined #perl6
17:12 FROGGS joined #perl6
17:16 spider-mario joined #perl6
17:28 TimToady [Coke]: it was never entirely clear what "chimp" would mean...
17:32 daxim http://p3rl.org/Text::Chomped
17:50 ssutch joined #perl6
18:05 FROGGS joined #perl6
18:05 raiph joined #perl6
18:06 jnap joined #perl6
18:06 raiph joined #perl6
18:06 timotimo there is no method to split a filename into extension and rest?
18:08 FROGGS timotimo: I believe the IO::Spec basename was stripped because it was not specced and not needed (in rakudo)
18:09 timotimo is there a non-mutating version of ~~ s/.../.../?
18:09 SamuraiJack joined #perl6
18:09 * timotimo tries to make something with perl6 and figures out he's completely untrained
18:10 FROGGS hmmm, I thought it was in File::Spec module, but it is not :/
18:11 timotimo i figured out i can just as well just use m/.../ for this task
18:11 FROGGS yeah, you probably know best what a file extension is to you and what not :o)
18:11 timotimo :)
18:12 FROGGS (thinking about dot-files and files with several dots...)
18:12 timotimo i'm surprised .path.mkdir is not a thing
18:13 timotimo god damnit, dir() is slow
18:13 timotimo takes like 5 seconds to list my .. hold on
18:13 timotimo 100 things in my home directory
18:13 timotimo (on parrot)
18:13 FROGGS r: say IO::Path.^methods
18:13 camelia rakudo e22ac2: OUTPUT«SPEC dir BUILD path parts basename directory volume Bridge Int succ pred IO open is-absolute is-relative absolute relative cleanup resolve parent child copy chmod contents d e f s l r w x z modified accessed changed new Str gist perl Numeric␤»
18:13 FROGGS basename, see ^^
18:14 FROGGS r: say "test.txt".IO.path.basename
18:14 camelia rakudo e22ac2: OUTPUT«test.txt␤»
18:14 FROGGS r: say "C:\\test.txt".IO.path.basename
18:14 camelia rakudo e22ac2: OUTPUT«C:\test.txt␤»
18:14 FROGGS hmmm
18:14 FROGGS r: say "/tmp/test.txt".IO.path.basename
18:14 camelia rakudo e22ac2: OUTPUT«test.txt␤»
18:15 FROGGS r: say "/tmp/test.txt".IO.path.parts
18:15 camelia rakudo e22ac2: OUTPUT«("volume" => "", "directory" => "/tmp", "basename" => "test.txt").hash␤»
18:15 FROGGS no extension :/
18:15 Quom joined #perl6
18:15 timotimo hehe
18:16 timotimo i've tried all those parts
18:20 Quom r: say 'is there a non-mutating version of ~~ s/.../.../?'.subst(/(is) (there)/, {"\$1.tc \$0.lc"})
18:20 camelia rakudo e22ac2: OUTPUT«is there a non-mutating version of ~~ s/.../.../?␤»
18:20 berekuk joined #perl6
18:20 Quom Hm
18:20 Quom r: say 'is there a non-mutating version of ~~ s/.../.../?'.subst(/(is)\s(there)/, {"\$1.tc \$0.lc"})
18:20 camelia rakudo e22ac2: OUTPUT«there.tc is.lc a non-mutating version of ~~ s/.../.../?␤»
18:21 Quom Close enough :)
18:21 Quom r: my \$a = 'abcd'; \$a.subst(/b/,'2'); say \$a
18:21 camelia rakudo e22ac2: OUTPUT«abcd␤»
18:26 TimToady maybe an strace would point out any excessive syscalls
18:29 bluescreen10 joined #perl6
18:30 ajr joined #perl6
18:30 diakopter heh, the opendir op isn't yet mapped in moar
18:32 isBEKaml joined #perl6
18:34 hexcoder joined #perl6
18:37 Rotwang joined #perl6
18:45 dalek joined #perl6
18:45 hexcoder std: my \$spot is Scalar
18:45 camelia std a0bcfb1: OUTPUT«ok 00:01 121m␤»
18:46 hexcoder r: my \$spot is Scalar
18:46 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/92PjGHviDlâ�¤Variable trait 'is TypeObject' not yet implemented. Sorry. â�¤at /tmp/92PjGHviDl:1â�¤------> [32mmy \$spot is Scalar[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        scoped declaratorâ€¦Â»
18:46 hexcoder n: my \$spot is Scalar
18:46 camelia niecza v24-98-g473bd20: OUTPUTÂ«[31m===[0mSORRY![31m===[0mâ�¤â�¤Trait name not available on variables at /tmp/ohxUKVKKjj line 1 (EOF):â�¤------> [32mmy \$spot is Scalar[33mâ��[31m<EOL>[0mâ�¤â�¤Potential difficulties:â�¤  \$spot is declared but not used at /tmp/ohxUKVKKjj line 1â€¦Â»
18:47 hexcoder funny, with my rakudo * at home, I get "Null PMC access in get_string()"
18:48 timotimo well, strace for dir() gives me a *whole* bunch of brk calls ;)
18:48 btyler joined #perl6
18:49 araujo joined #perl6
18:53 timotimo it does the getdents twice and then just spents a lot of time doing whatever it is it's doing
19:02 TimToady probably not the syscalls then
19:02 TimToady brk is fairly cheap when it's just extending an already allocated memory page
19:03 TimToady maybe it's one of those "allocate 100_000 things just in case" things :/
19:04 TimToady or maybe it's calling a parser just to see if the name is . or ..
19:04 TimToady or maybe it's using junctions
19:07 * jnthn back
19:14 frettled joined #perl6
19:19 jeffreykegler joined #perl6
19:22 TimToady huh, it is using a junction: sub dir(Cool \$path = '.', Mu :\$test = none('.', '..')) {
19:23 TimToady timotimo: maybe try timing it with dir('..', True) or some such
19:23 TimToady er, :test(True) I guess
19:25 jnthn That's one of the optimizer-can't-easily-unroll cases of junctions too
19:25 yoleaux 19:22Z <FROGGS> jnthn: can you please review these changes? https://github.com/MoarVM/MoarVM/compare/doughera?expand=1
19:25 yoleaux 19:23Z <FROGGS> jnthn: I think all are okay except https://github.com/MoarVM/MoarVM/commit/22f81032b340f49cbc7da11d1676688ea547e6ac
19:26 jnthn git log -p master..doughera
19:27 jnthn uh, dammit
19:27 FROGGS :o)
19:31 TimToady or try a micro-optimization: test => { .ord != 46 or not /^ '.' ** 1..2 \$/ }
19:33 timotimo well, the difference between :test and no :test is about 0.5 seconds out of 7 seconds
19:33 timotimo er, 7.5 seconds
19:34 TimToady since "dir is now lazy" according to the changelog, I'm suspecting it's the 100_000 thing
19:34 autark joined #perl6
19:35 sqirrel flashmob cologne germany
19:35 sqirrel may the force be with you
19:35 FROGGS :o)
19:36 timotimo oh, the "i want a 1 million entries list, kthx?"?
19:36 timotimo thing?
19:38 TimToady http://irclog.perlgeek.de/perl6/2013-10-04#i_7672040 is the middle of the discussion
19:39 timotimo ah, yes. i'd've gone with 1000 as well instead of 100_000
19:40 TimToady you might try changing that in src/core/ListIter.pm and see if it makes a timing difference in this case
19:41 * TimToady will also again point out that Perl 5 starts at, like 4
19:41 timotimo i'm currently not free to do such things, sorry
19:42 TimToady it might just be general VM slothfulness too
19:43 Rotwang joined #perl6
19:44 lue hello world o/
19:48 jnthn FROGGS: 22f810 is just one of those "argh, compilers" things. It's not the prettiest fix, but we'd better just cope
19:49 jnthn Um, as in, there's not a pretty fix :)
19:49 kshannon joined #perl6
19:50 FROGGS I was hoping for a "yeah, but" :o)
19:51 jnthn Well, we could pick a better name is all
19:51 FROGGS yeah :/
19:51 jnthn But let's take the patch and we deal with that later.
19:51 jnthn Better that we build.
19:51 FROGGS I tested it on linux so far and it passes...
19:52 FROGGS I have not a working solaris atm
19:52 FROGGS jnthn: you tested it on windows? just to be sure?
19:52 FROGGS I can do that too...
19:52 jnthn I can do, but I'm generally quite trusting of doughera++ patches :)
19:53 FROGGS k
19:53 FROGGS will merge now
19:53 jnthn Building it here just in case
19:54 jnthn eeks, doesn't build
19:54 FROGGS O.o
19:54 jnthn src\io\dirops.c(203) : error C2039: 'dir_name' : is not a member of 'MVMOSHandleBody'
19:55 jnthn oh, it's stuff in #define for WIN32
19:57 FROGGS yeah, now we need to spot all cases
19:58 FROGGS jnthn: I an fix it too if you got other stuff to do
19:58 jnthn Just got a fix build here
19:59 jnthn pash it
20:01 * FROGGS .oO( aaahhh, sssss, pash it, pash it good )
20:01 FROGGS okay, that was not much to fix
20:02 jnthn :)
20:03 FROGGS okay, it is in master now
20:03 dalek joined #perl6
20:04 jnthn yay :)
20:05 FROGGS I wasted the last two days biseting the main-usage.t fails I get when running 4 jobs + my windows vm
20:05 FROGGS bisecting*
20:06 jnthn :S
20:06 jnthn Did you get it down to anything?
20:06 FROGGS looks like I an only reproduce it when beeing at work O.o
20:06 FROGGS because I had failing commits that pass here on my couch >.<
20:07 FROGGS at work it looked like as if something around july 3rd did it
20:16 timotimo r: class Testclass { has num \$.a; }; my Testclass \$a .= new(:a(10));
20:16 camelia rakudo e22ac2: OUTPUT«Cannot modify an immutable value␤  in block  at src/gen/CORE.setting:838␤  in method BUILDALL at src/gen/CORE.setting:821␤  in method bless at src/gen/CORE.setting:810␤  in method new at src/gen/CORE.setting:795␤  in method new at src/gen/CORE.setting…»
20:16 timotimo :o
20:17 timotimo r: class Testclass { has Num \$.a; }; my Testclass \$a .= new(:a(10));
20:17 camelia rakudo e22ac2: OUTPUT«Type check failed in assignment to '\$!a'; expected 'Num' but got 'Int'␤  in block  at src/gen/CORE.setting:838␤  in method BUILDALL at src/gen/CORE.setting:821␤  in method bless at src/gen/CORE.setting:810␤  in method new at src/gen/CORE.setting:795␤ …»
20:17 timotimo r: class Testclass { has Num \$.a; }; my Testclass \$a .= new(:a(10.0));
20:17 camelia rakudo e22ac2: OUTPUT«Type check failed in assignment to '\$!a'; expected 'Num' but got 'Rat'␤  in block  at src/gen/CORE.setting:838␤  in method BUILDALL at src/gen/CORE.setting:821␤  in method bless at src/gen/CORE.setting:810␤  in method new at src/gen/CORE.setting:795␤ …»
20:17 timotimo right ...
20:17 timotimo to get a num you have to work hard :P
20:17 jnthn 10e0
20:18 timotimo can we get a use Num; or something btw?
20:18 timotimo r: { my \Rat := Num; say 10.5.WHAT }; say 10.5.WHAT;
20:18 camelia rakudo e22ac2: OUTPUT«===SORRY!===␤No compile-time value for Rat␤»
20:18 jnthn Should be do-able as a slang maybe...
20:18 timotimo r: { my \Rat ::= Num; say 10.5.WHAT }; say 10.5.WHAT;
20:18 camelia rakudo e22ac2: OUTPUT«===SORRY!===␤No compile-time value for Rat␤»
20:18 timotimo r: { constant \Rat := Num; say 10.5.WHAT }; say 10.5.WHAT;
20:18 camelia rakudo e22ac2: OUTPUT«===SORRY!===␤Default constructor for 'Num' only takes named arguments␤»
20:19 jnthn I think it expects whatever you supply the toake the same things a Rat constructor does
20:19 timotimo so ... *theoretically* this could work, except it tries to Rat.new(:nom(20), :denom(11))
20:19 jnthn yeah
20:20 jnthn r: { constant \Rat := Num but role { method new(:\$nom, :\$denom) { \$nom.Num / \$denom.Num } }; say 10.5.WHAT }; say 10.5.WHAT;
20:20 camelia rakudo e22ac2: OUTPUT«===SORRY!===␤Too many positional parameters passed; got 3 but expected 1␤»
20:20 timotimo and it will do craptons of overhead because at first it tries to pull the number out to create a proper rat, *then* it calculates that back to make it a num :P
20:20 timotimo hehe
20:21 jnthn r: { constant \Rat := Num but role { method new(\$nom, \$denom) { \$nom.Num / \$denom.Num } }; say 10.5.WHAT }; say 10.5.WHAT;
20:21 camelia rakudo e22ac2: OUTPUT«(Num)␤(Rat)␤»
20:21 jnthn There you go :)
20:21 timotimo cool beans :)
20:21 jnthn yeah but it's compile time still :)
20:21 timotimo it's always nice that rakudo allows us to do stuff like that
20:21 timotimo yes, / and friends will still create rats if it can
20:21 LWA joined #perl6
20:23 nwc10 hangon, is that another of those insanely complex things that actually just works?
20:23 timotimo yeah
20:24 timotimo the compiler always does find_symbol('Rat') and friends when it builds constants etc
20:24 timotimo and that looks in the lexical scope
20:24 jnthn Ye,s if you stick that in a mdoule and export it then you have a pragma for "default 4.2 style constants to be Num not Rat"
20:26 timotimo so ... native num attributes in perl6 classes not supported with default BUILD?
20:26 timotimo coercive types are going to be interesting.
20:27 jnthn Yeah
20:27 jnthn It's part of the whole natives stuff that needs doing
20:29 * timotimo has no idea what that entails
20:30 timotimo same for coercive types
20:30 timotimo i'm also not sure if i'm going to finish the nodal stuff, i think i'll need some guidance for that some time
20:39 jnthn .oO( How many full time jobs worth of work do I have on Perl 6? :) )
20:43 nwc10 jnthn: "a sufficiency"
20:46 benabik joined #perl6
20:46 timotimo so ... a coercive type has a different type for typechecks and then does a coercion ... so is that using .Typename method calls?
20:50 dwarring joined #perl6
20:50 timotimo or how is it supposed to work?
20:51 timotimo for the simplest things like Str(Cool), it's easy, because then i can just say "oh, you mean to call .Str on any Cool that comes in"
20:51 timotimo and i suppose for custom types that can only sometimes work?
20:53 ssutch joined #perl6
20:53 berekuk joined #perl6
20:56 jnthn So far, my feeling is we need an nqp::istype variant that works in coercive contexts
20:56 jnthn And will accept a different result out
20:57 timotimo oh, so we want to pipe the value through nqp::istype and istype itself does the coercion?
20:57 timotimo what if we only want to check for match and not actually coerce?
20:57 jnthn No, we need another op...
20:57 jnthn nqp::istype will still be checky
20:57 jnthn I think that's how we want it.
20:57 timotimo and other things, like is \$foo ~~ CoerciveType mutating for \$foo? i don't think it should, actually.
20:58 ssutch joined #perl6
20:58 timotimo i agree, istype should not be magical like that
20:58 jnthn Well, that's where we'll need some spec work :)
20:58 jnthn We need to be careful at a level most people don't think of
20:58 jnthn Which is that coercion may involve a method call but certain things imply various type checks won't do that at present.
20:58 jnthn oh, that may not be true...
20:59 timotimo in my opinion, coercive types make sense mostly (perhaps only) in assigny situations like attributes, assignments and argument passing
21:00 timotimo that's the least implementor-torturing version i can think of, which may not be what we want to end up using
21:00 jnthn yeah, we need to define where they make sense and what there sematnics are in other places (possibly, error)
21:06 timotimo how much is missing actually to make has num \$.foo work?
21:07 jnthn That is probably fixable with BUILDPLAN tweaks
21:07 timotimo oh, nice!
21:08 jnthn Like, add some extra instruction codes
21:08 timotimo that sounds doable!
21:09 jnthn Yeah, it's like an ale-level task
21:09 timotimo i don't know what that's supposed to mean :|
21:10 zjmarlow joined #perl6
21:11 jnthn Well, a really easy, boring task is like, lager-level. But a really complicated one needs a stout or a barley wine. An ale is like, in the middle. :)
21:11 jnthn .oO( We all rate tasks by what kind of beer we'd want in order to take it on, right? :P )
21:11 timotimo heh.
21:15 xenoterracide joined #perl6
21:17 dayangkun_ joined #perl6
21:21 timotimo BUILD_LEAST_DERIVED is the only place where i have to work with buildallplan?
21:22 timotimo huh. i'm not actually sure why the buildplan is split into parrot and nonparrot
21:24 timotimo the only difference my eye can see is the use of atpos or atpos_s
21:27 timotimo oh, there's actually two copies, one for BUILDALL and one for BUILD_LEAST_DERIVED and the difference is probably just one line or something :P
21:27 timotimo but it's sufficiently hot code to require duplication for the tinyest difference
21:28 timotimo oh, it says why it needs to be different on parrot
21:28 berekuk_ joined #perl6
21:29 timotimo i'm kind of sad we can't just go ahead and do actual code generation
21:29 timotimo for the buildplan i mean
21:30 timotimo this still has things like strings for attributes instead of an integer slot for hash-less access
21:35 jnthn timotimo: Yeah, some hint_for love wouldn't go amiss :)
21:36 timotimo though the last time i timed that stuff it didn't seem to make a difference
21:36 timotimo i'd still like to try it some time, though
21:37 timotimo r: class Foo { has num \$.a; }; say Foo.^attributes[0].^methods
21:37 camelia rakudo e22ac2: OUTPUT«<anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> compose apply_handles get_value set_value container has-accessor readonly package Str gist␤»
21:37 timotimo r: class Foo { has num \$.a; }; say Foo.^attributes[0].container.^methods
21:37 camelia rakudo e22ac2: OUTPUT«No such method 'methods' for invocant of type 'Perl6::Metamodel::NativeHOW'␤  in block  at /tmp/3XpypOrDnl:1␤␤»
21:37 timotimo is that the proper way to figure out that it's a native attribute?
21:39 timotimo r: class Foo { has num \$.a; }; say nqp::objprimspec(Foo.^attributes[0].container);
21:39 camelia rakudo e22ac2: OUTPUT«2␤»
21:39 timotimo r: class Foo { has int \$.a; }; say nqp::objprimspec(Foo.^attributes[0].container);
21:39 camelia rakudo e22ac2: OUTPUT«1␤»
21:39 timotimo r: class Foo { has str \$.a; }; say nqp::objprimspec(Foo.^attributes[0].container);
21:39 camelia rakudo e22ac2: OUTPUT«3␤»
21:39 jnthn .type on the attribute meta-obj I think
21:39 timotimo r: class Foo { has Str \$.a; }; say nqp::objprimspec(Foo.^attributes[0].container);
21:39 camelia rakudo e22ac2: OUTPUT«0␤»
21:39 timotimo r: class Foo { has Str \$.a; }; sayFoo.^attributes[0].^type;
21:39 camelia rakudo e22ac2: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/gweer1mTTDâ�¤Undeclared routine:â�¤    sayFoo used at line 1â�¤â�¤Â»
21:39 timotimo r: class Foo { has Str \$.a; }; say Foo.^attributes[0].^type;
21:39 camelia rakudo e22ac2: OUTPUT«No such method 'type' for invocant of type 'Perl6::Metamodel::ClassHOW'␤  in block  at /tmp/Md10j0UM0S:1␤␤»
21:40 timotimo r: class Foo { has Str \$.a; }; say Foo.^attributes[0].HOW.type(Foo.^attributes[0]);
21:40 camelia rakudo e22ac2: OUTPUT«No such method 'type' for invocant of type 'Perl6::Metamodel::ClassHOW'␤  in block  at /tmp/kG47F8Kqv6:1␤␤»
21:40 timotimo oh wait, that's not right
21:40 timotimo r: class Foo { has Str \$.a; }; say Foo.^attributes[0].type;
21:40 camelia rakudo e22ac2: OUTPUT«(Str)␤»
21:40 timotimo r: class Foo { has str \$.a; }; say Foo.^attributes[0].type;
21:40 camelia rakudo e22ac2: OUTPUT«(str)␤»
21:40 timotimo that seems right, thanks!
21:40 timotimo r: class Foo { has str \$.a; }; say nqp::objprimspec(Foo.^attributes[0].type);
21:40 camelia rakudo e22ac2: OUTPUT«3␤»
21:46 timotimo r: class Foo { has str \$.a; }; my \$f = Foo.new; nqp::setattr(\$f, '\$.a', 'foo');
21:46 camelia rakudo e22ac2: OUTPUT«===SORRY!===␤Error while compiling block  (source text: "class Foo { has str \$.a; }; my \$f = Foo.new; nqp::setattr(\$f, '\$.a', 'foo');"): Error while compiling op call: Error while compiling block : Error while compiling op setattr: No registered operation han…»
21:46 jnthn bindattr
21:46 timotimo right, thanks
21:47 timotimo r: class Foo { has str \$.a; }; my \$f = Foo.new; nqp::bindattr(\$f, '\$!a', 'foo');
21:47 camelia rakudo e22ac2: OUTPUT«===SORRY!===␤Error while compiling block  (source text: "class Foo { has str \$.a; }; my \$f = Foo.new; nqp::bindattr(\$f, '\$!a', 'foo');"): Error while compiling op call: Error while compiling block : Error while compiling op bindattr: Operation 'bindattr' requ…»
21:47 timotimo r: class Foo { has str \$.a; }; my \$f = Foo.new; nqp::bindattr(\$f, '\$!a', Foo, 'foo');
21:47 camelia rakudo e22ac2: OUTPUT«use of uninitialized value of type Foo in string context  in block  at /tmp/7PMHxusCcT:1␤␤Can not bind attribute '' declared in class 'Str' with this object␤  in block  at /tmp/7PMHxusCcT:1␤␤»
21:47 timotimo wrong way around
21:47 timotimo and it probably should be bindattr_str and friends, right?
21:47 jnthn For native,s yeah
21:48 jnthn And you need to nqp::decont(\$f) there
21:48 jnthn But self is already donce't
21:48 jnthn *decont'd
21:48 timotimo ah, good.
21:48 jnthn bwaha...I was going to do ablaut on decont, wrote it, and realized how rude it was
21:50 timotimo de ... cunt? :)
21:50 diakopter :/
21:51 jnthn *sigh*
21:56 timotimo i now have a bit of code that i can now try to compile
21:56 colomon joined #perl6
21:58 berekuk joined #perl6
22:02 timotimo whaaaat, Could not find Perl6::BOOTSTRAP in any of:
22:03 berekuk_ joined #perl6
22:03 timotimo Method 'create_BUILDPLAN' not found for invocant of class 'Perl6::Metamodel::ClassHOW' huh
22:03 timotimo i accidentally locerwased the B ni buildplan
22:06 timotimo .... wow i can NOT type if i have a delay of >0.5s in my ssh
22:07 timotimo it may even be the same thing as hearing your own voice a second or so delayed playing back at you will cause you to not be able to continue speaking
22:09 timotimo rakudo.jvm stage parse takes 200 secodns on my poor weak old laptop :|
22:13 jnthn sleep &
22:15 timotimo d'oh, imprecise line numbers in backtraces on the jvm strikes again!
22:18 timotimo huh. This representation can not unbox to a native int - don't really know where i'm trying to interpret something as int :|
22:20 timotimo oh, haha
22:21 [Coke] timotimo: you want "timotimo" or your real name in the release announcement?
22:21 [Coke] Mouq: Ditto?
22:21 mujo joined #perl6
22:22 lizmat joined #perl6
22:23 timotimo i'd like the real name please :)
22:24 TimToady integers are reals too!
22:25 Mouq [Coke]: Real sounds good
22:25 TimToady r: say Int ~~ Real
22:25 camelia rakudo e22ac2: OUTPUT«True␤»
22:26 Mouq r: say Int ~~ Numeric
22:26 camelia rakudo e22ac2: OUTPUT«True␤»
22:26 Mouq r: say Int ~~ Num
22:26 camelia rakudo e22ac2: OUTPUT«False␤»
22:27 berekuk joined #perl6
22:27 dalek nqp: a7c5369 | dwarring++ | examples/rubyish/ (7 files):
22:27 dalek nqp: implemented rubyish lambda, etc - nqp::makeclosure++
22:27 dalek nqp: review: https://github.com/perl6/nqp/commit/a7c5369fe1
22:28 [Coke] grondilu: same question to you.
22:28 BenGoldberg joined #perl6
22:28 FROGGS joined #perl6
22:28 * dwarring feels the need to give ops karma nqp::makeclosure++
22:30 timotimo i don't know why, but my use of bindattr_* seems to be wrong
22:30 timotimo now i have a good reason to check out cokes op docs! :)
22:31 timotimo oh crap what did i do o_O
22:31 timotimo i think i just accidentally created a "nom" branch of nqp on github >_>
22:31 diakopter erm
22:31 timotimo no
22:32 timotimo nqp has master
22:32 tipdbmp joined #perl6
22:32 timotimo i think i'm using bindattr right. now i don't know what's going wrong
22:33 [Coke] ah. I'm pretty sure grondilu is also duped.
22:33 timotimo also, i'm getting cannot unbox to native int if i have a num attribute, so it's not the value that's going into the bindattr_ call
22:34 grondilu [Coke]: what question?
22:35 [Coke] .u æ
22:35 yoleaux U+00E6 LATIN SMALL LETTER AE [Ll] (æ)
22:35 [Coke] grondilu: what's your name?
22:35 * grondilu will be glad to figure in this
22:36 woolfy joined #perl6
22:37 [Coke] You're in as L.
22:37 [Coke] assuming that came from github.
22:40 timotimo ah, cool, now i'm getting a null pointer exception!
22:40 timotimo i must have made it better than before! >_
22:41 timotimo can objprimspec ever return null?
22:41 [Coke] I'd say check the docs, but I know who's working on those...
22:43 timotimo :)
22:43 timotimo objprimspec isn't doc'd yet
22:44 timotimo [Coke]: do you want to add "1 = int, 2 = num, 3 = str" to the "primitive type" text for primspec ops?
22:45 [Coke] timotimo: can you add it as long as you're in there?
22:45 timotimo oh, i do have a commit bit in nqp
22:46 dalek nqp: 152d483 | timo++ | docs/ops.markdown:
22:46 dalek nqp: explain what the primitive types for *primspec are.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/152d4836c0
22:46 ssutch joined #perl6
22:46 dwarring nqp: my \$n; my \$s := sub (){say(++\$n)}; \$s(); \$s() # closure
22:46 camelia nqp: OUTPUT«1␤2␤»
22:47 colomon joined #perl6
22:47 timotimo nqp-j: say(nqp::objprimspec(NQPMu))
22:47 timotimo nqp-jvm: say(nqp::objprimspec(NQPMu))
22:48 camelia nqp-jvm: OUTPUT«0␤»
22:48 timotimo how do i get a NPE :o
22:48 dalek rakudo/nom: b991e0b | coke++ | docs/announce/2013.0 (4 files):
22:48 dalek rakudo/nom: announcements aren't executable
22:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b991e0b70f
22:48 dalek rakudo/nom: 6364da9 | coke++ | docs/release_guide.pod:
22:48 dalek rakudo/nom: Document release schedule with no deps
22:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6364da9b37
22:48 dalek rakudo/nom: 7f8de0c | coke++ | docs/announce/2013.10.md:
22:48 dalek rakudo/nom: add release announcement for 2013.10
22:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7f8de0cd88
22:48 dalek rakudo/nom: b9d7c10 | coke++ | docs/release_guide.pod:
22:48 dalek rakudo/nom: relocate &name release
22:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b9d7c10543
22:48 dalek rakudo/nom: bd315da | coke++ | docs/release_guide.pod:
22:49 dalek rakudo/nom: need moar modules
22:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bd315da3c5
22:52 dwarring nqp: sub make_incr(){my \$n; sub (){say(++\$n)} }; my \$s:= make_incr(); \$s(); \$s()
22:52 camelia nqp: OUTPUT«1␤2␤»
22:52 lizmat [Coke]: I think the method postcircumfix:[] and {} changes to sub should be mentioned in the short list as well, no?
22:52 dalek nqp: c774afd | coke++ | VERSION:
22:52 dalek nqp: bump VERSION to 2013.10
22:52 dalek nqp: review: https://github.com/perl6/nqp/commit/c774afd8db
22:53 [Coke] lizmat: you did those, aye? Can you add a line for me?
22:53 lizmat will do
22:53 [Coke] lizmat++ !
22:53 [Coke] my plan is to try to get the nqp release done before I head out for a bit, then do the rakudo release when I return. plenty of time for volk to edit the announcement and the changelog. ;)
22:57 dalek rakudo/nom: 1f77c4c | (Elizabeth Mattijsen)++ | docs/announce/2013.10.md:
22:57 dalek rakudo/nom: Mention postcirumfix [] and {} changes from method to sub
22:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f77c4c734
23:05 timotimo a friend just sent me a link to a shop on amazon that sells ducks ... to solve my programming problems %)
23:08 lizmat joined #perl6
23:11 [Coke] lizmat++
23:11 dalek nqp: b8b44d8 | dwarring++ | docs/ops.markdown:
23:11 dalek nqp: some doco for nqp::makeclosure
23:11 dalek nqp: review: https://github.com/perl6/nqp/commit/b8b44d8cb0
23:11 * [Coke] heads out, will return much later.
23:20 woolfy joined #perl6
23:20 Mouq rn: my \$a .= ++; say \$a
23:20 camelia rakudo 1f77c4: OUTPUT«No such method '&postfix:<++>' for invocant of type 'Any'␤  in method dispatch:<.=> at src/gen/CORE.setting:1127␤  in block  at /tmp/1JVYQuHK8Z:1␤␤»
23:20 camelia ..niecza v24-98-g473bd20: OUTPUT«0␤»
23:22 Mouq Which of course means my \$a = \$a = \$a + 1, but I'd still think it should work :p
23:26 lue r: my \$a; \$a++; say \$a;
23:26 camelia rakudo 1f77c4: OUTPUT«1␤»
23:26 lue r: my \$a++; say \$a;
23:26 camelia rakudo 1f77c4: OUTPUTÂ«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/2w3w9SdWkLâ�¤Preceding context expects a term, but found infix + insteadâ�¤at /tmp/2w3w9SdWkL:1â�¤------> [32mmy \$a++[33mâ��[31m; say \$a;[0mâ�¤Â»
23:26 lue r: my \$a; \$a .= ++; say \$a;
23:26 camelia rakudo 1f77c4: OUTPUT«No such method '&postfix:<++>' for invocant of type 'Any'␤  in method dispatch:<.=> at src/gen/CORE.setting:1127␤  in block  at /tmp/AlIwmnBhTl:1␤␤»
23:28 * Mouq doesn't actually know how dispatch:<.=> works… fires up vim
23:34 * dwarring ....arrgh it's takeclosure
23:36 dalek nqp: 062b576 | dwarring++ | docs/ops.markdown:
23:36 dalek nqp: doco oops nqp::makeclosure => nqp::takeclosure
23:36 dalek nqp: review: https://github.com/perl6/nqp/commit/062b576a28
23:37 * dwarring glasses or bigger font
23:47 timotimo huh. on parrot it doesn't explode ...
23:58 grondilu [Coke]: did you get my privmesg?
23:58 * grondilu notices that [Coke] is afk
23:59 grondilu what the syntax for tell already?
23:59 timotimo r: class Foo { has num \$.a }; my Foo \$f .= new(:a(0e0)); # now works locally, but the code won't build on jvm :(
23:59 camelia rakudo 1f77c4: OUTPUT«Cannot modify an immutable value␤  in block  at src/gen/CORE.setting:838␤  in method BUILDALL at src/gen/CORE.setting:821␤  in method bless at src/gen/CORE.setting:810␤  in method new at src/gen/CORE.setting:795␤  in method new at src/gen/CORE.setting…»