»ö« 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. |
|||
00:00
skyheights left
00:06
adu joined
|
|||
diakopter | adu: hi | 00:25 | |
adu | hi | ||
how goes | |||
diakopter | well | ||
adu | I haven't been doing much | 00:27 | |
I've been sick | |||
but I drank a redbull, and now I'm ready for anything | 00:28 | ||
:D | |||
diakopter | heh | ||
adu | so I've been sluging along with nqp and parrot | 00:31 | |
sorear | diakopter: maybe not, but a? %% b does make sense | 00:34 | |
00:34
tyatpi joined
|
|||
dalek | ecza: 755ee05 | sorear++ | src/STD.pm6: Remove a fossil that caused spurious exceptions... |
00:34 | |
ecza: 877296d | sorear++ | lib/Kernel.cs: Remove a rather broken "optimization" from multi handling that screwed up precedence and other optimizations |
|||
ecza: 75abc9a | sorear++ | / (2 files): When constant folding multis, call the dispatcher, not the proto. :) |
|||
ecza: 529e0ac | sorear++ | lib/CORE.setting: Handle [*] et al correctly (fixes #87) |
|||
00:42
eternaleye left,
b1rkh0ff left
00:43
adu left
00:46
adu joined
|
|||
dalek | ecza: 98bb415 | sorear++ | lib/CodeGen.cs: Avoid crashing when compiling calls to protopad-less multis |
01:14 | |
01:17
cognominal left,
cognominal joined
|
|||
diakopter | pmichaud: do you happen to be around? | 01:17 | |
01:22
eternaleye joined
|
|||
diakopter | phenny: ask jnthn have you considered using fixed-size arrays for the NFA arrays? | 01:29 | |
phenny | diakopter: I'll pass that on when jnthn is around. | ||
01:30
wolfman2000 joined
01:45
Guest10986 left
|
|||
colomon | sorear++ | 01:50 | |
sorear | for the last commits? | 01:51 | |
colomon | it's so nice to come home and find out there have been a bunch of commits | 01:53 | |
spectesting now. :) | |||
sorear | colomon: I have a spectest running already at S32-list | 01:59 | |
colomon | sorear: mine just finished. | ||
S03-sequence/arity-2-or-more.t looks troublesome | |||
a number of new passes, as well | 02:00 | ||
sorear | wah | ||
THIS IS A NEW COMPUTER | |||
sorear aborts the run, waits for colomon's logs | |||
colomon | did you use TEST_JOBS ? | ||
sorear | mm | 02:01 | |
colomon | n: say (1, 1, { $^a + $^b } ... *).[^6].join(', ') | ||
p6eval | niecza v17-35-g98bb415: OUTPUT«1, 1, 2, 3, 5, 8» | ||
colomon | n: is (1, 1, &infix:<+> ... *).[^6].join(', ') | 02:02 | |
p6eval | niecza v17-35-g98bb415: OUTPUT«===SORRY!===Undeclared routine: 'is' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1364 (die @ 3)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33)  at /home/… | ||
colomon | n: say is (1, 1, &infix:<+> ... *).[^6].join(', ') | ||
p6eval | niecza v17-35-g98bb415: OUTPUT«===SORRY!===Undeclared routine: 'is' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1364 (die @ 3)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33)  at /home/… | ||
colomon | that's the arity-2-or-more.t issue | ||
n: say is (1, 1, &[+] ... *).[^6].join(', ') | 02:03 | ||
p6eval | niecza v17-35-g98bb415: OUTPUT«===SORRY!===Undeclared name: '[+]' used at line 1Undeclared routine: 'is' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1364 (die @ 3)  at /home/p6eval/niecza/src/STD.pm6 | ||
..lin… | |||
colomon | doh, sorry | ||
n: say (1, 1, &[+] ... *).[^6].join(', ') | |||
p6eval | niecza v17-35-g98bb415: OUTPUT«===SORRY!===Undeclared name: '[+]' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1364 (die @ 3)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33)  at /home/p6… | ||
colomon | THAT'S the problem | ||
02:03
tokuhirom joined
|
|||
colomon | n: say (1, 1, &infix:<+> ... *).[^6].join(', ') | 02:03 | |
p6eval | niecza v17-35-g98bb415: OUTPUT«Unhandled exception: Cannot call infix:<+>; none of these signatures match: Any, Any  at /home/p6eval/niecza/lib/CORE.setting line 3178 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3185 (ANON @ 25)  at <unknown> line 0 (KERNEL dog… | ||
colomon | or that | 02:04 | |
errr, and that | |||
dalek | p/qbootstrap: 996ac93 | diakopter++ | src/QRegex/NFA.nqp: trash my crappy quant NFA generator (lots of bad code); replace with one that works and handles % (and %%) |
||
sorear | colomon: which test files fail, have passing TODOs, or are otherwise mentioned in the summary? | ||
diakopter | phenny: ask jnthn see github.com/perl6/nqp/commit/996ac9354f it makes %/%% work | 02:05 | |
phenny | diakopter: I'll pass that on when jnthn is around. | ||
colomon | sorear: gist.github.com/2795936 | 02:06 | |
sorear | ty | ||
colomon | quoting.t is the bug specific to my setup | ||
02:07
xdbr left
|
|||
colomon | rat.t is not being in line with the latest spec change, I've had fixing Niecza to match it on my todo list for a couple of weeks. | 02:07 | |
02:08
tokuhirom left
|
|||
colomon | I can work on the todo passes, if you'd like | 02:08 | |
sorear | In what way is quoting.t specific to your setup? | ||
r: say &[+] | |||
p6eval | rakudo e75663: OUTPUT«sub infix:<+>($a?, $b?) { ... }» | ||
sorear | r: say &infix:<+> | ||
p6eval | rakudo e75663: OUTPUT«sub infix:<+>($a?, $b?) { ... }» | ||
sorear | r: multi foo(1) { }; multi foo(2) { }; say &foo | 02:09 | |
p6eval | rakudo e75663: OUTPUT«sub foo(Mu ) { ... }» | ||
sorear | r: multi foo(1) { }; multi foo(2,3) { }; say &foo | ||
p6eval | rakudo e75663: OUTPUT«sub foo(Mu ) { ... }» | ||
sorear | how does rakudo get the signature from a multi dispatcher? | ||
r: multi foo(1) { }; multi foo(2,3) { }; say &foo.count | |||
p6eval | rakudo e75663: OUTPUT«Inf» | ||
sorear | r: multi foo(1) { }; multi foo(2,3) { }; say &foo.WHAT | ||
p6eval | rakudo e75663: OUTPUT«Sub()» | ||
02:09
JimmyZ_ joined
|
|||
sorear | r: multi foo(1) { }; multi foo(2,3) { }; say &foo.^parents | 02:09 | |
p6eval | rakudo e75663: OUTPUT«Routine() Block() Code()» | ||
sorear | r: multi foo(1) { }; multi foo(2,3) { }; say &foo.^find_method('count') | 02:10 | |
colomon | sorear: it's the thing about not being able to find glib | ||
p6eval | rakudo e75663: OUTPUT«count» | ||
sorear | I thought you had fixed that | ||
colomon | nope | ||
sorear | r: multi foo(1) { }; multi foo(2,3) { }; say &foo.^find_method('count').WHAT | ||
p6eval | rakudo e75663: OUTPUT«Method()» | ||
colomon | it's working on your system, right? | ||
sorear | r: multi foo(1) { }; multi foo(2,3) { }; say &foo.^find_method('count').signature | ||
p6eval | rakudo e75663: OUTPUT«:(Code:D , Mu *%_)» | ||
sorear | r: multi foo(1) { }; multi foo(2,3) { }; say &foo.signature | 02:11 | |
p6eval | rakudo e75663: OUTPUT«:(Mu )» | ||
sorear | yeah, quoting.t works for me | ||
JimmyZ_ | diakopter: I think 'if $max == 1 ' is wrong? | 02:12 | |
diakopter | you're right! | 02:14 | |
how in the heck is it workinglike it is...? | |||
sorear | n: proto foo($x?, $y?) {*}; multi foo($x,$y) { $x + $y }; multi foo() { 0 }; say (1, 1, &foo ... *).[^6].join(', ') | ||
p6eval | niecza v17-35-g98bb415: OUTPUT«Potential difficulties: $x is declared but not used at /tmp/wC0r0d7xm_ line 1:------> proto foo(⏏$x?, $y?) {*}; multi foo($x,$y) { $x + $ $y is declared but not used at /tmp/wC0r0d7xm_ line 1:------> proto foo($x?, ⏏… | 02:15 | |
sorear | n: proto foo($?, $?) {*}; multi foo($x,$y) { $x + $y }; multi foo() { 0 }; say (1, 1, &foo ... *).[^6].join(', ') | ||
p6eval | niecza v17-35-g98bb415: OUTPUT«1, 1, 2, 3, 5, 8» | ||
sorear | \o/ | ||
diakopter | JimmyZ_: wait, it's max == -1 | ||
oh | |||
I see | |||
well hm | 02:17 | ||
darn. | |||
JimmyZ_: thanks :) | |||
JimmyZ_ | diakopter: hehe :) | ||
diakopter | testing it with -1 now | 02:18 | |
well, at least all the other changes (besides the support for %/%%) are working | 02:19 | ||
dalek | ecza: 9d10d16 | sorear++ | lib/CORE.setting: Give good signatures for the binary protos, fixes arity-2-or-more.t |
02:20 | |
p/qbootstrap: d05da7c | diakopter++ | src/QRegex/NFA.nqp: fix off-by-two error; JimmyZ_++ spotted it. This means %/%% are in fact not yet working. diakopter-- diakopter-- |
02:21 | ||
ast: 24dd9a3 | (Solomon Foster)++ | integration/ (2 files): Unfudge passing tests. |
02:23 | ||
sorear | why is check_variable reparsing variables :| | 02:25 | |
dalek | ast: 661f139 | (Solomon Foster)++ | S03- (2 files): Niecza unfudge. |
02:27 | |
02:28
Chillance left
|
|||
dalek | ast: 361bd23 | (Solomon Foster)++ | S05-match/blocks.t: Niecza unfudge. |
02:29 | |
02:31
eternaleye left
02:35
eternaleye joined
02:39
tokuhirom joined
|
|||
dalek | ecza: f54d02c | sorear++ | src/NieczaActions.pm6: Avoid spurious error on &[+], reduce reparsing in check_variable |
02:40 | |
sorear | colomon: the rx.t failing test is flat out wrong and should be removed | 02:43 | |
02:44
JimmyZ_ left
|
|||
sorear | RT 112450 is Working As Designed | 02:44 | |
colomon | wonder if it was just a typo | 02:46 | |
sorear | phenny: tell masak rt.perl.org/rt3/Ticket/Display.html?id=112450 # Working as designed. $l is a regex atom, so o ** $l is interpreted as o [$l o]*. Do you agree / can we close this ticket and remove the corresponding TODO test? | 02:47 | |
phenny | sorear: I'll pass that on when masak is around. | ||
dalek | ast: 6f6d6c2 | sorear++ | S05-mass/rx.t: [S05-mass/rx] Fudge dubious test for now |
02:49 | |
colomon | sorear: Just checking S05, it's not at all obvious to me how this case should work. | 02:52 | |
sorear | the subrule.t one is interesting though | 02:53 | |
colomon: it's not documented in S05 because it is obsolescent syntax. | 02:55 | ||
dalek | ecza: c146c95 | sorear++ | lib/Cursor.cs: Reduce noise from RX_TRACE slightly |
02:57 | |
ecza: 5d10b5f | sorear++ | src/STD.pm6: In the absense of a separator, quantifiers should not eat following sigspace |
|||
sorear | that second one fixes S05-capture/subrule.t | ||
colomon | sorear: I need to go to bed now. Very glad to see you busy with niecza again. :) | 02:59 | |
sorear | :) | 03:02 | |
good night. | |||
diakopter | phenny: tell jnthn disregard the above.. I've learned much since then. | 03:28 | |
phenny | diakopter: I'll pass that on when jnthn is around. | ||
03:30
cognominal_ joined
03:31
erkan left
|
|||
diakopter | sorear: in case you're curious, in the process of debugging % NFAs, I discovered that <foo> [',' <foo>]* parses "foo foo foo" successfully, but fails to parse "foo,foo" | 03:32 | |
03:33
cognominal left
|
|||
diakopter | oh, and <foo> contains <.ws> on either end | 03:33 | |
this totally makes no sense | 03:35 | ||
not even considering the NFA, how in the world is "foo foo foo" matching.. | |||
sorear | r: 'foo foo foo' ~~ / ^ 'foo' [',' 'foo']* $ / | 03:36 | |
p6eval | rakudo e75663: ( no output ) | ||
sorear | r: say 'foo foo foo' ~~ / ^ 'foo' [',' 'foo']* $ / | ||
p6eval | rakudo e75663: OUTPUT«#<failed match>» | ||
sorear | r: say 'foo,foo' ~~ / ^ 'foo' [',' 'foo']* $ / | ||
p6eval | rakudo e75663: OUTPUT«q[foo,foo]» | ||
sorear | ? | ||
diakopter | well, you need some <.ws> in there, but yeah | 03:37 | |
sorear | do you have a working example? | 03:40 | |
diakopter | in qbootstrap branch of nqp, yeah | ||
03:42
bruges left
|
|||
diakopter | well, of course I can't reproduce it now. | 03:45 | |
but my modded versions of HLL::Grammar <hexint> and <hexints> reproduce it | |||
nm. :||| now they don't. | 03:50 | ||
03:51
tokuhirom left
|
|||
diakopter | and now % ',' is working! argh! | 03:52 | |
but % '_' in hexint is not | 03:53 | ||
maybe it doesn't like nested % | |||
03:57
Entonian joined
03:58
Entonian left
04:00
bruges joined
|
|||
diakopter | disregard my prior 11 messages above | 04:02 | |
04:07
c1sung_ left,
c1sung joined
|
|||
diakopter tries to read the NFA pir for hexint | 04:24 | ||
adu | hi diakopter | 04:26 | |
04:30
cognominal_ left
04:31
cognominal joined
04:33
xinming joined
04:36
xinming_ left
04:42
sisar joined
|
|||
adu | is panda the new cpan? | 04:44 | |
04:53
kaare_ joined,
jaldhar left
04:54
cognominal left,
cognominal joined
04:59
jaldhar joined
05:01
adu left
05:02
aesundstrom left
05:09
am0c left
|
|||
sisar | adu: yup, panda is the new 'cpan' (the tool) | 05:10 | |
but is nowhere as comprehensive as cpan | |||
yet :) | |||
05:11
birdwindupbird joined
|
|||
dalek | ecza: f1da062 | sorear++ | lib/ (6 files): Encapsulate variable property accessors |
05:23 | |
ecza: cbe27a0 | sorear++ | lib/ (3 files): Allow objects to fill the role of read-only variables |
|||
ecza: 581727d | sorear++ | / (13 files): Remove all calls to now-noop NewROScalar |
|||
ecza: 51f3253 | sorear++ | lib/ (6 files): s:g/[type|init]Obj<(ect// |
05:48 | ||
ecza: 8af7893 | sorear++ | lib/ (6 files): Refactor anomalous interpolation of Nil |
|||
moritz | \o | 06:29 | |
sorear | o/ moritz | 06:30 | |
moritz | sorear++ jnthn++ diakopter++ # hacking while I slept :-) | 06:34 | |
dalek | ecza: 36b12c7 | sorear++ | / (8 files): initVar and typeVar no longer have any reason to exist |
06:35 | |
ecza: 0750bf7 | sorear++ | / (2 files): Misc type-management fixes |
|||
moritz | oops, rakudo/qbootstrap is broken on latest nqp | 06:40 | |
06:42
zby_home_ joined
06:48
tyatpi left
|
|||
sorear | it would be nice if my benchmark timings didn't get 10% bigger every single time I run them | 06:53 | |
moritz | .oO( speed up your compiler but not re-running benchmarks! ) |
06:56 | |
sorear | people t[3~ell me I should be measuring while I optimize instead of relying on my knowledge of i386 microarchitecture | ||
however, my measurements have an uncertainty of 200-300% | |||
07:02
NamelessTee joined
|
|||
sorear | really the only thing Niecza::Benchmark is good for is catching unexpected factor-of-10 regressions | 07:10 | |
that, and making me cry | |||
n: say pi.fmt('%.4f') | 07:21 | ||
p6eval | niecza v17-46-g0750bf7: OUTPUT«??» | ||
sorear | n: say pi.fmt('%4f') | ||
p6eval | niecza v17-46-g0750bf7: OUTPUT«??» | ||
moritz | how creative :-) | 07:22 | |
sorear | ? | 07:23 | |
araujo wonders what would be a nice project to start in perl6 | |||
hello o/ | |||
moritz | araujo: a printf routine that handles all the things that C's sprintf is unsuited for (like, big integers) | ||
sorear: I find the fmt output creative | 07:24 | ||
araujo | hello moritz o/ | ||
mmm.. | |||
sorear | araujo: a printf routine that handles all the things that C's sprintf has supported since the beginning of time | ||
moritz | p6: printf '%b', 2**66 | ||
p6eval | rakudo e75663: OUTPUT«0» | 07:25 | |
..pugs: OUTPUT«(timeout)» | |||
..niecza v17-46-g0750bf7: OUTPUT«1» | |||
sorear | maybe tomorrow I'll write an actually working printf for niecza | ||
araujo: on second thought, that doesn't satisfy "in" Perl6 | |||
araujo | hehe | 07:26 | |
moritz | well, you can write it in Perl 6 :-) | ||
07:30
JimmyZ joined
|
|||
JimmyZ | good afternoon | 07:31 | |
tadzik | good morning | 07:33 | |
sorear | hrm, my copy of vim seems to have decided to switch ^K input from greek to kana | 07:34 | |
moritz | \o JimmyZ, tadzik | 07:46 | |
p6: sub f { gather loop { take 1; return } }; say f | 07:47 | ||
p6eval | rakudo e75663: OUTPUT«(signal SEGV)» | ||
..niecza v17-46-g0750bf7: OUTPUT«Unhandled exception: Cannot unbox a Variable[] from an object of repr P6opaque at <unknown> line 0 (KERNEL map @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 2391 (GatherIterator.reify @ 6)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eva… | |||
..pugs: OUTPUT«» | |||
moritz submits rakudobug | |||
07:52
b1rkh0ff joined
07:53
rsimoes left
|
|||
dalek | kudo/nom: 47f26e7 | moritz++ | src/core/ (2 files): typed exception from failed .+ dispatch also prepare exception for returning form exhausted routine |
08:03 | |
ast: d701cfa | moritz++ | S32-exceptions/misc.t: text X::Method::NotFound on normal and .+ dispatches |
08:05 | ||
08:05
Antichoc_ joined
08:11
Antichoc_ left
|
|||
dalek | ecza: 40e1779 | sorear++ | lib/ (7 files): Split ListVariable out of SimpleVariable |
08:15 | |
ecza: 16054c7 | sorear++ | lib/Niecza/Benchmark.pm6: Rewrite Niecza::Benchmark. Much shinier, still quite useless. |
|||
ecza: 9852003 | sorear++ | lib/ (2 files): Replace virtual method calls with type checks |
|||
08:20
tokuhirom joined
08:22
sergot joined
|
|||
sergot | o/ | 08:22 | |
dalek | kudo/nom: decb0a5 | moritz++ | src/core/ (2 files): typed exception for private method not found |
08:24 | |
sorear | o/, sergot. | ||
dalek | ast: 16238cd | moritz++ | S32-exceptions/misc.t: test private method not found error |
||
08:50
sergot left
|
|||
sorear | sleep& | 08:51 | |
09:12
stepnem left
09:19
stepnem joined
09:29
araujo left,
cognominal left
09:30
cognominal joined
|
|||
jnthn | o/ | 09:31 | |
phenny | jnthn: 01:29Z <diakopter> ask jnthn have you considered using fixed-size arrays for the NFA arrays? | ||
jnthn: 02:05Z <diakopter> ask jnthn see github.com/perl6/nqp/commit/996ac9354f it makes %/%% work | |||
jnthn: 03:28Z <diakopter> tell jnthn disregard the above.. I've learned much since then. | |||
09:34
araujo joined,
araujo left,
araujo joined
|
|||
jnthn | Hmm...seems the NFA updates are a bit busted :( | 09:35 | |
moritz | aye, breaks the rakudo build | ||
jnthn | Fails the NQP tests too | ||
dalek | kudo/nom: 5f81da3 | moritz++ | src/ (3 files): refactor binding exceptions |
||
ast: c6df8c5 | moritz++ | S32-exceptions/misc.t: update and expand tests for binding to unbindable stuff |
09:36 | ||
moritz | ... which is why I hack stuff in nom right now :-) | ||
dalek | kudo/nom: 3003279 | moritz++ | src/core/IO.pm: more consistent exception for IO.copy also remove unnecessary special case that could lead to race conditions |
09:39 | |
09:47
cognominal_ joined,
cognominal left
|
|||
dalek | ecs: 8c3efe4 | moritz++ | S04-control.pod: [S04] small nit let and temp are prefix operators, not ordinary functions |
10:12 | |
moritz | r: let 4 = 5 | 10:14 | |
p6eval | rakudo 300327: ( no output ) | ||
dalek | p/qbootstrap: acdaae4 | jnthn++ | src/QRegex/NFA.nqp: Revert diakopter++'s NFA changes. Unfortunately, they break various NQP tests and the Rakudo build. |
||
p/qbootstrap: 689b820 | jnthn++ | src/QRegex/P6Regex/Grammar.nqp: Workaround separator/NFA bug for now; gets us able to parse \x[...] and \o[...] in regexes again. |
|||
jnthn | r: { let 4 = 5; Mu }; | 10:15 | |
p6eval | rakudo 300327: OUTPUT«Can only use 'let' on a container in sub prefix:<let> at src/gen/CORE.setting:11179 in block <anon> at /tmp/UevOFh1aTI:1» | ||
jnthn | r: { let 4 = 5; }; | 10:16 | |
p6eval | rakudo 300327: OUTPUT«Can only use 'let' on a container in sub prefix:<let> at src/gen/CORE.setting:11179 in block <anon> at /tmp/91EhH8Uizb:1» | ||
jnthn | r: let 4 = 5;; | ||
p6eval | rakudo 300327: ( no output ) | ||
jnthn | r: let 4 = 5; | ||
p6eval | rakudo 300327: ( no output ) | ||
jnthn | Hm, what... | ||
tadzik | r: let 4 = 5; say 4 | ||
p6eval | rakudo 300327: ( no output ) | ||
tadzik | hrm | ||
10:16
tokuhirom left
|
|||
jnthn | May be worth somebody with ICU giving latest a run. | 10:17 | |
tadzik | I'm on it | ||
jnthn | At least the initial issue for rx.t should now be resolved. | ||
10:20
birdwindupbird left
|
|||
tadzik | jnthn: t/qregex/01-qregex.t Failed test: 290 | 10:20 | |
the rest is all clean | |||
dalek | kudo/nom: a4c09d1 | moritz++ | src/core/ (3 files): stylistic exception updates no functional changes |
||
kudo/nom: 493adbf | moritz++ | src/core/ (2 files): typed exceptions for temp and let on non-containers |
|||
jnthn | tadzik: ah, I meant Rakudo spectest | ||
moritz | fwiw all my changes in nom should be easily (and automatically) mergable with qbootstrap | 10:21 | |
tadzik | jnthn: ah, that will take a couple of time :) | ||
moritz will do it on 4 cores | |||
jnthn | "a couple of time" :D | ||
tadzik | ...what did I just say | 10:22 | |
moritz | "couple of" can only be used with countable items | ||
jnthn | Right :) | ||
tadzik | couple of minutes, I mean | ||
or plenty of time | |||
couldn't make up my mind | |||
moritz | which is funny, because yesterday I ridiculed jnthn++ for doing a very similar error in a commit message | 10:23 | |
tadzik | oh, wiait | ||
#sureI'lldrawthat | |||
jnthn | moritz: Just passing on the ridicule parcel :) | ||
away for 15 mins or so. | 10:24 | ||
moritz | jnthn: but non-native speakers are excused :-) | ||
ok, build is roughly as fast as in nom | 10:27 | ||
tadzik | here, am I excused now? i.imgur.com/aNNLf.png | 10:29 | |
moritz | :-) | 10:30 | |
I would have expected a couple of copies of the "times" news paper :-) | |||
tadzik | hehe | 10:31 | |
there's your chance :) | |||
masak | afternoon, sixonauts. | 10:40 | |
phenny | masak: 02:47Z <sorear> tell masak rt.perl.org/rt3/Ticket/Display.html?id=112450 # Working as designed. $l is a regex atom, so o ** $l is interpreted as o [$l o]*. Do you agree / can we close this ticket and remove the corresponding TODO test? | ||
moritz | perlpunks.de/paste/show/4fc204a0.64c7.52 # latest spectest summary on qbootstrap | ||
S32-exceptions/misc fails because I updated the test file, and only added the new classes in nom | 10:41 | ||
masak | sorear: no, I'm not so sure I agree. I see your argument, though. gonna go through S05 looking for support for either version. | ||
moritz | id had two other failures before, might still be worth investigating later | ||
s/id/it/ | 10:42 | ||
$ ./perl6 -Ilib t/spec/S05-mass/named-chars.rakudo | |||
===SORRY!=== | |||
Unrecognized character name LINE FEED (LF) at line 19, near "]/, 'Unanc" | |||
masak | moritz++ # #113394 | 10:43 | |
moritz | is that the segfault? | ||
masak | aye. | ||
good find. | |||
10:43
spider-mario joined
|
|||
moritz | what I wanted to do was throw a typed exception :/ | 10:44 | |
masak | `a? %% b` is just a strange way to write `[a b?]?`, no? | ||
moritz | yes | 10:45 | |
(modulo possible difference in the arrangement of captures, if b captures) | |||
jnthn | moritz: ooh. So, down to just one test file with parse failures. | 10:46 | |
masak | hehe, colomon and sorear were already in S05 looking for support either way for rt.perl.org/rt3/Ticket/Display.html?id=112450 | ||
I think what we want to do is aim for some form of consistency and Least Surprise. | 10:47 | ||
colomon | masak: I sure didn't see any support in there at all. but I'm not sure what sorear thought. | ||
masak | I'm pretty sure that's why I filed that RT ticket. | ||
colomon | masak: you really ought to make that clearer in the ticket. ;) | ||
masak | looks like I provided mostly my opinion and little surrounding conte... right. | 10:48 | |
sometimes I'm too brief. this was one such time. | |||
10:48
NamelessTee left
|
|||
masak | I might go back and check the logs from when it was filed. | 10:48 | |
moritz | jnthn: t/spec/S05-metasyntax/assertions.t is due to $/ being Any in <?{...}> assertions | ||
masak | I remember submitting that bug and another bug in the same psychological time slot. | ||
10:49
NamelessTee joined
|
|||
colomon | The bit I read in S05 gave explicit rules for what to do if an interpolating variable was a regex or a string. it didn't mention anything else. | 10:49 | |
masak | right. | ||
there's a case to be made for handling $l being an Int or a Range. | 10:50 | ||
but it'll probably require a spec change. | |||
something like "in the rhs to infix:<**>, if the variable is Numeric or Range, it gets interpolated as if it were an in-place literal" | 10:51 | ||
10:51
PacoAir joined
|
|||
jnthn | moritz: Hmm. | 10:52 | |
colomon | though note you just switched from Int to Numeric there. | ||
masak | yeah, I churned a bit and switched to Numeric. | ||
feels more perlish. | |||
colomon | the written language covering ** { $n } is explicit that it's Int or a Range | ||
masak | ok. | ||
then we keep Int-or-Range. | |||
jnthn | At least make it Real :P | ||
masak | ;) | ||
jnthn | "Please match this i times!" | ||
masak .oO( keeping it Real ) | 10:53 | ||
colomon | please match this 3.5 times... | ||
jnthn | Right :) | ||
masak | that's fine. | ||
jnthn | Int makes more sense to me too :) | ||
masak | that's like @a[ 3.5 ] | ||
jnthn | .oO( What a floored argument ) |
||
masak | I was just thinking, since infix:<**> is now *unambiguously* about N-times repetition (which is goooood), it should do a little more to DWIM things into that fold. | 10:54 | |
jnthn | moritz: OK, the charnames failure is teh weird. :S | ||
masak | we don't need to share the semantic niche with "but if it's a Str..." anymore. | ||
so if we wanted, and thought it was a good idea, we could even make this work: `my $l = "4"; / a ** {$l} /` | 10:55 | ||
colomon | jnthn: actually, I was just coming around to masak's way of thinking | ||
10:55
whiteknight joined
|
|||
colomon | in particular, I'd be pissed if an integer-valued Rat didn't work for quantifying! | 10:55 | |
masak | it's mostly just the logical consequences of having disambiguated infix:<**>. | ||
jnthn | colomon: I don't really have a horse in this race...I'm just punning while my code compiles :P | ||
10:56
whiteknight is now known as Guest15727
|
|||
jnthn | I can see what masak is arguing for is Perlier, anyways. | 10:56 | |
masak | jnthn: "I'm just punning while my code compiles" would make a *great* t-shirt! | ||
masak read it as "what masak is arguing for is Peculiar, always" :P | 10:57 | ||
<sisar> adu: yup, panda is the new 'cpan' (the tool) | 10:58 | ||
dalek | p/qbootstrap: 16654ba | jnthn++ | src/HLL/Actions.pm: Complete guess-fix for the \c[...] issue. |
||
masak | in some ways, it's good to have new-ish-comers explain things to new-really-comers, cutting through the crap. | 10:59 | |
jnthn | moritz: I've taken a wild guess at what might be going on with named-chars. | ||
moritz: It's the only thing I can immediately think of... | |||
11:00
isBEKaml joined
|
|||
colomon | n: / a+ + / | 11:00 | |
p6eval | niecza v17-49-g9852003: ( no output ) | ||
colomon | r: / a+ + / | ||
p6eval | rakudo 300327: OUTPUT«===SORRY!===Method 'rxtype' not found for invocant of class 'Integer'» | ||
colomon | std: / a+ + / | 11:01 | |
p6eval | std 8632387: OUTPUT«===SORRY!===Quantifier quantifies nothing at /tmp/pMpmohyp_Z line 1:------> / a+ +⏏ /Check failedFAILED 00:00 41m» | ||
jnthn | STD's output is the one I expected. | ||
masak submits rakudobug | 11:02 | ||
isBEKaml | masak: niecza? | ||
masak submits nieczabug | |||
isBEKaml | masak++ | ||
tadzik | jnthn: gist.github.com/2805171 from g12b2cd7 | 11:05 | |
jnthn | tadzik: Looks consistent with moritz's findings too. Thanks! | 11:07 | |
11:07
aesundstrom joined
11:08
aesundstrom left
11:12
cognominal_ left
11:13
cognominal joined
|
|||
dalek | ast: 59b7d26 | (Solomon Foster)++ | S05-mass/rx.t: Niecza unfudge. |
11:15 | |
11:26
brrt joined
|
|||
moritz | jnthn: that does fix named-chars.t | 11:35 | |
jnthn | moritz: I can't test it due to lack of ICU here | 11:37 | |
moritz: It's my best guess at why it fails. | |||
Got another couple of fixes about ready to push. :) | 11:38 | ||
dalek | p/qbootstrap: cf4bf1f | jnthn++ | src/QRegex/NFA.nqp: Make <alpha> LTM-declarative. |
11:39 | |
kudo/qbootstrap: c297695 | jnthn++ | src/Perl6/Grammar.pm: Don't capture comments. |
|||
kudo/qbootstrap: 9653a4d | jnthn++ | src/Perl6/Grammar.pm: Fix a case of variable interpolation. Resolves S05-interpolation/regex-in-variable.t failures and probably S05-modifier/ignorecase.t too. |
|||
11:45
brrt left
11:53
isBEKaml left,
b1rkh0ff left,
ponpon left,
domidumont left,
telex left,
mikec_ left,
ponpon joined
11:54
ponpon is now known as Guest62506,
b1rkh0ff joined
11:55
adu joined,
Facefox left
11:58
tyatpi joined
|
|||
tadzik | hehe | 11:58 | |
11:59
grondilu joined
|
|||
tadzik | does ??? get parsed as ?: for some reason? | 11:59 | |
11:59
Facefox joined
|
|||
grondilu somehow managed to have NativeCall work on his system (linux, debian sid) | 12:00 | ||
217s/Str/$native/ | |||
tadzik | grondilu: what was the cause? | 12:01 | |
12:01
Kid_ joined
|
|||
grondilu | I don't know but I replaced ', Str' by ', ', $native' on line 217 | 12:01 | |
jnthn | tadzik: I hope not. | ||
12:02
Kid_ left
|
|||
grondilu | multi trait_mod:<is>(Routine $r, :$native!) is export { $r does Native[$r, $native]; | 12:02 | |
} | |||
tadzik | jnthn: rebuilding Rakudo now, but that's what happened to Shell::Command just a few moments ago | ||
jnthn | r: say ??? | ||
p6eval | rakudo 493adb: OUTPUT«Stub code executed in block <anon> at /tmp/k1XVqFmRGC:10» | ||
12:02
WisdomFusion joined
|
|||
tadzik | that's nom I think | 12:02 | |
jnthn | tadzik: Yeah, comparing it with qbootstrap output | 12:03 | |
(it fails to parse it) | |||
12:04
WisdomFusion left
|
|||
grondilu | Now that NativeCall is working, I consider working on porting BerkeleyDB. Is there someone working on it? | 12:04 | |
moritz | I hope you want to interface with it, not porting it :-) | ||
12:04
Kid_ joined
|
|||
moritz | I know nobody working on it right now | 12:05 | |
jnthn: updated spectest run: perlpunks.de/paste/show/4fc21872.64c8.1a1 | |||
grondilu | moritz: indeed. | ||
moritz | so, three remaining test failures :-) | ||
jnthn | moritz: That is after the named-chars but before the interpolation fixes? | 12:06 | |
t/spec/S05-modifier/ignorecase.rakudo and t/spec/S05-interpolation/regex-in-variable.rakudo show up failed in there but I pushed a fix for them a moment ago. | |||
moritz | jnthn: maybe it was not the latest version after all :/ | 12:07 | |
jnthn | moritz: Well, but now we know named-chars is fixed \o/ | ||
moritz | too many open windows to know for sure :-) | ||
indeed, missed at least one commit | |||
moritz burns another quarter hour of CPU | 12:10 | ||
jnthn | t/spec/S05-metasyntax/assertions.t is a curiosity | 12:11 | |
It turns out that it's backtracking past the : | 12:12 | ||
Think I just found it. | |||
s/it/why/ | |||
12:13
grondilu left
12:16
isBEKaml joined,
domidumont joined,
telex joined,
mikec_ joined,
Kid_ left,
Kid_ joined
|
|||
masak | anyone opposed to me changing the spec to explicitly allow Int/Range variables as the rhs of infix:<**>? | 12:18 | |
as you see from rt.perl.org/rt3/Ticket/Display.html?id=112450 , the current state of the art is inconsistent and confusing. | 12:19 | ||
I maintain that this is because we're not fully adapted to infix:<**> being simpler nowadays. | |||
moritz | well | 12:20 | |
in theory, I'm for it | |||
but | |||
there's always a "but" :-) | |||
the problem is that ** $foo looks declarative | 12:21 | ||
but it can only reasonably be declarative if we all $foo to be cached | |||
s/all/allow/ | |||
and then people will want to write | |||
(\d+) . ** $0 | 12:22 | ||
I'm not sure if that can be declarative | |||
masak | $0 isn't an Int or a Range. | ||
jnthn | er, nothing with interpolation is declarative, afaik | 12:23 | |
masak | right. | ||
I don't really see how it can be. | |||
unless it's constants. | |||
jnthn | right | ||
dalek | p/qbootstrap: 5db4340 | jnthn++ | src/QRegex/P6Regex/Actions.nqp: Don't disregard backtrack modifiers directly placed on atoms. This was why assertions.t failed in Rakudo. |
12:24 | |
12:25
Kid_ left
|
|||
tadzik | heh, found it, and it's not nice | 12:28 | |
jnthn | And not covered by spectests either, by the sounds of it... | ||
tadzik | jnthn: try { ??? } or { ("a" ~~ :e) } | 12:29 | |
it sees ? and then : :/ | 12:30 | ||
jnthn | r: '192' ~~ /(\d**1..3) <?{$0 < 256}>/ | ||
p6eval | rakudo 493adb: ( no output ) | ||
jnthn | r: say '192' ~~ /(\d**1..3) <?{$0 < 256}>/ | ||
p6eval | rakudo 493adb: OUTPUT«q[192] 0 => q[192]» | ||
jnthn | oh, taht one passes... | 12:31 | |
r: say '992' ~~ /(\d**1..3) <?{$0 < 256}>/ | |||
p6eval | rakudo 493adb: OUTPUT«#<failed match>» | ||
jnthn | I think the test is wrong here | 12:32 | |
Locally I get: | |||
> '992' ~~ /(\d**1..3) <?{$0 < 256}>/ | |||
q[99] 0 => q[99] | |||
adu | masak: moritz: I can't access that url | ||
jnthn | Of course, there's nothing to say it should not backtrack. | ||
masak | adu: which url? | 12:33 | |
jnthn | So it fails once, then backs off to match one char less, then matches 99 and is happy. | ||
adu | rt.perl.org/... | ||
jnthn | Anyone disagree? | ||
masak | adu: yeah, seems down at present. :/ | ||
it's the right url, though. I have it open in another browser tab. | 12:34 | ||
jnthn | Changing them to **3 fixes things. | ||
dalek | ast: 9478f9a | jnthn++ | S05-metasyntax/angle-brackets.t: Correct some tests that had wrong expectations on backtracking. |
12:35 | |
adu | masak: does it have something to do with **, %, %%? | 12:37 | |
masak | adu: [BUG] ** quantification doesn't work proper with variable interpolation without braces in Rakudo | ||
r: say "foooo" ~~ /^ f o ** 4 $/ | |||
p6eval | rakudo 493adb: OUTPUT«q[foooo]» | ||
masak | r: my $l = 4; say "foooo" ~~ /^ f o ** $l $/ | ||
p6eval | rakudo 493adb: OUTPUT«===SORRY!===Quantifier quantifies nothing at line 1, near " $l $/"» | ||
masak | r: my $l = 4; say "foooo" ~~ /^ f o ** {$l} $/ | ||
p6eval | rakudo 493adb: OUTPUT«===SORRY!===Quantifier quantifies nothing at line 1, near " {$l} $/"» | ||
masak | inneresting. behavior has changed. is this due to qbootstrap? | 12:38 | |
but, hm, no. qbootstrap only switched engines for the Rakudo compilation stage. | |||
jnthn | I sure hope not, given it's not been merged :) | ||
masak | troo. | ||
must be something else. :) | |||
jnthn | tadzik: Reproduced here. | ||
12:39
grondilu joined,
NABEKL4 joined,
VAAPBS0 joined
12:40
tokuhirom joined
|
|||
jnthn | tadzik: Ah, it's got very lost before it hits that. | 12:41 | |
masak | 'Quantifier quantifies nothing' -- so it's parsing '**' as '* *', no? | 12:42 | |
jnthn | Probably after failing to parse what it expected after ** | 12:43 | |
12:43
grondilu left
|
|||
adu | hmm | 12:45 | |
"$x+++++$y;" gives "Cannot assign to a readonly variable or a value" but | 12:46 | ||
"$x++ + ++$y;" evaluates to 6 | |||
masak | adu: because LTM. | ||
adu: "$x+++++$y" gets read as "$x++ ++ + $y" | 12:47 | ||
adu | LTM? | ||
masak | adu: Longest-Token Matching. | ||
adu | oh ok | ||
masak | postfix:<++> wins over infix:<+> cus it's longer. | ||
it's actually a good example of this principle :) | |||
adu: the qbootstrap branch that jnthn++ and moritz++ and tadzik++ are triaging will bring better LTM to Rakudo. | 12:48 | ||
12:49
cognominal_ joined
|
|||
adu | oh, I didn't even know it was relevant :P | 12:49 | |
masak | maybe we'll even get a nice .trans implementation out of it :) | 12:50 | |
12:51
brrt joined
|
|||
masak | I believe a good blog post could be written around .trans -- about how those who say "Perl 6 is an academic effort" aren't so much completely wrong as coming at it from a strange angle and getting bits of it right. | 12:52 | |
12:52
cognominal left
|
|||
adu | masak: I know enough about .trans to write a rot13, does that make me qualified to write a blog entry? | 12:52 | |
masak | you're always qualified to write a blog entry. | 12:53 | |
but if you want to write this one, I'm willing to help you with background details. | |||
12:53
leprevost left
|
|||
masak | I re-implemented .trans back in 2010 when I realized it was dead slow for long inputs. | 12:53 | |
12:54
Gesh joined
|
|||
adu | and it didn't make it to the main branch until now? | 12:54 | |
masak | I made it O(potential replacements) instead of O(string length), which was an improvement for my blog software. | ||
I don't know what the current status is. .trans is fast enough for me these days. | |||
but my implementation isn't the final word at all. | |||
ideally we could have an implementation that just piggybacks on the regex engine and LTM alternations. | 12:55 | ||
the exact details are handwave-y. | |||
12:57
cognominal_ left
|
|||
adu | hand wavey | 12:58 | |
I don't like it | |||
I thought Perl6 alternation was PEG based | |||
masak | oh, the LTM part itself is very well understood. | 12:59 | |
and yes, the closest thing out there is probably PEG. | |||
adu | so PEG+LTM | ||
I could write an article about PEG+LTM parsers :) | 13:00 | ||
13:00
cognominal joined
|
|||
masak | I just meant that the exact details of how to hook the regex engine up to .trans are hand-wavey. | 13:00 | |
13:00
leprevost joined
|
|||
masak | I don't know how much introspection and internals-mucking it would take, for example. | 13:00 | |
adu | probably alot | ||
moritz | perlpunks.de/paste/show/4fc22584.64c7.2ab # newest spectest run | 13:01 | |
masak | maybe it's just a matter of doing an &eval around a grammar definition string. but that's bound to be slow as heck. | ||
even with caching. | |||
moritz | well, missed the last commit by jnthn :-) | ||
masak | so maybe using the MOP somehow to build the grammar dynamically is better. | ||
adu | I think by hand wavey you mean that the regex engine is f(g(x)), and .trans is f(x), which "shouldn't be too hard to isolate" | ||
dalek | kudo/qbootstrap: 2ad64fa | jnthn++ | src/Perl6/Grammar.pm: Fix parse-o spotted by tadzik++. (Really want to figure out how STD avoids needing this, though.) |
||
moritz | masak: we could just do ~~ m:g/ @alternatives / | ||
masak: modulo finding out which branch was taken | 13:02 | ||
tadzik | jnthn++ | ||
thay may unlock panda | |||
masak | moritz: ooh. | ||
adu | tadzik: did you write panda? | ||
tadzik | so I could run emmentaler, and see what breaks, and find new bugs :) | ||
masak | moritz: that might actually get us quite far, yes. | ||
tadzik | adu: aye | ||
masak | moritz: I still want it to be cached somehow, though. | ||
adu | tadzik++ | ||
masak | but maybe that could be built into m// itself. | 13:03 | |
tadzik | adu: thanks :) | ||
masak | and probably should. | ||
jnthn | OK, I think that with all latest patches and the tweak I did to the one spectest file, we should be as good as master so far as the spectests go. | 13:04 | |
er, s/master/nom/ :) | |||
masak | nom, the branch that srsly wants to be named 'master'. :) | 13:05 | |
adu | I thought 'nom' was some european language for "master" | ||
tadzik | :) | 13:06 | |
jnthn | For me, the main downside of it being called "nom" is that masak keeps whining about this. :P | 13:08 | |
masak | adu: 'nom' is lolspeak for 'food' or 'to eat'. | 13:09 | |
jnthn | In this case, though, it stands for "new object model" :) | ||
masak | right. | ||
jnthn: oh, I'm the only one, am I? it's not the fact that "where's master? why is it called nom instead?" are FAQs on the channel, and that people (not just me) keep pushing to master, accidentally creating it? | 13:10 | ||
jnthn | moritz: I don't get the t/spec/S02-types/bool.t failure here | ||
When was the last time somebody asked that on the channel? | |||
13:11
Patterner left
|
|||
masak | I don't know. the IRC logs don't allow searching for three-letter words. | 13:11 | |
isBEKaml | masak: 'nom ' ? :) | ||
masak | ' ' isn't a letter :) | 13:12 | |
isBEKaml | masak: it is, a blank letter. | ||
:P | |||
masak | r: say so ' ' ~~ /\w/ | ||
p6eval | rakudo 493adb: OUTPUT«False» | ||
masak | nope. :) | ||
isBEKaml | not worthy of sending across the worlds on a capsule. :P | ||
13:13
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
masak .oO( OH HAI WE COME IN PEACE PRAY TELL WHY IS IT CALLED NOM NOT MASTER ) | 13:13 | ||
isBEKaml | .oO ( ) | ||
moritz | jnthn: I'm rerunning now | 13:16 | |
NamelessTee | jnthn: I'm rerunning now | ||
moritz | NamelessTee: do you repeat stuff? | ||
NamelessTee | sorry, I am trying to script my client | ||
made a mistake | 13:17 | ||
jnthn | .O( It wasn't a repetition, it was a rerun :P ) | ||
moritz | NamelessTee: ah, I thought you were a new bot | ||
jnthn: still getting the bool.t failure. bt forthcoming | 13:24 | ||
jnthn: perlpunks.de/paste/show/4fc22b23.64c8.66 | |||
jnthn | moritz: But...it fails while running the tests? | 13:25 | |
Not while parsing? | 13:26 | ||
moritz | jnthn: it fails during run time, right before the last test | ||
and I get a memory map dumped to my terminal | |||
moritz.faui2k3.org/tmp/bool.log has the whole thing | 13:30 | ||
jnthn | What what...it's the C<but> | 13:32 | |
I don't think it's anything to do with qbootstrap | |||
It's just getting unlucky with allocations, I think. | |||
I reproduced it by putting a loop around the tests taht use but. | |||
13:34
brrt left
13:35
Chillance joined
|
|||
tadzik | panda now works on qbootstrap, running emmentaller | 13:37 | |
with an extra l | |||
13:37
brrt joined
|
|||
masak | \o/ | 13:40 | |
adu | emmentalller? | 13:41 | |
masak | "emmentaler" | ||
a tool for smoke-testing the whole set of modules and applications. | |||
like a spectest but for downstream dependencies of Rakudo. | |||
(or Niecza, with time) | |||
13:42
NamelessTee left
|
|||
jnthn | Need to do a few other bits now...will try and figure out that crash later. | 13:42 | |
tadzik | adu: see tjs.azalayah.net/new.html | 13:43 | |
13:44
Kid_ joined
|
|||
adu | that is so cool | 13:44 | |
masak | tadzik++ # faded "?" boxes | 13:46 | |
tadzik | not sure if it was me :) | 13:47 | |
masak | tadzik: why are things sorter down to XML::Writer, and then unordered? | ||
tadzik | masak: working things first | ||
masak | no wait. | ||
tadzik | then ordered again :) | ||
13:47
Kid_ left
|
|||
masak | it's two lists of internally sorted things. | 13:47 | |
why? | |||
tadzik | working things first | ||
masak | ah. | ||
13:48
Kid_ joined
|
|||
adu | what? | 13:48 | |
masak | when we get this going, we should probably put the working things last :) | ||
adu | I thought it was alphabetical | ||
tadzik | it is, partly | 13:49 | |
masak | and maybe sort in order of decreasing urgency. failing at earlier steps being more urgent than failing at later ones. | ||
adu | oic ABC is after XML::Writer | ||
tadzik | github.com/tadzik/emmentaler/blob/...matter#L13 | ||
adu | oh I was working on an XML::Reader | ||
tadzik | I hope that explains it :) | ||
although the code is quite weird :) | 13:50 | ||
masak | anyway, tadzik++ for taking this forward. | ||
adu | github.com/andydude/p6-xml | ||
tadzik | (even though?) | ||
adu | what should I do to make it more module-ish? | ||
tadzik | adu: does it work? | ||
adu: there's a wiki for that | |||
adu | tadzik: yes, as a grammar | ||
masak | "sortsub" is not a good name for a sort sub ;) | ||
tadzik | adu: wiki.perl6.org/Create%20and%20Distr...%20Modules | ||
masak | it's like calling a class "SomeClass" | ||
tadzik | shush masak! :P | ||
adu | I don't have any functions per se | ||
masak | tadzik: ooc, why are you implementing this in Perl 5? | ||
tadzik | masak: it was written before Template::Mojo | 13:51 | |
masak | oh, ok. | ||
tadzik | it could be Perl 6 now, yes | ||
masak | so a porting effort is in Emmentaler's future? | ||
tadzik | somewhat, yes | ||
masak | \o/ | ||
tadzik | I expect it to run fully on Perl 6 | 13:52 | |
it may be a nice Bailador example for FPW | |||
moritz | fwiw I'm spectesting qbootstrap-merged-into-nom right now | ||
"just for the lulz" | |||
adu | tadzik: my module is already laidout like that, but someone said my tests were not compatible | 13:53 | |
tadzik looks | |||
moritz | that was me, probably | ||
tadzik | adu: you have no META.info, that's one thing | ||
adu | moritz: probably | ||
oh | |||
tadzik | adu: tests are supposed to be able to run automagically and produce a somewhat binary result | ||
either "OMG WORKS" or "NOES WTF" | 13:54 | ||
see github.com/tadzik/perl6-Acme-Meow/...t/01-fun.t for example | |||
adu | so I have to have some canned inputs | 13:56 | |
anyways, thanks for the tips | 13:58 | ||
moritz | yes; you just use examples | ||
adu | igtg | ||
tadzik | see you | ||
moritz | see you | ||
\o/ qbootstrap merged into nom: all spectests pass | 13:59 | ||
+4 passing TODOs | |||
jnthn | moritz: Oh, the bool.t fail is gone now too? | 14:00 | |
adu | anyways, I highly recommend reading p6-xml/dot/tree.svg, it shows how I partitioned the XML grammar | ||
jnthn | moritz: This seems pretty awesome. What do you think as to our requirements for merging it? | ||
14:00
adu left
|
|||
moritz | jnthn: I ran it three time, and it didn't bail out once | 14:01 | |
tadzik | w00t | ||
jnthn | moritz: OK :) | ||
wfm | |||
moritz | jnthn: though it might still be interesting to fix the underlying problem | ||
tadzik | 50 modules ok, 51 not ok (101 total) | ||
that's modulo 1 what's on nom | |||
jnthn | tadzik: 1 module has a regression? | ||
tadzik | yes | ||
14:02
brrt left
|
|||
moritz | jnthn: IMHO it's mergable | 14:02 | |
jnthn: just needs the merge in NQP too, and then bumping NQP revision | |||
jnthn | I was gonna say "let's see what fallout tadzik++ reports", but we already have that :) | ||
moritz | tadzik: which one? | ||
jnthn | tadzik: Do you know which one? | ||
:) | |||
tadzik | DBIish | ||
moritz | feature request: a tool for comparing that stuff :-) | ||
tadzik | yeah | ||
better than "huh, I'll just count modules starting with A, then with B, C, D... there it is!" :) | 14:03 | ||
jnthn | Where does DBIish fail? | ||
Build? Tests? | |||
tadzik | Tests | 14:05 | |
oh, it's also about 2 minutes slower | |||
or 3. 21:46 vs 19:00 | 14:06 | ||
but that might be noise | |||
jnthn | No, the spectests show the effect too. | ||
14:06
MayDaniel joined
|
|||
jnthn | It's mostly that we're doing a bit more work on startup now building transitive NFAs. | 14:06 | |
It's a few hours hacking to mitigate that, but I don't feel a need to hold the merge for it. | |||
moritz | aye | 14:07 | |
moritz builds the newest rakudo on a machine where he can test DBIish properly | |||
jnthn | OK. I need to take care of some $dayjob stuff I ignored to get qbootstrap done. ;) | 14:08 | |
moritz | jnthn: if I can sort out DBIish, should I merge qbootstrap? | ||
jnthn | moritz: +1 | 14:09 | |
moritz | somehow my laptop froze while trying to compile rakudo :/ | 14:21 | |
though usually when the memory usage is too high, the OOM killer simply goes after firefox :-) | 14:22 | ||
JimmyZ | firefox--, which always does that | 14:23 | |
isBEKaml | moritz: because firefox spawned too many children and OOMKiller counted them as culprits? | ||
moritz | isBEKaml: I dunno how the OOM killer works, but I guess it's simply the process that uses up the most memory | ||
isBEKaml | It's funny when that happens and firefox always comes back up as if it started on a clean install. :D | ||
14:24
MayDaniel left
|
|||
moritz | the crash recovery works pretty reliable for me | 14:24 | |
14:25
tokuhirom left
|
|||
isBEKaml | this hasn't been much of a problem since I don't have 50 tabs open, unlike at $work. :) | 14:25 | |
masak | qbootstrap passes the spectests? whoa! jnthn++ moritz++ tadzik++ | 14:26 | |
tadzik | well, I didn't fix anything :) | ||
jnthn | masak: Not only that, but also runs all but one of the modules too. | ||
masak | wow! | 14:29 | |
tadzik | I'm very happy that Config::INI's not broken | ||
moritz | DBIish still passes all tests here | ||
(that's with qbootstrap merged locally into nom) | 14:30 | ||
tadzik | it's probably the first grammar I've written, and it kept breaking on every grammar change in Rakudo and I was then struggling to fix it | ||
tadzik rechecks | |||
moritz tries on a different machine | 14:31 | ||
all tests pass there too | 14:32 | ||
ok, I'll merge | |||
14:32
Kid_ left
|
|||
jnthn | \o/ | 14:32 | |
moritz | dalek might spam us now... | 14:33 | |
dalek | Heuristic branch merge: pushed 112 commits to nqp by moritz | ||
jnthn | s3.amazonaws.com/ragefaces/e1f11b7e...20ff34.png :) | ||
tadzik | oh | 14:34 | |
dalek | Heuristic branch merge: pushed 26 commits to rakudo/nom by moritz | ||
tadzik | DBIish fail is probably due to debugging output I added to Actions.pm confusing TAP | ||
moritz | qbootstrap has landed. Welcome to the 21st century | ||
jnthn++ for all the hard work | |||
and diakopter++ and tadzik++ for helping | |||
JimmyZ | what? only 26 commits? | 14:35 | |
moritz | JimmyZ: in rakudo. 112 in nqp | ||
isBEKaml | Heuristic branch merge: pushed 112 commits to nqp by moritz | ||
JimmyZ: ^^ :) | |||
JimmyZ | yep, I meant rakudo | 14:36 | |
jnthn | moritz++ for many contributions to it too :) | ||
dalek | kudo/nom: 5cff505 | moritz++ | docs/ChangeLog: note some qbootstrap changes in ChangeLog |
14:38 | |
moritz gets all his karma from updating ChangeLog in tiny steps :-) | |||
masak | I see no fault in that. | 14:39 | |
that way, we have an always up-to-date ChangeLog. moritz++ | |||
dalek | kudo/nom: cceca68 | jnthn++ | docs/ROADMAP: Remove two completed ROADMAP items. |
||
moritz | next up: unfudging | 14:40 | |
masak | \o/ | ||
tadzik | good things :) | 14:41 | |
moritz | and RT #77010 is likely closable | ||
at least its test now passes | |||
tadzik | time to rewrite some Perl to C++ :F | 14:43 | |
14:43
brrt joined
|
|||
tadzik | moritz: confirmed, DBIish now works here too | 14:43 | |
moritz can't connet to rt.perl.org/rt3/ right now :( | |||
tadzik: great, thanks | |||
is it just me, or does t/spec/S05-mass/rx.t really take ages to compile? | 14:45 | ||
jnthn | Sounds worth profiling. | 14:46 | |
moritz | r: multi sub infix:<+=>($, $) { 5 }; my $x = 3; say $x += 10; | ||
p6eval | rakudo 493adb: OUTPUT«13» | ||
moritz | this one works after the merge :-) | 14:47 | |
dalek | ast: 8fc5122 | moritz++ | S0 (4 files): remove now passing rakudo TODOs |
||
pmichaud | did I just see that qbootstrap was merged with nom?!? ;-) | 14:50 | |
moritz | yes | ||
jnthn | pmichaud: Yes, with zero spectest or module test regressions. | ||
flussence | whee! compile failure! | ||
pmichaud | wow! jnthn++ | ||
\o/ | |||
moritz | flussence: you'll need to clean out nqp, probably | ||
14:50
[particle]1 left
|
|||
jnthn | pmichaud: But...it's slower to parse CORE.setting than the old engine. | 14:50 | |
pmichaud | hmmmmm | ||
that's.... surprising to me a bit. | 14:51 | ||
flussence | moritz: yeah, it's usually something like that on my end... :) | ||
masak | pmichaud! \o/ | ||
14:51
[particle] joined
|
|||
pmichaud | masak! \o/ | 14:51 | |
jnthn | pmichaud: Run the compile with parrot -R subprof for some analysis | ||
pmichaud: One surprisingly expensive thing is match object construction | 14:52 | ||
pmichaud | jnthn: won't have time to do it right now, but will likely do it sometime later today or early tomorrow | ||
jnthn | Well, and CAPHASH | ||
moritz has pretty good success with 'git clean -xdf' in nqp # attention, dangerous stuff, removes all files not udner version control | |||
jnthn | pmichaud: Sure :) | ||
pmichaud | ...match object construction, as in ... what exactly? | ||
jnthn | .MATCH() | 14:53 | |
And .CAPHASH() | |||
pmichaud | well, I can understand .CAPHASH to a small extent | ||
JimmyZ didn't use 'make clean' or somethin, since there was 'git clean -xdf' | |||
masak | moritz: I think in a few years, "files not under version control" will have almost the same ring to it as "coding up the boot loader by flipping switches on the front panel of the mainframe". well, one could hope. ;) | 14:54 | |
moritz | masak: I constantly have a few small scripts in the rakudo dir with which I micro-test stuff I'm working on | ||
masak: and those are never under version control | |||
masak | are they so ephemeral that they don't deserve a bin directory of their own? | 14:55 | |
moritz | .oO( autounfudge has found one place so far, and it's unrelated to qbootstrap ) |
||
masak: correct | |||
pmichaud | jnthn: my guess is that it's the extra block invocations in CAPHASH that make things a bit slower there | 14:56 | |
e.g., on the C<for> statements | 14:57 | ||
jnthn | pmichaud: Ah, that's possible. | ||
pmichaud | we didn't have the extra sub overhead in nqp-rx | ||
jnthn | pmichaud: We could write it without them. | ||
pmichaud | it could all be done "flat" | ||
jnthn | *nod* | ||
pmichaud | s/"flat"/"inline" | ||
otoh, the for loop that appears in the 'else' clause likely isn't run very often. | 14:59 | ||
15:00
pomysl left
|
|||
pmichaud | so it would be just the outer loop that would have to be responsible for any expense (the " for $!cstack -> $subcur { | 15:00 | |
" loop) | |||
one could optimize the first part of CAPHASH pretty easily, I think. | 15:02 | ||
jnthn | pmichaud: Yeah, I added the index(...'=') check yesterday to avoid that one loop. | ||
brrt | its funny that perl6 - a `100 year language` - should run on parrot - 100 year birds | 15:03 | |
pmichaud | i.e., attach an already-built-version of $caps to the sub and make a fast-clone for it | ||
instead of rebuilding each time using for %caplist | |||
jnthn | pmichaud: That would work though still need an iteration to do the deep cloning. | ||
(e.g. of any nested lists) | 15:04 | ||
pmichaud | well, that's something of what I mean by a "fast-clone" | ||
jnthn | ah, ok | ||
moritz | do it in C? | ||
pmichaud | something that can avoid the block invocations required by the for %caplist { ... } loop | ||
jnthn | Let's see how to avoid the block invocations first. | ||
That may well be enough. | 15:05 | ||
s/see how to/try to/ | |||
pmichaud | anyway, awesome work on qbootstrap. jnthn++ again | ||
jnthn | @other helped too :) | ||
masak | jnthn++ | ||
pmichaud | @other++ moritz++ | 15:06 | |
jnthn | Next stop...qast? :) | ||
dalek | ast: 8dbf8cc | moritz++ | S03-sequence/nonnumeric.t: unfudge a test for rakudo, remove unnedded "our"s |
15:09 | |
moritz | jnthn: I'd love to see a few precompilation fixes first | ||
jnthn | moritz: The operators one? | 15:10 | |
moritz | jnthn: the one that blocks ABC on rakudo | ||
jnthn | Ah...I thought that was roles related and already fixed. | 15:11 | |
moritz | no, there were two in ABC :/ | ||
masak | freakin' YEAH next stop QAST! | ||
moritz | the one with the roles | ||
masak is so stoked | |||
moritz | and then there's one about not parsing something as a type name | ||
jnthn | Ah | ||
masak | I have a blog post coming up about the work so far on QAST, and leading up to macros/D2. | ||
jnthn | OK, I'd mentally got that on my todone list rather than my todo list :) | ||
moritz | jnthn: should be #112626 | 15:12 | |
jnthn: the one you fixed as 112624 | 15:13 | ||
s/as/was/ | |||
15:28
mtk left
|
|||
sisar | <masak> in some ways, it's good to have new-ish-comers explain things to new-really-comers, cutting through the crap. <---- masak, what do you mean 'cutting through the crap' ? | 15:34 | |
jnthn++ @others++ #qbootstrap | 15:35 | ||
15:36
fibo joined
|
|||
moritz | r: class A { }; A does A; | 15:41 | |
p6eval | rakudo cceca6: OUTPUT«Cannot use 'does' operator with a type object. in sub infix:<does> at src/gen/CORE.setting:10990 in block <anon> at /tmp/1lJJ2BQlcE:1» | ||
moritz | r: class A { }; A does A.new; | ||
p6eval | rakudo cceca6: OUTPUT«Cannot call 'infix:<does>'; none of these signatures match::(Mu:D \$obj, @roles):(Mu:U \$obj, @roles):(Mu:D \$obj, Mu:U \$rolish, \$value):(Mu:D \$obj, Mu:U \$rolish):(Mu:U \$obj, Mu:U \$role) in block <anon> at /tmp/JnEKhPMERt:1» | ||
moritz | r: class A { }; A.new does A | ||
p6eval | rakudo cceca6: OUTPUT«Cannot mix in a non-composable type in sub infix:<does> at src/gen/CORE.setting:10977 in block <anon> at /tmp/bYWLCzQfiO:1» | ||
moritz | r: say *.^name | 15:43 | |
p6eval | rakudo cceca6: OUTPUT«WhateverCode.new()» | ||
moritz | r: say (*.^name).(3) | ||
p6eval | rakudo cceca6: OUTPUT«Int» | ||
moritz | \o/ | ||
15:44
adu joined
|
|||
adu | back | 15:44 | |
masak | resalutations. | ||
moritz wonders what resolution resalutations have | 15:45 | ||
masak | moritz: quite "hi" dpi, probably. | ||
tadzik | hey adu | ||
adu | tadzik: hey | ||
moritz | I guess I was just asking for this kind of reply :-) | ||
masak | moritz: you repun what you sow. | 15:46 | |
adu | haha | ||
re-hi? | |||
tadzik | oh wow | ||
15:46
spider-mario left,
mtk joined
|
|||
masak | adu: I think this discussion has jumped the shark. :P | 15:46 | |
tadzik | aaaaahc | 15:47 | |
adu looks at en.wikipedia.org/wiki/Jumping_the_shark | 15:48 | ||
tadzik | shark is "hai" | ||
masak | sisar: re "cutting through the crap": someone more "core" might have hesitated to say "yes, panda is the new 'cpan'". it can be construed as politically incorrect, or offensive to p5ers, or whatever. but it's a really brief explanation of what panda is. | 15:49 | |
adu | masak: I asked that | ||
masak: thanks for answering :) | |||
isBEKaml | masak: I somehow don't think saying "new 'cpan'" can offend p5ers. | 15:50 | |
masak: it's not as if we are going to replace cpan. | |||
adu | it might be less offensive to say panda "might have been called cpan6" | ||
tadzik | I didn't meant for panda to be offensive :) | 15:51 | |
15:51
REPLeffect left
|
|||
isBEKaml | gah, we're jumping the shark again. :) | 15:51 | |
15:51
REPLeffect joined
|
|||
adu | tadzik: what does panda stand for? | 15:51 | |
tadzik | adu: it's a sort-of-pun | ||
masak | adu: tadzik's doggie. | ||
tadzik | more than a game of words | ||
so, masak designed pls as a replacement for proto | 15:52 | ||
masak .oO( in the Game of Words, you pun, or you die ) | |||
tadzik | when I designed Pies, which is sort of core Panda, it came out to be almost identical to pls | ||
15:52
tyatpi left
|
|||
adu | Perl Activity Network Distributed Archive? | 15:52 | |
isBEKaml | a cpan -> a dpan -> a pand -> panda \o/ | ||
tadzik | in Polish, when I say "pies" it sounds similar to "pls" | ||
masak | yah. I look at pies/panda, and think "huh! I reckanize this code!" :) | ||
tadzik | and "pies" means "god" in Polish, and my dog is actually called Panda | ||
erm, dog, not god | 15:53 | ||
masak | isBEKaml++ :) | ||
tadzik: OMD! | |||
tadzik | ;) | ||
adu | lol | ||
tadzik | so that's the story ;) | ||
masak | riveting. | ||
tadzik | but I quite like the ackronym :) | ||
adu | Perl Archive Network Distribution Agent? | ||
I'm just making stuff up | 15:54 | ||
tadzik | that sounds good | ||
adu | heh | ||
tadzik | maybe s/Agent/Animal/ ;P | ||
adu | lol | ||
ok | |||
masak | Perl Archival Nodal Distributor Automaton | 15:55 | |
adu | too many Ls | ||
isBEKaml | Punning And Networking Distribution Agency. | ||
masak | Perl And Relative Dimension In Space. | ||
isBEKaml | How do you distribute networking? Across the "wires"! | ||
masak | isBEKaml: it's a series of tubes. | ||
isBEKaml | intertubes | ||
adu | Pre-Aware-Ness DownloAder? | 15:56 | |
15:56
spider-mario joined
|
|||
adu | the internet is not a dump truck | 15:56 | |
moritz | Practical Assistent for Nefarious Downloading Adventures | ||
15:57
sisar left
|
|||
adu | did anyone look at p6-xml/dot/tree.svg? | 15:58 | |
moritz | not yet | ||
but I planned to do it | |||
adu | I partly just want to know if my efforts in making that image didn't go to waste | 15:59 | |
dalek | kudo/nom: 305e5ae | moritz++ | src/core/Str.pm: change some pir:: to nqp:: opcodes |
||
kudo/nom: 6555ab1 | moritz++ | src/core/ (2 files): typed exception when trying to mix in non-composable types |
|||
JimmyZ | Perl Automatically Nodally Distributed Archives | ||
dalek | ast: 5a8433b | moritz++ | S32-exceptions/misc.t: test X::Mixin::NonComposable |
||
adu | CPAN's PAN and PANDA's PAN should at the very least stand for the same thing | ||
moritz | oh come on, that's so boring :-) | 16:00 | |
adu | heh | ||
16:00
JimmyZ left
|
|||
moritz | adu: now that I took a look I remember seeing it when I first cloned your repo :-) | 16:01 | |
adu | moritz: oh ok :) | ||
moritz | adu: purely from the looks of it, why is "names" in the bottom left corner in that red box, and not in the green one? | 16:02 | |
in fact the whole bottom left corner seems to be rather disconnected from the rest of that box | 16:03 | ||
16:04
preflex_ joined
|
|||
adu | moritz: because names is only used by DTD validators, not even in any grammar itself | 16:04 | |
16:04
preflex left,
preflex_ is now known as preflex
|
|||
adu | I wanted to minimize XML::Common for custom formats, such as Apache-like config files | 16:05 | |
so if you don't need DTD, just use XML::Common directly, or inherit if you need to customize the grammar | |||
moritz | ok, makes sense | 16:06 | |
adu | XML::External is a little huge, but everything in it is required by the spec(s) | ||
16:07
sisar joined
|
|||
adu | the green box ended up being XML::Charset | 16:08 | |
moritz | "little huge" :-) | ||
adu | oh, oops, that's one of those meaningless phrases | ||
masak | "almost exactly", "original copy", "Microsoft Works" | 16:09 | |
dalek | kudo/nom: 5c9c02d | moritz++ | src/core/ (3 files): stylistic changes to throwing exceptions no functional changes |
||
moritz | masak: ... for WorkGroups! | ||
16:12
brrt left
|
|||
moritz | ok, O(35) instances of die() remain in the setting (which i need to replace with typed exceptions for my grant) | 16:13 | |
and about O(40) are typed already | |||
jnthn | moritz++ | 16:15 | |
masak | go go go! | 16:16 | |
moritz | go go gadget ExceptionThrower! | ||
masak | (also, one of these days we'll have a good long talk about ordo notation...) :P | ||
masak .oO( O(my god that's slow!) ) | 16:17 | ||
moritz | masak: its misuses rises as O(scary) :-) | ||
*misuse | |||
whatever | |||
masak | I see what you did there | 16:18 | |
16:38
adu left
16:42
snearch joined
|
|||
sisar | i get 28 failures in t/spec/S03-operators/overflow.t | 16:43 | |
^rakudo | |||
(fresh build) | 16:44 | ||
moritz | sisar: did you get them before too? | ||
sisar | moritz: yes. | ||
moritz | sisar: and are you on a 32bit machine? | 16:45 | |
sisar | moritz: yes | ||
16:47
mucker joined
|
|||
sisar | hmm, i did report it earlier but got no response, but it doesn't matter now (irclog.perlgeek.de/perl6/2012-05-18#i_5609766 ) | 16:47 | |
moritz | sisar: I think [Coke]++ has reported similar behavior | 16:48 | |
I just have trouble reacting to stuff I can't reproduce, even when I know why | |||
sisar | Woodi++ reported it on OpenBSD, though don't know if it was 32-bit or 64-bit: irclog.perlgeek.de/perl6/2012-05-15#i_5596082 | 16:49 | |
16:54
wolfman2000 left
16:55
adu joined
17:03
rsimoes joined
|
|||
dalek | ast: 91d3ea5 | (Siddhant Saraf)++ | S03-operators/overflow.t: fix two typos |
17:07 | |
sisar | r: say -32768 * -65536 ; | 17:13 | |
p6eval | rakudo 6555ab: OUTPUT«-2147483648» | ||
sisar | moritz: ^ one of the bugs | ||
moritz | r: say (-32768) * (-65536) | 17:14 | |
sisar | feather is 32-bit ? | ||
p6eval | rakudo 6555ab: OUTPUT«2147483648» | ||
moritz | no | ||
hm | |||
not sure actually | |||
jnthn | What about with --optimize=0, ooc? | ||
moritz | the problem is probably that the (int, int) version of infix:<*> is used | 17:15 | |
and that can overflow | |||
sisar | jnthn: is that for me ? | ||
dalek | kudo/nom: 9452bf6 | moritz++ | src/core/Exception.pm: typed exceptions for several uncaught control exceptions |
17:16 | |
jnthn | sisar: For you or moritz :) | ||
moritz bit distracted atm | |||
jnthn too, which is why he doesn't just try it himself :) | 17:17 | ||
sisar | jnthn: how should i use --optimize=0 ? | ||
when running the test file ? | 17:18 | ||
jnthn | yes | 17:19 | |
sisar | jnthn: All test pass when using `perl6 --optimize=0 overflow.t` ! | ||
jnthn | OK, then we know what is to blame :) | ||
17:27
REPLeffect left
17:28
REPLeffect joined
17:31
b1rkh0ff left
|
|||
adu | wa, | is LTM and || is PEG? | 17:39 | |
moritz | || tries the alternatives in the order they are written down | 17:40 | |
sisar | what is the use of a "tryeq" sub on line 125 in overflow.t ? can't tests using it be instead replaced by a "is ... , ...;" ? | ||
moritz | don't know if that's what you mean with 'PEG' | ||
adu | moritz: en.wikipedia.org/wiki/Parsing_expression_grammar | 17:41 | |
moritz | yes, grammars are not the same as alternations within grammars | ||
sisar: the point is simply to provide a default test description. It's not that useful. | |||
sisar | moritz: would it be better if it is removed altogether ? | 17:42 | |
moritz | sisar: yes | ||
sisar is on it ! | |||
masak submits -32768 * -65536 rakudobug | 17:44 | ||
sisar++ | |||
17:45
b1rkh0ff joined
17:47
erkan joined
17:57
cognominal left
17:58
cognominal joined
18:00
REPLeffect left
|
|||
adu | sisar: what are you on? | 18:00 | |
18:01
REPLeffect joined
|
|||
diakopter | uppers? | 18:01 | |
sisar | adu: i'm removing an unnecessary sub from the overflow.t | ||
diakopter: :D | |||
adu | sisar: oh ok | ||
heh I suppose I worded that wrong | 18:02 | ||
18:04
takesako left
18:07
takesako joined
18:12
takesako left
|
|||
moritz blug: perlgeek.de/blog-en/perl-6/2012-gra...s-may.html | 18:13 | ||
sisar | if someone can just review my changes (pull request), i'll merge it myself | ||
adu | can I review them? | 18:14 | |
dalek | ast: 7b703ae | (Siddhant Saraf)++ | S03-operators/overflow.t: [S03-operators/overflow.t] remove sub 'tryeq' and change tests which depended on it to "is ..., ..., ...;". |
||
ast: 1db7629 | GlitchMr++ | S03-operators/overflow.t: Merge pull request #20 from Siddhant/master toss sub 'tryeq' which is better written as 'is ..., ..., ...;' |
|||
sisar | moritz++ #blog | ||
adu | sisar == Siddhant Saraf? | ||
18:14
REPLeffect left
|
|||
sisar | adu: yes | 18:14 | |
adu | aha | ||
sisar | adu: it seems GlitchMr++ is faster than us all :) | ||
18:15
REPLeffect joined
|
|||
moritz | sisar: + is -1 - -2147483648, 2147483647, '2147483647 = 2147483647'; | 18:15 | |
adu | sisar: also, I don't have any power over merges | ||
tadzik | moritz++ # awesome work you've done there | ||
moritz | sisar: it would be more useful if the test label was '-1 - -2147483648 == 2147483647' | ||
sisar: same for the other tests | |||
18:16
fibo left
|
|||
sisar | moritz: right. i'll fix that. I just mimicked what tryeq did :) | 18:16 | |
18:19
crab2313 joined
|
|||
moritz | sisar: agreed, it's not worse than before :-) | 18:20 | |
adu | lol | ||
dalek | ast: a2a39f2 | (Siddhant Saraf)++ | S03-operators/overflow.t: [S03-operators/overflow.t] better test labels; moritz++ for suggestion |
18:28 | |
ast: 622ee63 | (Siddhant Saraf)++ | S03-operators/overflow.t: Merge pull request #21 from Siddhant/master better test labels |
|||
sisar | can we teach dalek that (siddhant Saraf) ~~ sisar ? | 18:29 | |
masak | moritz++ # grunt prugress blug pust | ||
diakopter | sisar: it's a git config thing | 18:31 | |
user.name | |||
moritz | sorear: how does dalek map github names to nicks? | ||
diakopter: I think there's also a mapping somewhere | |||
diakopter | it used to use parrot's contributors file | ||
moritz | diakopter: because 'git log' reports my full name, but dalek ++'s 'moritz' | ||
sisar | diakopter: i want what moritz says... because user.name will be a global change | 18:32 | |
18:33
takesako joined
|
|||
diakopter | at one point it used parrot's contributors file. sorear might have added/changed it to something else. | 18:33 | |
sisar++ sisar++ # until then | 18:38 | ||
moritz | sisar: fwiw you can also set user.name per repository if you want | ||
(not saying that's the best solution) | |||
sisar | diakopter: i don't care about the karma, its just so that people here don't have any confusions. :) But still, i'll accept the karma :p | 18:39 | |
18:46
stocks29 joined
|
|||
moritz | jnthn: how does one trigger the "Invalid BUILDALLPLAN" errors from Mu.pm? | 18:46 | |
18:46
wolfman2000 joined
|
|||
moritz | or are they internal errors (ie the user should never seem)? | 18:46 | |
dalek | ecs: 084e814 | (Siddhant Saraf)++ | S32-setting-library/Exception.pod: [S32-setting-library/Exception.pod] remove stray '=head2' |
18:48 | |
jnthn | moritz: If you see that error, something is REALLY screwed up. | 18:57 | |
moritz: You'd have to be doing meta-programming in weird way to get it. | 18:58 | ||
moritz: So yeah, internal. | |||
19:01
REPLeffect left,
REPLeffect joined
19:06
mucker left
19:10
birdwindupbird joined
19:21
adu left
19:26
cognominal_ joined,
crab2313 left
19:27
brrt joined,
crab2313 joined
19:28
PacoAir left
19:29
cognominal left
|
|||
moritz | jnthn: ok, thanks | 19:33 | |
one less exception to worry about :-) | |||
19:35
brrt left
|
|||
moritz | wait, shouldn't that be "one fewer"? | 19:36 | |
sounds odd, but sticking to the rules... it's countable after all | |||
diakopter | one fewer sounds ok to me :) | 19:37 | |
moritz | it does? ok :-) | ||
jnthn | Sounds odd to me :S | 19:38 | |
My English is busted. :) | |||
diakopter | heh | ||
19:39
snearch left
|
|||
sorear | good * #per | 19:43 | |
good * #perl6 | |||
19:47
PacoAir joined
|
|||
masak | sorear! \o/ | 19:50 | |
19:56
kaare_ left,
REPLeffect left
|
|||
masak | "one less exception" sounds fine to me, and "one fewer exception" sounds odd to me. | 20:02 | |
20:02
cognominal_ left
|
|||
masak | "one exception less" and "one exception fewer" both sounds good, though. | 20:02 | |
sound* | |||
20:05
cognominal joined
|
|||
dalek | kudo/nom: 50d40a6 | moritz++ | src/core/ (2 files): throw a typed exception for non-conformant qualified method calls |
20:08 | |
moritz | from reading the commit message, do you know which case it covers? | 20:09 | |
I had troubles fitting it into one line :-) | |||
dalek | ast: eff5942 | moritz++ | S32-exceptions/misc.t: more typed exception tests (X::ControlFlow, X::Method::InvalidQualifier) |
20:10 | |
20:10
tokuhiro4 left
20:12
PacoAir left
20:23
zby_home_ left,
imarcusthis left
20:28
imarcusthis joined
|
|||
dalek | kudo/nom: e7d4e87 | moritz++ | src/core/ (2 files): typed exceptions from pack and unpack |
20:31 | |
ast: 88dbaa7 | moritz++ | S32-exceptions/misc.t: X::Buf::Pack |
|||
moritz | r: package A { }; class B is A { } | 20:35 | |
p6eval | rakudo 9452bf: OUTPUT«===SORRY!===B cannot inherit from A because it is not inheritable» | ||
masak | r: module A {}; class B is A {} | 20:36 | |
p6eval | rakudo 9452bf: OUTPUT«===SORRY!===B cannot inherit from A because it is not inheritable» | ||
masak | r: enum A {}; class B is A {} | ||
p6eval | rakudo 9452bf: OUTPUT«===SORRY!===Cannot call 'trait_mod:<is>'; none of these signatures match::(Mu:U $child, Mu:U $parent):(Attribute:D $attr, :rw(:$rw)!):(Attribute:D $attr, :readonly(:$readonly)!):(Attribute:D $attr, :box_target(:$box_target)!):(Routine:D $r, :rw(:$rw)!):(Rout… | ||
masak | aww | ||
r: subset A of Any; class B is A {} | |||
p6eval | rakudo 9452bf: OUTPUT«===SORRY!===B cannot inherit from A because it is not inheritable» | ||
masak | r: constant A = 42; class B is A {} | 20:37 | |
p6eval | rakudo 9452bf: OUTPUT«===SORRY!===Cannot call 'trait_mod:<is>'; none of these signatures match::(Mu:U $child, Mu:U $parent):(Attribute:D $attr, :rw(:$rw)!):(Attribute:D $attr, :readonly(:$readonly)!):(Attribute:D $attr, :box_target(:$box_target)!):(Routine:D $r, :rw(:$rw)!):(Rout… | ||
jnthn | r: enum A {}; say A | ||
p6eval | rakudo 9452bf: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&A' called (lines 1, 1)Undefined routine '&enum' called (line 1)» | ||
jnthn | That isn't a way to write an enum. :) | 20:38 | |
moritz | r: enum A; say A | ||
p6eval | rakudo 9452bf: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&A' called (lines 1, 1)Undefined routine '&enum' called (line 1)» | ||
moritz | r: enum A (); say A | ||
p6eval | rakudo 9452bf: OUTPUT«A()» | ||
diakopter | I guess "one less" implies discrete objects, so the discrete implication of "fewer" is redundant.. | 20:40 | |
masak | diakopter: good point. | 20:41 | |
diakopter discovers byobu-screen | |||
moritz | that doesn't sound like valid logic to me | 20:42 | |
with that logic "one children" would be legal too | |||
masak | it is, in Mandarin. | ||
moritz | becaues the "one" implies singular, so using singular for the noun would be redundant | ||
benabik | I haven't used byobu yet, but finding it led me to tmux, so I was quite happy. | ||
diakopter | no, the difference is fewer is a subset of less, but singular is much more of an opposite to plural | 20:43 | |
moritz | that is news to me ("fewer" being a subset of "less") | 20:44 | |
diakopter | I mean, fewer is a more precise/specific less, but singular doesn't overlap with plural | ||
moritz | I always thought of "fewer" and "less" as mutually exclusive, same as singular/plural | ||
diakopter | hm, that's probably better. | 20:45 | |
masak | I think there is a lower sense of wrongness in saying "less" instead of "fewer" than there is getting singular/plural agreement wrong. | 20:47 | |
probably because the distinction is less well-understood. | |||
moritz | of course. That's the point of such a comparison: you apply the logic in a case where it's clearly wrong, to show the wrongness of the logic :-) | 20:48 | |
diakopter | you didn't disprove the notion of redundancy | ||
moritz | oh, fun. I just wanted to make a typed exception for the inheriting-from-a-package case | 20:49 | |
diakopter: I disproved it enough that I can still think I'm right and you are wrong :-) -- indepenently of actual truth | |||
diakopter | I don't understand. | 20:50 | |
masak | I don't agree. | ||
moritz | and the type that is being constructed while the exception is thrown does not conform to Mu | ||
so I can't store it in an attribute | |||
fun | |||
jnthn | Hm | 20:51 | |
That sounds...weird. | |||
moritz | diakopter, masak: that's ok. I'm not entirely serious, and probably too tired to make any sense | ||
jnthn | Mu should accept anything. | ||
moritz | # Exception message: Type check failed in assignment to '$!child'; expected 'Mu' but got 'B' | ||
that's from the error handling of my package A { }; my class B is A { } | |||
so B was probably never composed | 20:52 | ||
jnthn | No, it won't have been | 20:54 | |
sorear wanders back. | 20:55 | ||
dalek | ecs: 71cb5d2 | sorear++ | S05-regex.pod: [S05] document ** backcompat mode for colomon and masak |
||
moritz | sorear++ # "This compatibility feature is not guaranteed to exist forever." | 20:56 | |
hilarious | |||
jnthn | moritz: gist.github.com/2815880 | 20:57 | |
moritz: See if applying that helps | |||
sorear | moritz: I detect sarcasm | 20:58 | |
masak | my guess is not sarcasm. | ||
diakopter too | |||
masak | just amusement over the phrasing. | 20:59 | |
maybe the implicit reference to Perl 5 whose compatibility features generally do last forever. | 21:00 | ||
flussence | .oO( "This compatibility feature will be removed when Perl 6.0.0 is released" :) |
21:01 | |
21:11
Gesh left
21:12
birdwindupbird left
21:28
kurahaupo joined
|
|||
masak | kurahaupo: greetings. | 21:42 | |
first-time visitor? | |||
masak learns from Wikipedia that Kurahaupō was a kind of canoe | 21:48 | ||
TimToady | yow, backloggus giganticus... | ||
phenny | TimToady: 25 May 00:44Z <diakopter> ask TimToady S03 says "my :($b, $c)" is "okay" but STD doesn't parse it | ||
TimToady: 25 May 22:07Z <diakopter> ask TimToady S09 says my Str %hash{Str; Int where {!.scared}}; is ok, but std doesn't like it; please advise | |||
masak | TimToady: well, some of us have been busy while you've been taking it easy... :P | 21:50 | |
jnthn | Mostly busy chatting though. Not much got done. | 21:51 | |
TimToady | taking it easy, hah! | ||
Friday I managed to have one meal... | 21:52 | ||
masak | :/ | 21:53 | |
TimToady: I guess a "get well soon" is in order, then. | 21:54 | ||
21:54
wolfman2000 left
|
|||
TimToady | not sick, just been madly scorekeeping at a quiz meet | 21:54 | |
diakopter | using niecza? | ||
TimToady | but now it's in elims so my job is overish, except for hardware | ||
diakopter: yup | |||
masak | \o/ | 21:55 | |
Niecza++ | |||
diakopter | I'd call that production use, without a doubt. | ||
masak | I've used Niecza in production, too. it has very advanced grammar support. | 21:56 | |
21:59
Calm joined
|
|||
Calm | I am new to Perl and I have no idea where to start, with Perl5 or Perl6 | 22:00 | |
diakopter | well, do you already have Perl 5 installed? | ||
(most unix systems already do) | 22:01 | ||
Calm | No I have neither installed, but on my debian server, yes. | ||
diakopter | what would you like to use Perl for? | 22:02 | |
Calm | I'm not quite sure, but sysadminy stuff and scraping stuff off the web to be used in programs | ||
I'm a relatively new programmer in general | |||
I know a bit of C and that's about it. | |||
22:03
cognominal left
|
|||
gfldex | perl6 is not ready for what you want to do quite yet | 22:04 | |
22:04
cognominal joined
|
|||
sorear | o/, TimToady | 22:05 | |
TimToady | howdy do | ||
masak | Calm: Perl 5 is more "ready" than Perl 6 is. so if you don't like nasty surprises, Perl 5 is the safe choice. | 22:07 | |
Calm: that said, both are marvellous languages. Perl 6 will feel a bit newer and less filled with idiosynchrasies. | |||
Calm: Perl 6 is my favorite language, and Perl 5 is my second favorite ;) | 22:08 | ||
diakopter | Calm: you will be able to get going much more quickly with Perl 5 since there is so much more documentation and tutorials and books out there | ||
masak | Calm: where to start depends on what you want to get out of it. | ||
diakopter | Calm: also, the "sysadminy stuff" side of the Perl 6 implementations is pretty lacking | 22:09 | |
masak | I think the interested reader will be able to pick up Perl 6 from what's out there. but it's more work, to be sure. | ||
the "sysadminy stuff" sure is lacking, at least if you expect all the Unix-y bits to be in place. | 22:10 | ||
we recently got "copy" and "move" in Rakudo. | |||
Rakudo has "shell" but not "run". | |||
diakopter | Calm: there are also a few hundred thousand modules/extensions to Perl 5 that Perl 6 doesn't yet have, generally. | 22:12 | |
available on the CPAN | |||
so if you wanted the functionality in one of those modules/extensions in Perl 6, you'd have to create it yourself, whereas with Perl 5 it's usually a simple automatic install | 22:14 | ||
masak | s/a few hundred thousand modules/about a hundred thousand modules/ | 22:15 | |
diakopter | oh | ||
masak | I think we passed 1e5 last year or so. | ||
Calm: so, in short, it's stability (Perl 5) versus fun (Perl 6) | 22:16 | ||
I think that's an accurate description of the tradeoff. | |||
sorear | (and 90% of them are crap anyways) | ||
diakopter | Calm: Perl 6 doesn't yet have C features like fork and signals and the potential for threads or event loops | 22:17 | |
dalek | p: 32a0cf1 | jnthn++ | src/QRegex/Cursor.nqp: A bit of scope-flattening optimization, as suggested by pmichaud++. |
||
diakopter | (whereas Perl 5 does) | ||
sorear | std: regex { +} | 22:18 | |
p6eval | std 8632387: OUTPUT«ok 00:00 41m» | ||
sorear | std: token { +} | ||
p6eval | std 8632387: OUTPUT«ok 00:00 41m» | ||
sorear | std: / +/ | ||
p6eval | std 8632387: OUTPUT«ok 00:00 41m» | ||
sorear | std: /a+ +/ | ||
p6eval | std 8632387: OUTPUT«===SORRY!===Quantifier quantifies nothing at /tmp/hBruYkXjaY line 1:------> /a+ +⏏/Check failedFAILED 00:00 41m» | ||
sorear | oh! | 22:19 | |
this is fallout of the space eating bug. | |||
TimToady needs to rewrite the ws bits of regex | |||
nothing actually follows the current spec | |||
jnthn is currently looking at a parse trace that shows performance would be a little better if Rakudo followed it too | |||
sorear | TimToady: check out github.com/sorear/niecza/commit/5d...256ff4d703 | 22:20 | |
TimToady | I see | 22:22 | |
sorear | STD sees /a+ +/ as more close to /+/ than to / +/ | 22:23 | |
TimToady: Would it be uncool to forbid syntax like []+ and ''+? | 22:27 | ||
the path of least resistance right now is to make an error check based on AST | |||
TimToady | well, []+ is already forbidden, I think | ||
std: /[]+/ | 22:28 | ||
p6eval | std 8632387: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/QJaXuWd4S2 line 1:------> /[⏏]+/ expecting regex atomParse failedFAILED 00:00 41m» | ||
TimToady | certainly there are regex packages that detect known null matchers and disallow quantifiers on them | ||
sorear | yeah, yeah, well | 22:29 | |
maybe it should just be a warning | |||
/''+/ and / +/ at least have well-defined operational semantics, even if tey are a bit useless | |||
TimToady | or one can do something like deadlock detection to note lack of progress | ||
in the general case it's a halting problem if you're running general code | 22:30 | ||
doesn't mean we can't detect common mistakes if it doesn't cost too much | |||
masak | +1 | 22:31 | |
sorear | but should it be an error? | 22:32 | |
TimToady | well, depends on whether we think there's a valid use for that kind of infinite loop | ||
TimToady is dubious | |||
sorear | the designers of Java probably thought there was no valid use for unreachable code | 22:33 | |
masak | is there? | ||
benabik | padding? | ||
sorear | masak: highly eager erroring tends to break naive code generators | 22:34 | |
also, the spectesting infrastructure | |||
masak | troo | ||
is that an issue with /''+/, though? | |||
just don't generate it. | 22:35 | ||
sorear | I had to back out a niecza change which made failing constant folding a compile time error | ||
TimToady | eval: print "yes" if 'xx' =~ /^+/ | ||
buubot_backup | TimToady: yes1 | ||
TimToady | interesting, Henry Spencer's original regex would have disallowed that | 22:36 | |
sorear | what of the ~ quantifier? | 22:37 | |
nah, figured that out | |||
n: say 'baaaa' ~~ /a +/ | 22:39 | ||
p6eval | niecza v17-49-g9852003: OUTPUT«#<match from(1) to(5) text(aaaa) pos([].list) named({}.hash)>» | ||
22:41
Chillance left
22:42
Chillance joined
|
|||
[Coke] | jnthn++ pmichaud++ everyone else++ qStuff | 22:44 | |
sorear | o/ [Coke] | 22:46 | |
22:48
stocks29 left,
stocks29 joined
|
|||
jnthn | Turns out that trying to make whitespace at the start of rules be significant in NQP even causes some failures. | 22:49 | |
er, be *in*significant | |||
So guess that'll be a bit of an adaptation effort. | 22:50 | ||
jnthn is happy to let STD lead the way here :) | |||
dalek | ecza: df795e6 | sorear++ | src/STD.pm6: Improve quantifying-nothing check (fixes #128) |
||
d: 3b85e9e | sorear++ | STD.pm6: Port fix for space-eating from sorear/niecza@5d10b5f |
22:52 | ||
d: f179a1b | sorear++ | STD.pm6: Port fix for sorear/niecza#128 |
|||
sorear | bug count is getting respectable again ... | 22:53 | |
masak | sorear++ # backporting niecza improvements to STD | 22:59 | |
23:01
stocks29 left
23:02
stocks29 joined
23:08
[particle]1 joined,
fgomez left
23:10
[particle] left
23:15
crab2313 left
|
|||
masak | blog post! \o/ strangelyconsistent.org/blog/macros...ak-shaving | 23:28 | |
jnthn | oh, I also blaught... 6guts.wordpress.com/2012/05/28/raku...to-qregex/ | 23:31 | |
tadzik | masak: nice one! masak++ | ||
jnthn++ as well | 23:32 | ||
23:32
pernatiy left
|
|||
tadzik | good things are happening | 23:32 | |
masak | jnthn: s/Emmentaller/Emmentaler/ | ||
tadzik | heh | ||
we should probably name it Emmentall?er for bugwards compatibility | |||
jnthn | masak: Really? | 23:34 | |
ah, yes | |||
masak | jnthn: en.wikipedia.org/wiki/Emmentaler | ||
jnthn | Spelling holes... :P | ||
masak | anyway, nice post. jnthn++ | ||
jnthn | Updated. | 23:35 | |
tadzik | ;) | 23:36 | |
masak | tadzik: nah. Postel's law has its limits, too. some spellings are just Wrong ;) | 23:37 | |
plus, it would be too inviting for someone to create an Emmenshorter project, like cpanminus. ;) | |||
tadzik | ooh :P | ||
this is something we cannot stopf | 23:38 | ||
masak | no :) | 23:40 | |
23:40
leontopod joined
|
|||
leontopod | ladies and gentlemen, I present to you, Perl 6! | 23:40 | |
www.intertwingled.net/perl6.jpg | |||
tadzik | :) | 23:41 | |
masak | leontopod: hi, Teratogen. | ||
leontopod | howdy | ||
tadzik | good knight #perl6 | ||
masak | I have that image on one of the slides in our most popular course at $work. | 23:42 | |
the slide is about SRP, Single Responsibility Principle. | |||
and the text says "Just because you can, doesn't mean you should", IIRC. | |||
23:43
spider-mario left
|
|||
masak | leontopod: Perl 6 is a big language, because it comes bundled with a nice big CORE library. but you don't have to learn all of it in one go to be productive. | 23:43 | |
leontopod: so your view of the language is always simpler than that extremely wide swiss army knife. | 23:44 | ||
leontopod | masak, I know, I was just trying to be humorous =) | ||
masak | I understand :) | ||
and I was just responding seriously :) | 23:45 | ||
'night, #perl6 | |||
23:46
Guest35406 left
23:47
ingy left
23:48
infosophy joined,
ingy joined,
infosophy is now known as Guest91689
23:50
isBEKaml left
|
|||
jnthn should get some rest...le teaching tomorrow o/ | 23:50 | ||
23:51
spaceships joined
|