»ö« 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 1␤␤Unhandled 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 1␤␤Unhandled 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 1␤Undeclared routine:␤ 'is' used at line 1␤␤Unhandled 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 1␤␤Unhandled 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 failed␤FAILED 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:1␤␤0␤»
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 failed␤FAILED 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 atom␤Parse failed␤FAILED 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