»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
masak ah, yes. 00:05
00:06 bluescreen10 left 00:08 cooper left
masak 'night, #perl6 00:16
00:29 localhost joined 00:32 kfo_ joined 00:36 kfo left 00:42 Mowah_ left 00:49 wolfman2000 joined 00:53 cafesofie joined 01:00 ashleydev left, cafesofie left 01:02 am0c joined 01:03 tyatpi_ left 01:11 ashleydev joined 01:18 tokuhirom joined 01:19 aindilis joined 01:23 tyatpi_ joined 01:30 kaare_ left 01:39 IngisKahn left 01:42 tyatpi_ left 01:43 Guest4946 left
benabik Does nom work on Parrot HEAD yet? I seem to recall it was broken by something we merged 01:43
01:45 bluescreen10 joined 01:46 whiteknight joined, whiteknight is now known as Guest651 01:53 Guest651 left 01:54 wknight8111 joined 02:03 IngisKahn joined 02:38 cooper joined 02:43 wknight8111 left 02:48 Chillance left
thowe yeah, so, Parrot fails to build still... Parrot VM: PANIC: Out of mem! 02:55
probably should say something in Parrot instead of here... 02:56
benabik thowe: That's less than ideal. How much memory do you have? 03:02
thowe 2.5G
this seems to happen with about 50% of releases for me...
benabik That really should be enough. :-/
thowe Version : 3.10.0-devel 03:03
benabik thowe: Where does it fail? 03:07
thowe C file src/gc/gc_gms.c, line 1823
but if I continue running make a few times it may settle someplace else...
or so I have come to expect
benabik What is it compiling? 03:08
thowe I don't understand the question... Rakudo nom, with Parrot 03:09
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:11
thowe ./perl6 --setting=NULL --optimize=3 --target=pir --output=src/gen/CORE.setting.pir src/gen/CORE.setting 03:12
benabik Oh. :-(
thowe ?
benabik That's probably one of the most memory intensive things ever. 03:13
thowe I compile stuff on a very regular basis... This does not happen. this operation must be crazy or flawed. 03:15
So, I need a windows gaming machine to play with Perl 6... 03:23
Sorry, don't mean to vent. I'm bummed. 03:24
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.
Timbus it took 1.5gb
benabik That sounds about what I see. 03:30
Timbus you could always try out niecza, thowe
benabik I sometimes wonder if PCT is holding on to too much of the old trees somehow. 03:32
03:38 molaf joined 03:40 mj41 left 03:53 tokuhirom left 03:54 worr left 04:02 am0c left 04:08 _jaldhar joined 04:13 worr joined
sorear benabik: PCT holds on to all the old trees, all the time 04:31
benabik sorear: That's very poor.
05:13 daniel-s left 05:18 _jaldhar left, risou_awy is now known as risou 05:20 molaf left 05:21 _jaldhar joined
thowe what's niecza? 05:26
sorear niecza: say 2 + 2
p6eval niecza v11-24-gcdd4e66: OUTPUT«4␤»
sorear github.com/sorear/niecza 05:27
05:35 daniel-s joined 05:41 abercrombie joined 05:50 thowe left 06:48 sayu joined 06:57 [Sec] left 06:58 [Sec] joined, AlexKotov joined 07:05 AlexKotov left 07:07 [Sec] left
snarkyboojum niecza: say e ** (2 * pi * i) 07:15
p6eval niecza v11-24-gcdd4e66: OUTPUT«1+5.08414924743628E-15i␤»
07:22 wolfman2_ joined 07:25 wolfman2000 left 07:38 birdwindupbird joined 07:45 donri joined 08:02 Tene left 08:03 djanatyn left 08:10 Tene joined, djanatyn joined, Tene left, Tene joined 08:18 sayu left 08:54 kaare_ joined 09:08 odoacre left
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␤»
Woodi it works correct ?
09:12 icwiener joined
Woodi I guess Instant was specced real becouse it is not Int, have fractions - just looks like Real 09:13
09:16 araujo left 10:11 preflex left 10:12 preflex_ joined, preflex_ is now known as preflex 10:19 Trashlord left 10:20 MayDaniel joined
masak Woodi: sounds like you're thinking of Num, not Real. 10:38
Woodi: both Int and Rat and Num are currently spec'd as Real.
jnthn mornin', #perl6 10:40
masak jnthn! \o/ 10:49
moritz \o
masak what a wonderful day for some Perl 6! 10:53
jnthn :)
Once I'm awake enough and have coffee and something to eat, yes :) 10:54
10:58 xinming left 10:59 xinming joined
masak no need to rush. it's the weekend! \o/ 11:00
moritz TCIS! :-) 11:03
today's challenge: Perl programming on a keyboard without a dollar sign
dalek kudo/nom: b692f97 | moritz++ | src/core/Instant.pm:
prevent hangs in now.Num and .Int
11:05
masak "TCIS"? 11:07
moritz Thank Christ/Chruny It's Saturday 11:08
any bigint LHFs left that I could grab? 11:15
yath s/C/E/ # eris 11:16
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"␤»
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␤»
moritz nom++
jnthn That '' is lta though. 11:26
moritz: It's not bigint per se but 11:27
nom: say [*] 1..100
p6eval nom 43be3c: OUTPUT«9.33262154439442e+157␤»
jnthn moritz: For some reason that last value of a range always comes out as Num, not Int. :/
(I haven't looked at why at all, but maybe it's something easy) 11:28
nom: .WHAT.say for 1..5 11:29
p6eval nom 43be3c: OUTPUT«Int()␤Int()␤Int()␤Int()␤Int()␤»
jnthn huh.
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(…
jnthn Hm
OK, well...something is up somewhere ;)
masak perl6: class A {}; say A.new(42)
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␤»
..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␤»
..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…
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␤»
moritz jnthn: ah, I remember that
moritz takes a look
11:31 pothos left
jnthn ponders doing great evil 11:32
11:32 pothos joined
moritz nom: say (1 ... 5)>>.WHAT 11:32
p6eval nom 43be3c: OUTPUT«List()␤»
moritz nom: say (1 ... 5).map: *.WHAT
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…
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␤ ␤»
moritz nom: say (1 ... 5).map: { .WHAT.perl }
p6eval nom 43be3c: OUTPUT«Int Int Int Int Int␤»
masak nom: my %h; %h<foo>.push(1, 2, 3); say %h.perl
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␤»
moritz ENOAUTOVIV 11:35
moritz thinks he found the bug that caused the last element to come out as Num
the real fix is a bit more involved though :/ 11:37
well, not complicated, just more typing and testing
11:38 rindolf joined
rindolf Hi all. I'm getting this error when trying to build Rakudo nom - paste.debian.net/146251/ - what can I do? 11:38
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…
masak rindolf: don't know the cause exactly, but it doesn't find the right tag in the parrot repo.
maybe the parrot repo didn't get updated properly? 11:40
jnthn That'd be odd given the tag came from running --targs
*--tags
Oh, you mean the pull failed?
moritz rindolf: try cd parrot; git fetch
rindolf: then cd .. and try again
11:41 whiteknight joined, whiteknight is now known as Guest59153
moritz (ranges don't work with bigints yet) 11:41
11:45 Trashlord joined
rindolf moritz: thanks, I realised what the problem is. 11:47
moritz rindolf: what was it? 11:49
dalek kudo/nom: 6084be6 | moritz++ | src/core/Range.pm:
Do not treat the last value of a range as a Num
11:50
moritz that's just a stopgap solution 11:51
ie as much stopgap as the rest of the implementation :-)
jnthn ooh, the video from my Debugging Perl 6 Grammars talk at YAPC is online: yapc.tv/2011/ye/jonathan-perl6grammars/ 11:59
rindolf moritz: the problem was that I had cloned my github fork of the parrot repository.
moritz: so it didn't get update to the same place.
Receiving objects: 2% (8155/386348), 1.54 MiB | 1 KiB/s - misery. 12:01
12:02 mj41 joined
jnthn nom: say 'foo'.flip 12:07
p6eval nom b692f9: OUTPUT«oof␤»
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
unfortunately, it reverses arrays, not strings... :/
(or maybe both arrays and scalars, I dunno) 12:13
12:15 Patterner left, mkramer joined 12:17 Psyche^ joined, Psyche^ is now known as Patterner
dalek p: a9b250f | jnthn++ | src/QRegex/ (2 files):
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
12:22 mkramer left 12:23 mkramer joined 12:28 mj41 left
tadzik o/ 12:32
jnthn o/ tadzik
tadzik hah, I appear on jnthn++'s video 12:40
just got to know that I missed a joke :P
colomon video?
tadzik yapc.tv/2011/ye/jonathan-perl6grammars/
12:43 mkramer left 12:46 mkramer joined 12:50 mkramer left 12:51 mkramer joined 12:52 mkramer left
dalek p: db4f73c | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Make sure flip_ast doesn't explode if it sees a non-QAST::Regex node.
12:52
12:53 colomon left
dalek kudo/nom: d4506c4 | jnthn++ | tools/build/NQP_REVISION:
Bump to an NQP revision with <after ...> support.
12:55
ast: b56cadb | jnthn++ | S05-metasyntax/lookaround.t:
Turn on <after ...> tests.
13:06 araujo joined 13:09 daniel-s left
dalek kudo/nom: 798e9c6 | jnthn++ | src/Perl6/ (2 files):
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
13:23 colomon joined
dalek kudo/nom: 77fd663 | jnthn++ | src/Perl6/Grammar.pm:
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
kudo/nom: 5d6e2c4 | jnthn++ | t/spectest.data:
Turn on S05-grammar/signatures.t.
14:00 worr left 14:05 am0c joined 14:08 Chillance joined
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
(er, I need to push a couple of patches, just waiting for the spectest)
dalek p: 3ff2502 | jnthn++ | src/QRegex/Cursor.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
kudo/nom: acd6b2b | jnthn++ | tools/build/NQP_REVISION:
Get fix for empty quantified captures; this gets the JSON::Tiny grammar and actions fully working and passing their tests.
14:20
tadzik jnthn: supercool :) 14:23
I'll give panda a shot 14:24
jnthn noooo...don't shoot the pan...oh, ok :)
tadzik I considered adding "if you know what I mean" to avoid not-intended animal slaughter ;)
I'll just assume all tests for it pass :) 14:26
jnthn tadzik: I can run and pass t/0<[1..3]>.* for JSON::Tiny 14:27
tadzik jnthn: I meant panda tests
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
jnthn tadzik: Yeah, I need to fix Test::Mock yet :) 14:29
rindolf git got stuck on checkouting parrot from github. :-(. 14:30
It got stuck at 5%.
tadzik heh, I remember when we were talking about ng->nom that was to happen soon back then
rindolf I started it at about 12:00 and it's now 16:30.
tadzik "there won't be much code rewriting, at least not as much as when we were moving alpha->ng"
I can only imagine how much code you did rewrite back then...
jnthn tadzik: It wasn't my idea to re-do the regex engine...
tadzik (:
rindolf: aw. Retry? 14:31
rindolf tadzik: I guess.
Maybe the tubes are clogged because it's the weekend.
dalek atures: b947e0b | jnthn++ | features.json:
Update a couple of regex related entries for nom.
14:35
tadzik jnthn: I get fails on roundtrip.t, No applicable candidates found to dispatch to for ''.
jnthn tadzik: Right
tadzik not fresh enough?
jnthn tadzik: I thought you just needed to parse JSON?
tadzik: Or do you need to write it too?
tadzik nope, just parsing
jnthn tadzik: OK, then you're fine 14:36
tadzik ok cool
jnthn tadzik: roundtrip.t is testing writing too
tadzik: That bit doesn't work yet
14:38 worr joined
[Coke] l 14:39
tadzik hrm, I got Incorrect pre-compiled version of lib/JSON/Tiny.pm loaded with freshly installed JSON::Tiny 14:40
deleting .pir from ~/.perl6/lib helps
and now the same for lib/Panda.pm 14:41
jnthn tadzik: Dependencies - including on the setting - need to match up exactly. 14:43
Build a new Rakudo, and any .pir compiled versions against the previous one will be invalid.
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
jnthn hm. 14:44
tadzik: You're certainly running the installed version too? 14:48
jnthn guesses it is finding a wrong file somewhere.
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.
tadzik adopting Panda's code makes me thing I got Perl 6 OO terribly wrong 14:50
oh, panda help works, and only took 14 seconds :)
let's go further
jnthn Well, or Rakudo used to get various bits wrong too, especially attribute visibility
"only" :)
tadzik yeah, it's mostly about attr visibility 14:51
there was mainly 2 changes in panda on nom, s/run/shell/ and all this OO
most of this time is module loading 14:52
when I run it from ~/src/perl/panda, where I built it, it doesn't complain about .pir
okay, Panda.new() somehow returns Panda::Installer...
eww, I don't get it 14:53
gist.github.com/1378915 -- what about BUILD(ALL) did I get wrong this time?
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␤»…
tadzik nom: class A { method BUILDALL(|$) { my $a = 5; } }; A.new.WHAT.say
p6eval nom acd6b2: OUTPUT«Int()␤»
tadzik jnthn: ^
I believe I shouldn't be messing with BUILD and stuff 14:56
14:57 sayu joined
tadzik tries abusing new() this time 14:59
jnthn tadzik: I...suspect that it expects BUILDALL to return the built object. 15:00
tadzik yeah, I suppose so 15:01
jnthn tadzik: YOu *can* implement BUILD. That's fine
tadzik I don't think it's a good idea after all
oh, it is?
Larry will shoult at me again ;)
jnthn tadzik: If you want to implement your own BUILDALL I very strongly recommend that you defer to the original one at some point
The default one executes the BUILDPLAN
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?
jnthn It doesn't
tadzik okay
jnthn tadzik: What are you trying to do?
tadzik but I can initialize its attributes, right?
passing them to bless()
jnthn Yes but that's what BUILD is for 15:03
Well
tadzik okay, I'm fine with that
jnthn Yeah, you can pass them to bless too
tadzik what I want to do: initialize $.tester, $.builder etc which belong to Pies, in Panda, which is Pies
so I can write my Panda.new(), create the builders and friends and pass them to bless
jnthn ah, OK 15:04
Yes, that will work out.
tadzik I should've stayed for those OO classes of yours at YAPC::EU 15:06
15:06 Trashlord left
jnthn ;) 15:08
tadzik I'm probably thinking half-Moosey half-C++ey
and nothing good comes out of it ;)
jnthn: any way to make "Use of uninitialized value in string context" print a line or such? 15:13
perl6 bin/panda list 31.95s user 0.41s system 99% cpu 32.618 total
and it succeeded :>
jnthn tadzik: "print a line"?
flussence number.
jnthn oh 15:14
tadzik yeah
jnthn maybe
tadzik \o/ 15:15
gist.github.com/1378946 15:16
now it just so happens that Acme::Meow doesn't work even though it passes tests :)
. o O ( panda: install a module in just under a minute! ) 15:17
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 :>
jnthn: I suppose so
jnthn tadzik: How long does the JSON parsing take?
tadzik although I'm running it from panda dir, and all the pirs are available
jnthn: ~15 secs I suppose 15:19
help is 14 and list is 31
jnthn tadzik: Is that an improvement on before?
tadzik jnthn: I...don't remember :)
istr it was around half a minute, but I can be wrong
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
Which means every time we hit <value> we go and re-do that work 15:20
tadzik aw
jnthn Well, but if it's twice as fast as before when it's missing an important optimization, that's a decent sign :)
tadzik: Where do I find the stuff it parses?
tadzik jnthn: feather.perl6.nl:3000/list 15:21
jnthn tadzik: pushed an updated Test::Mock; doesn't do the with bit yet 15:25
tadzik: But seems to kinda work :)
tadzik great!
15:26 hack_ joined
tadzik jnthn: do you get Could not find sub 227_1321716457.44295 on some tests too? 15:28
15:28 mj41 joined, hack_ left
jnthn tadzik: didn't see that one... 15:28
tadzik only synopsis.t works here 15:29
jnthn tadzik: oh
yeah, I only tried that one ;)
yeah, returning.t is busted. D'oh.
Will see if I can fix that
tadzik I'll see if Panda can bootstrap now 15:30
15:30 sftp left
tadzik jnthn: did your windows machine ever run panda? 15:30
jnthn tadzik: Don't think so 15:31
tadzik: Would really like to make that happen though
tadzik that has to be taken care of 15:33
nah, Test::Mock tests don't pass 15:34
15:34 Guest59153 left
tadzik dunno if that's due to Test::Mock or Panda now :) 15:34
jnthn Over a quarter of the time in the parse is spent building over and over again the NFA for value. 15:37
tadzik :)
jnthn A similar amount is swallowed up by all the <before ...> calls, which are a workaround for some charclass issue I guess
masak potential for improvement. :) 15:38
tadzik ok, it was not Test::Mock's fault :)
jnthn ooh ;)
tadzik another @!dependencies -> @.dependencies trap :>
jnthn masak: Indeed.
mls++ # giving me the profiling tool to know what's going on 15:39
masak mls++
jnthn It's so nice that I can profile grammars with this too :)
masak tadzik: either something is private, or you can't initialize it in .new -- not both :)
15:40 PacoLinux_ joined
tadzik masak: now I know :) 15:40
it's like with this dog, which you did not see
15:41 sayu left
tadzik static.themetapicture.com/media/fun...g-sign.jpg this one 15:41
"have you seen this privates behaviour"
jnthn :D 15:42
15:45 Trashlord joined
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␤»
tadzik correct?
jnthn yeah, privates are non-virtual. 15:49
tadzik /o\
so I can't possibly do things like this? 15:50
15:50 PacoLinux_ left 15:51 PacoLinux_ joined, PacoLinux_ left
jnthn tadzik: No. Private methods have the same visibility/scoping rules as private attributes. 15:51
tadzik okay
jnthn tadzik: If folks are meant to be able to override it, it shouldn't be private ;-)
tadzik I need to invent some new tests then
they aren't :)
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
so I do Ecosystem.new() but role { method !flush-states {} }
15:53 sftp joined
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
not that I'm a huge privatizer or such :) 15:57
15:57 vmspb joined 15:58 mj41 left
tadzik gah, panda will not bootstrap for JSON::Tiny fails some tests 16:00
I'll remove the test before it runs it and see if the rest goes fine :) 16:01
16:02 sftp left 16:05 pmurias joined
tadzik ./bootstrap.sh: line 3: 5984 Segmentation fault PERL6LIB=$PWD/ext:$PWD/lib perl6 bin/panda install . 16:07
...great :)
16:08 MayDaniel left, sftp joined 16:10 lichtkind joined
jnthn ugh 16:11
16:13 tokuhirom joined
dalek p: 672d080 | jnthn++ | src/how/NQPClassHOW.pm:
Add a way for the meta-object to cache values unless the method table changes.
16:15
p: c78fddf | jnthn++ | src/QRegex/Cursor.nqp:
Cache the NFAs built for proto-regexes so we don't have to re-build them every time we run the protoregex.
jnthn nom: say 4.497 / 6.117 16:16
p6eval nom acd6b2: OUTPUT«0.735164296223639␤»
dalek kudo/nom: 8839b16 | jnthn++ | src/Perl6/Metamodel/MethodContainer.pm:
Method-addition-expiring cache support, for the NFA engine to use.
jnthn 25% win or so just from that :)
tadzik goo.gl/vDmGi
jnthn :P 16:17
dalek nda: 020afb0 | tadzik++ | / (14 files):
Fix to make it work on rakudo/nom

s/run/shell, couple of OO updates. Can't bootstrap, for JSON::Tiny and Test::Mock fail their tests, but works fine aside from that.
16:19
tadzik now we party! \o/
jnthn \o/
tadzik jnthn++ for making that possible :) 16:20
oh, can we now bump PARROT_REVISION and apply mls's patch? 16:24
jnthn tadzik: yes
tadzik: No reason it's not done other than I just didn't get to it yet 16:25
:)
If you have tuits, please feel free
tadzik I can do it if... ok
where is the patch?
16:26 kcwu joined
jnthn tadzik: gist.github.com/1370157 16:26
16:30 pat_js joined
dalek p: db70b8c | jnthn++ | src/QRegex/Cursor.nqp:
A few small optimizations that get another 10% off parsing projects.json.
16:32
jnthn nom: say 4.073 / 6.117
p6eval nom acd6b2: OUTPUT«0.665849272519209␤»
tadzik ...it takes 4 seconds on your dragon? 16:33
jnthn Yeah. Slow...
tadzik ohyou
jnthn :)
ok, I gotta head out for a bit
Will work on the char class stuff later on to see if I can get it down some more :)
tadzik hrm 16:35
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␤»
tadzik correct?
b: try { die "ASD!"; CATCH { say "foo: '$_'" } }; say 'alive' 16:42
p6eval b 1b7dd1: OUTPUT«foo: 'ASD!'␤alive␤»
16:48 sayu joined 16:59 sftp left 17:00 sftp joined 17:05 sftp left 17:06 sftp joined 17:07 birdwindupbird left 17:17 vmspb left
tadzik did json break for anyone after the last commits? 17:22
I get Method 'cache' not found for invocant of class 'Perl6::Metamodel::GrammarHOW' 17:30
sorear good * #perl6 17:33
tadzik hello sorear 17:34
17:34 orafu left
pmurias sorear: hi 17:34
17:36 orafu joined
sorear pmurias: hi 17:37
17:50 am0c left 17:58 _jaldhar is now known as jaldhar 18:05 molaf joined
tadzik jnthn: I'm afraid nqp:c78fddf6438730b0270329a57cded25193ffb2a7 broke rakudo 18:16
nom: try { die; }; say 'alive' 18:19
p6eval nom 8839b1: OUTPUT«alive␤»
tadzik nom: try { die; CATCH {} }; say 'alive'
p6eval nom 8839b1: OUTPUT«␤ in block <anon> at /tmp/gSzxjyhjSH:1␤ in block <anon> at /tmp/gSzxjyhjSH:1␤ in <anon> at /tmp/gSzxjyhjSH:1␤»
tadzik catch doesn't catch
brave souls who want to test modules on nom can try gist.github.com/1379175 18:23
dukeleto tadzik: ooh, i am a brave soul 18:27
tadzik :)
dukeleto: beware, rakudo/nom is broken :) 18:28
well, it doesn't work here at least
you may want to roll nqp back two commits
dukeleto tadzik: oy vey 18:29
tadzik: i just want to download the latest release of rakudo and test against that. Will that not work?
tadzik dukeleto: no, release is not capable of running panda
dukeleto tadzik: oy vey 18:30
tadzik dukeleto: rakudo HEAD is fine, nqp newer than c78fddf6438730b0270329a57cded25193ffb2a7 isn't
well, if it works for you, then jnthn did it right and I screwed up something :)
but json doesn't work here on rakudo/HEAD
and beware, some tests hang, so you will want to kill them manually (Algorithm::Diff) 18:31
dukeleto tadzik: sounds like a minefield :)
tadzik dukeleto: you were warned :)
(have been?)
18:32 pmurias_ joined 18:33 pmurias left
tadzik hmm, once started, panda is quite fast 18:37
18:37 Mowah_ joined
sorear pmurias_: hi 18:39
dukeleto tadzik: both are acceptable englisth :)
english, rather
tadzik dukeleto: good :)
tadzik disappears 18:46
18:55 wolfman2_ left 19:02 risou is now known as risou_awy 19:14 MayDaniel joined 19:15 Mowah_ left 19:21 IngisKahn left 19:22 MayDaniel left 19:25 vmspb joined 19:29 aindilis left 19:37 sayu left 19:46 mj41 joined 19:53 tokuhirom left 19:56 mj41 left 19:59 IngisKahn joined 20:01 araujo left 20:05 araujo joined
dalek kudo/Rational: 3b12853 | moritz++ | / (3 files):
first try to move some functionality from Rat to the Rational role. Rather naive.
20:07
kudo/Rational: 7e239ac | moritz++ | / (2 files):
introduce Uint64, which we need for Rat (to distinguish it from FatRat)
20:24 fsergot joined
fsergot hi o/ 20:25
20:34 foo___ joined 20:38 Mowah_ joined 20:41 foo___ left 20:47 rindolf left 20:49 aindilis joined
sorear hello fsergot 20:51
20:52 vmspb left 20:56 donri left 21:06 zby_home_ left 21:29 hundskatt joined 21:40 buubot_backup left 21:59 cooper left 22:15 vmspb joined 22:22 hundskatt left 22:27 mj41 joined 22:30 buubot_backup joined
jnthn back 22:42
tadzik: Huh, I'm confused...did you have the latest Rakudo patch too? 22:45
tadzik jnthn: aye
heh, I just got back as well
jnthn tadzik: as in, 8839b16147 in Rakudo?
tadzik uh 22:46
jnthn github.com/rakudo/rakudo/commit/88...23d9e2298a
tadzik ew, nope :)
my bad sorry
jnthn phew :)
tadzik :)
didn't notice that one on the channel
jnthn ;)
22:49 vmspb left, mtk left
tadzik modules on nom: gist.github.com/1379484 22:49
jnthn tadzik: ooh, great to have :) 22:51
22:52 vmspb joined
jnthn tadzik: Installing 'IO::Prompter' has failed: 'Tests failed for Testing' 22:52
tadzik: Does that mean it failed because a dependency's tests failed?
Seems that 'lolsql' works fine on nom 22:53
\o/
;)
tadzik jnthn: yes
jnthn: lolsql works for it has no tests :)
and no lib/, iirc
jnthn oh :) 22:56
22:59 mj41 left
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:01
tadzik there are plenty of grammar failures, as in Method 'ast' not found for invocant of class 'Any' 23:02
want a full log of the masstest run?
jnthn please 23:03
tadzik Math::Model fails due to Incorrect pre-compiled version of lib/SVG/Plot.pm loaded 23:04
there's something worrying about that
it's on gist.github.com/1379505 23:05
now, panda list should tell me which modules got installed after all
> panda list | grep -c installed 23:06
28
not bad
also, many of them were broken even on b 23:07
nom: 28 / 102
p6eval nom 8839b1: ( no output )
tadzik nom: say 28 / 102
p6eval nom 8839b1: OUTPUT«0.274509803921569␤»
tadzik not a bad result at all
I'll analyze the log and update the wiki 23:08
maybe a mail to p6u would help the cause too
jnthn tadzik: Yeah, and I'm seeing some patterns in all of this too 23:09
23:10 kaare_ left
jnthn tadzik: It may be that there's a few common things that, if fixed, could help many of them. 23:10
23:10 whiteknight joined 23:11 whiteknight is now known as Guest51139
tadzik aye 23:13
jnthn decides to attack JSON::Tiny performance a little more 23:14
23:22 vmspb left, cooper joined
diakopter jnthn: I get Incorrect pre-compiled version of src/stage2/QRegex.nqp loaded 23:25
after modifying P6Regex/Actions.nqp then make nqpq
er
actually I left the nqpq off of make 23:26
jnthn that'd do it 23:27
diakopter jnthn: by adding && $<arglist>[0].ast to Actions.nqp line 357, NQPQ/Grammar.pm runs
dunno if that should be necessary though
jnthn diakopter: That's hiding the problem, not fixing it ;) 23:30
diakopter: The problem is there's no method arglist
That .ast should not be empty :)
diakopter ok 23:31
good to know there might be only that one problem though
jnthn (basically, hiding it in the sense that we get through the compile, but will generate wrong code)
diakopter: Oh, yes! That is good to know :D
diakopter looks for another right-recursive rule to clone 23:33
tadzik whew, wiki updated 23:38
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
jnthn: Well, importing arg/arglist from Regex/P6Regex/Actions.pm seems to not blow up 23:41
dalek p: 4e7a29e | tadzik++ | tools/build/PARROT_REVISION:
Bump PARROT_REVISION
kudo/nom: 18b019d | tadzik++ | / (2 files):
Bump NQP_REVISION, include a fix by mls++ for the latest Parrot changes
jnthn diakopter: I suspected that would work :)
p: ecc2c89 | diakopter++ | src/QRegex/P6Regex/Actions.nqp:
import arg/arglist from Regex/P6Regex/Actions.pm
23:45
p: 4ee92b6 | diakopter++ | tools/build/PARROT_REVISION:
Merge branch 'master' of github.com:perl6/nqp
23:49 bluescreen10 left
diakopter what does /<xaaaay @ 0>/ mean 23:53
tadzik "I threw an orange at my keyboard" ;)
diakopter heh
it's in t/p6regex/01-regex.t 23:54
jnthn diakopter: er
no idea :)
diakopter also, /mob <alnum>: <0 @ 35>/
jnthn std: /<xaaaay @ 0>/
p6eval std be1f10e: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter @ (must be quoted to match literally) at /tmp/iTayG0aJng line 1:␤------> /<xaaaay @⏏ 0>/␤Can't call method "from" on unblessed reference at STD.pm line 54173.␤FAILED 00:01 121m␤»…
tadzik :D
jnthn diakopter: is it actual regex, or syntax for saying what is expected?
diakopter is idiot 23:55
it's commented out
tadzik hugme: hug diakopter
hugme hugs diakopter and blushes
tadzik sleepytime, g'night #perl6 23:57
diakopter o/
jnthn: I think t/p6regex/01-regex.t is failing to compile at line 59 23:59
jnthn 'night, tadzik