Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-08-30

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:12 Psyche^_ joined #perl6
00:21 berekuk joined #perl6
00:30 berekuk joined #perl6
00:34 colomon joined #perl6
00:46 jnap joined #perl6
00:55 pdurbin joined #perl6
01:01 panchiniak left #perl6
01:13 [Coke] perl6 vs. java - please make sure "t/fudgeandrun" still works.
01:14 EvanTeit1lman joined #perl6
01:15 FROGGS joined #perl6
01:23 adu joined #perl6
01:26 colomon [Coke]: what do you mean by that?
01:30 kid51 joined #perl6
01:34 adu joined #perl6
01:41 diakopter probably he meant "vis a vis" instead of "vs"
01:49 geekosaur or that change to $*EXECUTABLE_NAME ?
02:14 diakopter oh
02:15 diakopter yeah.
02:31 colomon Just pulled latest rakudo-jvm, and t/fudgeandrun still works
02:45 FROGGS joined #perl6
03:12 mauke joined #perl6
03:13 preflex_ joined #perl6
04:03 takesako joined #perl6
04:03 dhaivat joined #perl6
04:37 daniel-s__ joined #perl6
04:46 SamuraiJack__ joined #perl6
04:53 hummeleBop joined #perl6
04:53 FROGGS joined #perl6
05:21 benabik joined #perl6
05:28 dayangkun joined #perl6
05:30 moritz \o
05:35 census joined #perl6
05:43 abnorman joined #perl6
05:58 snoopy` joined #perl6
06:00 dwarring joined #perl6
06:03 ssutch joined #perl6
06:03 dwarring std: role R { has $.a }; class C { has $b does R }
06:03 camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
06:03 dwarring rn: role R { has $.a }; class C { has $b does R }
06:03 camelia niecza v24-90-gd827fa8: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Trait does not available on variables at /tmp/urjTYAs13I line 1:â�¤------> [32m R { has $.a }; class C { has $b does R [33mâ��[31m}[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1…
06:03 camelia ..rakudo 7b26cb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/WaiXy5NuX3�Cannot call 'trait_mod:<does>'; none of these signatures match:�:(Mu:U $doee, Mu:U $role)�at /tmp/WaiXy5NuX3:1�------> �»
06:04 dwarring I think that's nyi
06:04 TimToady you can say has R $b if you merely want a constraint
06:05 TimToady otherwise, I'm not sure what you want there
06:05 dwarring std: role R { has $.a }; class C { has R $b }
06:05 camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
06:05 dwarring rn: role R { has $.a }; class C { has R $b }
06:05 camelia rakudo 7b26cb, niecza v24-90-gd827fa8:  ( no output )
06:05 dwarring ahh!
06:20 dwarring I'm trying to get b as a role on method a
06:21 dwarring end up with..
06:21 dwarring rn: role R { has $.a }; class C { has $.b }; my $obj = C.new( :b(42 does R) ); say $obj.b.a
06:22 camelia rakudo 7b26cb: OUTPUT«(Any)␤»
06:22 camelia ..niecza v24-90-gd827fa8: OUTPUT«Unhandled exception: Cannot use 'does' operator with an immutable object␤  at /home/p6eval/niecza/lib/CORE.setting line 1531 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1464 (infix:<does> @ 8) ␤  at /tmp/C22sjtFvTV line 1 (mainline @ 6) ␤  at…
06:22 dwarring *attribute a
06:23 TimToady rn: role R { has $.a }; class C { has $.b }; my $obj = C.new( :b(42 but R) ); say $obj.b.a
06:23 camelia rakudo 7b26cb, niecza v24-90-gd827fa8: OUTPUT«(Any)␤»
06:24 TimToady rn: role R { has $.a = 'howdy' }; class C { has $.b }; my $obj = C.new( :b(42 but R) ); say $obj.b.a
06:24 camelia rakudo 7b26cb, niecza v24-90-gd827fa8: OUTPUT«howdy␤»
06:24 TimToady 'does' attempts to change in place, which you can't do to 42
06:24 TimToady 'but' makes a copy and mixes into that
06:25 dwarring ok that makes sense
06:41 TimToady zzz &
06:41 ssutch joined #perl6
06:48 dmol joined #perl6
06:48 FROGGS joined #perl6
06:48 FROGGS o/
06:52 FROGGS .tell masak this is the evil: parrot/src/io/io_private.h:120:#define PIO_BUFFER_MIN_SIZE       2048  /* Smallest size for a block buffer */
06:53 yoleaux FROGGS: I'll pass your message to masak.
06:57 zakharyas joined #perl6
07:10 denis_boyun joined #perl6
07:11 berekuk joined #perl6
07:11 domidumont joined #perl6
07:14 kaleem joined #perl6
07:16 domidumont joined #perl6
07:16 moritz masak++ # t3 reviews
07:18 FROGGS .tell maska hmmm, maybe not, but it has an effect ...
07:18 yoleaux FROGGS: I'll pass your message to maska.
07:28 Rotwang1 joined #perl6
07:56 sqirrel joined #perl6
08:09 dalek Perlito: 8f1a1ea | (Flavio S. Glock)++ | / (3 files):
08:09 dalek Perlito: Perlito5 - js - slices use the array API
08:09 dalek Perlito: review: https://github.com/fglock/Perlito/commit/8f1a1ea9d8
08:20 xinming joined #perl6
08:31 donaldh joined #perl6
08:32 wtw joined #perl6
08:36 daxim joined #perl6
08:38 jnthn morning, #perl6
08:38 yoleaux 02:23Z <JimmyZ> jnthn: I doubt the gc bug are from compose in P6opaque.c, compose update st->size dynamically .
08:38 yoleaux 02:31Z <JimmyZ> jnthn: which may be set wrongly, and cause the pointer offset wrongly
08:38 yoleaux 02:40Z <JimmyZ> jnthn: I see nqp/parrot have spec.align, and MoarVM doesn't, Does MoarVM need it?
08:44 teslos joined #perl6
08:47 lizmat good *, #perl6!
08:48 lizmat fwiw, I'm seeing spurious parallel spectest errors in S32-io/*.t
08:48 lizmat wouldn't be surprised if they're using identical filenames in their tests
08:48 lizmat and thus trample on each other's results
08:50 hoelzro what time are other workshop attendees flying in/out of Frankfurt?
08:50 * hoelzro really should book his flight soon
08:51 lizmat I think  it would be nice if we could have a pre-workshop event
08:51 lizmat dinner if you will
08:51 jnthn I land 16:20 on Fri, leave 12:30 on Mon.
08:51 lizmat so if you could get to Frankfurt late Fri afternoon, that would be great
08:51 lizmat woolfy and I will be driving to Frankfurt on Thu afternoon, so that we can have a look at the venue on Fri morning early
08:52 donaldh joined #perl6
08:53 lizmat It's only a 3 hour drive from where we live
08:54 FROGGS jnthn: is it okay to commit a test to t/00-parrot/ that fails until a parrot pull request got applied? (so until after 2013-09-17)
08:55 FROGGS ohh, that is Friday the 13nth O.o
08:55 donaldh joined #perl6
08:55 jnthn FROGGS: Why does it take Parrot that long to apply a pull request?!
08:56 lizmat r: say <a b c> ∪ <b c d> ∪ <c d e>;
08:56 camelia rakudo 7b26cb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/q8Z0rfam1bâ�¤Two terms in a rowâ�¤at /tmp/q8Z0rfam1b:1â�¤------> [32msay <a b c> [33mâ��[31m∪ <b c d> ∪ <c d e>;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤       …
08:56 FROGGS jnthn: I'm just taking the worst case into account... and that is just acting right before parrot release time
08:56 jnthn FROGGS: ah
08:56 jnthn FROGGS: Anyway, I'd rather we don't have failing sanity tests...it suggests insanity...
08:56 lizmat r: sub infix:<<"\x222A">>(|p) { infix:<(|)>(|p) }; say <a b c> ∪ <b c d> ∪ <c d e>;
08:56 camelia rakudo 7b26cb: OUTPUT«set(a, b, c, d, e)␤»
08:56 FROGGS jnthn: so the test is here, locally :o)
08:56 jnthn FROGGS: Plus, is the effect of what you've fixed not visible from Perl 6 code?
08:57 FROGGS jnthn: masak's blog is affected
08:57 jnthn FROGGS: That is, does it not make sense to have it as a todo'd spectest?
08:57 lizmat so why do I still have to define the ∪ operator in the compunit to make it work?
08:57 donaldh good morning o/
08:57 yoleaux 29 Aug 2013 22:18Z <FROGGS> donaldh: does ./perl6 work on windows at all? https://github.com/perl6/roast/commit/c5c0a6879f
08:57 FROGGS jnthn: yeah, that might work too
08:57 donaldh FROGGS: oh, good q.
08:57 lizmat jnthn: any ideas about ∪ ?
08:57 jnthn lizmat: Maybe something differs in the name handling between setting compilation and afterwards...
08:58 donaldh FROGGS: It worked before the EXECUTABLE_NAME change, right?
08:58 jnthn r: say CORE::.keys
08:58 camelia rakudo 7b26cb: OUTPUT«&METAOP_REDUCE_RIGHT &METAOP_REDUCE_LIST &METAOP_REDUCE_CHAIN &METAOP_REDUCE_XOR &METAOP_HYPER &METAOP_HYPER_POSTFIX &METAOP_HYPER_PREFIX &METAOP_HYPER_CALL &hyper &term:<time> $=pod !CORE_MARKER &cwd &chdir &mkdir &rename &copy &symlink &link &chmod AST CallFrame …
08:58 jnthn r: say CORE::.keys.grep(/∪/)
08:58 camelia rakudo 7b26cb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/dZV570wNAbâ�¤Unrecognized regex metacharacter ∪ (must be quoted to match literally)â�¤at /tmp/dZV570wNAb:1â�¤------> [32msay CORE::.keys.grep(/[33mâ��[31m∪/)[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤   …
08:58 jnthn r: say CORE::.keys.grep(/'∪'/)
08:58 camelia rakudo 7b26cb: OUTPUT«&infix:<∪>␤»
08:58 jnthn lizmat: Oh...did you add them into the grammar?
08:59 FROGGS donaldh: I dunno what worked before and what not... it is just that there is no OS-switch when setting ./perl6
08:59 jnthn lizmat: All CORE.setting operators are also listed in Grammar.pm.
08:59 lizmat aha!
08:59 lizmat aha…  ok
08:59 donaldh FROGGS: agreed. There wasn't when the executable name was java, i.e. the line above.
08:59 lizmat will look at that
09:00 lizmat meanwhile, setting precedence is also still not working for any op with < or > in it or \xhhhh
09:00 jnthn Well, "not working" doesn't tell me much...what's the error?
09:01 lizmat ok: let me put it this way: if I uncomment the lines, the build of setting fails with an error message that I can't make heads ot tails of
09:01 lizmat https://gist.github.com/lizmat/6387859
09:01 donaldh FROGGS: I left [Coke]'s original workaround, for older versions of rakudo/jvm.
09:02 donaldh FROGGS: and presumed that doing the same would be sufficient.
09:02 FROGGS k
09:02 moritz lizmat: looks like a bootstrap issue in one of the traimod:<is> candidates
09:02 moritz (and yes, I know that's vague)
09:02 lizmat well, the candidate I just uncommented, pretty sure
09:03 jnthn lizmat: Well, bizzarely, if you look at the line numbers and follow those, you find yourself on the line that .new's X::Inheritance::UnknownParent
09:03 jnthn That is, in the multi trait_mod:<is>(Mu:U $type, *%fail) { ... } candidate
09:04 jnthn Which suggests the sub lookup failed somehow
09:05 lizmat this was the line: trait_mod:<is>(&infix:<<(<)>>,      :prec($iffy));
09:05 * jnthn wonders if the name handling is somehow busted...
09:05 jnthn r: sub infix:<<(<)>>() { }; say &infix:<<(<)>>
09:05 camelia rakudo 7b26cb: OUTPUT«sub infix:<(<)>() { ... }␤»
09:05 jnthn Hm, works there at least. :)
09:05 lizmat yes, but not at BEGIN time
09:06 lizmat why is that in a BEGIN block anyway?
09:06 lizmat I mean, it's at the end of the core setting, so late in execution anyway
09:06 jnthn Because we want to apply the traits once while the setting is being compiled, not every startup time...
09:06 lizmat but I guess still before the mainline
09:06 lizmat ok
09:06 jnthn Well, no, it's the opposite side of the compile-time boundary.
09:07 jnthn Which is really important.
09:07 pecastro joined #perl6
09:09 lizmat because you want to freeze that in the setting, gotcha
09:09 jnthn Aye. Also 'cus if you do it while the setting is being loaded, it counts as a change that should be re-serealized in everything else we pre-compile.
09:09 jnthn And thus makes all pre-compiled output larger.
09:11 * jnthn uncomments and builds one of the lines in the BEGIN that is commented out
09:15 lizmat jnthn: token infix:sym«"\x222A"» would be the right way to add to the grammar, right ?
09:16 lizmat or should I just plunk in the ∪ ?
09:19 lizmat plunking in the ∪  :-)
09:20 xinming joined #perl6
09:21 * lizmat notices that with the 400+ extra lines in the CORE setting, parse time has gone up from ~130 to ~140 seconds  :-(
09:22 lizmat plunking in the ∪ does it, plunking in the rest now  :-)
09:28 FROGGS the 7th nqp::shell() call dies with "Can't spawn child process" in my test script :o(
09:28 denis_boyun joined #perl6
09:29 dalek rakudo/nom: 0dc3ddf | (Elizabeth Mattijsen)++ | src/core/precedence.pm:
09:29 dalek rakudo/nom: Most iffy ops are actually chaining, judging from the grammar
09:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0dc3ddf21f
09:33 jnthn lizmat: Re-produced the error you described...on JVM :)
09:33 lizmat well, that's consistent anyway  :-)
09:34 lizmat jnthn: a mismatch between precedence.pm and the grammar:
09:34 lizmat trait_mod:<is>(&infix:<(.)>,        :prec($junctive_or));
09:34 lizmat token infix:sym<(.)> { <!before <sym> <infixish> > <sym> <O('%junctive_and')> }
09:35 colomon lizmat: I've noticed the parse slowdown in the smoke test results
09:36 colomon lizmat: seems like it took 90s for the longest time, then 100s for a few days, and today (I think?) it went up to 110s
09:36 lizmat it's just significant more code, settings now at 16518 lines
09:37 lizmat oops, 16158
09:37 colomon are you suggesting that a 2.5% increase in the lines of code should cause a 10% slowdown?
09:38 lizmat well, lots and lots more ops, maybe they're expensive?
09:38 lizmat more to search through?
09:38 donaldh I can imagine it is non-linear.
09:39 FROGGS mixins are expensive, yes
09:39 colomon actually, I guess my parrakudo vs jakudo timing tests do suggest there is a non-linear difference in parrakudo performance….
09:39 lizmat just be glad that I didnt' put any ∪ in the code, the parse would have taken 40 times longer
09:39 lizmat well, maybe 20 times
09:39 lizmat after it trying to parse for an hour, I gave up
09:39 jnthn lizmat: nqp::say (&infix:<<"\x2208">>).perl; in that BEGIN block comes back with Nil...
09:40 lizmat you mean the op is not known yet ?
09:42 jnthn Well, the lookup fails, yes.
09:42 jnthn oh...
09:43 jnthn World.pm:1999
09:43 jnthn A "are we compiling setting" check.
09:43 jnthn In name handling.
09:43 jnthn That exactly explains it.
09:44 lizmat a liitle cheaty  :-)
09:45 lizmat fwiw, I'm not seeing a fix here
09:47 jnthn :)
09:47 jnthn Yeah, I'm seeing what I can come up with
09:58 dalek rakudo/nom: 21b9bc9 | (Elizabeth Mattijsen)++ | src/core/precedence.pm:
09:58 dalek rakudo/nom: Make precedence of (.) in line with what Grammar.nqp says
09:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/21b9bc971c
10:06 rindolf joined #perl6
10:06 dmol joined #perl6
10:14 dalek Perlito: 33d603f | (Flavio S. Glock)++ | / (3 files):
10:14 dalek Perlito: Perlito5 - js - pretty print slices
10:14 dalek Perlito: review: https://github.com/fglock/Perlito/commit/33d603f4df
10:15 xinming_ joined #perl6
10:18 dalek roast: 6bce859 | (Elizabeth Mattijsen)++ | S03-operators/ (2 files):
10:18 dalek roast: Unfudge now passing set/bag tests (should give us 100+ more passing tests)
10:18 dalek roast: review: https://github.com/perl6/roast/commit/6bce859468
10:25 dalek rakudo/nom: b45bc51 | (Elizabeth Mattijsen)++ | src/Perl6/Grammar.nqp:
10:25 dalek rakudo/nom: Add all set/bag operators to grammar, so we can parse them always
10:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b45bc518b8
10:25 lizmat r: say <a b c> ∪ <b c d> ∪ <c d e> # will soon work
10:25 camelia rakudo 21b9bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fbzocDJfGJâ�¤Two terms in a rowâ�¤at /tmp/fbzocDJfGJ:1â�¤------> [32msay <a b c> [33mâ��[31m∪ <b c d> ∪ <c d e> # will soon work[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or me…
10:27 jnthn lizmat: Fix coming up for the other thing too
10:27 lizmat cool, then I can finally put this behind me (for now)
10:30 dalek roast: 59c6970 | (Elizabeth Mattijsen)++ | S32-io/copy.t:
10:30 dalek roast: Make sure files from this test don't trample on file-tests.t
10:30 dalek roast: review: https://github.com/perl6/roast/commit/59c6970e08
10:30 lizmat this should fix the heisenbug in parallel spectests
10:30 jnthn \o/
10:36 lizmat r: my %h; say %h<a><b>:delete
10:36 camelia rakudo 21b9bc: OUTPUT«Nil␤»
10:36 lizmat $ perl6 -e 'my %h; say %h<a><b>:delete'
10:36 lizmat No such method 'delete' for invocant of type 'Any'
10:36 grondilu joined #perl6
10:36 lizmat if I remove Any.delete I get this
10:37 denis_boyun joined #perl6
10:38 lizmat plus all set/bag related :delete tests failing
10:40 jnthn lizmat: What do we expect it to do?
10:40 jnthn Silently do nothing?
10:40 lizmat return Nil ?
10:41 lizmat yes, just like .delete on a hash on a non-existing key
10:41 lizmat r: my %h; say %h.delete("a")
10:41 camelia rakudo 21b9bc: OUTPUT«(Any)␤»
10:41 jnthn Well, but this time we're calling it on something also undefined.
10:41 jnthn hah :)
10:41 jnthn That's no Nil... :)
10:41 jnthn But makes sense, the default hash value type is Any
10:41 lizmat indeed...
10:41 lizmat yup
10:42 sqirrel joined #perl6
10:45 dalek rakudo/nom: c032e37 | jnthn++ | src/Perl6/World.nqp:
10:45 dalek rakudo/nom: Be less stupid about infix:<< ... >> in setting.
10:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c032e37c60
10:45 dalek rakudo/nom: 74c0916 | jnthn++ | src/core/precedence.pm:
10:45 dalek rakudo/nom: Uncomment precedence trait setup for set ops.
10:45 dalek rakudo/nom:
10:45 dalek rakudo/nom: They no longer set op us the bomb...
10:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74c091635c
10:46 lizmat wheee!
10:46 jnthn lizmat: I mean, the other way to do it is to look for :U in the :delete/:exists handling.
10:46 lizmat for now, I'm adding X::Immutable
10:46 lizmat as suggested yesterday
10:47 lizmat when I work on making {} and [] subs, I'll take that along again
10:48 * lizmat looks at https://github.com/rakudo/rakudo/commit/c032e37c60 and hopes the RaNIW will bring clarity  :-)
10:50 jnthn Well, QAST::Want and QAST::SVal are both covered at least :)
10:50 lizmat Q: constant term:<∅> = set();
10:50 lizmat would that need adding to the grammar as well ?
10:51 jnthn No
10:51 jnthn Don't think so at least
10:51 lizmat r: constant term:<<∅>> = set();  say ∅
10:51 camelia rakudo 21b9bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_2jqi4sB9a�invoke() not implemented in class 'QAST::Want'�at /tmp/_2jqi4sB9a:1�------> �»
10:51 jnthn Hmm.
10:51 jnthn How on earth...
10:52 lizmat that's the only thing missing from the whole set/bag stuff
10:52 jnthn r: constant term:<∅> = set();  say ∅
10:52 camelia rakudo 21b9bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/dVN9lYtGP4�invoke() not implemented in class 'QAST::Want'�at /tmp/dVN9lYtGP4:1�------> �»
10:52 jnthn r: my \∅ = set();  say ∅
10:52 camelia rakudo 21b9bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/QrO8ZQNp05â�¤Malformed myâ�¤at /tmp/QrO8ZQNp05:1â�¤------> [32mmy [33mâ��[31m\∅ = set();  say ∅[0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤Â»
10:52 jnthn r: my \term:<∅> = set();  say ∅
10:52 camelia rakudo 21b9bc: OUTPUT«===SORRY!===␤No such method 'ast' for invocant of type 'NQPMu'␤»
10:52 jnthn fucking hell :/
10:53 lizmat that's the brewery not too far from Salzburg, right ?
10:53 jnthn Right!
10:53 jnthn I'm just having a glass now :P
10:56 jnthn I'm...not even sure how it's parsing...
10:56 lizmat r: constant term:<<"\x2205">> = set();  say ∅
10:56 camelia rakudo 21b9bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/__jl1xL_ng�invoke() not implemented in class 'QAST::Want'�at /tmp/__jl1xL_ng:1�------> �»
10:57 jnthn std: constant term:<<"\x2205">> = set();
10:57 camelia std 27326bc: OUTPUT«ok 00:00 42m␤»
11:01 jnthn oh my word...
11:01 jnthn It parses as constant term, then rule trait eats the colonpair, but Rakudo doesn't know what to do with a colonpair as a trait (heck, I'm not sure I do either :))
11:02 jnthn It's right there in rule trait in STD though.
11:02 jnthn | <colonpair>
11:03 lizmat I see only 1 colon ?
11:03 lizmat r: constant term::<<"\x2205">> = set();  say ∅
11:03 camelia rakudo 21b9bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/AWavGewukxâ�¤Missing initializer on constant declarationâ�¤at /tmp/AWavGewukx:1â�¤------> [32mconstant term:[33mâ��[31m:<<"\x2205">> = set();  say ∅[0mâ�¤    expecting any of:â�¤        colon pairâ�¤Â»
11:03 FROGGS lizmat: it is about a name-value pair
11:03 lizmat ah, ok
11:04 jnthn Does anybody knwo what this syntax means?
11:04 FROGGS :from<Java> is a nv-pair
11:04 * jnthn is looking at S06
11:04 jnthn sub x() is :Foo[...]        # definitely a pair with a list
11:04 jnthn But that doesn' cover it 'cus we don't parse an "is"
11:04 lizmat r: constant is term:<<"\x2205">> = set();  say ∅
11:04 camelia rakudo 21b9bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/jLTi3Rh4onâ�¤Missing initializer on constant declarationâ�¤at /tmp/jLTi3Rh4on:1â�¤------> [32mconstant is [33mâ��[31mterm:<<"\x2205">> = set();  say ∅[0mâ�¤    expecting any of:â�¤        statement listâ�¤        pref…
11:05 lizmat r: term:<<"\x2205">> is constant = set();  say ∅  # just fooling around
11:05 camelia rakudo 21b9bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/GOnp6huAvDâ�¤Two terms in a rowâ�¤at /tmp/GOnp6huAvD:1â�¤------> [32m:<<"\x2205">> is constant = set();  say [33mâ��[31m∅  # just fooling around[0mâ�¤    expecting any of:â�¤        argument listâ�¤        prefix or t…
11:05 FROGGS jnthn: where do you see a trait?
11:05 FROGGS viv tells me it is a defterm with a colonpair
11:05 lizmat $ perl6 -e 'set().delete("a")'
11:05 lizmat Cannot call 'delete' on an immutable 'Set'
11:06 dalek rakudo/nom: 95b45b4 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
11:06 dalek rakudo/nom: Make Set/Bag.delete throw X::Immutable
11:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/95b45b4bb1
11:06 FROGGS │   └─VAST::type_declarator__S_constant, BEG: 0, END: 34, SYM: constant,
11:06 FROGGS │     ├─VAST::defterm, BEG: 9, END: 26, WS: 1
11:06 FROGGS │     │ │ └─colonpair: - !!perl/hash:VAST::colonpair
11:07 jnthn FROGGS: Oh, it should be. Rakudo is not parsing it that way. It's wrong. But in understanding how it parsed it at all, I discovered this:
11:07 jnthn std: sub foo() :bar { }
11:07 camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
11:08 jnthn That is, anywhere you can write "is some_trait" or any of the other trait mods, you can also write a colonpair.
11:08 jnthn I'm trying to find some spec on the semantics of that.
11:08 jnthn (and failing...)
11:08 jnthn 'cus I hadn't realized it existed :)
11:10 FROGGS jnthn: hmmm, the defterm mismatch makes it hard
11:11 jnthn FROGGS: Well, I can get us to handle defterm, I expect.
11:11 jnthn FROGGS: I'm just wondering about rule trait's <colonpair> branch :)
11:11 FROGGS otherwise we might just do: | <identifier> <colonpair>* in token type_declarator:constant
11:11 * jnthn has some lunch
11:11 jnthn No, we should follow the STD factoring, I think...
11:12 FROGGS std line 2510: token defterm {     # XXX this is probably too general
11:17 lizmat r: say <a b c> ∪ <b c d> ∪ <c d e> # does it work already ?
11:17 camelia rakudo 95b45b: OUTPUT«set(a, b, c, d, e)␤»
11:17 lizmat yeah!
11:17 FROGGS cool!
11:22 moritz \o/
11:22 moritz lizmat++
11:22 lizmat colomon++ for doing all the work in iecza
11:22 lizmat niecza
11:23 JimmyZ You don't have permission to access /perl6/today on this server.
11:25 nebuchadnezzar joined #perl6
11:26 diakopter JimmyZ: http://irclog.perlgeek.de/perl6/2013-08-30
11:27 diakopter lizmat: so we parse 40 lines/second..
11:27 diakopter yikes.
11:30 teslos joined #perl6
11:31 xinming joined #perl6
11:32 flussence rn: say Buf[uint16].new(0xD835 0xDCB7).decode('utf16').ord;
11:32 camelia niecza v24-90-gd827fa8: OUTPUT«[31m===[0mSORRY![31m===[0m��Unable to parse argument list at /tmp/BnOOv0Odsl line 1:�------> [32msay Buf[uint16].new([33m�[31m0xD835 0xDCB7).decode('utf16').ord;[0m�Couldn't find final ')'; gave up at /tmp/BnOOv0Odsl line 1:�------> [32msay Buf[ui…
11:32 camelia ..rakudo 95b45b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/SKJPouncb2â�¤Unable to parse expression in argument list; couldn't find final ')'â�¤at /tmp/SKJPouncb2:1â�¤------> [32msay Buf[uint16].new(0xD835 [33mâ��[31m0xDCB7).decode('utf16').ord;[0mâ�¤    expecting any of:â�¤â€¦
11:32 flussence rn: say Buf[uint16].new(0xD835, 0xDCB7).decode('utf16').ord;
11:32 camelia rakudo 95b45b: OUTPUT«119991␤»
11:32 camelia ..niecza v24-90-gd827fa8: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'uint16' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 36) â�¤  at /h…
11:32 moritz r: say Buf[uint16].new(0xD835, 0xDCB7).decode('utf16')
11:32 camelia rakudo 95b45b: OUTPUT«????␤»
11:32 flussence I guess that isn't going to be easy to get working in niecza...
11:33 * moritz thought there weren't any codepoints this high
11:33 moritz r: printf '%x', 119991
11:33 camelia rakudo 95b45b: OUTPUT«1d4b7»
11:33 moritz never mind :-)
11:33 moritz just above the BMP
11:33 flussence 1fxxx is where all the emoji live
11:34 moritz I was just confused by decimal
11:34 flussence r: say 0x10ffff.fmt('%x')
11:34 camelia rakudo 95b45b: OUTPUT«10ffff␤»
11:34 flussence doh
11:34 flussence r: say 0x10ffff.fmt('%d')
11:34 camelia rakudo 95b45b: OUTPUT«1114111␤»
11:35 flussence that's a lotta chars.
11:35 moritz r: say 0x10ffff
11:35 camelia rakudo 95b45b: OUTPUT«1114111␤»
11:35 moritz even shorter :-)
11:35 SamuraiJack joined #perl6
11:35 moritz ok, I'm confused
11:35 moritz tools/perl6-limited.pl runs exec "ulimit -t 45; ulimit -v 2048576; ./perl6 @ARGV";
11:35 FROGGS === CONFUSED ===
11:36 moritz and in the JVM case, this now says:
11:36 moritz Error occurred during initialization of VM
11:36 moritz Could not reserve enough space for object heap
11:36 lizmat away for a while&
11:36 moritz and ./perl6 does a   exec java -Xms100m ...
11:36 moritz so, it needs 100m, and 2G virtual memory aren't enough for that?
11:37 flussence java has a tendency to malloc a gazillion times the physical memory and then make the kernel's VM subsystem do all the work
11:38 cognominal joined #perl6
11:38 flussence even if it never uses it all
11:39 dalek Perlito: 067a421 | (Flavio S. Glock)++ | / (3 files):
11:39 dalek Perlito: Perlito5 - js - slice assignment refactor
11:39 dalek Perlito: review: https://github.com/fglock/Perlito/commit/067a421786
11:39 flussence you'd probably have better luck with ulimit -m
11:39 moritz flussence: or I could leave out the ulimit -v totally in the JVM case
11:39 moritz flussence: because it has its own limitation
11:39 flussence or that :)
11:39 * flussence is the department of redundancy department today
11:40 moritz now a *proper* JVM adaption of autunfudge.pl would use an eval server instead...
11:40 moritz s/an/the/
11:44 dalek Perlito: 4016966 | (Flavio S. Glock)++ | / (3 files):
11:44 dalek Perlito: Perlito5 - js - slice assignment - Call node
11:44 dalek Perlito: review: https://github.com/fglock/Perlito/commit/401696690d
11:51 jnap joined #perl6
11:59 rindolf joined #perl6
12:04 dalek rakudo/nom: a9be7f0 | moritz++ | tools/autounfudge.pl:
12:04 dalek rakudo/nom: [autounfudge] make use of JVM eval server
12:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a9be7f0db0
12:05 moritz you can now run   perl tools/autounfudge.pl --jobs 3 --jvm -a
12:05 FROGGS moritz++
12:05 jnthn moritz++
12:06 * jnthn should $dayjob for a bit; will look at termdef later
12:08 FROGGS I read this as: timedef later
12:08 moritz I haven't don the rakudo.jvm vs. rakudo vs. rakudo.parrot marker distiniction yet
12:08 moritz that would be a LHF for anybody wanting to do a it of perl 5 hacking
12:17 xinming joined #perl6
12:35 PacoLinux joined #perl6
12:36 kbaker joined #perl6
12:42 FROGGS \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/
12:43 FROGGS I think I've fixed the spectest heisenbugs I had!
12:44 jnthn Is that one person celebrating a lot, or a whole crowd? :)
12:45 FROGGS the former
12:45 FROGGS because this was driving me insane
12:45 FROGGS and it forced me to only run one thread, which takes ages of course
12:47 dalek roast: 7c89478 | moritz++ | S0 (3 files):
12:47 dalek roast: unfudge rakudo tests
12:47 dalek roast: review: https://github.com/perl6/roast/commit/7c89478c56
12:48 dalek nqp: 4b4fd70 | (Tobias Leich)++ | src/vm/parrot/ops/nqp.ops:
12:48 dalek nqp: exit from a child thread so it gets cleaned up
12:48 dalek nqp:
12:48 dalek nqp: Otherwise we are unable to fork (ENOMEM) several times in a row.
12:48 dalek nqp: review: https://github.com/perl6/nqp/commit/4b4fd70c5f
12:49 dalek Perlito: cdce7f7 | (Flavio S. Glock)++ | / (3 files):
12:49 dalek Perlito: Perlito5 - js - slice assignment - Index node
12:49 dalek Perlito: review: https://github.com/fglock/Perlito/commit/cdce7f77b4
12:53 xinming_ joined #perl6
12:59 ajr joined #perl6
13:01 xinming joined #perl6
13:01 rindolf joined #perl6
13:08 dalek Perlito: 66bb20c | (Flavio S. Glock)++ | / (3 files):
13:08 dalek Perlito: Perlito5 - js - slice assignment - Lokup node
13:08 dalek Perlito: review: https://github.com/fglock/Perlito/commit/66bb20c297
13:11 bluescreen10 joined #perl6
13:14 pdurbin left #perl6
13:23 skids joined #perl6
13:30 btyler joined #perl6
13:31 telex joined #perl6
13:38 bluescreen100 joined #perl6
13:44 bluescreen__ joined #perl6
13:47 denis_boyun joined #perl6
13:55 denis_boyun__ joined #perl6
14:05 xinming joined #perl6
14:14 xinming joined #perl6
14:18 PacoAir joined #perl6
14:20 dalek v5: cf4f949 | (Tobias Leich)++ | STATUS.md:
14:20 dalek v5: status update
14:20 dalek v5: review: https://github.com/rakudo-p5/v5/commit/cf4f949e06
14:23 dalek roast: 3610848 | (Tobias Leich)++ | S32-io/other.t:
14:23 dalek roast: added tests for RT #117841
14:23 dalek roast: review: https://github.com/perl6/roast/commit/36108480b8
14:24 dalek rakudo/nom: 60474ff | (Tobias Leich)++ | t/spectest.data:
14:24 dalek rakudo/nom: run tests for RT #117841
14:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/60474ff890
14:34 berekuk joined #perl6
14:37 dalek Perlito: de37bfe | (Flavio S. Glock)++ | / (4 files):
14:37 dalek Perlito: Perlito5 - js - slice assignment tests
14:37 dalek Perlito: review: https://github.com/fglock/Perlito/commit/de37bfe1a7
14:41 dalek Perlito: 7c75124 | (Flavio S. Glock)++ | TODO-perlito5:
14:41 dalek Perlito: Perlito5 - js - TODO - slices are done
14:41 dalek Perlito: review: https://github.com/fglock/Perlito/commit/7c7512405c
14:57 ajr joined #perl6
15:01 dhaivat joined #perl6
15:03 berekuk joined #perl6
15:09 cognominal joined #perl6
15:13 FROGGS joined #perl6
15:16 berekuk joined #perl6
15:19 denis_boyun joined #perl6
15:26 pmurias joined #perl6
15:27 dalek nqp: cba09d3 | (Pawel Murias)++ | t/nqp/79-callercode.t:
15:27 dalek nqp: Add test for nqp::callercode.
15:27 dalek nqp: review: https://github.com/perl6/nqp/commit/cba09d3d50
15:30 * moritz is slightly amused by https://github.com/masak/p6cc2012/blob/master/t3/review/moritz.md . masak++ found 'while cond() -> @val { }' worth mentioning as an idiomatic use of Perl 6
15:31 moritz whereas all the meta ops, gather/take and MAIN routine are taken for granted by now :-)
15:32 * jnthn wonders if elegantest is idiomatic use of English :P
15:32 nwc10 it's sort of self descriptive
15:33 moritz jnthn: as opposed to "most elegant"?
15:33 jnthn aye :)
15:34 TimToady most elegantest
15:35 mauke mostest
15:35 * moritz dimly recalls that ...est is only used for 1 or 2 syllable words, or something
15:36 EvanTeitelman joined #perl6
15:36 moritz only 1, it seems
15:36 mauke 1 syllable || (2 syllables && ends with -y)
15:36 moritz mauke++
15:37 mauke .oO( toadiest )
15:37 moritz https://eflnet.com/tutorials/adjcompsup.php seems 2 syllables and ends with -er|-le|-ow also qualifies
15:43 masak moritz: yes, I am looking for things that are unusual (but skillful) uses of idiomatic Perl 6. :)
15:43 yoleaux 06:53Z <FROGGS> masak: this is the evil: parrot/src/io/io_private.h:120:#define PIO_BUFFER_MIN_SIZE       2048  /* Smallest size for a block buffer */
15:44 TimToady well, it's all prescriptivest nonsensest.
15:44 TimToady Ignoring prescriptivists is the most fun.
15:45 jnthn *most funnest
15:45 jnthn :P
15:46 geekosaur mostest funner
15:48 TimToady The question is, who's to be masterest, that's all...  --Humptiest Dumptiest
15:48 mauke be the change you want to see in the english
15:49 masak you can make words mean anything. going against the implicit rules currently in place carries a finite, non-zero cost. prescriptivists seem to me to be people who assign enormous values to that cost.
15:49 jnthn They literally value the status quo
15:50 masak yes :)
15:50 masak that's an appropriate use of "literally" :)
15:51 TimToady unless you can find a Latin word for that
15:52 TimToady heck, just write the whole thing in Latin, that's what they really wanted you to do
15:53 TimToady and don't use run-on sentences, they suck
15:53 jnthn And don't even consider to stupidly split infinitives...
15:54 * TimToady splits his infinitives boldly
15:54 skids Yes these days we comb them instead.
15:54 TimToady go figure
15:55 mauke go, figure
15:55 TimToady or, comb never finds any common ground :)
15:56 FROGGS masak: your blög will work if you'd use parrot HEAD
15:56 masak oh, that so?
15:56 masak what's this wonderful thing that's happened in Parrot HEAD? :)
15:57 FROGGS I call it patch :o)
15:57 masak ooh, FROGGS/froggs/utf-split-8
15:57 masak FROGGS++
15:57 FROGGS :o)
15:58 FROGGS and we finally have a parrot release we want to upgrade to
15:58 masak huh, why in https://github.com/parrot/parrot/commit/8c69d2e6d78dce3b2dc3e6e3562fb2071fdde7d1 does it talk about io_private.h ?
15:58 masak that seems totally unrelated to the one-line fix.
15:59 masak oh, or that's where the constant comes from? of course.
15:59 masak anyway, hold on and I'll rebuild my Rakudo on a bleeding Parrot, and see how it goes :)
16:00 FROGGS there is a spectest too
16:00 FROGGS t/spec/S32-io/other.t
16:00 FROGGS you might want to run it before upgrading
16:09 moritz oh, those tests are slooow
16:10 moritz but they all passe here, on parrot 5.5.0
16:10 FROGGS weird
16:10 moritz it might be ICU vs non-ICU build
16:10 FROGGS but it might be a combination of arch, libicu and other stuff
16:11 FROGGS do you have ico installed?
16:11 FROGGS icu*
16:11 masak and we already know people have different chunk sizes.
16:11 masak I bet moritz++ has icu installed ;)
16:12 moritz masak: I have
16:13 [Coke] moritz: is autounfudging smart enough to deal with rakudo.parrot vs. rakudo.jvm?
16:13 moritz [Coke]: not yet
16:13 moritz [Coke]: but it shouldn't be too hard to change that
16:13 [Coke] ok. saw an autounfudge of a rakudo.jvm, just wanted to make sure it was really jvm ok.
16:14 masak t/spec/S32-io/other.t passes here on a Rakudo build with Parrot HEAD \o/
16:14 [Coke] also, should we make t/fudgeandrun and autounfudge both auto-detect jvm usage?
16:14 masak (I didn't try it before upgrading, sorry)
16:14 [Coke] (fudgeandrun does already, in a cheesy fashion)
16:14 moritz [Coke]: I review the autounfudge patches manually before committing them
16:15 [Coke] moritz: ok, I trust you. :)
16:15 moritz (and that one was run with JVM)
16:16 [Coke] whee, pugs passes another test today.
16:16 [Coke] (that is, someone added a test that worked on pugs with no changes)
16:17 [Coke] expect the daily runs to hit later in the evenings today. (still running at the same time, but can't easily push until evenings now.) also, I'll see about moving the rakudo daily star run to the new test machine and see if it fares any better.
16:17 * [Coke] is very excited for the workshop
16:18 * moritz hopes for a flood of new, highly-qualified core hackers
16:19 moritz I almost typo'ed that as 'ocre hackers'
16:19 * TimToady prefers blue hackers
16:20 * moritz doesn't know if ogres are smart enough to hack on rakudo
16:21 masak latest Rakudo with FROGGS-patched Parrot can run my blög engine to make a complete rebuild of my site! \o/
16:21 masak FROGGS++
16:21 masak (it does so in 3m15s on this box, which isn't too bad either)
16:21 * TimToady suspects blue ogres are smart enough
16:22 * [Coke] is currently in purple.
16:22 * jnthn wonders how fast Rakudo JVM will do it... :)
16:22 masak it's fairly IO-intensive, so maybe not so much faster.
16:22 masak we'll see, I guess.
16:23 FROGGS cool!
16:23 jnthn masak: Could it use async IO or do stuff in parallel? :P
16:24 jnthn But yeah, we'll see ;)
16:24 jnthn Need to get the pipe thing in place first
16:24 FROGGS just use `hyper ` to generate the pages in parallel :o)
16:24 TimToady race is more better
16:25 [Coke] jnthn: I really want to try rewriting one of my java-based servers that does a lot of string manipulation and dumping IO in perl6 to see how it compares. :|
16:25 arlinius joined #perl6
16:26 * FROGGS doesn't know the difference between race and hyper
16:27 masak FROGGS: hyper outputs in input order, race outputs in completion order (which can be faster).
16:28 masak aughh, I just received a complaint email (from a non-contestant) about the t3 reviews... :/
16:28 moritz what did ey complain about?
16:29 TimToady specifically, race doesn't have to do any bookkeeping to get the results back into the original list order
16:30 masak moritz: he'd submitted a t3 solution to me that used an A* search, I had apparently replied to him that there are more convenient ways to solve it than with an A* search, and now he's disappointed that I don't spell out such ways in my post.
16:30 masak the discussion is from January, so I'm not even sure what I meant by "more convenient ways". maybe I simply meant that you can use a sort algorithm, the way most people have done.
16:31 PerlJam masak: Be perfect!  It's so annoying when you exhibit behavior that shows you are actually human.
16:31 PerlJam :-)
16:31 masak I'm definitely not in possession of a proof that some particular solution is optimal.
16:31 TimToady .oO(Here are all the different kinds of hammers you can use on this screw.)
16:31 * masak ponders how to un-disappoint this particular reader
16:32 FROGGS TimToady: but you usually have to put the threads in a list anyway to join them at some point...
16:33 masak fwiw, here's the guy's solution: https://gist.github.com/masak/1e9d78d8deaa789880e3
16:34 moritz that doesn't look very 6y :-)
16:34 TimToady race is probably implemented with a channel, and some number of threads on the other side that could be anywhere from 1 to N.  But it's really just a set of threads, so there are probably more optimal ways of doing thread joins in such a case than keeping them in a linear structure
16:35 FROGGS moritz: according to the file-et it is Perl Y :o)
16:35 FROGGS file-ext*
16:35 masak moritz: oh, I neglected to mention he sent in his solutions as Python.
16:35 TimToady the race only needs to know when the set of threads goes to ∅
16:35 masak Python 3, even.
16:35 TimToady speaking of hammers and screws...
16:37 * moritz always screws up the hammering
16:39 * FROGGS .oO( ... hammer in the evening, all over this land .... )
16:40 ssutch joined #perl6
16:42 donaldh getting somewhere with java NIO sockets for nqp: https://gist.github.com/donaldh/6391827
16:44 jeff_s1 joined #perl6
16:48 berekuk joined #perl6
16:54 domidumont joined #perl6
16:55 dalek nqp/donaldh-sockets: 83ea6f2 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
16:55 dalek nqp/donaldh-sockets: donaldh first hack on sockets for JVM.
16:55 dalek nqp/donaldh-sockets: review: https://github.com/perl6/nqp/commit/83ea6f2b7c
16:55 dalek nqp/donaldh-sockets: 59fb7d2 | (Donald Hunter)++ | src/vm/jvm/ (3 files):
16:55 dalek nqp/donaldh-sockets: Initial ops for socket IO using NIO.
16:55 dalek nqp/donaldh-sockets: review: https://github.com/perl6/nqp/commit/59fb7d25e4
16:58 dmol joined #perl6
17:00 berekuk joined #perl6
17:01 abnorman joined #perl6
17:03 abnorman joined #perl6
17:04 thou joined #perl6
17:08 colomon joined #perl6
17:10 dalek joined #perl6
17:20 berekuk joined #perl6
17:25 abnorman joined #perl6
17:28 dhaivat joined #perl6
17:42 Rotwang1 joined #perl6
17:49 xinming joined #perl6
17:51 [Coke] rakudo parrot failure today: S14-roles/parameter-subtyping.t aborted 22 test(s)
17:52 FROGGS [Coke]: works like a charm here
17:54 [Coke] works here outside of the test_summary, using tools/perl6-limited.pl
17:55 FROGGS hmmm
17:55 [Coke] lovely. :{
17:55 FROGGS yeah :/
17:56 FROGGS it is getting fragile
17:56 FROGGS >.<
17:58 * ingy dives into 6
17:58 ivanoff joined #perl6
17:58 * moritz quite enjoyed http://wtfviz.net/
17:59 ingy moritz: :D
18:00 * ingy imagines that being the new standard look of a Tag Cloud
18:00 ingy or maybe turn it into a programming language
18:06 SamuraiJack joined #perl6
18:08 lizmat FROGGS: t/spec/S32-io/other.rakudo.parrot                             (Wstat: 0 Tests: 60 Failed: 0)
18:08 lizmat TODO passed:   1-60
18:09 lizmat shouldn't that be unfudged then?
18:09 masak moritz: "Percentacles" :)
18:09 lizmat .oO( particles )
18:15 lichtkind joined #perl6
18:15 lichtkind_ joined #perl6
18:16 lichtkind jnthn: when might rakudo on moar arrive, because gcl comes around nicely wnat to see that on perl6
18:17 lichtkind the other thing is that i want to make an good rakudo article in wikipedia
18:17 jnthn ahahaha...those visualzations are "great" :)
18:17 lichtkind jnthn: i think you dont ment me
18:18 jnthn lichtkind: No, unless you consider yourself a "great" visualization... :P
18:18 lichtkind_ jnthn: im currently hacking on visual toys related to what i just said so i was a bit confused
18:18 jnthn lichtkind: I'm not sure when it'll arrive. And there's more than one kind of arrive. :)
18:19 jnthn lichtkind: Oh. You can get some good inspiration from http://wtfviz.net/ :)
18:19 jnthn lichtkind: I think it'll be November-ish, anyways
18:19 jnthn lichtkind: for "passes some amount of the spectest"
18:21 lichtkind jnthn: thank you
18:22 lichtkind it kinda hit me yesterday after cleaning up the old abandoned Ponie article: there should be 2 about rakuto and mojolicious
18:29 lizmat r: say Bag.new( {a=>1,b=>2} )
18:30 camelia rakudo 60474f: OUTPUT«bag("a\t1 b\t2" => 1)␤»
18:30 lizmat I assume we expect bag( a=>1,b=>2 ) here
18:32 moritz then we can't make bags of bags
18:34 lichtkind currently adding moar to the perl article
18:34 lichtkind hai liz , sending books is really cheap
18:34 TimToady lizmat: we do not unpack anything in the constructor
18:35 lichtkind its much less hassle than another kilo in my backpack
18:35 lizmat TimToady: so doing it like this, is really operator error ?
18:36 TimToady the constructor just takes a list of things to put in the bag, and doesn't care if any of those things are bags
18:36 TimToady or hashes
18:36 * TimToady often takes bags of bags to the grocery store...
18:36 lizmat but is the bag supposed to only containt stringification of the bags as keys
18:36 TimToady turning a hash into a Bag requires a coercion
18:36 lizmat or real bags
18:36 lizmat ?
18:37 TimToady you sure that's not just the .gist doing that?
18:37 lizmat %e{$_}++ for @args;   # the heart of Bag.new
18:37 guillaume2 joined #perl6
18:37 TimToady r: say Bag.new( {:a(1), :b(2)} ).perl
18:37 camelia rakudo 60474f: OUTPUT«(("a\t1 b\t2" => 1).hash).Bag␤»
18:37 guillaume2 hello
18:38 jnthn lizmat: Is Bag based on an object hash or not?
18:38 moritz guillaume2: hi
18:38 lizmat not yet
18:38 lizmat but could be  :-)
18:38 guillaume2 is there any way i can access the cocoa api (os/x) using perl6 ?
18:38 TimToady ("a\t1 b\t2" => 1).hash is an object
18:38 masak NativeCall, perhaps?
18:38 lizmat my Int %e{Mu}
18:38 TimToady but I guess the key isn't
18:39 TimToady well, except insofar as strings are objects
18:39 TimToady so yeah, needs to be a Hash of Any or so
18:40 TimToady er, Hash[Any] I mean
18:40 TimToady er, Hash[Any,Any] !!!
18:40 jnthn my %h{Any} I guess :)
18:40 * TimToady should eat breakfast
18:42 TimToady does the jvm have cocoa mappings?
18:43 diakopter *giggle*
18:43 lichtkind done
18:43 TimToady lichtkind++ for adding cocoa mappings to jvm :)
18:44 lichtkind TimToady: yeah would be nice but i already have more interests than time :)
18:45 skids you know that's going to show up on some poor devel's google search now.
18:45 lichtkind TimToady: i ment the article update is done, mentioning the spec closing, moar and jvm port
18:45 lichtkind yes :)
18:45 diakopter spec closing?
18:46 lichtkind withing next 12 month or so
18:46 lichtkind rumors have it
18:46 grondilu joined #perl6
18:46 diakopter <- rumor has it
18:46 grondilu rn: class Foo { has ($.a is rw, $.b) }; my $x = Foo.new; $x.a = 42; say $x;
18:46 camelia rakudo 60474f: OUTPUT«Cannot assign to a readonly variable or a value␤  in block  at /tmp/Pu1NDMZsjy:1␤␤»
18:46 camelia ..niecza v24-90-gd827fa8: OUTPUT«Unhandled exception: Unable to resolve method a in type Foo␤  at /tmp/iCG6GvxjYV line 1 (mainline @ 7) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤  at /home/p6ev…
18:47 grondilu r: class Foo { has $.a is rw }; my $x = Foo.new; $x.a = 42; say $x;
18:47 camelia rakudo 60474f: OUTPUT«Foo.new(a => 42)␤»
18:47 grondilu r: class Foo { has $.a is rw; has $.b }; my $x = Foo.new; $x.a = 42; say $x;
18:47 camelia rakudo 60474f: OUTPUT«Foo.new(a => 42, b => Any)␤»
18:47 grondilu r: class Foo { has ($.a is rw, $.b) }; my $x = Foo.new; $x.a = 42; say $x;
18:47 camelia rakudo 60474f: OUTPUT«Cannot assign to a readonly variable or a value␤  in block  at /tmp/2wH5GVGaql:1␤␤»
18:47 zwut00 joined #perl6
18:48 konundra joined #perl6
18:48 lichtkind now updateing pugs article a bit
18:48 moritz "pugs is dead. Get over it."?
18:49 lichtkind moritz: yes but there are a lot infos hanging around that need polish
18:51 jnthn lichtkind++ # czeching out the articles that need polish
19:00 lizmat jnthn: Bag has this attribute: has %!elems
19:00 lizmat if I change Bag.new to:
19:00 lizmat my Int %e{Any};
19:00 lizmat %e{$_}++ for @args;
19:00 lizmat self.bless(:elems(%e));
19:00 lizmat the %e is correct with the object as keys, but when I check the $!elems attribute, they're all strings as keys
19:01 lizmat as in: say Bag.new( { a=>1,b=>2 } ).keys[0].WHAT   # (Str)
19:02 jnthn lizmat: Yes, bless does assignment, not binding.
19:02 lizmat Q: is there a way to directly make %!elems a Int/Any hash
19:02 lizmat and to have .new assign directly to it ?
19:02 lizmat I guess first making the object, then filling it, as opposed to the other way around
19:02 jnthn Write a submethod BUILD that binds it, or just use nqp::create and nqp::bindattr in Bag.new if you fancy cheating :)
19:02 jnthn (where cheating = being faster)
19:04 lizmat how do I nqp::create a "typed" hash ?
19:05 lizmat it magically comes from (self) in the Hash case
19:06 lizmat but I don't have that here  :-)
19:07 jnthn lizmat: no no, you use a my Int %e{Any} to make the hash itself.
19:07 jnthn lizmat: It's Bag you nqp::create
19:07 jnthn lizmat: and just circumvent the whole .bless thing.
19:08 * lizmat tries to figure this out  :-)
19:08 xinming joined #perl6
19:09 FROGGS joined #perl6
19:10 berekuk joined #perl6
19:10 lizmat my $b = nqp::create(Bag);
19:10 lizmat nqp::bindattr( $b, Bag, '%!elems', %e );
19:10 lizmat $b;
19:11 lizmat Can not bind attribute '%!elems' declared in class 'Bag' with this object
19:12 lizmat jnthn: I'm not seeing what I'm doing wrong
19:14 FROGGS lizmat: the other.t test file fails on some systems right now
19:14 FROGGS for example on mine when I use parrot 5.5.0
19:15 dalek rakudo/nom: 68a5456 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
19:15 dalek rakudo/nom: No reason to hide Bag/Set.delete from any backtrace
19:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/68a5456535
19:15 dalek v5: 276f55c | (Tobias Leich)++ | lib/Perl5/Grammar.nqp:
19:15 dalek v5: properly ignore code after a __END__
19:15 dalek v5: review: https://github.com/rakudo-p5/v5/commit/276f55c2d3
19:15 lizmat FROGGS++
19:18 pecastro_ joined #perl6
19:19 ajr joined #perl6
19:20 SamuraiJack_ joined #perl6
19:21 dhaivat joined #perl6
19:30 moritz lizmat: re bindattr, missing nqp::decont
19:30 lizmat on the hash?
19:30 lizmat ok
19:30 moritz or   my $b := nqp::create(Bag);
19:31 moritz (or decont on the $b)
19:32 lizmat thanks, that's it!
19:32 lizmat ag({"a" => 1, "b" => 2} => 1)
19:32 lizmat bag({"a" => 1, "b" => 2} => 1)
19:33 berekuk joined #perl6
19:34 denis_boyun joined #perl6
19:41 masak FROGGS: waitwait, so if you do 'use v5' inside a block, with an __END__...
19:41 masak FROGGS: is the rest of the file ignored, or only that block?
19:42 FROGGS masak: the rest of the block I guess
19:42 lizmat jnthn: alas, it doesn't seem to compile in settings: https://gist.github.com/lizmat/6393560
19:42 FROGGS masak: either that or it would fail to parse at all
19:44 * TimToady votes for parsefail
19:46 TimToady unless it's at the top level of a file
19:50 FROGGS __END__ in a block: Unable to parse expression in block; couldn't find final '}'
19:53 masak ok.
19:56 EvanTeitelman joined #perl6
20:00 lizmat is there a reason (apart from having to do use Bag" why we couldn't put Bag c.s. into lib, like Test.pm ?
20:01 dhaivat joined #perl6
20:03 lizmat re  https://gist.github.com/lizmat/6393560 , I realize now that "but" is defined in operators.pm, which comes *after* Bag.pm
20:03 lizmat now trying to shift the order around
20:05 moritz lizmat: one thing that comes to mind is that other types can't esily have a .Bag method when Bag isn't in core
20:05 moritz lizmat: but on the whole I agree that factoring it out into a module would be beneficial
20:05 moritz same with sockets
20:06 lizmat or figure out a way to do typed hashes without having "but"
20:06 lizmat my $what := self but TypedHash[$t.WHAT, c[0]];
20:06 jnthn Where's the but used, ooc?
20:07 lizmat in PARAMETERIZE_TYPE in src/core/Hash
20:07 jnthn Could always re-write it to do the MOP call directly
20:07 lizmat that would be way over my head right now
20:07 lizmat suggestions welcome  :-)
20:09 lizmat moving Bag c.s. to be compiled after metaops, make it parse
20:09 lizmat but after optimize, I get:
20:09 moritz self.HOW.mixin(self.clone(), c[0]);
20:09 lizmat Code ref 'Str' does not exist in serialization context
20:09 diakopter o_O
20:10 * lizmat tries moritz' suggestion
20:10 jnthn Right :)
20:11 lizmat -            my $what := self but TypedHash[$t.WHAT, c[0]];
20:11 lizmat +            my $what := self.HOW.mixin(self.clone(), c[0]);
20:11 lizmat right ?
20:11 jnthn yes
20:11 lizmat running make
20:16 berekuk joined #perl6
20:17 arnsholt jnthn: It being called PARAMETERIZE always trips me up, BTW. I keep wanting it to be PARAMETRIZE =)
20:18 lizmat r: my Int %h{Any}= { a=> 1 } => 2; say %h
20:18 camelia rakudo 68a545: OUTPUT«Hash[Int,Any].new({"a" => 1} => 2)␤»
20:18 lizmat $ perl6 -e 'my Int %h{Any}= { a=> 1 } => 2; say %h'
20:18 lizmat ===SORRY!===
20:18 lizmat Cannot look up attributes in a type object
20:19 lizmat sorry, moritz, jnthn: that does not seem to be the trick  :-(
20:19 jnthn r: Hash.clone
20:19 camelia rakudo 68a545: OUTPUT«Cannot look up attributes in a type object␤  in block  at src/gen/CORE.setting:1093␤  in method reify at src/gen/CORE.setting:6884␤  in method reify at src/gen/CORE.setting:6779␤  in method gimme at src/gen/CORE.setting:7212␤  in method sink at src/gen/CORE.setting…
20:19 lizmat I would expect somehow TypedHash to be mention in the call to mixin
20:19 lizmat or the $t.WHAT ?
20:19 jnthn lizmat: I...think the self.clone() just wants to be self.WHAT
20:20 lizmat running make
20:23 moritz lizmat: oh sorry, should be   .mixin(self.WHAT, TypedHash[$t.WHAT, c[0]])
20:24 lizmat ok, that makes more sense, from a purely textual point of view  :-)
20:27 dhaivat joined #perl6
20:29 xenoterracide joined #perl6
20:32 lizmat builds ok, now running spectest
20:39 * ingy builds R*
20:43 lizmat spectest is clean, now checking TypeArray for synchronicity
20:46 bluescreen10 joined #perl6
20:48 dalek perl6-roast-data: ce1cd3c | coke++ | / (5 files):
20:48 dalek perl6-roast-data: today (automated commit)
20:48 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/ce1cd3c8aa
20:52 dalek rakudo/nom: 3f474a1 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
20:52 dalek rakudo/nom: Use less syntactic sugar for TypedHash/Array, to allow Bag/Sets to use them
20:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3f474a178f
20:59 araujo joined #perl6
21:12 xinming joined #perl6
21:17 dayangkun joined #perl6
21:19 c1sung joined #perl6
21:21 masak lizmat++ # good use of commented-out code
21:21 masak does "[can't] yet" mean "too early in the circularity bootstrap"?
21:21 masak or does it mean "not implemented yet in Rakudo"?
21:21 lizmat too early
21:22 lizmat the "but" is implemented in operators.pm
21:22 lizmat but Set.pm wants to create a typed hash *before* operators.pm
21:23 masak ok. I thought I saw something like that in the backlog.
21:24 masak the comments leave it a bit ambiguous. shall I go ahead and disambiguate?
21:24 lizmat please do
21:24 masak I feel I need to do something useful today, if ever so slightly. :)
21:25 masak the only thing that has happened is that I've gotten an email about my failure to deliver on someone's cravings for formalism. :P
21:25 masak (not that there's anything wrong at all with a craving for formalism)
21:26 mauke_ joined #perl6
21:27 lizmat you can also enjoy the fact that rakudo.parrot has gone from 26688 to 26952 test passing today
21:27 Tene masak: Your description of their complaint is distressingly imprecise.
21:27 preflex_ joined #perl6
21:28 lizmat jnthn,moritz: updated error message in https://gist.github.com/lizmat/6393560
21:29 lizmat seems something is lacking for serialization
21:32 lizmat for clarity: the same code compiles and works outside of settings
21:33 * lizmat wonders how difficult it would be to stub a class with a filename to have that class loaded as soon as something needs it
21:35 lizmat class Bag { >>>lib/Bag.pm }; Bag.new # loads lib/Bag.pm at runtime
21:35 dalek rakudo/nom: afe36d3 | masak++ | src/core/ (2 files):
21:35 dalek rakudo/nom: clarified "can't yet" comments
21:35 dalek rakudo/nom:
21:35 dalek rakudo/nom: It's about "too early in bootstrap" not "no-one has implemented this in
21:35 dalek rakudo/nom: Rakudo".
21:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/afe36d32c8
21:35 lizmat jnthn: error output is the same with --ll-exception in https://gist.github.com/lizmat/6393560
21:35 masak heh. I had way too much fun doing strange things to git producing that commit :)
21:36 masak let's see, I checked out the current commit as detached, did a mixed reset to get back lizmat++'s changes, then 'git commit -p' with editing individual hunks so I didn't have to open the files manually.
21:37 lizmat opening files individually is so 1990's
21:37 masak then I rebased the new (detached) commit on top of the nom branch, unfortunately producing conflicts (I wish I knew how to avoid that), and finally I merged (fast-forward) nom with the new, rebased, detached commit.
21:38 masak hm, maybe a merge strategy would've helped me avoid the conflicts.
21:38 * masak tries
21:38 lizmat maybe using sed would have been easier ?
21:38 masak *lol*
21:39 masak something about Git makes me feel like I'm riding the electrical impulses in the wiring inside the computer, changing data in mid-stream.
21:39 lizmat seriously, I often do something like vi `ack -l foo` to edit all files with a certain string
21:40 masak ooh
21:40 jnthn lizmat: urgh, that error is...argh
21:41 * masak .oO( category theory recognizes "urgh" and "argh" as ajunctions )
21:41 masak adjunctions*
21:41 lizmat maybe it is my $b = nqp::create(Bag); that should be binding rather than assignment
21:41 lizmat running make with that now
21:43 jnthn I suspect it's the typed my, actually...
21:44 lizmat no difference
21:45 masak yes, `git rebase -X theirs nom` would've let me go ahead and "rebase over" lizmat's changes.
21:45 masak note the somewhat counterintuitive "theirs", even though I want to preserve my changes in case of a conflict.
21:45 masak that's just how rebase rolls.
21:46 * lizmat tries without typed my, just in case
21:46 lizmat (although that was the whole point of this excercise)
21:47 lizmat (just to make sure nothing else is messing this up)
21:49 lizmat jnthn: could it be that the %e needs e decont ?
21:49 lizmat *a
21:49 lizmat nqp::bindattr( nqp::decont($b), Bag, '%!elems', %e );
21:51 lizmat builds ok without the typed my
21:52 jnthn lizmat: Not if you bound it
21:52 jnthn lizmat: No, errors of that kind imply something deeply wrong, probably in something involving dynamic compilation...
21:53 jnthn lizmat: They also tend to be a nightmare to track down...
21:53 jnthn lizmat: Though, trying to pre-compile a module that uses a typed hash and seeing if that breaks too would narrow it down
21:54 lizmat I can do that  :-)
21:54 lizmat just any typed hash, right ?
21:55 jnthn aye
21:58 lizmat +class FooBar {
21:58 lizmat +    method new {
21:58 lizmat +        my Int %h{Any};
21:58 lizmat +    }
21:58 lizmat +}
21:59 jnthn That should trigger if, if it's a general bug.
21:59 lizmat yup, same error
22:00 jnthn Well, at lesat that gives something smaller to use in tracking it down.
22:01 lizmat sc = serialization context ?
22:02 jnthn Right.
22:02 lizmat well, I guess the serializer only knows how to serialize normal hashes
22:02 lizmat even if empty
22:03 jnthn No, it works at a lower level than that.
22:03 lizmat well, I'm pretty sure this would be the first serialization of a typed hash
22:03 lizmat because before the "but" fix, it was just impossible to get there
22:03 jnthn Probably, yes, but it's more likely to be role/mixin related...
22:03 jnthn Or to boil down to that.
22:04 jnthn The question is, "which Str"... :S
22:04 lizmat could it be that it assumes that keys in hashes are Str
22:04 lizmat and since that was not seen in that context, it fails?
22:05 lizmat adding "my Str $a;"
22:06 jnthn No, the error is clearly talking about a code-ref Str
22:06 jnthn Which means we're talking about something to do with a Str method
22:08 jnthn The error comes from serialization.c
22:08 lizmat indeed. no change in error
22:09 lizmat there *is* a method .Str in Bag
22:09 jnthn Yeah, but we can reproduce it without Bag...
22:10 lizmat true
22:10 jnthn Curiously, there's no Str method in Hash or any of the TypedHash things
22:11 lizmat shall I add one?
22:11 jnthn No, I'm just trying to understand where the problem may be coming from.
22:12 lizmat maybe we should sleep a night over it ?
22:12 lizmat feels like something that needs inspiration rather than headbanging  :-)
22:13 jnthn r: Hash.^methods.grep(*.name eq 'Str').perl.say
22:13 camelia rakudo 3f474a: OUTPUT«(method Str(Mu : , Mu *%_) { ... },).list␤»
22:13 lizmat yep, from Mu
22:13 jnthn r: Hash.^methods.grep(*.name eq 'Str')[0].package.say
22:13 camelia rakudo 3f474a: OUTPUT«(Mu)␤»
22:13 jnthn Yes, indeed.
22:13 dhaivat joined #perl6
22:14 frdmn joined #perl6
22:14 jnthn Don't think I'll figure it out tonight, no
22:15 * lizmat neither...
22:15 lizmat going to get some inspiration from the backside of my eyelids
22:15 lizmat gnight, #perl6!
22:15 lizmat and thanks for the help, jnthm!
22:15 jnthn 'night, lizmat
22:15 jnthn np, thanks for all the Bag/Set work!
22:18 * masak .oO( Jonatham )
22:18 lizmat damn keming
22:18 masak shoulda been jnthrn? :P
22:19 jnthn That's how it'd be if I grew up in the south of England, not the north :P
22:21 masak is that where they practice Lawr and Order, too?
22:24 lue .oO(With help from the Doctor and one of his companions, when he's not using the TAHDIS)
22:27 masak "Time and..." Hypothetical Dimension?
22:34 skids joined #perl6
22:36 nyuszika7h joined #perl6
22:37 xinming joined #perl6
22:46 scientes joined #perl6
23:01 BenGoldberg joined #perl6
23:06 kid51 joined #perl6
23:12 BenGoldberg .ping
23:12 yoleaux There is no ping command; nor can this be construed as a response.
23:16 jnthn 'night, #perl6
23:19 masak 'night, #perl6

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

Perl 6 | Reference Documentation | Rakudo