»ö« 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.
00:07 FROGGS left 00:18 FROGGS joined
dalek p/io-refactor: 512c07b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
Fix FileHandle print.
00:38
00:40 FROGGS left 00:41 FROGGS joined 00:46 FROGGS left 00:47 FROGGS joined 00:49 raiph left 01:08 raiph joined 01:14 dayangkun joined, FROGGS left 01:23 zacts joined 01:28 FROGGS joined 01:44 dayangkun left 01:54 FROGGS_ joined 01:59 FROGGS left
dalek kudo/nom: 6297ac5 | jnthn++ | src/vm/jvm/core/Threading.pm:
Add a way to get broken promise cause.

Using .result will throw the exception if the promise was broken; this provides a way for getting hold of it if needed.
02:01
kudo/nom: 27962b0 | jnthn++ | src/vm/jvm/core/Threading.pm:
Promise breakage should carry over to combinators.
kudo/nom: fe22c91 | jnthn++ | src/vm/jvm/core/Threading.pm:
A channel can be finished or failed.

While some may be "forever", this provides for channels that come to some kind of conclusion, either a happy ending or a sad ending.
02:04 xinming joined 02:09 mikemol joined
diakopter jnthn: wat. you're still awake!?!?! 02:11
jnthn apparently 02:12
I need to leave home around 3:30am or 4am or so for my flight tomorrow.
JimmyZ miracle
jnthn So staying up late tonight, sleeping late, then will skip sleep tomorrow night :)
.oO( Is it bad that I'm working on the concurrency stuff at 4am while drinking Trappistes Rochefort? )
02:14
JimmyZ not bad, I never heard Trappistes Rochefort 02:15
jnthn It's a Belgian beer. 02:16
11.3%
Very tasty
And to be sipped. Slowly. :)
JimmyZ jnthn: I guess you Drunk Tsingtao beer? 02:19
jnthn JimmyZ: Sure. :) 02:20
Normally at a Chinese restaurant... :)
JimmyZ hehe 02:21
lizmat good *, #perl6! 02:33
diakopter lizmat: HOWDY FROM LEFT COAST 02:34
dalek kudo/nom: 2966c57 | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Simplify is default internals
jnthn o/ lizmat :)
dalek ast: fba6e2e | (Elizabeth Mattijsen)++ | S02-names/is_default.t:
Less and more fudging
02:35
lizmat jnthn, diakopter o/
less than an hour before we need to leave
breakfast&
jnthn writes his first channel combinator in Perl 6 02:38
02:41 araujo joined
jnthn 'night, #perl6 02:56
slavik dang 02:58
is it possible to deref a CPointer to a CStruct class? 02:59
to create a class that repr(CStruct) and then get a Cpointer from a Clibrary and then deref that pointer to the class that repr)CStruct)
diakopter well, it wouldn't be any more unsafe than all the other things you can do with those 03:00
03:03 stevan_ joined 03:04 gabriel joined
slavik cool 03:04
03:06 BinGOs joined 03:11 wtw_ joined 03:13 FROGGS_ left
lizmat commuting& 03:13
slavik what license does rakudo have? 03:16
JimmyZ see readme 03:17
03:18 FROGGS_ joined
slavik found it, ty 03:18
03:31 araujo left 03:37 preflex joined, ChanServ sets mode: +v preflex 04:17 japhb_ joined 04:28 araujo joined, araujo left, araujo joined 04:31 FROGGS_ left 04:34 crab2313 joined 04:40 FROGGS_ joined 04:44 FROGGS_ left 04:52 birdwindupbird joined 05:09 hypolin joined, hypolin left 05:17 ilogger2 joined, ChanServ sets mode: +v ilogger2 05:33 xinming joined 05:41 fridim_ joined 06:00 grondilu joined 06:04 jaldhar joined 06:06 jaldhar left 06:07 jaldhar joined 06:09 thou joined 06:11 FROGGS joined 06:20 thou left
grondilu rn: try { say 1 + "pi"; CATCH { die "can not recognize pi" } } 06:32
camelia niecza v24-88-g1f87209: OUTPUT«Potential difficulties:␤ Operation cannot succeed (constant folding threw exception: Cannot parse number: pi) at /tmp/jwcNSUwFHH line 1:␤------> try { say 1 + "pi"⏏; CATCH { die "can not recognize pi" } }␤␤»
..rakudo 2966c5: OUTPUT«can not recognize pi␤ in block at /tmp/qpjCP69pY0:1␤ in block at /tmp/qpjCP69pY0:1␤␤»
06:33 fridim_ left
FROGGS rn: try { say 1 + "pi"; CATCH { default { die "can not recognize pi" } } } 06:36
camelia niecza v24-88-g1f87209: OUTPUT«Potential difficulties:␤ Operation cannot succeed (constant folding threw exception: Cannot parse number: pi) at /tmp/0D7QpQfZer line 1:␤------> try { say 1 + "pi"⏏; CATCH { default { die "can not recogni␤␤»
..rakudo 2966c5: OUTPUT«can not recognize pi␤ in block at /tmp/tyyrOJd7hg:1␤ in method Numeric at src/gen/CORE.setting:11252␤ in sub infix:<+> at src/gen/CORE.setting:3551␤ in sub infix:<+> at src/gen/CORE.setting:3549␤ in sub infix:<+> at src/gen/CORE.setting:3551␤ in sub infix:<+…
06:43 zakalwe joined 06:53 domidumont joined 07:07 domidumont left 07:08 domidumont joined 07:20 benabik joined
Mouq .tell diakopter Oop, I didn't see that you had offered to and did add me. Thank you! 07:21
yoleaux Mouq: I'll pass your message to diakopter.
Mouq .ety yoleaux 07:25
yoleaux Sorry, I couldn't find the etymology of that.
diakopter hi
yoleaux 07:21Z <Mouq> diakopter: Oop, I didn't see that you had offered to and did add me. Thank you!
Mouq .tz 07:26
yoleaux Mouq: I don't currently have a timezone preference set for you.
diakopter the etymology is from "yolo" (you only live once)
Mouq Haha, that's great 07:27
07:27 sqirrel joined 07:43 dmol joined
masak mornin', #perl6 07:49
moritz \o masak, * 07:50
diakopter in Soviet Ukraine your bed wakes up on the wrong side of you, and then it goes back to you.
moritz diakopter: are you coming to YAPC::EU? 07:51
diakopter yeah
are you?
moritz nods
diakopter dances a jiggle
masak grondilu, FROGGS: you're trying to catch a compiler error at runtime. that won't work. :) 07:53
masak dances a jiggle too
grondilu masak: well, it did display my custom error message, didn't it? 07:54
r: try { say 1 + "pi"; CATCH { die "can not recognize pi" } }
camelia rakudo 2966c5: OUTPUT«can not recognize pi␤ in block at /tmp/b1KbGiwViA:1␤ in block at /tmp/b1KbGiwViA:1␤␤»
diakopter t\nqp\01-literals.t ................... Failed 904/913 subtests
t\nqp\02-if.t ......................... Failed 607/613 subtests
t\nqp\03-if-else.t .................... Failed 1399/1413 subtests
t\nqp\04-unless.t ..................... Failed 607/613 subtests
t\nqp\05-comments.t ................... Failed 805/813 subtests
AWESOME. KICKASS. 07:55
something tells me there's a bug.
arnsholt ORLY? =D
diakopter well when you leave debug printfs in the interp.c.... 07:56
arnsholt Oh, that'll do weird things, yeah ^_^ 07:57
diakopter t\nqp\01-literals.t ................... ok
t\nqp\02-if.t ......................... ok
t\nqp\03-if-else.t .................... ok
t\nqp\04-unless.t ..................... ok
t\nqp\05-comments.t ................... ok
t\nqp\06-args-pos.t ................... ok
better.
that's PROGRESS. FAST.
JimmyZ nice 07:58
diakopter ;)
here goes nothing... building a NQP.moarvm 08:00
(cross-compiling)
arnsholt Oooh, exciting! 08:02
diakopter looks like I'm back to this: At Frame 16, Instruction 380, op 'no_op' has invalid number (4) of operands; needs 0.
moritz somebody[tm] should blog about moarvm progress
grondilu agrees
diakopter
.oO( somebody who has a blog... )
.oO( other than jnthn, who's Busy(tm) )
08:03
moritz diakopter: if you write an entry, I'll put it on my blog as a guest entry
s/entry/blog post/
diakopter ok, you'll have it by Sunday morning 08:04
moritz \o/
diakopter: you can hand it to me in person on Sunday :-)
diakopter "Here's the first bit; here's the second bit.." 08:05
moritz it's a... *drumroll*... 1!
diakopter close 08:06
masak wait wait, I got this. just give me one more guess. 08:07
diakopter dunno if it's worth it
so many people have failed...
self.panic('Unsupported use of ' ~ ~$old ~ ';'
~ ~$when ~ ' please use ' ~ ~$new);
what's with the double ~
moritz ac
benabik stringily and then concatinate? 08:08
ow, my spelling.
moritz diakopter: first '$when' is stringified
diakopter: then it's concatenated
FROGGS masak: it does work... I was just curious why the default-block triggers printing the backtrace
diakopter nqp ~ doesn't stringify?
moritz diakopter: I'm not sure if ~ has coercing multis in nqp
nqp: say('foo' ~ 42)
camelia nqp: OUTPUT«foo42␤»
diakopter that may be an archaism 08:09
moritz it might
diakopter er, what do you call those around here
moritz or there might be an infix:<~> multi for native str
and stringifying $when prevents the boxing of the string literals
diakopter I don't think NQP uses operator multis..?
moritz you'd have to look at the generated code to find out 08:10
FROGGS jnthn: if this hyper stuff works out... can something of the rakudo/nqp internals be done in parallel? I'm thinking of nfa, mmd or some such 08:19
diakopter those things are too short-lived 08:20
FROGGS well, @a >>+<< @b is short lived too, but if can do a gazillion in parallel, it would be faster 08:22
are there some cases where this helps? somewhere?
maybe if you have large lookup tables or so, then you could partition it and spawn threads 08:23
I just dont know the internals well enough to guess where this might be the case 08:24
08:37 domidumont left
grondilu rn: say my Int @ = rand xx 3 08:43
camelia niecza v24-88-g1f87209: OUTPUT«0.63349779119412308 0.56023166773851574 0.50795736839434014␤»
..rakudo 2966c5: OUTPUT«0.137404966724233 0.670122138728527 0.694341523429962␤»
08:43 dmol left
grondilu is not sure he understands what my Foo @var mean exactly :/ 08:43
08:44 dmol joined
grondilu I mean, if I write "my Int @a", does that mean that @a is supposed to be an Array of integers? 08:44
arnsholt Yes 08:45
grondilu r: say my Int @a = <foo bar>
camelia rakudo 2966c5: OUTPUT«foo bar␤»
grondilu ^then why is this ok?
arnsholt Good question =)
grondilu n: say my Int @a = <foo bar> 08:46
camelia niecza v24-88-g1f87209: OUTPUT«Potential difficulties:␤ @a is declared but not used at /tmp/AoBlG8zB2_ line 1:␤------> say my Int ⏏@a = <foo bar>␤␤foo bar␤»
arnsholt r: my Int @a; @a[0] = "foo"; say @a[0];
camelia rakudo 2966c5: OUTPUT«Type check failed in assignment to '$v'; expected 'Int' but got 'Str'␤ in block at /tmp/mI0LV1al9a:1␤␤»
arnsholt Looks like it's a rakudobug
FROGGS not all cases are yet handled right
grondilu ok 08:47
masak it's a rakudobug.
(a well-known one)
mathw o/ 09:05
FROGGS o/ 09:06
masak o/ 09:08
moritz not only well-known, but also submitted :-) 09:14
grondilu rn: my Int $x where * %% 2; say $x = 5 09:16
camelia niecza v24-88-g1f87209: OUTPUT«===SORRY!===␤␤Postconstraints, and shapes on variable declarators NYI at /tmp/wrfDkbWm9S line 1:␤------> my Int $x where * %% 2⏏; say $x = 5␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.set…
..rakudo 2966c5: OUTPUT«5␤»
moritz slavik: you can emulate dereferencable pointers with one-element arrays 09:18
09:21 rindolf joined 09:33 berekuk joined 09:35 daxim joined
grondilu ls 09:39
^ignore that 09:40
09:44 grondilu left 10:01 dmol left, dmol joined 10:12 sqirrel left
jnthn afternoon, #perl6 10:13
10:16 Rotwang joined
moritz \o jnthn 10:26
masak greetings, jnthn. 10:35
jnthn o/ masak 10:37
Forecast for today: slide writing, with bits of hacking :)
masak ain't that the truth. 10:40
diakopter jnthn: awakeness.
jnthn diakopter: a...wha? :P
diakopter awakified? 10:41
jnthn not enough coffee yet
diakopter awakestry?
10:42 domidumont joined
FROGGS hi jnthn 10:45
perl6 -e 'my @a = ^1001; my Mu $rpa := nqp::hyper_MT(@a, @a, Array, Int); my Mu $s := nqp::shift($rpa); say $s.ohh; say "done"' 10:52
No such method 'ohh' for invocant of type 'Int'
perl6 -e 'my @a = ^1001; my Mu $rpa := nqp::hyper_MT(@a, @a, Array, Int); my Mu $s := nqp::shift($rpa); say nqp::istype($s, Int); say "done"' 10:53
0
jnthn: how can it be an Int and not be an Int at the same time?
jnthn FROGGS: You probably cross a marshalling point somewhere 10:54
FROGGS: See nqp::hllize op
FROGGS do I have to hllize the thing I'm pushing to the qrpa?
that would the result of nqp_bigint_add then 10:55
jnthn Why isn't nqp_bigint_add already being given the Int type object so it can produce a Perl 6 Int? 10:56
FROGGS jnthn: I do that 10:57
that is why the last argument to hyper_MT is Int
I basically call nqp_get_sc_object on it, and pass it then to nqp_bigint_add as last arg 10:58
jnthn: gist.github.com/FROGGS/2f7a18016440db081f99 11:04
maybe that is better than my bad explanation
jnthn huh? nqp_get_sc_object?
FROGGS I got that from inspecting pir code that does similar things 11:05
that is, I grepped for nqp_bigint_add and mimik'd the steps 11:06
jnthn yes, but if you're writing code being passed an Int already... 11:09
The code you copied is looking up Int from an SC
FROGGS compiles 11:10
dalek kudo/nom: a8d3ca0 | jnthn++ | src/vm/jvm/core/Threading.pm:
Ensure borken promise stores an Exception.
11:12
kudo/nom: bdd4ae1 | jnthn++ | src/vm/jvm/core/Threading.pm:
Naming consistency.
kudo/nom: a3503f9 | jnthn++ | src/vm/jvm/core/Threading.pm:
Exceptions should inherit from Exception.
kudo/nom: 5965345 | jnthn++ | src/vm/jvm/core/Threading.pm:
Decontainerize in Channel.send.
11:13
11:15 berekuk left
FROGGS compiles again 11:16
jnthn: do you have an opinion what would be a candidate for doings things in parallel in nqp's and rakudo's core? 11:18
11:28 berekuk joined 11:46 jaldhar left 11:55 PacoLinux joined 11:57 rindolf left, rindolf joined 12:05 rindolf left
dalek rlito: 5058d24 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - grammar - save __DATA__ sections
12:05
12:06 berekuk left 12:10 berekuk joined 12:13 berekuk left
FROGGS jnthn: now I am passing the following as last arg to nqp_bigint_add: my $obj := $qastcomp.coerce($qastcomp.as_post( $op[3] ), 'P'); 12:17
but istype still says it isnt an Int and calling an unknown method tells it is an Int
moritz forgot a decont somewhere? 12:18
FROGGS I got you right that I dont need to hllize it when passing Int properly?
moritz: where do I have to do that?
right before calling nqp_bigint_add? or afterwards?
12:21 nige joined
nige Hi 12:21
diakopter hi
nige F m 12:22
FROGGS moritz: btw, I've got a Dell Latitude 620 here (Centrino Duo 1.8GHz, 2GB RAM, 40GB hdd, DVD +- RW), dunno if it would be useful for you
diakopter *facepalm*
12:22 nige left
FROGGS -.- 12:22
moritz FROGGS: before wherever the problem appears 12:23
FROGGS moritz: my problem is that I cant peek and poke the values in the pir code that well
so I dont know at what point something went wrong
moritz FROGGS: doesn't -ll-exception give you a PIR line number? 12:24
FROGGS moritz: it doesnt explode
I get something back that is some sort of QRPA, and inside is something Int-ish, but not quite 12:25
moritz FROGGS: can you show me some code?
FROGGS sure
12:25 domidumont left
moritz FROGGS: re laptop, thanks for the offer, but I think tadzik++'s offer is a bit better :-) 12:27
tadzik moritz: so I'm taking this one for you, and you'll bring the HDD?
FROGGS moritz: gist.github.com/FROGGS/2f7a18016440db081f99 12:28
moritz: yeah, I thought so too # laptop
moritz tadzik: aye
diakopter FROGGS: I was facepalming at the interloper
FROGGS diakopter: yeah, IT WAS A TRAP! :P 12:29
12:32 lizmat joined
moritz FROGGS: I'm confused by your code. You create a Perl 6-level array in there... 12:32
lizmat arrived at the DNIPRO
FROGGS both calls to perl6_box_int at line 46/47 might be wrong...
moritz FROGGS: and then you write my Mu $rpa := nqp::hyper_MT
FROGGS moritz: because it is somehow a QRPA, dunno how to get the perl6 Array :/ 12:33
moritz: as far as I understand line 8 creates a QRPA, which parrot can handle
I can try and rip out the call to FLATTENABLE_LIST... 12:34
moritz FROGGS: what does line 68 do?
FROGGS it pushes the $arr_a."FLATTENABLE_LIST"() call to the ops 12:35
otherwise it would never call that method
moritz: I could paste the generated pir code if that helps 12:38
moritz FROGGS: maybe 12:39
FROGGS: I feel like the proverbial blind leading the deaf
FROGGS *g*
takes a bit, recompiling atm...
moritz: gist.github.com/FROGGS/2f7a18016440db081f99 12:47
12:48 PacoLinux left
FROGGS gist.github.com/FROGGS/2f7a1801644...mt-pir-L76 that is line 68 12:48
12:50 PacoLinux joined, lizmat left 12:51 lizmat joined
moritz FROGGS: it looks fine to me from the perspective if checking the types of the arguments to the bigint_add op 12:55
as for the rest, I have no idea about tasks etc.
12:56 berekuk joined
lizmat jnthn: on the way here, I was thinking we're doing the whole approach to default values wrong 12:56
I mean, we only have default values for boxed values, right> 12:57
12:57 woolfy joined
lizmat ? 12:57
jnthn lizmat: Good question...not sure if the spec says it should work on natives too? But that'd need those to somehow cope with Nil assignment to matter... 12:58
lizmat so, my idea was that if a value is used as a RHS, *then* it is checked whether it is undefined
FROGGS moritz: the tasks are fine, I am just curious about the last arg of nqp_bigint_add and how to get an Array at the end instead of this half-baken QRPA
lizmat and if undefined, then it is checked if it has a default value, and that is then returned instead 12:59
this would allow .defined to be false on sparse arrays / hashes, but still return the default value if used as a RHS
moritz FROGGS: last arg of nqp_bigint_add: the bigint ops don't care about the type of the arguments, as long as they have a bigint REPR. So we need to tell bigint_add which type to return
FROGGS moritz: right, and maybe I'm telling it wrong 13:00
moritz well, if you get the Int type object there, all is fine
lizmat jnthn: so "my %h is default(42); say %h<foo>.defined; say %h<foo>; # would say True, 42
False, 42 13:01
so it would *not* be defined, and not exist, yet return 42
jnthn lizmat: Isn't %h<foo>.defined using it as an r-value?
FROGGS moritz: so, lets say I properly pass Int there, do I need to hllize the return value of nqp_bigint_add or do something else with it? 13:02
moritz FROGGS: no, the return value will be a proper Int
r: say nqp::add_I(3, 42, Int).perl 13:03
camelia rakudo 596534: OUTPUT«45␤»
moritz r: say nqp::add_I(3, 42, Int).WHAT
camelia rakudo 596534: OUTPUT«(Int)␤»
lizmat jnthn: hmmm… good point, I guess I was thinking of exists
FROGGS moritz: then why nqp::istype(nqp::shift($rpa), Int) ir zero?
moritz FROGGS: how many elements does $rpa have?
FROGGS looks at the pir of `say nqp::add_I(3, 42, Int).WHAT` 13:04
moritz: 1000
13:04 PacoLinux left 13:05 bearman joined
FROGGS hmmm, I see calls to nqp_get_sc_object for all fours args of nqp_bigint_add for `say nqp::add_I(3, 42, Int).WHAT` 13:05
I had that in my code before too, but it behaved the same 13:06
13:06 bearman left
jnthn Note that those are the result of a QAST::WVal being compiled 13:06
13:07 konundra joined
moritz so, when is everybody traveling to Kiev? 13:09
13:10 PacoLinux joined
tadzik tomorrow morning 13:12
I mean, I am. Not everybody :)
lizmat some of everybody alreafy arrived
jnthn 6am
tadzik I'm at 13:45 on RPB, or RBP, or something like this 13:13
FROGGS I'll be on my couch :o(
jnthn: the $op[3] (Int in Perl 6 code) is a QAST::WVal, so should I compile it the way I did before? 13:14
moritz will leave tomorrow morning, and arrive at KBP at 20:20H 13:15
tadzik KBP, that's it :) 13:16
masak is leaving early tomorrow morning; arriving at 12:40. 13:17
moritz it was quite difficult to find flights with less than 5h stops 13:18
lizmat moritz: how are you flying then? 13:19
jnthn FROGGS: Well, you just call .as_post or so on it, or something like that, I guess 13:20
FROGGS jnthn: that is what I do atm: my $obj := $qastcomp.coerce($qastcomp.as_post( $op[3] ), 'P'); 13:21
13:21 berekuk left, PacoLinux left
jnthn FROGGS: looks right 13:22
13:22 berekuk joined
FROGGS k, thanks 13:22
jnthn Does anybody have the link to testneeded tickets in RT handy? 13:24
ah rakudo.org/rt/testneeded
13:25 ajr joined, ajr is now known as Guest82787, Guest82787 is now known as ajr_
moritz also rakudo.de/testneeded 13:28
jnthn I've started a page here: act.yapc.eu/ye2013/wiki?node=Perl6Hackathon 13:30
The idea is that it's a place for those who show up at the Sunday hackathon to find stuff to hack on or how to get started.
masak damn you, pmichaud. now I keep doing .subst instead of .trans in my Perl 6 code. :P
jnthn Please contribute.
masak jnthn++ 13:31
FROGGS moritz / jnthn: the things in the QRPA are somehow not 6model objs 13:33
moritz adds the most wanted repo to the wiki page 13:40
jnthn moritz: Is perl6doc relatively easy to contribute to? 13:47
moritz jnthn: aye (as long as you don't want to rebuild the HTML :-) 13:48
13:48 colomon joined
jnthn moritz: Maybe add some suggestions about that to the hackathon page... 13:49
moritz does, though the suggestions remain vague :/ 13:55
FROGGS perl6 -e 'my @a = ^1001; my Mu $rpa := nqp::hyper_MT(@a, @a, Array, Int); say +nqp::p6list($rpa, List, Int); say "done"' 13:57
1001
done
at least that works
now only the values in the array are problematic
13:59 skids joined
colomon hyper_MT? # colomon has been out of it too long... 13:59
FROGGS colomon: a local test 14:00
I'm playing with parrot's threads
colomon FROGGS++
JimmyZ you may want thread pool 14:01
FROGGS JimmyZ: what do you mean?
I am creating a task for every value, and parrot only runs NUM_CORES -1 extra threads at a time 14:02
if you mean that I should only create NUM_CORES -1 tasks you might be right, but that would be an optimization I wanna do when it works 14:03
I dont wanna make it more complex right now :o)
JimmyZ no , I mean a pool, to reuse created threads 14:04
14:05 rindolf joined
moritz well, first make it run, then make it fast, no? 14:05
JimmyZ yeah
FROGGS JimmyZ: wasnt that what I meant by just creating like NUM_CORES-1 threads?
JimmyZ FROGGS: no 14:06
you mean max threads
FROGGS right
and you? 14:07
JimmyZ I mean it needs a pool, like apr's memory pool
FROGGS can you explain that without repeasting the word 'pool'?
-s
JimmyZ FROGGS: github.com/rakudo/rakudo/blob/nom/...ng.pm#L304 14:09
jnthn
.oO( If in doubt, link to the word instead :P )
14:10
FROGGS why should I do that? I think parrot cares about thread scheduling... 14:11
[Coke] jnthn: en.wikipedia.org/wiki/The_Word
JimmyZ hmm, I don't know about parrot thread 14:12
FROGGS and I nothing about pools :P
14:13 dmol left
FROGGS JimmyZ: when thinking about it: I dont meant maximum running threads, not maximal total thread count of the program's life 14:14
14:15 berekuk left, berekuk joined
jnthn [Coke]: *groan* 14:17
14:18 sqirrel joined
timotimo hello butterfly fans 14:18
FROGGS timotimo: \o/ 14:19
timotimo i was thinking about object slowness when it occured to me that the type of box to be created is always passed as a string and then looked up in the caller's lexical pad or something similar; isn't that something that could be done at compile time and increase execution speed by a whole lot?
as in, will a for loop with a thousand Int objects being created that way look up "Int" in the lexical scope a thousand times?
moritz timotimo: no, it will just be retrieved from the SC that many times 14:20
jnthn Right, it's resolved at compile time
timotimo ah, well that's good. that should be fast 14:21
jnthn And on the JVM, it's further resolved using invokedynamic on first access
So provided the JIT is being smart it should work out just like a static object reference.
timotimo yes. except on parrot ;)
[Coke] googles for butterfly camel velociraptor and ends up in tv tropes. wtf? 14:25
tadzik about hackaton ideas: I've talked to at least 3 people about it, and everyone is like "yeah, someone else should do it", but I'm more and more tempted to consider writing Python on NQP
FROGGS tadzik: reimplementing Python? 14:26
tadzik yeah
Not Quite Perl6 related, I know
(pun intended)
FROGGS *g*
I'm just a bit concerned about the amount of work 14:27
tadzik yeah, it's a Big Project
14:27 rindolf left
tadzik but maybe writing a nice syntactic sugar for JVM interop? 14:27
jnthn needs to get that branch merged :) 14:28
(the one that starts doing that)
tadzik ah :)
jnthn tadzik: gist.github.com/jnthn/6e5b82c4b70fd6592841 # latest 14:29
It needs an magical multi-dispatcher-y thingy that resolves to the correct Java overload.
diakopter welcomes our new Java overloads
jnthn On the one hand it's quite an isolated task. On the other hand, it's probably terrifying :)
tadzik :) 14:30
FROGGS .oO( everything should dispatch directly to jnthn, the Java overlord )
jnthn :P
phew, one of my three talks now has reached "I can deliver this" level :)
tadzik hehe
jnthn+=0.3 ;) 14:31
jnthn Thankfully, that's the Monday one :) 14:32
FROGGS that was just luck :P
nwc10 tadzik: as a starter, can you write a rpython implementation for NQP?
14:32 fridim_ joined
nwc10 ie, just run the subset of Python that PyPy is implemented in, and bootstrap from there 14:33
tadzik nwc10: I assume rpython is to python what nqp is to perl6?
diakopter nwc10: :)
nwc10 yes, this is my understanding
tadzik possibly
timotimo rpython also includes a VM and jit generator
nwc10 you don't need the JIT generator (yet)
timotimo well, not quite. i believe the vm is implemented in rpython itself as part of the pypy-python-interpreter project
you don't need it unless you want to get anywhere near passable performance ;)
14:34 pmurias joined
timotimo but who in this room needs passable performance anyway? 14:34
dalek kudo-js: e5020d2 | (Pawel Murias)++ | .gitignore:
Add node_modules to .gitignore.
kudo-js: 38273b3 | (Pawel Murias)++ | run_tests:
Add passing test 50 to run_tests.
nwc10 yep, but if all you worry about is passable performance you end up refactoring the existing parts of Parrot $n times and never implement the missing features
passable performance comes after (mostly) completeness
jnthn looks into getting the use-from-java branch merged 14:35
14:36 crab2313 joined 14:38 Psyche^ joined
moritz lizmat: (missed your question earlier) via Istanbul 14:42
14:42 bluescreen10 joined
tadzik curious 14:43
jnthn Whoa, that's roundabout :) 14:44
tadzik I have a direct flight from Warsaw 14:46
14:46 crab2313 left 14:49 FROGGS left 14:50 thou joined 14:51 kaare_ joined 14:58 stevan_ joined
BabsSeed There was no perl chat on StackOverflow 14:59
I just created it :o
tadzik is there a chat on SO?
BabsSeed tadzik: chat.stackoverflow.com/rooms/34988/perl Yes
tadzik cool, I didn't know they had chatrooms
15:00 stevan_ left 15:02 rjbs joined
rjbs At OSCON, I talked very briefly with TimToady about Perl 5's chances of developing "pair slicing," like this: 15:03
%h = (a => 1, b => 2, c => 3); %h{ qw( a c ) }; # evaluates to (a => 1, c => 3)
He said that in p6 this is done with adverbs on the slice.
I made such a hash in my (slightly dated) Rakudo and get: 15:04
%h{'a', 'c'} :xyzzy
no matter the string after the colon, I get 1 3
What am I doing wrong?
PerlJam r: my %h = (a => 1, b => 2, c => 3); %h<a c> :p 15:05
camelia rakudo 596534: ( no output )
jnthn r: my %h = a => 1, b => 2, c => 3; say %h{'a', 'c'}:p
camelia rakudo 596534: OUTPUT«"a" => 1 "c" => 3␤»
PerlJam jnthn++ not forgetting his "say" :)
rjbs Aha, the :p works.
Why aren't unknown adverbs problematic?
r: my %h = a => 1, b => 2, c => 3; say %h{'a', 'c'}:pants
camelia rakudo 596534: OUTPUT«1 3␤»
rjbs Or: isn't it problematic that they're ignored? 15:06
PerlJam std: my %h = a => 1, b => 2, c => 3; say %h{'a', 'c'}:pants; # curious
camelia std c2215f0: OUTPUT«ok 00:00 45m␤»
dalek rakudo/nom: 1d8f4d7 | jnthn++ | src/Perl6/Grammar.nqp: 15:07
rakudo/nom: Start processing use more smartly.
rakudo/nom:
rakudo/nom: This handles it through the usual longname parser, meaning we now can
rakudo/nom: pick out the name itself from any colonpairs.
clkao w/win 24
15:07 dalek joined, ChanServ sets mode: +v dalek
jnthn rjbs: It's because method calls happily accepted any on-the-side named params. However, postcircumfix:<{ }> is set to become a sub call eventually, which will mean they start to complain. :) 15:08
The above mis-detected merge was the use-from-java branch
tadzik FRO<TAB><TAB>
:(
rjbs jnthn: Okeydokey! 15:09
15:09 PacoLinux joined 15:11 sqirrel left
dalek p: d242880 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Missing decontainerize in param unboxing.
15:11
[Coke] r: {}:<> 15:16
camelia rakudo b17b0b: OUTPUT«===SORRY!===␤No such method 'has_compile_time_value' for invocant of type 'NQPMu'␤»
[Coke] r: %{}:<>
tadzik haha
camelia rakudo b17b0b: OUTPUT«===SORRY!=== Error while compiling /tmp/1fwltGIPfH␤Unsupported use of %{}; in Perl 6 please use %()␤at /tmp/1fwltGIPfH:1␤------> %{}⏏:<>␤»
jnthn eeks 15:17
masak submits rakudobug
jnthn First one wants rakudo...yeah, that
jnthn is now working on getting the JVM io-refactor branch merged :)
[Coke] ... I was just making a stupid face. :) 15:18
... kind of looks like tom servo
jnthn ...
Each to their own :) 15:19
[Coke] jnthn:
15:19 PacoLinux_ joined
[Coke] en.wikipedia.org/wiki/Tom_Servo 15:19
also, if you don't know who Tom Servo is, watch some MST3K when you can. ;)
masak mst3k++! 15:20
15:21 PacoLinux left, PacoLinux_ is now known as PacoLinux
moritz mst3k sounds like a mixture between mst and masak 15:21
scary thought
jnthn Or the next big re-write of mst
masak trying not to end up in development hell like certain other rewrites.
jnthn We'll just fix a few things... :P 15:22
masak classical rookie mistake.
r: { foo => 42 }:<>
camelia rakudo b17b0b: OUTPUT«===SORRY!===␤No such method 'has_compile_time_value' for invocant of type 'NQPMu'␤»
masak r: my %h = foo => 42; say %h:<> 15:23
camelia rakudo b17b0b: OUTPUT«===SORRY!===␤Variable '%h:<>' is not declared␤at /tmp/Dl0CtxMIxc:1␤------> my %h = foo => 42; say %h:<>⏏<EOL>␤ expecting any of:␤ postfix␤Other potential difficulties:␤ Pair with <> really means an empty list, not n…
masak r: my %h = foo => 42; say %h :<>
camelia rakudo b17b0b: OUTPUT«===SORRY!===␤You can't adverb that␤at /tmp/qXe5D4t0OZ:1␤------> my %h = foo => 42; say %h :<>⏏<EOL>␤Other potential difficulties:␤ Pair with <> really means an empty list, not null string; use :('') to represent the null stri…
masak no, *you* can't adverb that!
15:44 kbaker joined 15:45 PacoLinux left 15:46 PacoLinux joined 15:47 konundra left 15:56 berekuk left 15:57 btyler joined 15:58 berekuk joined 16:15 pmurias left 16:25 rindolf joined 16:26 btyler_ joined 16:28 btyler left
[Coke] yawns. 16:30
16:30 domidumont joined 16:40 ajr_ left
moritz std: {}:<> 16:41
camelia std c2215f0: OUTPUT«Potential difficulties:␤ Pair with <> really means an empty list, not null string; use :('') to represent the null string,␤ or :() to represent the empty list more accurately at /tmp/FYKgK0vBDc line 1:␤------> {}:<>⏏<EOL>␤ok 00:00 43m␤»…
16:42 grondilu joined 16:44 PacoLinux left, FROGGS[mobile] joined
moritz tries a fix for [perl #119215] 16:44
16:44 berekuk left
FROGGS[mobile] tadzik: sup? 16:45
tadzik FROGGS[mobile]: I saw jnthn's patches to use statement in rakudo, thought they might overlap with your v5 patches somewhat 16:46
dalek p: fbf9be3 | jonathan++ | / (5 files):
Start stubbing in new IO bits.
nqp: 57188a8 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
nqp: Fill out a little more of file I/O.
16:46 dalek left
tadzik and clear the way for you to make v5 a module 16:46
16:46 dalek joined, ChanServ sets mode: +v dalek, berekuk joined
FROGGS[mobile] tadzik: true, I want to adapt them this weekend 16:47
tadzik kewl
FROGGS[mobile] but I guess I need to unbreak v5 first... 16:48
(that is the problem with nqp/rakudo refactors)
jnthn If you poke into the guts, the refactors may poke you :) 16:49
FROGGS[mobile] troo
jnthn Probably we should find nice ways to expose APIs though.
for things where you're poking
16:49 PacoLinux joined
jnthn Hopefully by providing a hook for :from<langname> this latest one is a step in that direction for v5. 16:50
FROGGS[mobile] well, everytime Perl6::Actions geht's touched, I need to do that too
jnthn: it is techically the same I had 16:51
masak hm, I wonder how we'd do itertools.starmap in Perl 6... 16:54
docs.python.org/dev/library/itertoo...ls.starmap
16:55 FROGGS joined
tadzik do they have starfleet to? 16:55
FROGGS ahhh, that's better
jnthn: I have basically one last problem at that point: I need to implicitly load a module when somebody does "use v5" 16:57
moritz masak: sub starmap(&c, *@v) { @v.map: { c |$_ })
FROGGS jnthn: so the user gets Perl5::Terms too, and this is an evil hack atm 16:58
16:58 dmol joined
moritz masak: (if I understood the docs correctly) 16:58
FROGGS jnthn: it would be awesome if you would suggest a nice refactoring for that: github.com/rakudo-p5/v5/blob/maste...patch#L102 16:59
or maybe I should propose some way to really make slangs pluggable
17:01 FROGGS[mobile] left
dalek kudo/nom: 525c5d0 | jnthn++ | src/vm/jvm/core/Threading.pm:
Add a first cut at a KeyReducer class.

If Promise is for synchronizing over scalar values ($) and Channel is for synchronizing over ordered values (@), this is for synchronizing over keyed values (%).
17:01
jnthn FROGGS: I don't have a suggestion right off.
17:01 PacoLinux left
FROGGS jnthn: btw, I would propose that a slang would have to provide a proper Slang object (or at least a hash), containing/referencing the grammar, the actions, and additional information like: to which token the parser should switch (like statementlist), and finally what modules should be loaded and what is the library path 17:02
17:03 daxim left 17:07 sqirrel joined 17:11 crab2313 joined
moritz are there any (not too obscure) languages that use closures and manual memory management? 17:11
s/use/provide/ 17:12
17:14 spider-mario joined 17:15 berekuk left, berekuk joined 17:20 colomon left
masak moritz: that seems an odd combination. 17:21
tadzik I think I read it in some of masak's documents, that a language with closures must have a GC 17:22
masak well, "must", as in, you'll make life pretty difficult for yourself in you want to track when a scope. 17:24
tadzik I think you accidentally a verb :) 17:25
jnthn ...missing verb? :)
masak ...expires :)
rn: sub echo($shout) { return -> { say $shout } }; my $delayed-shout = echo("Helloooo-o-o-o!"); say "waaaait for it..."; $delayed-shout()
camelia rakudo 525c5d, niecza v24-88-g1f87209: OUTPUT«waaaait for it...␤Helloooo-o-o-o!␤»
masak at which point can you GC $shout? well, when the *outer* block is done with $delayed-shout. 17:26
manual GC would mean doing that... manually, somehow.
jnthn In a sense, though, a closure is just an object. 17:27
17:27 berekuk left
jnthn The latest C++ has closures 17:27
Maybe look at how it does the memory management.
moritz that's an interesting point
jnthn talked a bit about them with the $dayjob C++ guy 17:28
grondilu Is there someone working on a LLVM backend if this makes any sense and would it be a good idea? 17:29
moritz grondilu: I'm not aware of anybody working on it 17:30
grondilu: that said, LLVM is *low-level*, more low-level than the other VMs we build on
maybe moarvm could use LLVMs JIT compiler? 17:31
tadzik people keep asking about LLVM :)
moritz has no idea what the moarvm JIT plans are
17:35 prammer joined 17:36 sqirrel left
perigrin moritz: moarJIT obviously. 17:39
moritz lessTime would be fine too :-) 17:42
[Coke] maybe we should post a sign in the corner "unless you have a plan about how to use LLVM, please don't ask us about LLVM" 17:43
moritz [Coke]: the usual way to go about such a sign is to blog about why no LLVM backend exists, and then link to that whenever somebody asks 17:45
tadzik similar to the Production Ready sign
17:49 sqirrel joined, konundra joined
masak or the Significant Whitespace sign. 17:54
or the Junctions Are Not Sets sign.
jnthn see all(@the_signs) 17:55
17:56 btyler_ left 17:59 btyler joined
geekosaur .oO { signs, signs, everywhere signs / f*ing up the scenery, breaking my mind / do this, don't do that, can't you read the signs? } 18:02
masak has a feeling whoever wrote those lines shouldn't get into semiotics 18:08
18:12 raiph joined
geekosaur 1960s. if you mentioned semiotics to them they'd probably want to smoke it 18:16
18:18 ajr joined, ajr is now known as Guest52334, berekuk joined, Guest52334 is now known as ajr_
masak I imagine some appropriate mixture of semiotics and category theory would work quite well for smoking. 18:22
18:23 domidumont left 18:31 bluescreen10 left 18:36 bluescreen10 joined, bluescreen10 left, sqirrel left 18:37 bluescreen10 joined, bluescreen10 left 18:38 bluescreen10 joined
benabik
.oO( co-smoking? )
18:45
18:48 fridim_ left
geekosaur or coking 18:49
ajr_ Q. What do you get if you cross a Mafia boss and a semiotician? 18:50
A. An offer you can't understand.
18:53 pnu_ joined 18:54 zwut00 joined, zwut00 left 18:55 pnu_ left 18:56 zwut00 joined, zwut00 left 18:57 zwut00 joined 19:02 rindolf left 19:05 btyler left
[Coke] big regression on rakudo.jvm today 19:08
dalek rl6-roast-data: 9700d90 | coke++ | / (5 files):
today (automated commit)
[Coke] +S02-names/is_default.rakudo.jvm aborted 47 test(s) 19:09
+S32-str/substr.rakudo.jvm aborted 63 test(s)
almost down below 99%.
19:18 raiph left
lizmat shit, didn't I fudge that properly ? 19:18
[Coke] eh, if you fudged it for rakudo, that's good for 99% of the time. 19:19
probably needs a fudge in each one for rakudo.jvm 19:20
jnthn substr looks like my fault; I turned a soft fail into a hard fail, by the looks of it 19:21
19:25 raiph joined, Rotwang left
[Coke] dammit, jnthn, you had 1 job... er, 2 job... 4? er, nevermind. 19:26
jnthn++ 19:27
lizmat [Coke]: I'm not sure what I need to fudge for rakudo.jvm 19:31
moritz is too dumb to find the download link for the oracle JDK for the mac 19:32
lizmat could it be that .VAR doesn't work on rakudo.jvm ?
lizmat is hoping to be able to skip from Parakudo to Moarakudo 19:33
moritz I can't a direct download link on docs.oracle.com/javase/7/docs/webno...c-jdk.html and www.oracle.com/technetwork/indexes/....html#java only has a download link for sources of the jdk 19:34
FROGGS moritz: that is why I hate oracle
moritz seems I have to follow the "Java SE" links 19:36
[Coke] lizmat: I would have to build the jvm version, run the test files, see what explodes (it's probably the new test, if any), and go from there. 19:37
moritz ftw www.oracle.com/technetwork/java/jav...80260.html seems to have it
[Coke] I will do so this weekend if jnthn doesn't fix it.
lizmat then my bet is on .VAR not working, because that's the only thing I added that early in the test
lat me fudge that just to make sure
FROGGS moritz: yeah, found it too right now 19:38
moritz hates, hates, hates going to websites to install software
there are package managers for all proper OS, and that's what I want to use 19:39
FROGGS moritz: and I hate pages where you have to register in order to download stuff
19:40 Rotwang joined
dalek ast: 9b8bfed | (Elizabeth Mattijsen)++ | S02-names/is_default.t:
Fix most likely reason for failing tests on jakudo
19:40
FROGGS I still get oracle newsletters
19:40 dmol left, konundra left 19:41 dmol joined, konundra joined 19:52 kaare_ left 19:55 bluescreen10 left 19:58 jaffa4 joined
jaffa4 hi 19:58
I am compiling Perl6
it isa struck at a point, restrixted settings. 19:59
FROGGS jaffa4: what? 20:00
jaffa4: did it fail to compile?
jaffa4 no it is very slow
as if it were in an infinite loop
at a command... perl6..... restricted.settings..... 20:01
FROGGS hmmm 20:02
there is a line like: ./perl6 --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
but this only takes seconds
(on my box)
moritz yes, should be much faster than the previous steps 20:03
jaffa4 yes, that one
at least 20 minutes has passed
FROGGS O.o
20:03 pmurias joined
FROGGS that is very weird 20:03
moritz jaffa4: is your machine swapping? 20:04
20:04 btyler joined
FROGGS jaffa4: do you have free diskspace? 20:04
jaffa4 free diskbase yes 360gbyes 20:05
memory at least 8gbytes
FROGGS hmmm
dalek ast: 2dfc5a7 | (Elizabeth Mattijsen)++ | S02-names/is_default.t:
Add similar tests for %a is default
jaffa4 I pulled the current version from git 20:06
FROGGS jaffa4: what OS do you have? do you build for parrot or JVM backend?
lizmat is pulling and building to check
jaffa4 win 7 20:07
64bit
FROGGS and you have activeperl installed? or strawberry? 20:08
(or cygwin)
jaffa4 strawberry
FROGGS that is a problem
that is not supported yet AFAIK
jaffa4 Whwn I am on windows I use strawberry == Larry Wall 20:09
moritz I wouldn't have expected that to result in extreme slowness
FROGGS jaffa4: I love strawberryperl too, but there problems with some compiler defaults 20:10
are*
20:10 bluescreen10 joined
moritz r: {}:<bla> 20:10
camelia rakudo 525c5d: OUTPUT«===SORRY!===␤No such method 'has_compile_time_value' for invocant of type 'String'␤»
FROGGS O.o
time perl6 -e 'my @a = ^1001; my Mu $rpa := nqp::hyper_MT(@a, @a, Array, Int); say nqp::p6list($rpa, List, Bool::True); say "done"' 20:11
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194 196 198 200 202[...]
\o/
just a bad hack but at least it is working now 20:12
lizmat fwiw, with the latest pull, I don't see any problems on OSX
FROGGS hmmm, well, jnthn did IO refactors, and the restricted setting disables some IO stuff... could that be it? 20:13
20:15 woolfy left
FROGGS jaffa4: can you please do: git checkout 59653455b02b1c1d045442c01a010b9f4d935bc2 20:15
and then: make install
jaffa4 Is anyone going to be in KIev tomorrow? 20:16
masak
lizmat
jaffa4 and how will you spend the time tomorroe?
lizmat (is already there)
masak jaffa4: fretting about connection flights...? :) 20:17
connecting*
jaffa4 What is the weather like?
lizmat no definite plans yet, probably around dinner back at the hotel to see who'd like to join us for dinner
jaffa4 masak: no
lizmat 30+ degrees celsius 20:18
jaffa4 When?
IN the evening?
lizmat well, in the afternoon
now it's more like 20 approaching midnight 20:19
jaffa4 You mean in youir hotel?
lizmat should be 30+ again around noon tomorrow
PerlJam notes that it's currently about 37°C here
lizmat no, outside
the room has airco :-) 20:20
jaffa4 Is that Dnepr?
lizmat Dnipro
the ukranian way of naming the river
jnthn
.oO( They're pro at naming it )
20:21
lizmat .o( they're not against it either) 20:25
on that bad note, it's time to try out the bed in the hotel& 20:26
FROGGS gnight lizmat, sleep well 20:27
[Coke] ~~ 20:28
jnthn 'night lizmat 20:32
jaffa4 FROGGS: tryinf afain 20:37
FROGGS cool 20:38
20:42 cognominal joined
jaffa4 FROGGS: same 20:45
20:51 btyler_ joined 20:53 btyler left 20:57 skids left 20:58 konundra left 21:01 kbaker left 21:04 btyler_ left 21:06 zwut00 left, FROGGS left, jaffa4 left 21:40 BenGoldberg joined
masak 'night, #perl6 22:00
see some of you v Kieve tomorrow.
22:01 dmol left
tadzik w Kijowie : 22:04
:)
jnthn в Киеве :) 22:05
22:11 bluescreen10 left 22:15 crab2313 left 22:21 spider-mario left 22:27 pecastro joined 22:29 skids joined 22:33 ajr_ left 22:35 Woodi joined 22:41 eternaleye joined 22:47 lue joined 22:50 colomon joined
dalek p: 134167f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java:
Stub in AsyncFileHandle.
22:55
p: f06d78e | jnthn++ | src/vm/jvm/ (4 files):
Stub in a couple of basic async IO ops.

Not actually implemented on the handle yet.
p: b212927 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java:
Implement asynchronous slurp.
colomon !!!! 23:00
jnthn o/ colomon :) 23:06
colomon \o
jnthn is doing some pre-airport hacking :)
colomon on your way to YAPC::EU?
jnthn Yeah
colomon \o/
jnthn Flight is at 6am o.O
colomon yow 23:07
jnthn Yeah...was the only combo of sensible layover time and price that really fitted...
Thankfully, the airport trains run all night from the station near here :)
colomon I apologize for not getting more done for jakudo before the conference. Though I guess I might be able to sneak in a bit of hacking once we get back home (and before we leave again for the next music festival ;). 23:08
jnthn np :)
I've just about got the stuff implemented that I wanted for my concurrency talk :)
colomon I was quite hoping it could hit 100% by then.
jnthn It woulda been nice. 23:09
I did a huge refactor of IO stuff the last few days.
It's a bunch cleaner now.
That unblocks getting the async bits in for my talk, but also sockets.
colomon cool
jnthn++
jnthn So I'm hopeful we'll have those soon.
(Yes, I can look at them if nobody beats me to it.)
Dealing with NIO in Java is...argh. :) 23:10
It's not bad, it's just un-Perl-ishly long-winded :)
colomon you do the long winded stuff so the p6 user doesn't have to... 23:11
jnthn True :) 23:12
Asynchronous slurp in the impl I have locally just returns a Promise :)
colomon oh!
interesting
jnthn Same kind of object as an async { ... } block does 23:13
colomon thinks it should return a Cat. ;) 23:14
jnthn will try and have a bunch of nice examples in his talk :)
jnthn can think of use cases for both of those :)
Alas, no Cat yet, so... :) 23:15
timotimo cool stuff, jnthn :) 23:27
23:31 fgomez joined 23:33 pochi joined 23:34 skids left
dalek p: 89491f5 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java:
Implement async lines.

Pushes each line into a Channel as it is read/decoded.
23:38
kudo/nom: 495602b | jnthn++ | src/vm/jvm/core/Threading.pm:
Add a partial, preliminary IO::Async::File.

So far, only supports textual reading (slurp -> Promise, lines -> Channel).
23:43
23:44 colomon left 23:49 telex joined 23:58 eternaleye left