»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
lvfjf p6:print "Hello world!\n"; 00:03
perigrin p6: say "Hello world!"; 00:04
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«Hello world!␤»
perigrin lvfjf: I think you need an initial space after the : 00:05
lvfjf p6: print "Hello world!\n";
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«Hello world!␤»
lvfjf eval: say "Hello world!" 00:08
raydiak p6: my $s = "abcdEFghij"; print $0,$2 while $s ~~ s/(.)(.*)(.)/$1/;
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«ajbichdgEF»
raydiak BenGoldberg: something is happening to $_ 00:09
BenGoldberg p6: $_ = "abc"; if s/(.)(.*)(.)/$1/ { say "Success: $0,$1,$2,$_" } else { say "fail: $_" }
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«Success: a,b,c,b␤»
BenGoldberg p6: $_ = "abcd"; if s/(.)(.*)(.)/$1/ { say "Success: $0,$1,$2,$_" } else { say "fail: $_" }
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«Success: a,bc,d,bc␤»
lvfjf p6: print "Who is the bot?" 00:10
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«Who is the bot?»
BenGoldberg p6: $_ = "<>"; if s/(.)(.*)(.)/$1/ { say "Success: $0,$1,$2;$_" } else { say "fail: $0,$1,$2;$_" }
camelia niecza v24-109-g48a8de3: OUTPUT«Success: <,,>;␤»
..rakudo-{parrot,jvm,moar} c9f223: OUTPUT«fail: <,,>;␤»
lvfjf camelia:help 00:11
camelia lvfjf: Usage: <(rakudo-jvm|nqp-jvm|star|rakudo-moar|pugs|std|niecza|p5-to-p6|nqp-parrot|b|rakudo-parrot|nqp-moarvm|nom|rnP|r|nPr|rPn|Prn|j|nqp-m|Pnr|nqp-mvm|nqp-j|nr|p6|rm|n|p56|rj|perl6|nqp|r-j|P|rn|rakudo|m|r-jvm|nqp-p|nrP|p|r-m|r-p|rp)(?^::\s) $perl6_program>
BenGoldberg Even though the s/// returns false, it is still putting the correct things into $0, $1, $2
lvfjf camelia:owner
BenGoldberg p6: $_ = "AB"; if s/(.)(.)// { say "Success: $0,$1;$_" } else { say "fail: $0,$1;$_" } 00:12
camelia niecza v24-109-g48a8de3: OUTPUT«Success: A,B;␤»
..rakudo-{parrot,jvm,moar} c9f223: OUTPUT«fail: A,B;␤»
BenGoldberg p6: $_ = "AB"; if so s/(.)(.)// { say "Success: $0,$1;$_" } else { say "fail: $0,$1;$_" }
camelia niecza v24-109-g48a8de3: OUTPUT«Success: A,B;␤»
..rakudo-{parrot,jvm,moar} c9f223: OUTPUT«fail: A,B;␤»
BenGoldberg p6: $_ = "AB"; say s/(.)(.)//;
camelia niecza v24-109-g48a8de3: OUTPUT«True␤» 00:12
..rakudo-{parrot,jvm,moar} c9f223: OUTPUT«␤»
BenGoldberg p6: my $a = "AB"; say $a ~~ s/(.)(.)//; 00:13
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«True␤»
BenGoldberg Well, it's a workaround, anyway
raydiak p6: $_ = "AB"; say $_ ~~ s/(.)(.)//; 00:15
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«True␤»
BenGoldberg !
raydiak heh
something about the ~~
BenGoldberg p6: $_ = "Just another Perl6/BIDI Hacker,\n"; print chr(8238),$2,chr(8237),$0 while $_ ~~ s/(.)(.*)(.)/$1/; 00:16
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«‮␤‭J‮,‭u‮r‭s‮e‭t‮k‭ ‮c‭a‮a‭n‮H‭o‮ ‭t‮I‭h‮D‭e‮I‭r‮B‭ ‮/‭P‮6‭e‮l‭r»
lvfjf p6: Larry Wall 00:20
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Undeclared names:␤ 'Larry' used at line 1␤ 'Wall' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD…»
camelia ..rakudo-{parrot,jvm,moar} c9f223: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared names:␤ Larry used at line 1␤ Wall used at line 1␤␤» 00:20
raydiak p6: print (s/.*//).perl 00:29
camelia rakudo-{parrot,jvm,moar} c9f223: OUTPUT«""» 00:29
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method subst in type Any␤ at /tmp/tmpfile line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤ …»
raydiak p6: $_ = ''; print (s/.*//).perl
camelia rakudo-{parrot,jvm,moar} c9f223: OUTPUT«""»
..niecza v24-109-g48a8de3: OUTPUT«Bool::False»
raydiak p6: $_ = ''; print (s/fail//).perl 00:30
camelia rakudo-{parrot,jvm,moar} c9f223: OUTPUT«""»
..niecza v24-109-g48a8de3: OUTPUT«Bool::False»
raydiak I'm having a hard time finding where S05 says what a substitution should return 00:34
raydiak r: $_ = 'x'; say (s/x//).perl; say (s/x//).perl; 00:42
camelia rakudo-{parrot,jvm,moar} c9f223: OUTPUT«""␤""␤»
trammel_ I'm getting an error trying to use 'panda' to search for packages... it's using a brew installation of rakudo-star (2014-03). I do a 'panda search dbi', and get a stacktrace with the error, "no ICU lib loaded" .. any ideas why this happens? 03:54
Also, it's very slow to execute and show the error... is that normal? 03:55
raydiak trammel_: installing libicu should fix the error...as for the slow startup time, yes that is normal 04:13
dunno whether recompiling w/ICU is needed, or if you can just install it and try running again...maybe someone more knowledgable can chime in here, if they're not all in bed :) 04:18
trammel_ thanks, recompiling with --with-icu4c fixed the problem 05:05
jnthn morning, #perl6 06:48
sergot o/
FROGGS morning
nwc10 good far-too-early, jnthn imposter :-) 06:50
raydiak morning * 06:52
jnthn teaching... :P 06:52
jnthn puts "coffee" into the live sentiment analysis demo, to entertain folks arriving :) 06:53
TimToady read that as "live sediment", which seems appropriate for coffee 06:54
jnthn tasty, tasty, sediment
FROGGS gets coffee
Ven_ good *,**. 07:36
jnthn *, *. * * * *! 07:42
moritz 07:42
timotimo o/ 07:45
moritz \o 07:47
dalek kudo/vm-null: 7a8d595 | (Timo Paulssen)++ | src/vm/moar/ops/perl6_ops.c:
this gets us through CORE.setting. but it's probably wrong.

at the very least p6captureouters is not correct this way.
08:30
timotimo p6: say 55 ~~ NaN 08:35
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«False␤»
moritz p6: say NaN ~~ NaN 08:36
camelia rakudo-{parrot,jvm,moar} c9f223, niecza v24-109-g48a8de3: OUTPUT«True␤»
raydiak good night, morning people :) o/ 08:37
timotimo :) 08:39
Su-Shee good morning everyone ;) 09:05
FROGGS hi Su-Shee 09:06
jnthn o/ Su-Shee 09:07
donaldh_ jnthn: when is the right time to lookup hll types for async callbacks? 09:16
jnthn: is it okay to look them up when the async call is made?
donaldh_ jnthn: This is nqp, jvm backend. 09:16
jnthn donaldh_: I'm not sure that MoarVM bothers; it just uses BOOTInt etc and relies on the hllize mapping taking place in the language. 09:18
donaldh_: We'd have to capture the hll at the time the task is started, though.
And keep it around for the callback.
donaldh_ yep
jnthn Which is why I wondered if we can get away with it. Turns out yes ;) 09:19
donaldh_ currently using curTC.curFrame.codeRef.staticInfo.compUnit.hllConfig
but codeRef is sometimes null 09:20
jnthn Right, it will be
'cus the thread that gets the callback may just be any old Java thread, not one we're running code on.
donaldh_ yep. So switched to looking up types when async call is made. 09:21
But you suggest just using BOOT types?
jnthn yes 09:23
Well, at least, I know it works to. :)
lunch & 09:25
timotimo how intelligent is our ThreadPoolScheduler, btw? 12:34
moritz more than me.
timotimo :D
there could probably be some "work stealing" stuff to do with semaphores/locks, right?
as in: we've just started blocking on this lock, here's a thread that's holding the lock, but is currently not being executed 12:35
in that case we should be able to just jump to that thread and execute it, perhaps just until it releases that lock, perhaps until it gets interrupted for whatever reason
is there something clever we can do when one thread has gone to sleep? do we have to keep that thread on the given task to ensure the sleep ends without a terrible delay? 12:36
and i still didn't get an answer how to cancel a computation that's not "cooperating" 12:47
like if you accidentally write an infinite loop in the golf-helper
dalek rlito: c7c242d | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - regex TODO - some qr() details
13:08
dalek rlito: 78ae779 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - regex TODO - more qr() details
13:22
timotimo i wonder if more perlito6 changes are going to happen any time soon? 13:23
moritz fglock isn't here, that's not a good sign
timotimo fglock said he'd be supporting only a subset of perl6 in perlito6; is that subset defined sharply some way? 13:25
how well are perl6 rules supported, for example? 13:26
dalek kudo-star-daily: cb2fd35 | coke++ | log/ (5 files):
today (automated commit)
13:27
kudo-star-daily: 0230169 | coke++ | log/ (5 files):
today (automated commit)
rl6-roast-data: e3c1ab9 | coke++ | / (6 files):
today (automated commit)
[Coke] rakudo.jvm & rakudo.moar both have failing tests. 13:28
(all of them in S17)
(jvm looks like simple failures, moar is aborting) 13:29
[Coke] colomon: niecza is now failing 575 tests. 13:29
(lots of aborts there, though, should be an easy cleanup) 13:30
lizmat [Coke]: S17 tests should not abort 13:31
they should just fail 13:32
because they point at a real problem wrt to Supply.delay and Supply.stable
I haven't "skipped" them
I hope jnthn and/or me can find the source of the problem 13:33
which seems to be that the feeding supply is passing on a "done"/"close" without delay, thereby causing values to disappear
eyes / suggestions welcome
timotimo hmm 13:35
one could probably instrument the debugger backend so that it'd echo every executed line with a timestamp and thread id 13:36
and then reconstruct a timeline annotated with the source lines?
moritz and influences the execution, because at some point, the thread's accesses to STDOUT have to be serialized 13:37
lizmat yeah, heisenbugs :-( although I don't think this one is, though 13:38
it's pretty reproducible
[Coke] lizmat++ btw for trying to fudge older implementations on newer tests. 13:44
lizmat: github.com/coke/perl6-roast-data/b....out#L1488 13:45
here's a message hidden in moar's output: S29-os/system.rakudo.moar..........................execvp(): No such file or directory
integration/advent2013-day14.rakudo.moar...........Aborted (core dumped)
timotimo moritz: they could output to one file per thread 13:48
that should solve the problem, no? 13:49
jnthn timotimo: picking appropriate threads with regard to locks and semaphores is the job of the OS scheduler. 13:50
timotimo: If you call sleep, you block a thread. End of story. A sleeping thread is quite cheap GC wise though, in that you knwo you don't have to wait for it, and it is producing no garbage. 13:51
timotimo: the sane way to deal with uncooperative threads is to use processes instead, or at least another VM instance that you can have full control over. 13:52
lizmat: I got those failures on my laptop too, so will be able to look at them a bit. 13:53
lizmat: Either tonight or tomorrow.
timotimo jnthn: so the golf-helper should likely use a subprocess, perhaps with a ulimit or with a kill after a timeout? 13:58
i suppose a kill would be easiest 14:00
jnthn timotimo: "should" 14:01
timotimo: All systems have to be seen in a context. This isn't exactly mission critical. :) 14:02
But for something that needed to support cancellation of arbitrary code robustly - yes, you'd want a process-based solution. 14:03
I wonder how nicely we can provide taht already
lizmat a Supply reading from STDIN in some way ? 14:04
jnthn phew....teaching done
lizmat: Not sure; maybe 14:05
timotimo jnthn: it's unfortunately far too easy to execute infinite loops when you're golfing, as you'll very often be using lazy (infinite) lists in that context
hence my concern
the migrate combinator closes its "superfluous" taps, right?
jnthn Right, so you'd want the closign of the tap to terminate the process here. 14:05
timotimo that seems like a useful primitive actually 14:06
jnthn lizmat: Certainly it wants to be a supply that is done on success. 14:06
timotimo a tap from any subprocess that automatically kills the subprocess when all taps of it are closed
jnthn I suspect it's a demand-supply
timotimo what should i look at (for copying purposes) if i want to build a tap that noms from any given file? 14:07
jnthn timotimo: are you looking to implement async file I/O? 14:12
If so, see asyncsocket.c in Moar, and IO::Socket::Async. 14:13
timotimo oke :)
well, i'd like to have tap-based stdin :) 14:14
jnthn That sounds...curious.
That'll also be tricky at the moment, I suspect...
timotimo if i have a console-based game, i need some way to have a non-blocking read on stdin anyway 14:15
not sure if there's something for that yet?
jnthn How is that usually handled? getkey?
timotimo i suppose so? 14:16
jnthn I dunno, I dont' write console games :P
timotimo i'll likely have something like an event loop that will coordinate with ansi escape codes
is there something in rakudo already that'll let me try to get one byte from stdin and if there's nothing immediately returns?
jnthn Don't think .getc will do that, no 14:17
timotimo some way to ioctl the file descriptor into a nonblocking state? 14:18
(except NativeCall)
jnthn Not so far as I know.
Nobody implemented it yet. I guess tadzik++'s games use SDL which handles such things, so those didn't block on it 14:19
I need to head to the station...
bbl
tadzik timotimo: don't you just want to wrap ncurses?
timotimo no, i want to do everything myself :)
ncurses is terrible
tadzik it is
tadzik but no, I don't think we have any such thing yet 14:20
tadzik I guess you could poll() stdin on parrot :o 14:21
timotimo yeah, on. 14:25
er
yeah, no.
PerlJam select? :) 14:26
timotimo in any case, i'd like there to be a solution. best would be to have a specced one. 14:56
colomon tadzik: can panda install a module which isn't in the ecosystem? 15:03
timotimo yes, just give it the path 15:07
tadzik yep 15:08
colomon \o/
colomon reckons it would be rude to litter the ecosystem with very specialized $work scripts, but awesome to have panda manage them. 15:09
FROGGS colomon: panda install . 15:19
I like that since I know it exists :o)
which is like, a week 15:20
tadzik heheh
colomon is there a way to do it with a URL? 15:20
FROGGS hmmm, I dont think so
tadzik hm
FROGGS it handles git and local paths AFAIK 15:21
tadzik github.com/tadzik/panda/issues/6
so, sort of :)
colomon so, one more reason I need to get my own git server up and running. :) 15:33
colomon has been eyeing gitblit
timotimo fortunately it's very easy; if you connect via ssh, you can start with no installation at all
TimToady I use: shell "stty raw -echo min 1 time 1 </dev/tty"; 15:34
timotimo that's your git server? :) 15:35
TimToady then to read chars: push @INPUT, $TTY.read(1)[].chrs unless @INPUT;
that guarantees at least one more char in @INPUT 15:36
os it is possible to do single-char input, at least on unixoids
*so 15:37
TimToady oh, and $TTY is an opened /dev/tty 15:38
timotimo what. :) 15:40
that seems like a terrible solution :D
TimToady well, that, or something like it, has the benefit of having worked for the last several years :P 15:41
I actually used the moar version of my quiz editor last weekend, and it ran fast enough to be usable 15:47
timotimo \o/
TimToady though admittedly, putting it onto a faster laptop helped a lot :)
timotimo the improvements stack, i would assume :)
TimToady still doesn't run quite as fast as the niecza++ version though 15:47
masak niecza++ 15:48
timotimo yeah, niecza++ seems kinda unbeatable, at least for the time being
TimToady but then, niecza kinda cheats, which is one reason it was abandoned
masak cheating is technique.
Ven_ cheating is waiting for the right design to come to mind :) 15:49
masak the right design gets to cheat too, as long as it doesn't get caught :)
Ven_ if it's the right design, it's not longer cheat 15:50
In what way does niecza cheat, anyway ?
TimToady is too senile to remember the specifics 15:58
tadzik methinks it simplifies the internals a bit for the sake of performance (mop, for instance)
FROGGS de.webfail.com/5b6f111eb39 # star wars vs harry potter 3min video 16:49
tadzik hahahaah 17:28
that's very well done
timotimo i suppose for the time being i can just have a worker thread start'd that reads byte by byte from stdin and feeds a channel with it 17:48
until we get proper nonblocking i/o for stdin
or even async i/o
dalek kudo/vm-null: f0524f5 | jonathan++ | src/vm/moar/ops/perl6_ops.c:
Revert incorrect MVM_is_null additions.

It should only be used on MVMObject.
18:03
FROGGS jnthn: when I want to have 1&&2 in QAST, do I really write it as QAST::Op.new(:op<if>, QAST::Op.new(:op<list>, QAST::IVal..., QAST::IVal...)) ? 18:30
and this well also produce the result 2?
jnthn why the list? 18:31
timotimo FROGGS: it seems like it can be an op if with two Wants or IVals in it
jnthn Wants to just be a QAST::Op with AST for 1 and 2 in it.
FROGGS I thought I'd need the list to have both in the condition
ahh, wait, I understand now 18:32
1&&2 in fact is: if 1 { 2 }
well, kinda 18:33
it is more like if 1 { 2 } else { 1 }
FROGGS err, I dunno 18:33
jnthn Well, it's not in so far as a 2-arg if evaluates to the condition.
FROGGS can't think
FROGGS can somebody check if the qast matches the comment? gist.github.com/FROGGS/d944fc037c8521ffbdd5 18:36
FROGGS Stage mast : Error while compiling op if: Operation 'if' needs either 2 or 3 operands 18:44
:/
it has three in the first and two in the second case...
FROGGS ohh, I only pasted the first case though 18:44
timotimo depends on what the ... is 18:45
FROGGS $handler 18:45
timotimo that'd be 3 args, aye
FROGGS I updated the gist 18:46
timotimo are you sure the problem isn't somewhere else? :) 18:47
jnthn FROGGS: Don't immediately see anything wrong in there... 18:48
FROGGS: Suspect what timotimo said
FROGGS yeah, that is possible...
dalek kudo/vm-null: 3c822bc | jonathan++ | src/vm/moar/ops/perl6_ops.c:
Some more MVM_is_null in perl6_ops.c.

This should be all of them; the current bug in setting compilation is most likely to be something missing in Moar.
18:49
FROGGS raises his fist against error reporting 18:50
raydiak \o 18:51
raiph r: for 1, 2, 3 { state ($a, $b) = (0,0); NEXT $a++; say $a; NEXT { $b++ }; say $b } # known moarvm bug? 18:52
camelia rakudo-moar c9f223: OUTPUT«0␤0␤0␤1␤0␤2␤»
..rakudo-{parrot,jvm} c9f223: OUTPUT«0␤0␤1␤1␤2␤2␤»
jnthn ah, not all of them after all... 18:52
raiph: Well, Rakudo code-gen bug rather than it being MoarVM's fault really. 18:53
But yeah, I saw that here before
So I imaigne it's filed
FROGGS hi raydiak, raiph 18:54
raiph jnthn: thx
FROGGS n: for 1, 2, 3 { state ($a, $b) = (0,0); NEXT $a++; say $a; NEXT { $b++ }; say $b } 18:56
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Action method statement_prefix:NEXT not yet implemented at /tmp/ByGm29brzU line 1:␤------> 2, 3 { state ($a, $b) = (0,0); NEXT $a++⏏; say $a; NEXT { $b++ }; say $b }␤␤Action method stateme…» 18:57
FROGGS ahh, yes
dalek kudo/vm-null: ff04467 | jonathan++ | src/vm/moar/ops/perl6_ops.c:
Add missing MVM_is_null in p6capturelex.

With this, we make it thorugh the setting build again.
18:58
timotimo \o/ 19:03
jnthn Got a clean make test again now
timotimo spectest is next?
jnthn Of course, I still need to break more stuff :)
I'm doing one to see how it is at this point, yes. 19:04
At present we still encounter real nulls in a bunch of places.
I'm gradually picking away at them.
nwc10 yes, clean setting with ASAN
not yet tried your latest MoarVM commit
raiph FROGGS: hi and thx for the greet :) would you like a fresh and naive pair of eyes to look at that qast? 19:05
jnthn
.oO( qast an eye over... )
nwc10 Moar puns 19:06
FROGGS raiph: this gist.github.com/FROGGS/d944fc037c8521ffbdd5
jnthn timotimo: Well into S06 and only seen one spectest bustage so far.
nwc10 we're not past the punning yet?
FROGGS raiph: but my error seems not related :/ 19:06
nwc10 oh, hangon, that might not be a pun
nwc10 we're not PAST... 19:06
need a better one. me 19:07
,eh
FROGGS *g*
jnthn need a better keyboard too :P
nwc10 can I blame it, and not my fingers?
Problem Exists Between Keyboard and Pillow
(note, I am fully clothed. Fret not)
jnthn damn, I hope before-long-trip me was considerate enough to leave returning-home-ahead-of-mayday-me some beers in the fridge... 19:08
nwc10 trip was long enough that you forgot?
I discovered fridge logistics fail earlier this week.
it's quite :-( when it happens
jnthn yeah, been away for > a week 19:09
timotimo jnthn: makes me happy to hear that :) 19:12
jnthn Yeah, I'm busying myself breaking the next round of things now, though :) 19:12
FROGGS nqp-m: nqp::handle(nqp::stmts(0, 1, 2), "REDO", 1) # I can't do that for testing? 19:13
camelia nqp-moarvm: OUTPUT«Error while compiling op handle (source text: "nqp::handle(nqp::stmts(0, 1, 2), \"REDO\", 1)"): cannot stringify this␤ at gen/moar/stage2/QAST.nqp:4569 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/QAST.moarvm:as_mast:100)␤ from gen/moar/stage2/QAST.nqp:391…»
jnthn in r maybe 19:14
Don't think nqp's nqp::op mangles handle properly
FROGGS m: nqp::handle(nqp::stmts(0, 1, 2), "REDO", 1) # I can't do that for testing?
camelia ( no output )
FROGGS hmmmm, okay, thanks :o) 19:15
jnthn feel free to teach nqp that trick
nwc10 jnthn: make test passes on "my" machine
FROGGS O.o 19:16
nwc10 not sure if setting is faster or slower than master. I was watching, so it seemed slow
but I don't usually watch
raiph FROGGS: I added a comment to your gist 19:17
raiph FROGGS: is there something like a QAST.pretty? 19:18
FROGGS there is a dump method
raiph I mean something that does something like or better than my comment? 19:20
FROGGS jnthn: that helped! I can reproduce it with shorter snippets, I put it in gist.github.com/FROGGS/d944fc037c8521ffbdd5 19:21
raiph: it is the same as if you do: perl6 --target=ast -e 'say 1'
raiph k, so that's like the gist you created rather than like my comment to your gist, right? 19:22
FROGGS no, the gist is proper nqp code
but since I am putting QAST in that variable, I can use the dump method to print it (exactly what --target=ast does, it compiles to qast, and then dumps it) 19:23
FROGGS but it really seems that the posted gist is really not the problem :/ 19:24
FROGGS nqp-m: for [1,2,3,4,5,6] -> $x, $y { if $x == 3 { next }; say("$x $y") } 19:28
camelia nqp-moarvm: OUTPUT«1 2␤5 6␤»
nwc10 jnthn: spectest has no new ASAN explosons 19:35
er, explosions
FROGGS ahh, I think I fixed my issue 19:36
nwc10 on origin/vm-null
moritz an exploson is a quasi particle that corresponds to ultrasonic density waves 19:37
jnthn nwc10: nie 19:38
nwc10: *nice
Thanks for checking
nwc10 nope, similar times for setting on master/master/nom 19:46
new thing might be faster
nwc10 straw poll (1 run and 1 run) - vm_null is faster 19:47
stage times about 1% lower with it 19:48
jnthn I wasn't expecting a difference... :) 19:51
nwc10 I have no idea if it's noise
timotimo it's probably noise 19:56
but jnthn is doing this to enable some kind of opt
so i'm happy anyway :P
what would that opt be, btw?
jnthn lazy allocation of containers - including $!, $/ and $_ 19:58
timotimo ooooh 19:59
i like that idea
especially $/ and $! are not used very often
vendethiel same here :) 20:00
dalek rl6-roast-data: e5619f7 | coke++ | / (6 files):
today (automated commit)
20:54
[Coke] moarvm fialing in S17 still (with core dumps). jvm failing in S17, with one .perl roundtrip error. parrot failing a test in S02-types/bool.t 20:56
'plan *;' could become 'plan 20;' in S03-smartmatch/signature-signature.rakudo.moar 20:57
dalek ast: f4ed7ec | jnthn++ | integration/advent2009-day21.t:
Make a test not be upset by Windows line-endings.
22:21
ast: 986eda8 | jnthn++ | integration/advent2012-day10.t:
Another Win32 line-ending robustness fix.
22:24
tadzik live panda: nationalzoo.si.edu/animals/webcams/...am=panda03 22:25
jnthn om nom nom nom nom bamboo
donaldh jnthn: What's the expected behaviour for asyncreadchars when a client drops the connection (IOException: Connection reset by peer on JVM) 22:30
jnthn: should that be put on the queue as an error and a seq -1 ? 22:31
jnthn Is that an orderly connection close, or an actual error? 22:32
If it's the former, then it probably wants to send -1 but not an error string, which can indicate "done" in the supply, I guess. 22:33
donaldh I don't think it is an orderly close.
jnthn ah, then yes, error 22:34
Connection reset by peer doesn't sound orderly to me... :)
timotimo yeah, RST :) 22:35
donaldh Telnet doesn't cause it, but netcat does.
jnthn Cats are always trouble-causers... 22:36
raiph jnthn: I'm getting to know the debugger ui module CommandLine.pm 22:39
dalek kudo-debugger: 5ace022 | raiph++ | lib/Debugger/UI/CommandLine.pm:
Bugfix: make "safe" char offset actually safe

The debugger crashed when stopping at a statement that included a blank line. Golfed test case:
  {1
  }
I did not see any new problems when testing this bugfix with the test case, some variants of it, and with a 200 line script that I'm working on and which happened to trigger this bug.
22:40
kudo-debugger: 4230f5b | jonathan++ | lib/Debugger/UI/CommandLine.pm:
Merge pull request #20 from raiph/patch-1

Bugfix: make "safe" char offset actually safe
raiph jnthn: thx; these first three are deliberately small changes for big impact 22:41
donaldh Hmm, rakudo blows up on the asyncreadchars failure path.
dalek kudo-debugger: 6d6fb6b | raiph++ | lib/Debugger/UI/CommandLine.pm:
Speedup display of regex match

Only subst in the couple hundred chars around the current match position.
If the target is hundreds or thousands of lines long then this is always going to be a lot faster. Right now the impact is colossal for target strings of more than a dozen typical text file lines.
kudo-debugger: e9cc44e | jonathan++ | lib/Debugger/UI/CommandLine.pm:
Merge pull request #22 from raiph/patch-5

Speedup display of regex match
jnthn raiph: Accepted 2 or 3, left comment on the other one 22:42
raiph jnthn: thx :)
jnthn Thanks for working on it :) 22:44
Happy to know the code is hackable. :)
donaldh No such method 'die' for invocant of type 'Str' 22:45
in block at gen/jvm/CORE.setting:18393
in method quit at gen/jvm/CORE.setting:18435
jnthn I'm...not sure that's your bug. 22:46
r: 'foo'.die
camelia rakudo-{parrot,jvm,moar} c9f223: OUTPUT«No such method 'die' for invocant of type 'Str'␤ in block at /tmp/tmpfile:1␤␤»
donaldh yep.
jnthn The default should be die $_, not .die
donaldh thx, I'll try that 22:47
donaldh compiles the setting 22:49
timotimo raiph: good catch for the debugger there! 22:50
jnthn I suspect they're the first performance patches every to the debugger :) 22:54
timotimo hrhr 22:56
donaldh jnthn: I reckon it makes sense to swallow AsynchronousCloseException. It can get thrown if readChars is pending and something closes the connection. 22:59
dalek p/async_ops: 77672d0 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncS (2 files):
Implement failed callbacks in async IO on JVM.
23:05
p/async_ops: 5647945 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncSocketHandle.java:
Swallow AsynchronousCloseException and treat it as EOF.
donaldh jnthn: do we have any tests for the async io yet? 23:06
jnthn donaldh: nope :( 23:07
jnthn Well, unless lizmat++ snaked them int. 23:07
sneaked, in :)
donaldh :D 23:08
okay, I'll look at that after I implement readBytes and writeBytes 23:09