»ö« 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.xParameter '' 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 contextUse of uninitialized value in string contextUse of uninitialized value in string contextUse of uninitialized value in string contextUse 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 bytesParrot VM: PANIC: Out of mem!C file src/gc/alloc_memory.c, line 105Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. 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 |