Time |
Nick |
Message |
00:18 |
|
FROGGS joined #perl6 |
00:38 |
dalek |
nqp/io-refactor: 512c07b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java: |
00:38 |
dalek |
nqp/io-refactor: Fix FileHandle print. |
00:38 |
dalek |
nqp/io-refactor: review: https://github.com/perl6/nqp/commit/512c07bacc |
00:41 |
|
FROGGS joined #perl6 |
00:47 |
|
FROGGS joined #perl6 |
01:08 |
|
raiph joined #perl6 |
01:14 |
|
dayangkun joined #perl6 |
01:23 |
|
zacts joined #perl6 |
01:28 |
|
FROGGS joined #perl6 |
01:54 |
|
FROGGS_ joined #perl6 |
02:01 |
dalek |
rakudo/nom: 6297ac5 | jnthn++ | src/vm/jvm/core/Threading.pm: |
02:01 |
dalek |
rakudo/nom: Add a way to get broken promise cause. |
02:01 |
dalek |
rakudo/nom: |
02:01 |
dalek |
rakudo/nom: Using .result will throw the exception if the promise was broken; this |
02:01 |
dalek |
rakudo/nom: provides a way for getting hold of it if needed. |
02:01 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6297ac572c |
02:01 |
dalek |
rakudo/nom: 27962b0 | jnthn++ | src/vm/jvm/core/Threading.pm: |
02:01 |
dalek |
rakudo/nom: Promise breakage should carry over to combinators. |
02:01 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/27962b0ac2 |
02:01 |
dalek |
rakudo/nom: fe22c91 | jnthn++ | src/vm/jvm/core/Threading.pm: |
02:01 |
dalek |
rakudo/nom: A channel can be finished or failed. |
02:01 |
dalek |
rakudo/nom: |
02:01 |
dalek |
rakudo/nom: While some may be "forever", this provides for channels that come to |
02:01 |
dalek |
rakudo/nom: some kind of conclusion, either a happy ending or a sad ending. |
02:01 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fe22c91cb7 |
02:04 |
|
xinming joined #perl6 |
02:09 |
|
mikemol joined #perl6 |
02:11 |
diakopter |
jnthn: wat. you're still awake!?!?! |
02:12 |
jnthn |
apparently |
02:12 |
jnthn |
I need to leave home around 3:30am or 4am or so for my flight tomorrow. |
02:12 |
JimmyZ |
miracle |
02:12 |
jnthn |
So staying up late tonight, sleeping late, then will skip sleep tomorrow night :) |
02:14 |
jnthn |
.oO( Is it bad that I'm working on the concurrency stuff at 4am while drinking Trappistes Rochefort? ) |
02:15 |
JimmyZ |
not bad, I never heard Trappistes Rochefort |
02:16 |
jnthn |
It's a Belgian beer. |
02:16 |
jnthn |
11.3% |
02:16 |
jnthn |
Very tasty |
02:16 |
jnthn |
And to be sipped. Slowly. :) |
02:19 |
JimmyZ |
jnthn: I guess you Drunk Tsingtao beer? |
02:20 |
jnthn |
JimmyZ: Sure. :) |
02:20 |
jnthn |
Normally at a Chinese restaurant... :) |
02:21 |
JimmyZ |
hehe |
02:33 |
lizmat |
good *, #perl6! |
02:34 |
diakopter |
lizmat: HOWDY FROM LEFT COAST |
02:34 |
dalek |
rakudo/nom: 2966c57 | (Elizabeth Mattijsen)++ | src/core/Variable.pm: |
02:34 |
dalek |
rakudo/nom: Simplify is default internals |
02:34 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2966c5765f |
02:34 |
jnthn |
o/ lizmat :) |
02:35 |
dalek |
roast: fba6e2e | (Elizabeth Mattijsen)++ | S02-names/is_default.t: |
02:35 |
dalek |
roast: Less and more fudging |
02:35 |
dalek |
roast: review: https://github.com/perl6/roast/commit/fba6e2e321 |
02:35 |
lizmat |
jnthn, diakopter o/ |
02:35 |
lizmat |
less than an hour before we need to leave |
02:35 |
lizmat |
breakfast& |
02:38 |
* jnthn |
writes his first channel combinator in Perl 6 |
02:41 |
|
araujo joined #perl6 |
02:56 |
jnthn |
'night, #perl6 |
02:58 |
slavik |
dang |
02:59 |
slavik |
is it possible to deref a CPointer to a CStruct class? |
02:59 |
slavik |
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) |
03:00 |
diakopter |
well, it wouldn't be any more unsafe than all the other things you can do with those |
03:03 |
|
stevan_ joined #perl6 |
03:04 |
|
gabriel joined #perl6 |
03:04 |
slavik |
cool |
03:06 |
|
BinGOs joined #perl6 |
03:11 |
|
wtw_ joined #perl6 |
03:13 |
lizmat |
commuting& |
03:16 |
slavik |
what license does rakudo have? |
03:17 |
JimmyZ |
see readme |
03:18 |
|
FROGGS_ joined #perl6 |
03:18 |
slavik |
found it, ty |
03:37 |
|
preflex joined #perl6 |
04:17 |
|
japhb_ joined #perl6 |
04:28 |
|
araujo joined #perl6 |
04:28 |
|
araujo joined #perl6 |
04:34 |
|
crab2313 joined #perl6 |
04:40 |
|
FROGGS_ joined #perl6 |
04:52 |
|
birdwindupbird joined #perl6 |
05:09 |
|
hypolin joined #perl6 |
05:12 |
|
FROGGS joined #perl6 |
05:17 |
|
ilogger2 joined #perl6 |
05:33 |
|
xinming joined #perl6 |
05:41 |
|
fridim_ joined #perl6 |
06:00 |
|
grondilu joined #perl6 |
06:04 |
|
jaldhar joined #perl6 |
06:07 |
|
jaldhar joined #perl6 |
06:09 |
|
thou joined #perl6 |
06:11 |
|
FROGGS joined #perl6 |
06:32 |
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:�------> [32mtry { say 1 + "pi"[33m�[31m; CATCH { die "can not recognize pi" } }[0m��» |
06:32 |
camelia |
..rakudo 2966c5: OUTPUT«can not recognize pi in block at /tmp/qpjCP69pY0:1 in block at /tmp/qpjCP69pY0:1» |
06:36 |
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:�------> [32mtry { say 1 + "pi"[33m�[31m; CATCH { default { die "can not recogni[0m��» |
06:36 |
camelia |
..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 #perl6 |
06:52 |
|
domidumont joined #perl6 |
07:08 |
|
domidumont joined #perl6 |
07:20 |
|
benabik joined #perl6 |
07:21 |
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. |
07:25 |
Mouq |
.ety yoleaux |
07:25 |
yoleaux |
Sorry, I couldn't find the etymology of that. |
07:25 |
diakopter |
hi |
07:25 |
yoleaux |
07:21Z <Mouq> diakopter: Oop, I didn't see that you had offered to and did add me. Thank you! |
07:26 |
Mouq |
.tz |
07:26 |
yoleaux |
Mouq: I don't currently have a timezone preference set for you. |
07:26 |
diakopter |
the etymology is from "yolo" (you only live once) |
07:27 |
Mouq |
Haha, that's great |
07:27 |
|
sqirrel joined #perl6 |
07:43 |
|
dmol joined #perl6 |
07:49 |
masak |
mornin', #perl6 |
07:50 |
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. |
07:51 |
moritz |
diakopter: are you coming to YAPC::EU? |
07:51 |
diakopter |
yeah |
07:51 |
diakopter |
are you? |
07:51 |
* moritz |
nods |
07:51 |
* diakopter |
dances a jiggle |
07:53 |
masak |
grondilu, FROGGS: you're trying to catch a compiler error at runtime. that won't work. :) |
07:53 |
* masak |
dances a jiggle too |
07:54 |
grondilu |
masak: well, it did display my custom error message, didn't it? |
07:54 |
grondilu |
r: try { say 1 + "pi"; CATCH { die "can not recognize pi" } } |
07:54 |
camelia |
rakudo 2966c5: OUTPUT«can not recognize pi in block at /tmp/b1KbGiwViA:1 in block at /tmp/b1KbGiwViA:1» |
07:54 |
diakopter |
t\nqp\01-literals.t ................... Failed 904/913 subtests |
07:54 |
diakopter |
t\nqp\02-if.t ......................... Failed 607/613 subtests |
07:54 |
diakopter |
t\nqp\03-if-else.t .................... Failed 1399/1413 subtests |
07:54 |
diakopter |
t\nqp\04-unless.t ..................... Failed 607/613 subtests |
07:54 |
diakopter |
t\nqp\05-comments.t ................... Failed 805/813 subtests |
07:55 |
diakopter |
AWESOME. KICKASS. |
07:55 |
diakopter |
something tells me there's a bug. |
07:55 |
arnsholt |
ORLY? =D |
07:56 |
diakopter |
well when you leave debug printfs in the interp.c.... |
07:57 |
arnsholt |
Oh, that'll do weird things, yeah ^_^ |
07:57 |
diakopter |
t\nqp\01-literals.t ................... ok |
07:57 |
diakopter |
t\nqp\02-if.t ......................... ok |
07:57 |
diakopter |
t\nqp\03-if-else.t .................... ok |
07:57 |
diakopter |
t\nqp\04-unless.t ..................... ok |
07:57 |
diakopter |
t\nqp\05-comments.t ................... ok |
07:57 |
diakopter |
t\nqp\06-args-pos.t ................... ok |
07:57 |
diakopter |
better. |
07:57 |
diakopter |
that's PROGRESS. FAST. |
07:58 |
JimmyZ |
nice |
07:58 |
diakopter |
;) |
08:00 |
diakopter |
here goes nothing... building a NQP.moarvm |
08:00 |
diakopter |
(cross-compiling) |
08:02 |
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. |
08:02 |
moritz |
somebody[tm] should blog about moarvm progress |
08:02 |
* grondilu |
agrees |
08:02 |
diakopter |
.oO( somebody who has a blog... ) |
08:03 |
diakopter |
.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 |
08:03 |
moritz |
s/entry/blog post/ |
08:04 |
diakopter |
ok, you'll have it by Sunday morning |
08:04 |
moritz |
\o/ |
08:04 |
moritz |
diakopter: you can hand it to me in person on Sunday :-) |
08:05 |
diakopter |
"Here's the first bit; here's the second bit.." |
08:05 |
moritz |
it's a... *drumroll*... 1! |
08:06 |
diakopter |
close |
08:07 |
masak |
wait wait, I got this. just give me one more guess. |
08:07 |
diakopter |
dunno if it's worth it |
08:07 |
diakopter |
so many people have failed... |
08:07 |
diakopter |
self.panic('Unsupported use of ' ~ ~$old ~ ';' |
08:07 |
diakopter |
~ ~$when ~ ' please use ' ~ ~$new); |
08:07 |
diakopter |
what's with the double ~ |
08:07 |
moritz |
ac |
08:08 |
benabik |
stringily and then concatinate? |
08:08 |
benabik |
ow, my spelling. |
08:08 |
moritz |
diakopter: first '$when' is stringified |
08:08 |
moritz |
diakopter: then it's concatenated |
08:08 |
FROGGS |
masak: it does work... I was just curious why the default-block triggers printing the backtrace |
08:08 |
diakopter |
nqp ~ doesn't stringify? |
08:08 |
moritz |
diakopter: I'm not sure if ~ has coercing multis in nqp |
08:08 |
moritz |
nqp: say('foo' ~ 42) |
08:08 |
camelia |
nqp: OUTPUT«foo42» |
08:09 |
diakopter |
that may be an archaism |
08:09 |
moritz |
it might |
08:09 |
diakopter |
er, what do you call those around here |
08:09 |
moritz |
or there might be an infix:<~> multi for native str |
08:09 |
moritz |
and stringifying $when prevents the boxing of the string literals |
08:09 |
diakopter |
I don't think NQP uses operator multis..? |
08:10 |
moritz |
you'd have to look at the generated code to find out |
08:19 |
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:20 |
diakopter |
those things are too short-lived |
08:22 |
FROGGS |
well, @a >>+<< @b is short lived too, but if can do a gazillion in parallel, it would be faster |
08:22 |
FROGGS |
are there some cases where this helps? somewhere? |
08:23 |
FROGGS |
maybe if you have large lookup tables or so, then you could partition it and spawn threads |
08:24 |
FROGGS |
I just dont know the internals well enough to guess where this might be the case |
08:43 |
grondilu |
rn: say my Int @ = rand xx 3 |
08:43 |
camelia |
niecza v24-88-g1f87209: OUTPUT«0.63349779119412308 0.56023166773851574 0.50795736839434014» |
08:43 |
camelia |
..rakudo 2966c5: OUTPUT«0.137404966724233 0.670122138728527 0.694341523429962» |
08:43 |
* grondilu |
is not sure he understands what my Foo @var mean exactly :/ |
08:44 |
|
dmol joined #perl6 |
08:44 |
grondilu |
I mean, if I write "my Int @a", does that mean that @a is supposed to be an Array of integers? |
08:45 |
arnsholt |
Yes |
08:45 |
grondilu |
r: say my Int @a = <foo bar> |
08:45 |
camelia |
rakudo 2966c5: OUTPUT«foo bar» |
08:45 |
grondilu |
^then why is this ok? |
08:45 |
arnsholt |
Good question =) |
08:46 |
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:�------> [32msay my Int [33m�[31m a = <foo bar>[0m��foo bar�» |
08:46 |
arnsholt |
r: my Int @a; @a[0] = "foo"; say @a[0]; |
08:46 |
camelia |
rakudo 2966c5: OUTPUT«Type check failed in assignment to '$v'; expected 'Int' but got 'Str' in block at /tmp/mI0LV1al9a:1» |
08:46 |
arnsholt |
Looks like it's a rakudobug |
08:46 |
FROGGS |
not all cases are yet handled right |
08:47 |
grondilu |
ok |
08:47 |
masak |
it's a rakudobug. |
08:47 |
masak |
(a well-known one) |
09:05 |
mathw |
o/ |
09:06 |
FROGGS |
o/ |
09:08 |
masak |
o/ |
09:14 |
moritz |
not only well-known, but also submitted :-) |
09:16 |
grondilu |
rn: my Int $x where * %% 2; say $x = 5 |
09:16 |
camelia |
niecza v24-88-g1f87209: OUTPUT«[31m===[0mSORRY![31m===[0m��Postconstraints, and shapes on variable declarators NYI at /tmp/wrfDkbWm9S line 1:�------> [32mmy Int $x where * %% 2[33m�[31m; say $x = 5[0m��Unhandled exception: Check failed�� at /home/p6eval/niecza/boot/lib/CORE.set… |
09:16 |
camelia |
..rakudo 2966c5: OUTPUT«5» |
09:18 |
moritz |
slavik: you can emulate dereferencable pointers with one-element arrays |
09:21 |
|
rindolf joined #perl6 |
09:33 |
|
berekuk joined #perl6 |
09:35 |
|
daxim joined #perl6 |
09:39 |
grondilu |
ls |
09:40 |
grondilu |
^ignore that |
10:01 |
|
dmol joined #perl6 |
10:13 |
jnthn |
afternoon, #perl6 |
10:16 |
|
Rotwang joined #perl6 |
10:26 |
moritz |
\o jnthn |
10:35 |
masak |
greetings, jnthn. |
10:37 |
jnthn |
o/ masak |
10:37 |
jnthn |
Forecast for today: slide writing, with bits of hacking :) |
10:40 |
masak |
ain't that the truth. |
10:40 |
diakopter |
jnthn: awakeness. |
10:40 |
jnthn |
diakopter: a...wha? :P |
10:41 |
diakopter |
awakified? |
10:41 |
jnthn |
not enough coffee yet |
10:41 |
diakopter |
awakestry? |
10:42 |
|
domidumont joined #perl6 |
10:45 |
FROGGS |
hi jnthn |
10:52 |
FROGGS |
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 |
FROGGS |
No such method 'ohh' for invocant of type 'Int' |
10:53 |
FROGGS |
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 |
FROGGS |
0 |
10:53 |
FROGGS |
jnthn: how can it be an Int and not be an Int at the same time? |
10:54 |
jnthn |
FROGGS: You probably cross a marshalling point somewhere |
10:54 |
jnthn |
FROGGS: See nqp::hllize op |
10:54 |
FROGGS |
do I have to hllize the thing I'm pushing to the qrpa? |
10:55 |
FROGGS |
that would the result of nqp_bigint_add then |
10:56 |
jnthn |
Why isn't nqp_bigint_add already being given the Int type object so it can produce a Perl 6 Int? |
10:57 |
FROGGS |
jnthn: I do that |
10:57 |
FROGGS |
that is why the last argument to hyper_MT is Int |
10:58 |
FROGGS |
I basically call nqp_get_sc_object on it, and pass it then to nqp_bigint_add as last arg |
11:04 |
FROGGS |
jnthn: https://gist.github.com/FROGGS/2f7a18016440db081f99 |
11:04 |
FROGGS |
maybe that is better than my bad explanation |
11:04 |
jnthn |
huh? nqp_get_sc_object? |
11:05 |
FROGGS |
I got that from inspecting pir code that does similar things |
11:06 |
FROGGS |
that is, I grepped for nqp_bigint_add and mimik'd the steps |
11:09 |
jnthn |
yes, but if you're writing code being passed an Int already... |
11:09 |
jnthn |
The code you copied is looking up Int from an SC |
11:10 |
* FROGGS |
compiles |
11:12 |
dalek |
rakudo/nom: a8d3ca0 | jnthn++ | src/vm/jvm/core/Threading.pm: |
11:12 |
dalek |
rakudo/nom: Ensure borken promise stores an Exception. |
11:12 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a8d3ca0e6c |
11:12 |
dalek |
rakudo/nom: bdd4ae1 | jnthn++ | src/vm/jvm/core/Threading.pm: |
11:12 |
dalek |
rakudo/nom: Naming consistency. |
11:12 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bdd4ae12cc |
11:12 |
dalek |
rakudo/nom: a3503f9 | jnthn++ | src/vm/jvm/core/Threading.pm: |
11:12 |
dalek |
rakudo/nom: Exceptions should inherit from Exception. |
11:12 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a3503f9bad |
11:12 |
dalek |
rakudo/nom: 5965345 | jnthn++ | src/vm/jvm/core/Threading.pm: |
11:12 |
dalek |
rakudo/nom: Decontainerize in Channel.send. |
11:13 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/59653455b0 |
11:16 |
* FROGGS |
compiles again |
11:18 |
FROGGS |
jnthn: do you have an opinion what would be a candidate for doings things in parallel in nqp's and rakudo's core? |
11:28 |
|
berekuk joined #perl6 |
11:55 |
|
PacoLinux joined #perl6 |
11:57 |
|
rindolf joined #perl6 |
12:05 |
dalek |
Perlito: 5058d24 | (Flavio S. Glock)++ | / (5 files): |
12:05 |
dalek |
Perlito: Perlito5 - grammar - save __DATA__ sections |
12:05 |
dalek |
Perlito: review: https://github.com/fglock/Perlito/commit/5058d24b79 |
12:10 |
|
berekuk joined #perl6 |
12:16 |
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 |
FROGGS |
but istype still says it isnt an Int and calling an unknown method tells it is an Int |
12:17 |
moritz |
forgot a decont somewhere? |
12:18 |
FROGGS |
I got you right that I dont need to hllize it when passing Int properly? |
12:18 |
FROGGS |
moritz: where do I have to do that? |
12:18 |
FROGGS |
right before calling nqp_bigint_add? or afterwards? |
12:21 |
|
nige joined #perl6 |
12:21 |
nige |
Hi |
12:21 |
diakopter |
hi |
12:22 |
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 |
12:22 |
diakopter |
*facepalm* |
12:22 |
FROGGS |
-.- |
12:23 |
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 |
12:23 |
FROGGS |
so I dont know at what point something went wrong |
12:24 |
moritz |
FROGGS: doesn't -ll-exception give you a PIR line number? |
12:24 |
FROGGS |
moritz: it doesnt explode |
12:25 |
FROGGS |
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? |
12:25 |
FROGGS |
sure |
12:27 |
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? |
12:28 |
FROGGS |
moritz: https://gist.github.com/FROGGS/2f7a18016440db081f99 |
12:28 |
FROGGS |
moritz: yeah, I thought so too # laptop |
12:28 |
moritz |
tadzik: aye |
12:28 |
diakopter |
FROGGS: I was facepalming at the interloper |
12:29 |
FROGGS |
diakopter: yeah, IT WAS A TRAP! :P |
12:32 |
|
lizmat joined #perl6 |
12:32 |
moritz |
FROGGS: I'm confused by your code. You create a Perl 6-level array in there... |
12:32 |
lizmat |
arrived at the DNIPRO |
12:32 |
FROGGS |
both calls to perl6_box_int at line 46/47 might be wrong... |
12:32 |
moritz |
FROGGS: and then you write my Mu $rpa := nqp::hyper_MT |
12:33 |
FROGGS |
moritz: because it is somehow a QRPA, dunno how to get the perl6 Array :/ |
12:33 |
FROGGS |
moritz: as far as I understand line 8 creates a QRPA, which parrot can handle |
12:34 |
FROGGS |
I can try and rip out the call to FLATTENABLE_LIST... |
12:34 |
moritz |
FROGGS: what does line 68 do? |
12:35 |
FROGGS |
it pushes the $arr_a."FLATTENABLE_LIST"() call to the ops |
12:35 |
FROGGS |
otherwise it would never call that method |
12:38 |
FROGGS |
moritz: I could paste the generated pir code if that helps |
12:39 |
moritz |
FROGGS: maybe |
12:39 |
moritz |
FROGGS: I feel like the proverbial blind leading the deaf |
12:39 |
FROGGS |
*g* |
12:39 |
FROGGS |
takes a bit, recompiling atm... |
12:47 |
FROGGS |
moritz: https://gist.github.com/FROGGS/2f7a18016440db081f99 |
12:48 |
FROGGS |
https://gist.github.com/FROGGS/2f7a18016440db081f99#file-hyper_mt-pir-L76 that is line 68 |
12:49 |
|
PacoLinux joined #perl6 |
12:51 |
|
lizmat joined #perl6 |
12:55 |
moritz |
FROGGS: it looks fine to me from the perspective if checking the types of the arguments to the bigint_add op |
12:55 |
moritz |
as for the rest, I have no idea about tasks etc. |
12:56 |
|
berekuk joined #perl6 |
12:56 |
lizmat |
jnthn: on the way here, I was thinking we're doing the whole approach to default values wrong |
12:57 |
lizmat |
I mean, we only have default values for boxed values, right> |
12:57 |
|
woolfy joined #perl6 |
12:57 |
lizmat |
? |
12:58 |
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 |
12:58 |
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 |
12:59 |
lizmat |
and if undefined, then it is checked if it has a default value, and that is then returned instead |
12:59 |
lizmat |
this would allow .defined to be false on sparse arrays / hashes, but still return the default value if used as a RHS |
12:59 |
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 |
13:00 |
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 |
13:00 |
lizmat |
jnthn: so "my %h is default(42); say %h<foo>.defined; say %h<foo>; # would say True, 42 |
13:00 |
lizmat |
False, 42 |
13:01 |
lizmat |
so it would *not* be defined, and not exist, yet return 42 |
13:01 |
jnthn |
lizmat: Isn't %h<foo>.defined using it as an r-value? |
13:02 |
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 |
13:03 |
moritz |
r: say nqp::add_I(3, 42, Int).perl |
13:03 |
camelia |
rakudo 596534: OUTPUT«45» |
13:03 |
moritz |
r: say nqp::add_I(3, 42, Int).WHAT |
13:03 |
camelia |
rakudo 596534: OUTPUT«(Int)» |
13:03 |
lizmat |
jnthn: hmmm… good point, I guess I was thinking of exists |
13:03 |
FROGGS |
moritz: then why nqp::istype(nqp::shift($rpa), Int) ir zero? |
13:03 |
moritz |
FROGGS: how many elements does $rpa have? |
13:04 |
* FROGGS |
looks at the pir of `say nqp::add_I(3, 42, Int).WHAT` |
13:04 |
FROGGS |
moritz: 1000 |
13:05 |
|
bearman joined #perl6 |
13:05 |
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:06 |
FROGGS |
I had that in my code before too, but it behaved the same |
13:06 |
jnthn |
Note that those are the result of a QAST::WVal being compiled |
13:07 |
|
konundra joined #perl6 |
13:09 |
moritz |
so, when is everybody traveling to Kiev? |
13:10 |
|
PacoLinux joined #perl6 |
13:12 |
tadzik |
tomorrow morning |
13:12 |
tadzik |
I mean, I am. Not everybody :) |
13:12 |
lizmat |
some of everybody alreafy arrived |
13:12 |
jnthn |
6am |
13:13 |
tadzik |
I'm at 13:45 on RPB, or RBP, or something like this |
13:13 |
FROGGS |
I'll be on my couch :o( |
13:14 |
FROGGS |
jnthn: the $op[3] (Int in Perl 6 code) is a QAST::WVal, so should I compile it the way I did before? |
13:15 |
* moritz |
will leave tomorrow morning, and arrive at KBP at 20:20H |
13:16 |
tadzik |
KBP, that's it :) |
13:17 |
* masak |
is leaving early tomorrow morning; arriving at 12:40. |
13:18 |
moritz |
it was quite difficult to find flights with less than 5h stops |
13:19 |
lizmat |
moritz: how are you flying then? |
13:20 |
jnthn |
FROGGS: Well, you just call .as_post or so on it, or something like that, I guess |
13:21 |
FROGGS |
jnthn: that is what I do atm: my $obj := $qastcomp.coerce($qastcomp.as_post( $op[3] ), 'P'); |
13:22 |
jnthn |
FROGGS: looks right |
13:22 |
|
berekuk joined #perl6 |
13:22 |
FROGGS |
k, thanks |
13:24 |
jnthn |
Does anybody have the link to testneeded tickets in RT handy? |
13:24 |
jnthn |
ah http://rakudo.org/rt/testneeded |
13:25 |
|
ajr joined #perl6 |
13:28 |
moritz |
also http://rakudo.de/testneeded |
13:30 |
jnthn |
I've started a page here: http://act.yapc.eu/ye2013/wiki?node=Perl6Hackathon |
13:30 |
jnthn |
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. |
13:30 |
masak |
damn you, pmichaud. now I keep doing .subst instead of .trans in my Perl 6 code. :P |
13:30 |
jnthn |
Please contribute. |
13:31 |
masak |
jnthn++ |
13:33 |
FROGGS |
moritz / jnthn: the things in the QRPA are somehow not 6model objs |
13:40 |
* moritz |
adds the most wanted repo to the wiki page |
13:47 |
jnthn |
moritz: Is perl6doc relatively easy to contribute to? |
13:48 |
moritz |
jnthn: aye (as long as you don't want to rebuild the HTML :-) |
13:48 |
|
colomon joined #perl6 |
13:49 |
jnthn |
moritz: Maybe add some suggestions about that to the hackathon page... |
13:55 |
* moritz |
does, though the suggestions remain vague :/ |
13:57 |
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 |
FROGGS |
1001 |
13:57 |
FROGGS |
done |
13:57 |
FROGGS |
at least that works |
13:57 |
FROGGS |
now only the values in the array are problematic |
13:59 |
|
skids joined #perl6 |
13:59 |
colomon |
hyper_MT? # colomon has been out of it too long... |
14:00 |
FROGGS |
colomon: a local test |
14:00 |
FROGGS |
I'm playing with parrot's threads |
14:00 |
colomon |
FROGGS++ |
14:01 |
JimmyZ |
you may want thread pool |
14:01 |
FROGGS |
JimmyZ: what do you mean? |
14:02 |
FROGGS |
I am creating a task for every value, and parrot only runs NUM_CORES -1 extra threads at a time |
14:03 |
FROGGS |
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 |
FROGGS |
I dont wanna make it more complex right now :o) |
14:04 |
JimmyZ |
no , I mean a pool, to reuse created threads |
14:04 |
|
rindolf joined #perl6 |
14:05 |
moritz |
well, first make it run, then make it fast, no? |
14:05 |
JimmyZ |
yeah |
14:05 |
FROGGS |
JimmyZ: wasnt that what I meant by just creating like NUM_CORES-1 threads? |
14:06 |
JimmyZ |
FROGGS: no |
14:06 |
JimmyZ |
you mean max threads |
14:06 |
FROGGS |
right |
14:07 |
FROGGS |
and you? |
14:07 |
JimmyZ |
I mean it needs a pool, like apr's memory pool |
14:07 |
FROGGS |
can you explain that without repeasting the word 'pool'? |
14:07 |
FROGGS |
-s |
14:09 |
JimmyZ |
FROGGS: https://github.com/rakudo/rakudo/blob/nom/src/vm/jvm/core/Threading.pm#L304 |
14:10 |
jnthn |
.oO( If in doubt, link to the word instead :P ) |
14:11 |
FROGGS |
why should I do that? I think parrot cares about thread scheduling... |
14:11 |
[Coke] |
jnthn: https://en.wikipedia.org/wiki/The_Word |
14:12 |
JimmyZ |
hmm, I don't know about parrot thread |
14:12 |
FROGGS |
and I nothing about pools :P |
14:14 |
FROGGS |
JimmyZ: when thinking about it: I dont meant maximum running threads, not maximal total thread count of the program's life |
14:15 |
|
berekuk joined #perl6 |
14:17 |
jnthn |
[Coke]: *groan* |
14:18 |
|
sqirrel joined #perl6 |
14:18 |
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? |
14:19 |
timotimo |
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? |
14:20 |
moritz |
timotimo: no, it will just be retrieved from the SC that many times |
14:20 |
jnthn |
Right, it's resolved at compile time |
14:21 |
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 |
14:21 |
jnthn |
So provided the JIT is being smart it should work out just like a static object reference. |
14:21 |
timotimo |
yes. except on parrot ;) |
14:25 |
* [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 |
14:26 |
FROGGS |
tadzik: reimplementing Python? |
14:26 |
tadzik |
yeah |
14:26 |
tadzik |
Not Quite Perl6 related, I know |
14:26 |
tadzik |
(pun intended) |
14:26 |
FROGGS |
*g* |
14:27 |
FROGGS |
I'm just a bit concerned about the amount of work |
14:27 |
tadzik |
yeah, it's a Big Project |
14:27 |
tadzik |
but maybe writing a nice syntactic sugar for JVM interop? |
14:28 |
* jnthn |
needs to get that branch merged :) |
14:28 |
jnthn |
(the one that starts doing that) |
14:28 |
tadzik |
ah :) |
14:28 |
jnthn |
tadzik: https://gist.github.com/jnthn/6e5b82c4b70fd6592841 # latest |
14:29 |
jnthn |
It needs an magical multi-dispatcher-y thingy that resolves to the correct Java overload. |
14:29 |
* diakopter |
welcomes our new Java overloads |
14:29 |
jnthn |
On the one hand it's quite an isolated task. On the other hand, it's probably terrifying :) |
14:30 |
tadzik |
:) |
14:30 |
* FROGGS |
.oO( everything should dispatch directly to jnthn, the Java overlord ) |
14:30 |
jnthn |
:P |
14:30 |
jnthn |
phew, one of my three talks now has reached "I can deliver this" level :) |
14:30 |
tadzik |
hehe |
14:31 |
tadzik |
jnthn+=0.3 ;) |
14:32 |
jnthn |
Thankfully, that's the Monday one :) |
14:32 |
FROGGS |
that was just luck :P |
14:32 |
nwc10 |
tadzik: as a starter, can you write a rpython implementation for NQP? |
14:32 |
|
fridim_ joined #perl6 |
14:32 |
tadzik |
nwc10: I assume rpython is to python what nqp is to perl6? |
14:32 |
nwc10 |
ie, just run the subset of Python that PyPy is implemented in, and bootstrap from there |
14:33 |
diakopter |
nwc10: :) |
14:33 |
nwc10 |
yes, this is my understanding |
14:33 |
tadzik |
possibly |
14:33 |
timotimo |
rpython also includes a VM and jit generator |
14:33 |
nwc10 |
you don't need the JIT generator (yet) |
14:33 |
timotimo |
well, not quite. i believe the vm is implemented in rpython itself as part of the pypy-python-interpreter project |
14:33 |
timotimo |
you don't need it unless you want to get anywhere near passable performance ;) |
14:34 |
|
pmurias joined #perl6 |
14:34 |
timotimo |
but who in this room needs passable performance anyway? |
14:34 |
dalek |
rakudo-js: e5020d2 | (Pawel Murias)++ | .gitignore: |
14:34 |
dalek |
rakudo-js: Add node_modules to .gitignore. |
14:34 |
dalek |
rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/e5020d22ad |
14:34 |
dalek |
rakudo-js: 38273b3 | (Pawel Murias)++ | run_tests: |
14:34 |
dalek |
rakudo-js: Add passing test 50 to run_tests. |
14:34 |
dalek |
rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/38273b3a50 |
14:34 |
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 |
14:34 |
nwc10 |
passable performance comes after (mostly) completeness |
14:35 |
* jnthn |
looks into getting the use-from-java branch merged |
14:36 |
|
crab2313 joined #perl6 |
14:38 |
|
Psyche^ joined #perl6 |
14:42 |
moritz |
lizmat: (missed your question earlier) via Istanbul |
14:42 |
|
bluescreen10 joined #perl6 |
14:43 |
tadzik |
curious |
14:44 |
jnthn |
Whoa, that's roundabout :) |
14:46 |
tadzik |
I have a direct flight from Warsaw |
14:50 |
|
thou joined #perl6 |
14:51 |
|
kaare_ joined #perl6 |
14:58 |
|
stevan_ joined #perl6 |
14:59 |
BabsSeed |
There was no perl chat on StackOverflow |
14:59 |
BabsSeed |
I just created it :o |
14:59 |
tadzik |
is there a chat on SO? |
14:59 |
BabsSeed |
tadzik: http://chat.stackoverflow.com/rooms/34988/perl Yes |
14:59 |
tadzik |
cool, I didn't know they had chatrooms |
15:02 |
|
rjbs joined #perl6 |
15:03 |
rjbs |
At OSCON, I talked very briefly with TimToady about Perl 5's chances of developing "pair slicing," like this: |
15:03 |
rjbs |
%h = (a => 1, b => 2, c => 3); %h{ qw( a c ) }; # evaluates to (a => 1, c => 3) |
15:03 |
rjbs |
He said that in p6 this is done with adverbs on the slice. |
15:04 |
rjbs |
I made such a hash in my (slightly dated) Rakudo and get: |
15:04 |
rjbs |
%h{'a', 'c'} :xyzzy |
15:04 |
rjbs |
no matter the string after the colon, I get 1 3 |
15:04 |
rjbs |
What am I doing wrong? |
15:05 |
PerlJam |
r: my %h = (a => 1, b => 2, c => 3); %h<a c> :p |
15:05 |
camelia |
rakudo 596534: ( no output ) |
15:05 |
jnthn |
r: my %h = a => 1, b => 2, c => 3; say %h{'a', 'c'}:p |
15:05 |
camelia |
rakudo 596534: OUTPUT«"a" => 1 "c" => 3» |
15:05 |
PerlJam |
jnthn++ not forgetting his "say" :) |
15:05 |
rjbs |
Aha, the :p works. |
15:05 |
rjbs |
Why aren't unknown adverbs problematic? |
15:05 |
rjbs |
r: my %h = a => 1, b => 2, c => 3; say %h{'a', 'c'}:pants |
15:05 |
camelia |
rakudo 596534: OUTPUT«1 3» |
15:06 |
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 |
15:06 |
camelia |
std c2215f0: OUTPUT«ok 00:00 45m» |
15:07 |
dalek |
rakudo/nom: 1d8f4d7 | jnthn++ | src/Perl6/Grammar.nqp: |
15:07 |
dalek |
rakudo/nom: Start processing use more smartly. |
15:07 |
dalek |
rakudo/nom: |
15:07 |
dalek |
rakudo/nom: This handles it through the usual longname parser, meaning we now can |
15:07 |
dalek |
rakudo/nom: pick out the name itself from any colonpairs. |
15:07 |
clkao |
w/win 24 |
15:07 |
|
dalek joined #perl6 |
15:08 |
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 |
jnthn |
The above mis-detected merge was the use-from-java branch |
15:08 |
tadzik |
FRO<TAB><TAB> |
15:08 |
tadzik |
:( |
15:09 |
rjbs |
jnthn: Okeydokey! |
15:09 |
|
PacoLinux joined #perl6 |
15:11 |
dalek |
nqp: d242880 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: |
15:11 |
dalek |
nqp: Missing decontainerize in param unboxing. |
15:11 |
dalek |
nqp: review: https://github.com/perl6/nqp/commit/d242880fe6 |
15:16 |
[Coke] |
r: {}:<> |
15:16 |
camelia |
rakudo b17b0b: OUTPUT«===SORRY!===No such method 'has_compile_time_value' for invocant of type 'NQPMu'» |
15:16 |
[Coke] |
r: %{}:<> |
15:16 |
tadzik |
haha |
15:16 |
camelia |
rakudo b17b0b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/1fwltGIPfH�Unsupported use of %{}; in Perl 6 please use %()�at /tmp/1fwltGIPfH:1�------> [32m%{}[33m�[31m:<>[0m�» |
15:17 |
jnthn |
eeks |
15:17 |
* masak |
submits rakudobug |
15:17 |
jnthn |
First one wants rakudo...yeah, that |
15:17 |
* jnthn |
is now working on getting the JVM io-refactor branch merged :) |
15:18 |
[Coke] |
... I was just making a stupid face. :) |
15:18 |
[Coke] |
... kind of looks like tom servo |
15:18 |
jnthn |
... |
15:19 |
jnthn |
Each to their own :) |
15:19 |
|
PacoLinux_ joined #perl6 |
15:19 |
[Coke] |
jnthn: |
15:19 |
[Coke] |
https://en.wikipedia.org/wiki/Tom_Servo |
15:19 |
[Coke] |
also, if you don't know who Tom Servo is, watch some MST3K when you can. ;) |
15:20 |
masak |
mst3k++! |
15:21 |
moritz |
mst3k sounds like a mixture between mst and masak |
15:21 |
moritz |
scary thought |
15:21 |
jnthn |
Or the next big re-write of mst |
15:21 |
masak |
trying not to end up in development hell like certain other rewrites. |
15:22 |
jnthn |
We'll just fix a few things... :P |
15:22 |
masak |
classical rookie mistake. |
15:22 |
masak |
r: { foo => 42 }:<> |
15:22 |
camelia |
rakudo b17b0b: OUTPUT«===SORRY!===No such method 'has_compile_time_value' for invocant of type 'NQPMu'» |
15:23 |
masak |
r: my %h = foo => 42; say %h:<> |
15:23 |
camelia |
rakudo b17b0b: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable '%h:<>' is not declared�at /tmp/Dl0CtxMIxc:1�------> [32mmy %h = foo => 42; say %h:<>[33m�[31m<EOL>[0m� expecting any of:� postfix�Other potential difficulties:� Pair with <> really means an empty list, not n… |
15:23 |
masak |
r: my %h = foo => 42; say %h :<> |
15:23 |
camelia |
rakudo b17b0b: OUTPUT«[31m===[0mSORRY![31m===[0m�You can't adverb that�at /tmp/qXe5D4t0OZ:1�------> [32mmy %h = foo => 42; say %h :<>[33m�[31m<EOL>[0m�Other potential difficulties:� Pair with <> really means an empty list, not null string; use :('') to represent the null stri… |
15:23 |
masak |
no, *you* can't adverb that! |
15:44 |
|
kbaker joined #perl6 |
15:46 |
|
PacoLinux joined #perl6 |
15:57 |
|
btyler joined #perl6 |
15:58 |
|
berekuk joined #perl6 |
16:25 |
|
rindolf joined #perl6 |
16:26 |
|
btyler_ joined #perl6 |
16:30 |
* [Coke] |
yawns. |
16:30 |
|
domidumont joined #perl6 |
16:41 |
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:�------> [32m{}:<>[33m�[31m<EOL>[0m�ok 00:00 43m�»… |
16:41 |
|
grondilu joined #perl6 |
16:44 |
|
FROGGS[mobile] joined #perl6 |
16:44 |
* moritz |
tries a fix for [perl #119215] |
16:45 |
FROGGS[mobile] |
tadzik: sup? |
16:46 |
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 |
nqp: fbf9be3 | jonathan++ | / (5 files): |
16:46 |
dalek |
nqp: Start stubbing in new IO bits. |
16:46 |
dalek |
nqp: review: https://github.com/perl6/nqp/commit/fbf9be3b96 |
16:46 |
dalek |
nqp: 57188a8 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files): |
16:46 |
dalek |
nqp: Fill out a little more of file I/O. |
16:46 |
tadzik |
and clear the way for you to make v5 a module |
16:46 |
|
dalek joined #perl6 |
16:46 |
|
berekuk joined #perl6 |
16:47 |
FROGGS[mobile] |
tadzik: true, I want to adapt them this weekend |
16:47 |
tadzik |
kewl |
16:48 |
FROGGS[mobile] |
but I guess I need to unbreak v5 first... |
16:48 |
FROGGS[mobile] |
(that is the problem with nqp/rakudo refactors) |
16:49 |
jnthn |
If you poke into the guts, the refactors may poke you :) |
16:49 |
FROGGS[mobile] |
troo |
16:49 |
jnthn |
Probably we should find nice ways to expose APIs though. |
16:49 |
jnthn |
for things where you're poking |
16:49 |
|
PacoLinux joined #perl6 |
16:50 |
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 |
16:51 |
FROGGS[mobile] |
jnthn: it is techically the same I had |
16:54 |
masak |
hm, I wonder how we'd do itertools.starmap in Perl 6... |
16:54 |
masak |
http://docs.python.org/dev/library/itertools.html#itertools.starmap |
16:55 |
|
FROGGS joined #perl6 |
16:55 |
tadzik |
do they have starfleet to? |
16:55 |
FROGGS |
ahhh, that's better |
16:57 |
FROGGS |
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 |$_ }) |
16:58 |
FROGGS |
jnthn: so the user gets Perl5::Terms too, and this is an evil hack atm |
16:58 |
|
dmol joined #perl6 |
16:58 |
moritz |
masak: (if I understood the docs correctly) |
16:59 |
FROGGS |
jnthn: it would be awesome if you would suggest a nice refactoring for that: https://github.com/rakudo-p5/v5/blob/master/rakudo.patch#L102 |
16:59 |
FROGGS |
or maybe I should propose some way to really make slangs pluggable |
17:01 |
dalek |
rakudo/nom: 525c5d0 | jnthn++ | src/vm/jvm/core/Threading.pm: |
17:01 |
dalek |
rakudo/nom: Add a first cut at a KeyReducer class. |
17:01 |
dalek |
rakudo/nom: |
17:01 |
dalek |
rakudo/nom: If Promise is for synchronizing over scalar values ($) and Channel is |
17:01 |
dalek |
rakudo/nom: for synchronizing over ordered values (@), this is for synchronizing |
17:01 |
dalek |
rakudo/nom: over keyed values (%). |
17:01 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/525c5d0bf9 |
17:01 |
jnthn |
FROGGS: I don't have a suggestion right off. |
17:02 |
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:07 |
|
sqirrel joined #perl6 |
17:11 |
|
crab2313 joined #perl6 |
17:11 |
moritz |
are there any (not too obscure) languages that use closures and manual memory management? |
17:11 |
moritz |
s/use/provide/ |
17:14 |
|
spider-mario joined #perl6 |
17:15 |
|
berekuk joined #perl6 |
17:21 |
masak |
moritz: that seems an odd combination. |
17:22 |
tadzik |
I think I read it in some of masak's documents, that a language with closures must have a GC |
17:24 |
masak |
well, "must", as in, you'll make life pretty difficult for yourself in you want to track when a scope. |
17:25 |
tadzik |
I think you accidentally a verb :) |
17:25 |
jnthn |
...missing verb? :) |
17:25 |
masak |
...expires :) |
17:25 |
masak |
rn: sub echo($shout) { return -> { say $shout } }; my $delayed-shout = echo("Helloooo-o-o-o!"); say "waaaait for it..."; $delayed-shout() |
17:25 |
camelia |
rakudo 525c5d, niecza v24-88-g1f87209: OUTPUT«waaaait for it...Helloooo-o-o-o!» |
17:26 |
masak |
at which point can you GC $shout? well, when the *outer* block is done with $delayed-shout. |
17:26 |
masak |
manual GC would mean doing that... manually, somehow. |
17:27 |
jnthn |
In a sense, though, a closure is just an object. |
17:27 |
jnthn |
The latest C++ has closures |
17:27 |
jnthn |
Maybe look at how it does the memory management. |
17:27 |
moritz |
that's an interesting point |
17:27 |
* jnthn |
talked a bit about them with the $dayjob C++ guy |
17:29 |
grondilu |
Is there someone working on a LLVM backend if this makes any sense and would it be a good idea? |
17:30 |
moritz |
grondilu: I'm not aware of anybody working on it |
17:30 |
moritz |
grondilu: that said, LLVM is *low-level*, more low-level than the other VMs we build on |
17:31 |
moritz |
maybe moarvm could use LLVMs JIT compiler? |
17:31 |
tadzik |
people keep asking about LLVM :) |
17:31 |
* moritz |
has no idea what the moarvm JIT plans are |
17:35 |
|
prammer joined #perl6 |
17:39 |
perigrin |
moritz: moarJIT obviously. |
17:42 |
moritz |
lessTime would be fine too :-) |
17:43 |
[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:45 |
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 #perl6 |
17:49 |
|
konundra joined #perl6 |
17:53 |
masak |
or the Significant Whitespace sign. |
17:54 |
masak |
or the Junctions Are Not Sets sign. |
17:55 |
jnthn |
see all(@the_signs) |
17:59 |
|
btyler joined #perl6 |
18:02 |
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:08 |
* masak |
has a feeling whoever wrote those lines shouldn't get into semiotics |
18:12 |
|
raiph joined #perl6 |
18:16 |
geekosaur |
1960s. if you mentioned semiotics to them they'd probably want to smoke it |
18:18 |
|
ajr joined #perl6 |
18:18 |
|
berekuk joined #perl6 |
18:22 |
masak |
I imagine some appropriate mixture of semiotics and category theory would work quite well for smoking. |
18:36 |
|
bluescreen10 joined #perl6 |
18:37 |
|
bluescreen10 joined #perl6 |
18:38 |
|
bluescreen10 joined #perl6 |
18:45 |
benabik |
.oO( co-smoking? ) |
18:49 |
geekosaur |
or coking |
18:50 |
ajr_ |
Q. What do you get if you cross a Mafia boss and a semiotician? |
18:50 |
ajr_ |
A. An offer you can't understand. |
18:53 |
|
pnu_ joined #perl6 |
18:54 |
|
zwut00 joined #perl6 |
18:56 |
|
zwut00 joined #perl6 |
18:57 |
|
zwut00 joined #perl6 |
19:08 |
[Coke] |
big regression on rakudo.jvm today |
19:08 |
dalek |
perl6-roast-data: 9700d90 | coke++ | / (5 files): |
19:08 |
dalek |
perl6-roast-data: today (automated commit) |
19:08 |
dalek |
perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/9700d906ea |
19:09 |
[Coke] |
+S02-names/is_default.rakudo.jvm aborted 47 test(s) |
19:09 |
[Coke] |
+S32-str/substr.rakudo.jvm aborted 63 test(s) |
19:09 |
[Coke] |
almost down below 99%. |
19:18 |
lizmat |
shit, didn't I fudge that properly ? |
19:19 |
[Coke] |
eh, if you fudged it for rakudo, that's good for 99% of the time. |
19:20 |
[Coke] |
probably needs a fudge in each one for rakudo.jvm |
19:21 |
jnthn |
substr looks like my fault; I turned a soft fail into a hard fail, by the looks of it |
19:25 |
|
raiph joined #perl6 |
19:26 |
[Coke] |
dammit, jnthn, you had 1 job... er, 2 job... 4? er, nevermind. |
19:26 |
[Coke] |
jnthn++ |
19:31 |
lizmat |
[Coke]: I'm not sure what I need to fudge for rakudo.jvm |
19:32 |
* 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 ? |
19:33 |
* lizmat |
is hoping to be able to skip from Parakudo to Moarakudo |
19:34 |
moritz |
I can't a direct download link on http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html and http://www.oracle.com/technetwork/indexes/downloads/index.html#java only has a download link for sources of the jdk |
19:34 |
FROGGS |
moritz: that is why I hate oracle |
19:36 |
moritz |
seems I have to follow the "Java SE" links |
19:37 |
moritz |
ftw http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html seems to have it |
19:37 |
[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 |
[Coke] |
I will do so this weekend if jnthn doesn't fix it. |
19:37 |
lizmat |
then my bet is on .VAR not working, because that's the only thing I added that early in the test |
19:37 |
lizmat |
lat me fudge that just to make sure |
19:38 |
FROGGS |
moritz: yeah, found it too right now |
19:38 |
* moritz |
hates, hates, hates going to websites to install software |
19:39 |
moritz |
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 #perl6 |
19:40 |
dalek |
roast: 9b8bfed | (Elizabeth Mattijsen)++ | S02-names/is_default.t: |
19:40 |
dalek |
roast: Fix most likely reason for failing tests on jakudo |
19:40 |
dalek |
roast: review: https://github.com/perl6/roast/commit/9b8bfede47 |
19:40 |
FROGGS |
I still get oracle newsletters |
19:41 |
|
dmol joined #perl6 |
19:41 |
|
konundra joined #perl6 |
19:58 |
|
jaffa4 joined #perl6 |
19:58 |
jaffa4 |
hi |
19:58 |
jaffa4 |
I am compiling Perl6 |
19:58 |
jaffa4 |
it isa struck at a point, restrixted settings. |
20:00 |
FROGGS |
jaffa4: what? |
20:00 |
FROGGS |
jaffa4: did it fail to compile? |
20:00 |
jaffa4 |
no it is very slow |
20:00 |
jaffa4 |
as if it were in an infinite loop |
20:01 |
jaffa4 |
at a command... perl6..... restricted.settings..... |
20:02 |
FROGGS |
hmmm |
20:02 |
FROGGS |
there is a line like: ./perl6 --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting |
20:02 |
FROGGS |
but this only takes seconds |
20:02 |
FROGGS |
(on my box) |
20:03 |
moritz |
yes, should be much faster than the previous steps |
20:03 |
jaffa4 |
yes, that one |
20:03 |
jaffa4 |
at least 20 minutes has passed |
20:03 |
FROGGS |
O.o |
20:03 |
|
pmurias joined #perl6 |
20:03 |
FROGGS |
that is very weird |
20:04 |
moritz |
jaffa4: is your machine swapping? |
20:04 |
|
btyler joined #perl6 |
20:04 |
FROGGS |
jaffa4: do you have free diskspace? |
20:05 |
jaffa4 |
free diskbase yes 360gbyes |
20:05 |
jaffa4 |
memory at least 8gbytes |
20:05 |
FROGGS |
hmmm |
20:05 |
dalek |
roast: 2dfc5a7 | (Elizabeth Mattijsen)++ | S02-names/is_default.t: |
20:05 |
dalek |
roast: Add similar tests for %a is default |
20:05 |
dalek |
roast: review: https://github.com/perl6/roast/commit/2dfc5a75e7 |
20:06 |
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? |
20:06 |
* lizmat |
is pulling and building to check |
20:07 |
jaffa4 |
win 7 |
20:07 |
jaffa4 |
64bit |
20:08 |
FROGGS |
and you have activeperl installed? or strawberry? |
20:08 |
FROGGS |
(or cygwin) |
20:08 |
jaffa4 |
strawberry |
20:08 |
FROGGS |
that is a problem |
20:08 |
FROGGS |
that is not supported yet AFAIK |
20:09 |
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 |
20:10 |
FROGGS |
jaffa4: I love strawberryperl too, but there problems with some compiler defaults |
20:10 |
FROGGS |
are* |
20:10 |
|
bluescreen10 joined #perl6 |
20:10 |
moritz |
r: {}:<bla> |
20:10 |
camelia |
rakudo 525c5d: OUTPUT«===SORRY!===No such method 'has_compile_time_value' for invocant of type 'String'» |
20:10 |
FROGGS |
O.o |
20:11 |
FROGGS |
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 |
FROGGS |
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[...] |
20:11 |
FROGGS |
\o/ |
20:12 |
FROGGS |
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 |
20:13 |
FROGGS |
hmmm, well, jnthn did IO refactors, and the restricted setting disables some IO stuff... could that be it? |
20:15 |
FROGGS |
jaffa4: can you please do: git checkout 59653455b02b1c1d045442c01a010b9f4d935bc2 |
20:15 |
FROGGS |
and then: make install |
20:16 |
jaffa4 |
Is anyone going to be in KIev tomorrow? |
20:16 |
* masak |
|
20:16 |
* lizmat |
|
20:16 |
jaffa4 |
and how will you spend the time tomorroe? |
20:16 |
lizmat |
(is already there) |
20:17 |
masak |
jaffa4: fretting about connection flights...? :) |
20:17 |
jaffa4 |
What is the weather like? |
20:17 |
masak |
connecting* |
20:17 |
lizmat |
no definite plans yet, probably around dinner back at the hotel to see who'd like to join us for dinner |
20:17 |
jaffa4 |
masak: no |
20:18 |
lizmat |
30+ degrees celsius |
20:18 |
jaffa4 |
When? |
20:18 |
jaffa4 |
IN the evening? |
20:18 |
lizmat |
well, in the afternoon |
20:19 |
lizmat |
now it's more like 20 approaching midnight |
20:19 |
jaffa4 |
You mean in youir hotel? |
20:19 |
lizmat |
should be 30+ again around noon tomorrow |
20:19 |
* PerlJam |
notes that it's currently about 37°C here |
20:19 |
lizmat |
no, outside |
20:20 |
lizmat |
the room has airco :-) |
20:20 |
jaffa4 |
Is that Dnepr? |
20:20 |
lizmat |
Dnipro |
20:20 |
lizmat |
the ukranian way of naming the river |
20:21 |
jnthn |
.oO( They're pro at naming it ) |
20:25 |
lizmat |
.o( they're not against it either) |
20:26 |
lizmat |
on that bad note, it's time to try out the bed in the hotel& |
20:27 |
FROGGS |
gnight lizmat, sleep well |
20:28 |
[Coke] |
~~ |
20:32 |
jnthn |
'night lizmat |
20:37 |
jaffa4 |
FROGGS: tryinf afain |
20:38 |
FROGGS |
cool |
20:42 |
|
cognominal joined #perl6 |
20:45 |
jaffa4 |
FROGGS: same |
20:51 |
|
btyler_ joined #perl6 |
21:40 |
|
BenGoldberg joined #perl6 |
22:00 |
masak |
'night, #perl6 |
22:00 |
masak |
see some of you v Kieve tomorrow. |
22:04 |
tadzik |
w Kijowie : |
22:04 |
tadzik |
:) |
22:05 |
jnthn |
в Киеве :) |
22:27 |
|
pecastro joined #perl6 |
22:29 |
|
skids joined #perl6 |
22:35 |
|
Woodi joined #perl6 |
22:41 |
|
eternaleye joined #perl6 |
22:47 |
|
lue joined #perl6 |
22:50 |
|
colomon joined #perl6 |
22:55 |
dalek |
nqp: 134167f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java: |
22:55 |
dalek |
nqp: Stub in AsyncFileHandle. |
22:55 |
dalek |
nqp: review: https://github.com/perl6/nqp/commit/134167fe33 |
22:55 |
dalek |
nqp: f06d78e | jnthn++ | src/vm/jvm/ (4 files): |
22:55 |
dalek |
nqp: Stub in a couple of basic async IO ops. |
22:55 |
dalek |
nqp: |
22:55 |
dalek |
nqp: Not actually implemented on the handle yet. |
22:55 |
dalek |
nqp: review: https://github.com/perl6/nqp/commit/f06d78e73c |
22:55 |
dalek |
nqp: b212927 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java: |
22:55 |
dalek |
nqp: Implement asynchronous slurp. |
22:55 |
dalek |
nqp: review: https://github.com/perl6/nqp/commit/b212927904 |
23:00 |
colomon |
!!!! |
23:06 |
jnthn |
o/ colomon :) |
23:06 |
colomon |
\o |
23:06 |
* jnthn |
is doing some pre-airport hacking :) |
23:06 |
colomon |
on your way to YAPC::EU? |
23:06 |
jnthn |
Yeah |
23:06 |
colomon |
\o/ |
23:06 |
jnthn |
Flight is at 6am o.O |
23:07 |
colomon |
yow |
23:07 |
jnthn |
Yeah...was the only combo of sensible layover time and price that really fitted... |
23:07 |
jnthn |
Thankfully, the airport trains run all night from the station near here :) |
23:08 |
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 :) |
23:08 |
jnthn |
I've just about got the stuff implemented that I wanted for my concurrency talk :) |
23:08 |
colomon |
I was quite hoping it could hit 100% by then. |
23:09 |
jnthn |
It woulda been nice. |
23:09 |
jnthn |
I did a huge refactor of IO stuff the last few days. |
23:09 |
jnthn |
It's a bunch cleaner now. |
23:09 |
jnthn |
That unblocks getting the async bits in for my talk, but also sockets. |
23:09 |
colomon |
cool |
23:09 |
colomon |
jnthn++ |
23:09 |
jnthn |
So I'm hopeful we'll have those soon. |
23:09 |
jnthn |
(Yes, I can look at them if nobody beats me to it.) |
23:10 |
jnthn |
Dealing with NIO in Java is...argh. :) |
23:10 |
jnthn |
It's not bad, it's just un-Perl-ishly long-winded :) |
23:11 |
colomon |
you do the long winded stuff so the p6 user doesn't have to... |
23:12 |
jnthn |
True :) |
23:12 |
jnthn |
Asynchronous slurp in the impl I have locally just returns a Promise :) |
23:12 |
colomon |
oh! |
23:12 |
colomon |
interesting |
23:13 |
jnthn |
Same kind of object as an async { ... } block does |
23:14 |
* colomon |
thinks it should return a Cat. ;) |
23:14 |
* jnthn |
will try and have a bunch of nice examples in his talk :) |
23:14 |
* jnthn |
can think of use cases for both of those :) |
23:15 |
jnthn |
Alas, no Cat yet, so... :) |
23:27 |
timotimo |
cool stuff, jnthn :) |
23:31 |
|
fgomez joined #perl6 |
23:33 |
|
pochi joined #perl6 |
23:38 |
dalek |
nqp: 89491f5 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java: |
23:38 |
dalek |
nqp: Implement async lines. |
23:38 |
dalek |
nqp: |
23:38 |
dalek |
nqp: Pushes each line into a Channel as it is read/decoded. |
23:38 |
dalek |
nqp: review: https://github.com/perl6/nqp/commit/89491f533c |
23:43 |
dalek |
rakudo/nom: 495602b | jnthn++ | src/vm/jvm/core/Threading.pm: |
23:43 |
dalek |
rakudo/nom: Add a partial, preliminary IO::Async::File. |
23:43 |
dalek |
rakudo/nom: |
23:43 |
dalek |
rakudo/nom: So far, only supports textual reading (slurp -> Promise, lines -> |
23:43 |
dalek |
rakudo/nom: Channel). |
23:43 |
dalek |
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/495602ba21 |
23:49 |
|
telex joined #perl6 |