Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-11-19

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:05 masak ah, yes.
00:16 masak 'night, #perl6
00:29 localhost joined #perl6
00:32 kfo_ joined #perl6
00:49 wolfman2000 joined #perl6
00:53 cafesofie joined #perl6
01:02 am0c joined #perl6
01:11 ashleydev joined #perl6
01:18 tokuhirom joined #perl6
01:19 aindilis joined #perl6
01:23 tyatpi_ joined #perl6
01:43 benabik Does nom work on Parrot HEAD yet?  I seem to recall it was broken by something we merged
01:45 bluescreen10 joined #perl6
01:46 whiteknight joined #perl6
01:54 wknight8111 joined #perl6
02:03 IngisKahn joined #perl6
02:38 cooper joined #perl6
02:55 thowe yeah, so, Parrot fails to build still...  Parrot VM: PANIC: Out of mem!
02:56 thowe probably should say something in Parrot instead of here...
03:02 benabik thowe: That's less than ideal.  How much memory do you have?
03:02 thowe 2.5G
03:02 thowe this seems to happen with about 50% of releases for me...
03:02 benabik That really should be enough.  :-/
03:03 thowe Version     : 3.10.0-devel
03:07 benabik thowe: Where does it fail?
03:07 thowe C file src/gc/gc_gms.c, line 1823
03:07 thowe but if I continue running make a few times it may settle someplace else...
03:07 thowe or so I have come to expect
03:08 benabik What is it compiling?
03:09 thowe I don't understand the question...  Rakudo nom, with Parrot
03:11 benabik src/gc/gc_gms.c:1823 is where the failure was where in Parrot the failure happened, but what what it doing?  If you were compiling Rakudo, the line just above PANIC should be what it was doing at the time.
03:12 thowe ./perl6 --setting=NULL --optimize=3 --target=pir  --output=src/gen/CORE.setting.pir src/gen/CORE.setting
03:12 benabik Oh.  :-(
03:12 thowe ?
03:13 benabik That's probably one of the most memory intensive things ever.
03:15 thowe I compile stuff on a very regular basis...  This does not happen.  this operation must be crazy or flawed.
03:23 thowe So, I need a windows gaming machine to play with Perl 6...
03:24 thowe Sorry, don't mean to vent.  I'm bummed.
03:29 Timbus hmmm im compiling rakudo. it's at that step right now..
03:29 benabik Rakudo and it's stack (NQP, PCT, Parrot, etc) aren't optimized for memory usage at the moment.
03:29 Timbus it took 1.5gb
03:30 benabik That sounds about what I see.
03:30 Timbus you could always try out niecza, thowe
03:32 benabik I sometimes wonder if PCT is holding on to too much of the old trees somehow.
03:38 molaf joined #perl6
04:08 _jaldhar joined #perl6
04:13 worr joined #perl6
04:31 sorear benabik: PCT holds on to all the old trees, all the time
04:31 benabik sorear: That's very poor.
05:21 _jaldhar joined #perl6
05:26 thowe what's niecza?
05:26 sorear niecza: say 2 + 2
05:26 p6eval niecza v11-24-gcdd4e66: OUTPUT«4␤»
05:27 sorear https://github.com/sorear/niecza
05:35 daniel-s joined #perl6
05:41 abercrombie joined #perl6
06:48 sayu joined #perl6
06:58 [Sec] joined #perl6
06:58 AlexKotov joined #perl6
07:15 snarkyboojum niecza: say e ** (2 * pi * i)
07:15 p6eval niecza v11-24-gcdd4e66: OUTPUT«1+5.08414924743628E-15i␤»
07:22 wolfman2_ joined #perl6
07:38 birdwindupbird joined #perl6
07:45 donri joined #perl6
08:10 Tene joined #perl6
08:10 djanatyn joined #perl6
08:10 Tene joined #perl6
08:54 kaare_ joined #perl6
09:11 Woodi rakudo: sub v($dx, $dy, $dz, $dt) { my $vx=$dx/$dt; my $vy=$dy/$dt; my $vz=$dz/$dt; return sqrt($vx**2 + $vy**2 + $vz**2); }; my $a = now; sleep 1; my $b = now; say v(2, 3, 4, $a - $b);
09:11 p6eval rakudo 43be3c: OUTPUT«5.24336700133309␤»
09:11 Woodi it works correct ?
09:12 icwiener joined #perl6
09:13 Woodi I guess Instant was specced real becouse it is not Int, have fractions - just looks like Real
10:12 preflex_ joined #perl6
10:20 MayDaniel joined #perl6
10:38 masak Woodi: sounds like you're thinking of Num, not Real.
10:38 masak Woodi: both Int and Rat and Num are currently spec'd as Real.
10:40 jnthn mornin', #perl6
10:49 masak jnthn! \o/
10:49 moritz \o
10:53 masak what a wonderful day for some Perl 6!
10:53 jnthn :)
10:54 jnthn Once I'm awake enough and have coffee and something to eat, yes :)
10:59 xinming joined #perl6
11:00 masak no need to rush. it's the weekend! \o/
11:03 moritz TCIS! :-)
11:03 moritz today's challenge: Perl programming on a keyboard without a dollar sign
11:05 dalek rakudo/nom: b692f97 | moritz++ | src/core/Instant.pm:
11:05 dalek rakudo/nom: prevent hangs in now.Num and .Int
11:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b692f97b40
11:07 masak "TCIS"?
11:08 moritz Thank Christ/Chruny It's Saturday
11:15 moritz any bigint LHFs left that I could grab?
11:16 yath s/C/E/ # eris
11:24 moritz nom: role A { method x($?CLASS:D:) { say 'A.x' } }; class B does A { }; A.new.x; A.x
11:24 p6eval nom 43be3c: OUTPUT«===SORRY!===␤In signature parameter, '$?CLASS', it is illegal to use '?' twigil at line 1, near ":D:) { say"␤»
11:25 moritz nom: role A { method x(A:D:) { say 'A.x' } }; class B does A { }; A.new.x; A.x
11:25 p6eval nom 43be3c: OUTPUT«A.x␤Parameter '' requires an instance, but a type object was passed␤  in method x at /tmp/4u1Ac4uOhS:1␤  in <anon> at src/gen/Metamodel.pm:1120␤  in block <anon> at /tmp/4u1Ac4uOhS:1␤  in <anon> at /tmp/4u1Ac4uOhS:1␤»
11:25 moritz nom++
11:26 jnthn That '' is lta though.
11:27 jnthn moritz: It's not bigint per se but
11:27 jnthn nom: say [*] 1..100
11:27 p6eval nom 43be3c: OUTPUT«9.33262154439442e+157␤»
11:27 jnthn moritz: For some reason that last value of a range always comes out as Num, not Int. :/
11:28 jnthn (I haven't looked at why at all, but maybe it's something easy)
11:29 jnthn nom: .WHAT.say for 1..5
11:29 p6eval nom 43be3c: OUTPUT«Int()␤Int()␤Int()␤Int()␤Int()␤»
11:29 jnthn huh.
11:30 jnthn nom: .WHAT.say for 1..100
11:30 p6eval nom 43be3c: OUTPUT«Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int()␤Int(…
11:30 jnthn Hm
11:30 jnthn OK, well...something is up somewhere ;)
11:30 masak perl6: class A {}; say A.new(42)
11:30 p6eval pugs b927740: OUTPUT«*** Must only use named arguments to new() constructor␤    Be sure to use bareword keys.␤    at /tmp/C_UMkbvIvV line 1, column 17 - line 2, column 1␤»
11:30 p6eval ..rakudo 43be3c: OUTPUT«Default constructor only takes named arguments␤  in method new at src/gen/CORE.setting:526␤  in block <anon> at /tmp/gdiJGJ7pfA:1␤  in <anon> at /tmp/gdiJGJ7pfA:1␤»
11:30 p6eval ..niecza v11-24-gcdd4e66: OUTPUT«Unhandled exception: Excess arguments to Mu.new, used 1 of 2 positionals␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (Mu.new @ 0) ␤  at /tmp/nm1o4TtOmb line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2224 (ANON @ 2) ␤  at /home/p…
11:31 masak nom: class A {}; say A.new(:a(5), 42)
11:31 p6eval nom 43be3c: OUTPUT«Default constructor only takes named arguments␤  in method new at src/gen/CORE.setting:526␤  in block <anon> at /tmp/SBkBr0tsut:1␤  in <anon> at /tmp/SBkBr0tsut:1␤»
11:31 moritz jnthn: ah, I remember that
11:31 * moritz takes a look
11:32 * jnthn ponders doing great evil
11:32 pothos joined #perl6
11:32 moritz nom: say (1 ... 5)>>.WHAT
11:32 p6eval nom 43be3c: OUTPUT«List()␤»
11:32 moritz nom: say (1 ... 5).map: *.WHAT
11:32 p6eval nom 43be3c: OUTPUT«Method 'count' not found for invocant of class 'Whatever'␤  in method reify at src/gen/CORE.setting:4012␤  in method reify at src/gen/CORE.setting:3919␤  in method reify at src/gen/CORE.setting:3919␤  in method gimme at src/gen/CORE.setting:4281␤  in method eager at s…
11:33 moritz nom: say (1 ... 5).map: { .WHAT }
11:33 p6eval nom 43be3c: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤Use of uninitialized value in string context␤Use of uninitialized value in string context␤Use of uninitialized value in string context␤    ␤»
11:33 moritz nom: say (1 ... 5).map: { .WHAT.perl }
11:33 p6eval nom 43be3c: OUTPUT«Int Int Int Int Int␤»
11:33 masak nom: my %h; %h<foo>.push(1, 2, 3); say %h.perl
11:33 p6eval nom 43be3c: OUTPUT«Method 'push' not found for invocant of class 'Any'␤  in block <anon> at /tmp/7UlmaYKXSz:1␤  in <anon> at /tmp/7UlmaYKXSz:1␤»
11:35 moritz ENOAUTOVIV
11:35 * moritz thinks he found the bug that caused the last element to come out as Num
11:37 moritz the real fix is a bit more involved though :/
11:37 moritz well, not complicated, just more typing and testing
11:38 rindolf joined #perl6
11:38 rindolf Hi all. I'm getting this error when trying to build Rakudo nom - http://paste.debian.net/146251/ - what can I do?
11:39 moritz nom: say (2**65 .. 2**65 + 3).list.perl
11:39 p6eval nom b692f9: OUTPUT«Failed allocation of 4096 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/alloc_memory.c, line 105␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot.  Use parrotbug (located in parr…
11:39 masak rindolf: don't know the cause exactly, but it doesn't find the right tag in the parrot repo.
11:40 masak maybe the parrot repo didn't get updated properly?
11:40 jnthn That'd be odd given the tag came from running --targs
11:40 jnthn *--tags
11:40 jnthn Oh, you mean the pull failed?
11:40 moritz rindolf: try  cd parrot; git fetch
11:40 moritz rindolf: then cd ..  and try again
11:41 whiteknight joined #perl6
11:41 moritz (ranges don't work with bigints yet)
11:45 Trashlord joined #perl6
11:47 rindolf moritz: thanks, I realised what the problem is.
11:49 moritz rindolf: what was it?
11:50 dalek rakudo/nom: 6084be6 | moritz++ | src/core/Range.pm:
11:50 dalek rakudo/nom: Do not treat the last value of a range as a Num
11:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6084be6289
11:51 moritz that's just a stopgap solution
11:51 moritz ie as much stopgap as the rest of the implementation :-)
11:59 jnthn ooh, the video from my Debugging Perl 6 Grammars talk at YAPC is online: http://yapc.tv/2011/ye/jonathan-perl6grammars/
11:59 rindolf moritz: the problem was that I had cloned my github fork of the parrot repository.
11:59 rindolf moritz: so it didn't get update to the same place.
12:01 rindolf Receiving objects:   2% (8155/386348), 1.54 MiB | 1 KiB/s      - misery.
12:02 mj41 joined #perl6
12:07 jnthn nom: say 'foo'.flip
12:07 p6eval nom b692f9: OUTPUT«oof␤»
12:12 masak did you know that perl5i got themselves a .flip method? I learned this in Bratislava. they said they were inspired by Perl 6.
12:12 masak unfortunately, it reverses arrays, not strings... :/
12:13 masak (or maybe both arrays and scalars, I dunno)
12:15 mkramer joined #perl6
12:17 Psyche^ joined #perl6
12:20 dalek nqp: a9b250f | jnthn++ | src/QRegex/ (2 files):
12:20 dalek nqp: Initial implementation of <after ...>. Flips the target string and the AST (though probably missing some cases in the latter) then just parses as per normal - but backwards.
12:20 dalek nqp: review: https://github.com/perl6/nqp/commit/a9b250fae6
12:23 mkramer joined #perl6
12:32 tadzik o/
12:32 jnthn o/ tadzik
12:40 tadzik hah, I appear on jnthn++'s video
12:40 tadzik just got to know that I missed a joke :P
12:40 colomon video?
12:40 tadzik http://yapc.tv/2011/ye/jonathan-perl6grammars/
12:46 mkramer joined #perl6
12:51 mkramer joined #perl6
12:52 dalek nqp: db4f73c | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
12:52 dalek nqp: Make sure flip_ast doesn't explode if it sees a non-QAST::Regex node.
12:52 dalek nqp: review: https://github.com/perl6/nqp/commit/db4f73c194
12:55 dalek rakudo/nom: d4506c4 | jnthn++ | tools/build/NQP_REVISION:
12:55 dalek rakudo/nom: Bump to an NQP revision with <after ...> support.
12:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d4506c4131
12:55 dalek roast: b56cadb | jnthn++ | S05-metasyntax/lookaround.t:
12:55 dalek roast: Turn on <after ...> tests.
12:55 dalek roast: review: https://github.com/perl6/roast/commit/b56cadb433
13:06 araujo joined #perl6
13:21 dalek rakudo/nom: 798e9c6 | jnthn++ | src/Perl6/ (2 files):
13:21 dalek rakudo/nom: Start to unbust signatured rules and passing of arguments to them; this means declarations of rules with signatures now works, as does <foo(1,2)>; just the <foo: 1,2> syntax does not.
13:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/798e9c660b
13:23 colomon joined #perl6
13:39 dalek rakudo/nom: 77fd663 | jnthn++ | src/Perl6/Grammar.pm:
13:39 dalek rakudo/nom: Quick hack to fix the <foo: 1,2> case of regex argument lists; once QRegex is being used for the parsing, we can move to something more STD-ish.
13:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/77fd6637d4
13:39 dalek rakudo/nom: 5d6e2c4 | jnthn++ | t/spectest.data:
13:39 dalek rakudo/nom: Turn on S05-grammar/signatures.t.
13:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d6e2c444e
14:05 am0c joined #perl6
14:08 Chillance joined #perl6
14:16 jnthn moritz, tadzik: JSON::Tiny now passes 01-parse, 02-structure and 03-unicode on nom. 04-roundtrip fails due to not following changed semantics of proto (easily patched) and missing .trans (not so easily patched)
14:16 jnthn (er, I need to push a couple of patches, just waiting for the spectest)
14:18 dalek nqp: 3ff2502 | jnthn++ | src/QRegex/Cursor.nqp:
14:18 dalek nqp: Even if we captured nothing, we should still put empty RPAs into the caphash for quantified matches, so the match object gets the correct structure.
14:18 dalek nqp: review: https://github.com/perl6/nqp/commit/3ff2502441
14:20 dalek rakudo/nom: acd6b2b | jnthn++ | tools/build/NQP_REVISION:
14:20 dalek rakudo/nom: Get fix for empty quantified captures; this gets the JSON::Tiny grammar and actions fully working and passing their tests.
14:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/acd6b2bb5d
14:23 tadzik jnthn: supercool :)
14:24 tadzik I'll give panda a shot
14:24 jnthn noooo...don't shoot the pan...oh, ok :)
14:24 tadzik I considered adding "if you know what I mean" to avoid not-intended animal slaughter ;)
14:26 tadzik I'll just assume all tests for it pass :)
14:27 jnthn tadzik: I can run and pass t/0<[1..3]>.* for JSON::Tiny
14:27 tadzik jnthn: I meant panda tests
14:28 jnthn tadzik: oh! :)
14:28 tadzik I can't test stubs.t and ecosystem.t so far, not without Test::Mock. I could write another bunch of tests not using Test::Mock, but since I have JSON now I can just check if panda installs modules :P
14:29 jnthn tadzik: Yeah, I need to fix Test::Mock yet :)
14:30 rindolf git got stuck on checkouting parrot from github. :-(.
14:30 rindolf It got stuck at 5%.
14:30 tadzik heh, I remember when we were talking about ng->nom that was to happen soon back then
14:30 rindolf I started it at about 12:00 and it's now 16:30.
14:30 tadzik "there won't be much code rewriting, at least not as much as when we were moving alpha->ng"
14:30 tadzik I can only imagine how much code you did rewrite back then...
14:30 jnthn tadzik: It wasn't my idea to re-do the regex engine...
14:30 tadzik (:
14:31 tadzik rindolf: aw. Retry?
14:31 rindolf tadzik: I guess.
14:31 rindolf Maybe the tubes are clogged because it's the weekend.
14:35 dalek features: b947e0b | jnthn++ | features.json:
14:35 dalek features: Update a couple of regex related entries for nom.
14:35 dalek features: review: https://github.com/perl6/features/commit/b947e0b29b
14:35 tadzik jnthn: I get fails on roundtrip.t, No applicable candidates found to dispatch to for ''.
14:35 jnthn tadzik: Right
14:35 tadzik not fresh enough?
14:35 jnthn tadzik: I thought you just needed to parse JSON?
14:35 jnthn tadzik: Or do you need to write it too?
14:35 tadzik nope, just parsing
14:35 jnthn tadzik: OK, then you're fine
14:36 tadzik ok cool
14:36 jnthn tadzik: roundtrip.t is testing writing too
14:36 jnthn tadzik: That bit doesn't work yet
14:38 worr joined #perl6
14:39 [Coke] l
14:40 tadzik hrm, I got Incorrect pre-compiled version of lib/JSON/Tiny.pm loaded with freshly installed JSON::Tiny
14:40 tadzik deleting .pir from ~/.perl6/lib helps
14:41 tadzik and now the same for lib/Panda.pm
14:43 jnthn tadzik: Dependencies - including on the setting - need to match up exactly.
14:43 jnthn Build a new Rakudo, and any .pir compiled versions against the previous one will be invalid.
14:43 tadzik I understand, but: I install JSON::Tiny, then I try to build panda, it fails. I remove all pir, build panda, suceeds. Then I run panda, fails. Delete pir, run panda: suceeds
14:44 jnthn hm.
14:48 jnthn tadzik: You're certainly running the installed version too?
14:48 * jnthn guesses it is finding a wrong file somewhere.
14:49 tadzik jnthn: yes
14:49 jnthn tadzik: Best bet may be to shove some trace code in src/Perl6/ModuleLoader.pm so we can track what it's doing.
14:50 tadzik adopting Panda's code makes me thing I got Perl 6 OO terribly wrong
14:50 tadzik oh, panda help works, and only took 14 seconds :)
14:50 tadzik let's go further
14:50 jnthn Well, or Rakudo used to get various bits wrong too, especially attribute visibility
14:50 jnthn "only" :)
14:50 tadzik yeah, it's mostly about attr visibility
14:51 tadzik there was mainly 2 changes in panda on nom, s/run/shell/ and all this OO
14:52 tadzik most of this time is module loading
14:52 tadzik when I run it from ~/src/perl/panda, where I built it, it doesn't complain about .pir
14:52 tadzik okay, Panda.new() somehow returns Panda::Installer...
14:53 tadzik eww, I don't get it
14:53 tadzik https://gist.github.com/1378915 -- what about BUILD(ALL) did I get wrong this time?
14:55 tadzik nom: class A { method BUILDALL { my $a = 5; } }; A.new.WHAT.say
14:55 p6eval nom acd6b2: OUTPUT«Too many positional parameters passed; got 3 but expected 1␤  in method BUILDALL at /tmp/SRymdJoFoU:1␤  in method bless at src/gen/CORE.setting:538␤  in method new at src/gen/CORE.setting:523␤  in block <anon> at /tmp/SRymdJoFoU:1␤  in <anon> at /tmp/SRymdJoFoU:1␤»…
14:55 tadzik nom: class A { method BUILDALL(|$) { my $a = 5; } }; A.new.WHAT.say
14:55 p6eval nom acd6b2: OUTPUT«Int()␤»
14:55 tadzik jnthn: ^
14:56 tadzik I believe I shouldn't be messing with BUILD and stuff
14:57 sayu joined #perl6
14:59 * tadzik tries abusing new() this time
15:00 jnthn tadzik: I...suspect that it expects BUILDALL to return the built object.
15:01 tadzik yeah, I suppose so
15:01 jnthn tadzik: YOu *can* implement BUILD. That's fine
15:01 tadzik I don't think it's a good idea after all
15:01 tadzik oh, it is?
15:01 tadzik Larry will shoult at me again ;)
15:01 jnthn tadzik: If you want to implement your own BUILDALL I very strongly recommend that you defer to the original one at some point
15:01 jnthn The default one executes the BUILDPLAN
15:02 jnthn It's responsible for e.g. making sure default attribute values are set up, calling BUILD in the correct order, etc. :)
15:02 tadzik too much magic. Okay, if I write my own B.new(), B is A, when does A.new get called?
15:02 jnthn It doesn't
15:02 tadzik okay
15:02 jnthn tadzik: What are you trying to do?
15:02 tadzik but I can initialize its attributes, right?
15:02 tadzik passing them to bless()
15:03 jnthn Yes but that's what BUILD is for
15:03 jnthn Well
15:03 tadzik okay, I'm fine with that
15:03 jnthn Yeah, you can pass them to bless too
15:03 tadzik what I want to do: initialize $.tester, $.builder etc which belong to Pies, in Panda, which is Pies
15:03 tadzik so I can write my Panda.new(), create the builders and friends and pass them to bless
15:04 jnthn ah, OK
15:04 jnthn Yes, that will work out.
15:06 tadzik I should've stayed for those OO classes of yours at YAPC::EU
15:08 jnthn ;)
15:08 tadzik I'm probably thinking half-Moosey half-C++ey
15:08 tadzik and nothing good comes out of it ;)
15:13 tadzik jnthn: any way to make "Use of uninitialized value in string context" print a line or such?
15:13 tadzik perl6 bin/panda list  31.95s user 0.41s system 99% cpu 32.618 total
15:13 tadzik and it succeeded :>
15:13 jnthn tadzik: "print a line"?
15:13 flussence number.
15:14 jnthn oh
15:14 tadzik yeah
15:14 jnthn maybe
15:15 tadzik \o/
15:16 tadzik https://gist.github.com/1378946
15:16 tadzik now it just so happens that Acme::Meow doesn't work even though it passes tests :)
15:17 tadzik . o O ( panda: install a module in just under a minute! )
15:17 jnthn :)
15:18 jnthn Well, that's mostly pre-comp issues, though?
15:18 tadzik ok, now I only need a wrapper which will try all the modules and report errors, and about 1.5 hours to run it :>
15:18 tadzik jnthn: I suppose so
15:18 jnthn tadzik: How long does the JSON parsing take?
15:18 tadzik although I'm running it from panda dir, and all the pirs are available
15:19 tadzik jnthn: ~15 secs I suppose
15:19 tadzik help is 14 and list is 31
15:19 jnthn tadzik: Is that an improvement on before?
15:19 tadzik jnthn: I...don't remember :)
15:19 tadzik istr it was around half a minute, but I can be wrong
15:19 jnthn tadzik: It's probably hideously over-expensive at the moment because we're not ever caching the protoregex NFAs, but re-assembling them every parse
15:20 jnthn Which means every time we hit <value> we go and re-do that work
15:20 tadzik aw
15:20 jnthn Well, but if it's twice as fast as before when it's missing an important optimization, that's a decent sign :)
15:20 jnthn tadzik: Where do I find the stuff it parses?
15:21 tadzik jnthn: feather.perl6.nl:3000/list
15:25 jnthn tadzik: pushed an updated Test::Mock; doesn't do the with bit yet
15:25 jnthn tadzik: But seems to kinda work :)
15:25 tadzik great!
15:26 hack_ joined #perl6
15:28 tadzik jnthn: do you get Could not find sub 227_1321716457.44295 on some tests too?
15:28 mj41 joined #perl6
15:28 jnthn tadzik: didn't see that one...
15:29 tadzik only synopsis.t works here
15:29 jnthn tadzik: oh
15:29 jnthn yeah, I only tried that one ;)
15:29 jnthn yeah, returning.t is busted. D'oh.
15:29 jnthn Will see if I can fix that
15:30 tadzik I'll see if Panda can bootstrap now
15:30 tadzik jnthn: did your windows machine ever run panda?
15:31 jnthn tadzik: Don't think so
15:31 jnthn tadzik: Would really like to make that happen though
15:32 tadzik that has to be taken care of
15:34 tadzik nah, Test::Mock tests don't pass
15:34 tadzik dunno if that's due to Test::Mock or Panda now :)
15:37 jnthn Over a quarter of the time in the parse is spent building over and over again the NFA for value.
15:37 tadzik :)
15:37 jnthn A similar amount is swallowed up by all the <before ...> calls, which are a workaround for some charclass issue I guess
15:38 masak potential for improvement. :)
15:38 tadzik ok, it was not Test::Mock's fault :)
15:38 jnthn ooh ;)
15:38 tadzik another @!dependencies -> @.dependencies trap :>
15:38 jnthn masak: Indeed.
15:39 jnthn mls++ # giving me the profiling tool to know what's going on
15:39 masak mls++
15:39 jnthn It's so nice that I can profile grammars with this too :)
15:39 masak tadzik: either something is private, or you can't initialize it in .new -- not both :)
15:40 PacoLinux_ joined #perl6
15:40 tadzik masak: now I know :)
15:40 tadzik it's like with this dog, which you did not see
15:41 tadzik http://static.themetapicture.com/media/funny-dog-sign.jpg this one
15:41 tadzik "have you seen this privates behaviour"
15:42 jnthn :D
15:45 Trashlord joined #perl6
15:48 tadzik nom: class A { method !prv { say "foo" }; method pub { self!prv } }; my $a = A.new but role { method !prv { say "hijack'd!" } }; A.pub
15:48 p6eval nom acd6b2: OUTPUT«foo␤»
15:48 tadzik correct?
15:49 jnthn yeah, privates are non-virtual.
15:49 tadzik /o\
15:50 tadzik so I can't possibly do things like this?
15:51 PacoLinux_ joined #perl6
15:51 jnthn tadzik: No. Private methods have the same visibility/scoping rules as private attributes.
15:51 tadzik okay
15:51 jnthn tadzik: If folks are meant to be able to override it, it shouldn't be private ;-)
15:51 tadzik I need to invent some new tests then
15:51 tadzik they aren't :)
15:52 tadzik Panda::Ecosystem has method !flush-states, which writes module data to a file. In tests, I don't want a mocked state file to be modified by tests
15:52 tadzik so I do Ecosystem.new() but role { method !flush-states {} }
15:53 sftp joined #perl6
15:56 jnthn Does it really want to be private? I mean, what if you wanted to subclass the ecosystem so you could write files a bit differently?
15:56 tadzik it probably doesn't
15:57 tadzik not that I'm a huge privatizer or such :)
15:57 vmspb joined #perl6
16:00 tadzik gah, panda will not bootstrap for JSON::Tiny fails some tests
16:01 tadzik I'll remove the test before it runs it and see if the rest goes fine :)
16:05 pmurias joined #perl6
16:07 tadzik ./bootstrap.sh: line 3:  5984 Segmentation fault      PERL6LIB=$PWD/ext:$PWD/lib perl6 bin/panda install .
16:07 tadzik ...great :)
16:08 sftp joined #perl6
16:10 lichtkind joined #perl6
16:11 jnthn ugh
16:13 tokuhirom joined #perl6
16:15 dalek nqp: 672d080 | jnthn++ | src/how/NQPClassHOW.pm:
16:15 dalek nqp: Add a way for the meta-object to cache values unless the method table changes.
16:15 dalek nqp: review: https://github.com/perl6/nqp/commit/672d080f0d
16:15 dalek nqp: c78fddf | jnthn++ | src/QRegex/Cursor.nqp:
16:15 dalek nqp: Cache the NFAs built for proto-regexes so we don't have to re-build them every time we run the protoregex.
16:15 dalek nqp: review: https://github.com/perl6/nqp/commit/c78fddf643
16:16 jnthn nom: say 4.497 / 6.117
16:16 p6eval nom acd6b2: OUTPUT«0.735164296223639␤»
16:16 dalek rakudo/nom: 8839b16 | jnthn++ | src/Perl6/Metamodel/MethodContainer.pm:
16:16 dalek rakudo/nom: Method-addition-expiring cache support, for the NFA engine to use.
16:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8839b16147
16:16 jnthn 25% win or so just from that :)
16:16 tadzik http://goo.gl/vDmGi
16:17 jnthn :P
16:19 dalek panda: 020afb0 | tadzik++ | / (14 files):
16:19 dalek panda: Fix to make it work on rakudo/nom
16:19 dalek panda:
16:19 dalek panda: s/run/shell, couple of OO updates. Can't bootstrap, for JSON::Tiny and
16:19 dalek panda: Test::Mock fail their tests, but works fine aside from that.
16:19 dalek panda: review: https://github.com/tadzik/panda/commit/020afb0f3a
16:19 tadzik now we party! \o/
16:19 jnthn \o/
16:20 tadzik jnthn++ for making that possible :)
16:24 tadzik oh, can we now bump PARROT_REVISION and apply mls's patch?
16:24 jnthn tadzik: yes
16:25 jnthn tadzik: No reason it's not done other than I just didn't get to it yet
16:25 jnthn :)
16:25 jnthn If you have tuits, please feel free
16:25 tadzik I can do it if... ok
16:25 tadzik where is the patch?
16:26 kcwu joined #perl6
16:26 jnthn tadzik: https://gist.github.com/1370157
16:30 pat_js joined #perl6
16:32 dalek nqp: db70b8c | jnthn++ | src/QRegex/Cursor.nqp:
16:32 dalek nqp: A few small optimizations that get another 10% off parsing projects.json.
16:32 dalek nqp: review: https://github.com/perl6/nqp/commit/db70b8c38a
16:32 jnthn nom: say 4.073 / 6.117
16:32 p6eval nom acd6b2: OUTPUT«0.665849272519209␤»
16:33 tadzik ...it takes 4 seconds on your dragon?
16:33 jnthn Yeah. Slow...
16:33 tadzik ohyou
16:33 jnthn :)
16:33 jnthn ok, I gotta head out for a bit
16:33 jnthn Will work on the char class stuff later on to see if I can get it down some more :)
16:35 tadzik hrm
16:38 tadzik nom: try { die "ASD!"; CATCH { say "foo: '$_'" } }; say 'alive'
16:38 p6eval nom 8839b1: OUTPUT«foo: 'ASD!'␤ASD!␤  in block <anon> at /tmp/bdOoR7odmf:1␤  in block <anon> at /tmp/bdOoR7odmf:1␤  in <anon> at /tmp/bdOoR7odmf:1␤»
16:38 tadzik correct?
16:42 tadzik b: try { die "ASD!"; CATCH { say "foo: '$_'" } }; say 'alive'
16:42 p6eval b 1b7dd1: OUTPUT«foo: 'ASD!'␤alive␤»
16:48 sayu joined #perl6
17:00 sftp joined #perl6
17:06 sftp joined #perl6
17:22 tadzik did json break for anyone after the last commits?
17:30 tadzik I get Method 'cache' not found for invocant of class 'Perl6::Metamodel::GrammarHOW'
17:33 sorear good * #perl6
17:34 tadzik hello sorear
17:34 pmurias sorear: hi
17:36 orafu joined #perl6
17:37 sorear pmurias: hi
18:05 molaf joined #perl6
18:16 tadzik jnthn: I'm afraid nqp:c78fddf6438730b0270329a57cded25193ffb2a7 broke rakudo
18:19 tadzik nom: try { die; }; say 'alive'
18:19 p6eval nom 8839b1: OUTPUT«alive␤»
18:19 tadzik nom: try { die; CATCH {} }; say 'alive'
18:19 p6eval nom 8839b1: OUTPUT«␤  in block <anon> at /tmp/gSzxjyhjSH:1␤  in block <anon> at /tmp/gSzxjyhjSH:1␤  in <anon> at /tmp/gSzxjyhjSH:1␤»
18:19 tadzik catch doesn't catch
18:23 tadzik brave souls who want to test modules on nom can try https://gist.github.com/1379175
18:27 dukeleto tadzik: ooh, i am a brave soul
18:27 tadzik :)
18:28 tadzik dukeleto: beware, rakudo/nom is broken :)
18:28 tadzik well, it doesn't work here at least
18:28 tadzik you may want to roll nqp back two commits
18:29 dukeleto tadzik: oy vey
18:29 dukeleto tadzik: i just want to download the latest release of rakudo and test against that. Will that not work?
18:29 tadzik dukeleto: no, release is not capable of running panda
18:30 dukeleto tadzik: oy vey
18:30 tadzik dukeleto: rakudo HEAD is fine, nqp newer than c78fddf6438730b0270329a57cded25193ffb2a7 isn't
18:30 tadzik well, if it works for you, then jnthn did it right and I screwed up something :)
18:30 tadzik but json doesn't work here on rakudo/HEAD
18:31 tadzik and beware, some tests hang, so you will want to kill them manually (Algorithm::Diff)
18:31 dukeleto tadzik: sounds like a minefield :)
18:31 tadzik dukeleto: you were warned :)
18:31 tadzik (have been?)
18:32 pmurias_ joined #perl6
18:37 tadzik hmm, once started, panda is quite fast
18:37 Mowah_ joined #perl6
18:39 sorear pmurias_: hi
18:39 dukeleto tadzik: both are acceptable englisth :)
18:39 dukeleto english, rather
18:39 tadzik dukeleto: good :)
18:46 * tadzik disappears
19:14 MayDaniel joined #perl6
19:25 vmspb joined #perl6
19:46 mj41 joined #perl6
19:59 IngisKahn joined #perl6
20:05 araujo joined #perl6
20:07 dalek rakudo/Rational: 3b12853 | moritz++ | / (3 files):
20:07 dalek rakudo/Rational: first try to move some functionality from Rat to the Rational role. Rather naive.
20:07 dalek rakudo/Rational: review: https://github.com/rakudo/rakudo/commit/3b1285367d
20:07 dalek rakudo/Rational: 7e239ac | moritz++ | / (2 files):
20:07 dalek rakudo/Rational: introduce Uint64, which we need for Rat (to distinguish it from FatRat)
20:07 dalek rakudo/Rational: review: https://github.com/rakudo/rakudo/commit/7e239ac0fe
20:24 fsergot joined #perl6
20:25 fsergot hi o/
20:34 foo___ joined #perl6
20:38 Mowah_ joined #perl6
20:41 foo___ left #perl6
20:49 aindilis joined #perl6
20:51 sorear hello fsergot
21:29 hundskatt joined #perl6
22:15 vmspb joined #perl6
22:22 hundskatt left #perl6
22:27 mj41 joined #perl6
22:30 buubot_backup joined #perl6
22:42 * jnthn back
22:45 jnthn tadzik: Huh, I'm confused...did you have the latest Rakudo patch too?
22:45 tadzik jnthn: aye
22:45 tadzik heh, I just got back as well
22:45 jnthn tadzik: as in, 8839b16147 in Rakudo?
22:46 tadzik uh
22:46 jnthn https://github.com/rakudo/rakudo/commit/8839b16147fc9e924f907d3de043c223d9e2298a
22:46 tadzik ew, nope :)
22:46 tadzik my bad sorry
22:46 jnthn phew :)
22:46 tadzik :)
22:46 tadzik didn't notice that one on the channel
22:46 jnthn ;)
22:49 tadzik modules on nom: https://gist.github.com/1379484
22:51 jnthn tadzik: ooh, great to have :)
22:52 vmspb joined #perl6
22:52 jnthn tadzik: Installing 'IO::Prompter' has failed: 'Tests failed for Testing'
22:52 jnthn tadzik: Does that mean it failed because a dependency's tests failed?
22:53 jnthn Seems that 'lolsql' works fine on nom
22:53 jnthn \o/
22:53 jnthn ;)
22:53 tadzik jnthn: yes
22:53 tadzik jnthn: lolsql works for it has no tests :)
22:53 tadzik and no lib/, iirc
22:56 jnthn oh :)
23:01 jnthn tadzik: It'd be good to know what I should focus on in order to help the ecosystem. Aside from native call stuff.
23:02 tadzik there are plenty of grammar failures, as in Method 'ast' not found for invocant of class 'Any'
23:02 tadzik want a full log of the masstest run?
23:03 jnthn please
23:04 tadzik Math::Model fails due to Incorrect pre-compiled version of lib/SVG/Plot.pm loaded
23:04 tadzik there's something worrying about that
23:05 tadzik it's on https://gist.github.com/1379505
23:05 tadzik now, panda list should tell me which modules got installed after all
23:06 tadzik > panda list | grep -c installed
23:06 tadzik 28
23:06 tadzik not bad
23:07 tadzik also, many of them were broken even on b
23:07 tadzik nom: 28 / 102
23:07 p6eval nom 8839b1:  ( no output )
23:07 tadzik nom: say 28 / 102
23:07 p6eval nom 8839b1: OUTPUT«0.274509803921569␤»
23:07 tadzik not a bad result at all
23:08 tadzik I'll analyze the log and update the wiki
23:08 tadzik maybe a mail to p6u would help the cause too
23:09 jnthn tadzik: Yeah, and I'm seeing some patterns in all of this too
23:10 jnthn tadzik: It may be that there's a few common things that, if fixed, could help many of them.
23:10 whiteknight joined #perl6
23:13 tadzik aye
23:14 * jnthn decides to attack JSON::Tiny performance a little more
23:22 cooper joined #perl6
23:25 diakopter jnthn: I get  Incorrect pre-compiled version of src/stage2/QRegex.nqp loaded
23:25 diakopter after modifying P6Regex/Actions.nqp then make nqpq
23:25 diakopter er
23:26 diakopter actually I left the nqpq off of make
23:27 jnthn that'd do it
23:27 diakopter jnthn: by adding   && $<arglist>[0].ast  to Actions.nqp line 357, NQPQ/Grammar.pm runs
23:27 diakopter dunno if that should be necessary though
23:30 jnthn diakopter: That's hiding the problem, not fixing it ;)
23:30 jnthn diakopter: The problem is there's no method arglist
23:30 jnthn That .ast should not be empty :)
23:31 diakopter ok
23:31 diakopter good to know there might be only that one problem though
23:31 jnthn (basically, hiding it in the sense that we get through the compile, but will generate wrong code)
23:31 jnthn diakopter: Oh, yes! That is good to know :D
23:33 * diakopter looks for another right-recursive rule to clone
23:38 tadzik whew, wiki updated
23:39 tadzik I believe we should leave some of the modules behind, those, which haven't received any interest since before the META.info age
23:39 * diakopter copypasta from src/Regex/P6Regex
23:41 diakopter jnthn: Well, importing arg/arglist from Regex/P6Regex/Actions.pm seems to not blow up
23:41 dalek nqp: 4e7a29e | tadzik++ | tools/build/PARROT_REVISION:
23:41 dalek nqp: Bump PARROT_REVISION
23:41 dalek nqp: review: https://github.com/perl6/nqp/commit/4e7a29e71c
23:41 dalek rakudo/nom: 18b019d | tadzik++ | / (2 files):
23:41 dalek rakudo/nom: Bump NQP_REVISION, include a fix by mls++ for the latest Parrot changes
23:41 jnthn diakopter: I suspected that would work :)
23:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/18b019df0b
23:45 dalek nqp: ecc2c89 | diakopter++ | src/QRegex/P6Regex/Actions.nqp:
23:45 dalek nqp: import arg/arglist from Regex/P6Regex/Actions.pm
23:45 dalek nqp: review: https://github.com/perl6/nqp/commit/ecc2c89cc6
23:45 dalek nqp: 4ee92b6 | diakopter++ | tools/build/PARROT_REVISION:
23:45 dalek nqp: Merge branch 'master' of github.com:perl6/nqp
23:45 dalek nqp: review: https://github.com/perl6/nqp/commit/4ee92b6054
23:53 diakopter what does  /<xaaaay @ 0>/  mean
23:53 tadzik "I threw an orange at my keyboard" ;)
23:53 diakopter heh
23:54 diakopter it's in t/p6regex/01-regex.t
23:54 jnthn diakopter: er
23:54 jnthn no idea :)
23:54 diakopter also, /mob <alnum>: <0 @ 35>/
23:54 jnthn std: /<xaaaay @ 0>/
23:54 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex metacharacter @ (must be quoted to match literally) at /tmp/iTayG0aJng line 1:�------> [32m/<xaaaay @[33m�[31m 0>/[0m�Can't call method "from" on unblessed reference at STD.pm line 54173.�FAILED 00:01 121m�»…
23:54 tadzik :D
23:54 jnthn diakopter: is it actual regex, or syntax for saying what is expected?
23:55 * diakopter is idiot
23:55 diakopter it's commented out
23:55 tadzik hugme: hug diakopter
23:55 * hugme hugs diakopter and blushes
23:57 tadzik sleepytime, g'night #perl6
23:57 diakopter o/
23:59 diakopter jnthn: I think t/p6regex/01-regex.t is failing to compile at line 59
23:59 jnthn 'night, tadzik

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

Perl 6 | Reference Documentation | Rakudo