»ö« 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.
carlin Illegal attempt to pop empty temporary root stack 00:35
sounds... fun 00:36
timotimo github.com/MoarVM/MoarVM/blob/mast...ots.c#L146 - breakpoint this and get us a traceback please 00:42
carlin I'll try and golf the code that causes it tonight 00:47
it involves async and threads, so all the stuff that makes fun things happen 00:48
BenGoldberg m: my %a; %a{(<12 12a 1>).pick(*).Str.sort} += 1 for 1..1000; %a.say; 01:21
camelia rakudo-moar 351c12: OUTPUT«"1 12 12a" => 2, "1 12a 12" => 2, "12 1 12a" => 2, "12 12a 1" => 2, "12a 1 12" => 2, "12a 12 1" => 2␤»
BenGoldberg is confused.
Shouldn't all the values add up to 1000?
BenGoldberg m: my %a; %a{(12, <12a>, 2).pick(*).sort.Str} += 1 for 1..1e3; %a.say; 01:23
camelia rakudo-moar 351c12: OUTPUT«"12 12a 2" => 344, "12a 2 12" => 321, "2 12 12a" => 335␤»
BenGoldberg That's better, for some definition of better. 01:24
BenGoldberg m: my %a; %a{($_ %% 2).sort} += 1 for 1..1e3; %a.say; 01:35
camelia rakudo-moar 351c12: OUTPUT«"False" => 2, "True" => 2␤»
BenGoldberg What is going on there?
colomon m: .say for 1..1e3 01:37
camelia rakudo-moar 351c12: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤52␤53␤…»
BenGoldberg n: my %a; %a{($_ %% 2).sort} += 1 for 1..1e3; %a.say; 01:38
camelia niecza : OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
BenGoldberg P: my %a; %a{($_ %% 2).sort} += 1 for 1..1e3; %a.say;
camelia pugs: OUTPUT«/home/p6eval/.cabal/bin/pugs: error while loading shared libraries: libperl.so.5.14: cannot open shared object file: No such file or directory␤»
colomon what's the .sort meant to be doing? 01:39
BenGoldberg I'd intended to do something with .sort.Str, and accidentally typoed it as .Str.sort ... and then discovered this really strange outcome you see here. 01:39
m: 1.sort.WHAT.say 01:40
camelia rakudo-moar 351c12: OUTPUT«(List)␤»
BenGoldberg P: my %a; %a{($_ %% 2).list} += 1 for 1..1e3; %a.say; 01:41
camelia pugs: OUTPUT«/home/p6eval/.cabal/bin/pugs: error while loading shared libraries: libperl.so.5.14: cannot open shared object file: No such file or directory␤»
BenGoldberg m: my %a; %a{($_ %% 2).list} += 1 for 1..1e3; %a.say;
camelia rakudo-moar 351c12: OUTPUT«"False" => 2, "True" => 2␤»
BenGoldberg m: my %a; %a{"blah".list} += 1 for 1..1e3; %a.say; 01:42
camelia rakudo-moar 351c12: OUTPUT«"blah" => 2␤»
BenGoldberg m: my %a; %a{"blah".list} += 1 for 1..4; %a.say;
camelia rakudo-moar 351c12: OUTPUT«"blah" => 2␤»
BenGoldberg That's golfed enough, I suppose... 01:43
colomon oh! 01:45
colomon has theories, but none of them actually explain what we're seeing 01:47
colomon m: my %a; for 1..4 { %a{"blah".list} += 1; }; %a.say 01:48
camelia rakudo-moar 351c12: OUTPUT«"blah" => 2␤»
colomon m: my %a; for 1..4 { %a{"blah"} += 1; }; %a.say
camelia rakudo-moar 351c12: OUTPUT«"blah" => 4␤»
colomon m: my %a; for 1..4 { %a{"blah".list} += 1; %a.say }; %a.say 01:50
camelia rakudo-moar 351c12: OUTPUT«"blah" => 2␤"blah" => 2␤"blah" => 2␤"blah" => 2␤"blah" => 2␤»
colomon m: my %a; say %a{"blah".list}.WHAT 01:52
camelia rakudo-moar 351c12: OUTPUT«(Parcel)␤»
colomon m: my %a; say %a{"blah".list}.perl
camelia rakudo-moar 351c12: OUTPUT«(Any,)␤»
colomon m: my %a; say (%a{"blah".list} += 1).perl 01:53
camelia rakudo-moar 351c12: OUTPUT«(2,)␤»
colomon m: my %a; say %a{"blah"}.perl 02:01
camelia rakudo-moar 351c12: OUTPUT«Any␤»
colomon m: my %a; say %a{"blah"}.WHAT
camelia rakudo-moar 351c12: OUTPUT«(Any)␤»
dalek ecs: a7e69b5 | (L. Grondin)++ | S99-glossary.pod:
FIFO is a queue and LIFO is a stack
03:31
circ-user-41MtE helloo 04:36
grondilu m: class A { has @.i; multi method new(*@i) { self.new: :i(Mu) }; }; say A.new(); 05:26
^ this almost crashes my computer locally. 05:29
seems to be an infinite recursive loop but that seems wrong to me. self.new(:i(Mu)) should not call new(*@), should it? 05:30
grondilu m: class A { has @.i; multi method new(@i) { self.new: :i(Mu) }; }; say A.new(); 05:39
p6: say "hi"
nine .tell lizmat: and true enough comes the morning I'm a bit more positive. Allowing - in identifiers is not the only incompatible change. Perl 5 doesn't support real named arguments for example so there's got to be some workarounds anyway. And one can always call $foo->call_method('perl6-method', ...) anyway... 05:45
yoleaux nine: What kind of a name is "lizmat:"?!
nine .tell lizmat[3~: and true enough comes the morning I'm a bit more positive. Allowing - in identifiers is not the only incompatible change. Perl 5 doesn't support real named arguments for example so there's got to be some workarounds anyway. And one can always call $foo->call_method('perl6-method', ...) anyway...
yoleaux nine: What kind of a name is "lizmat[3~:"?!
nine .tell lizmat and true enough comes the morning I'm a bit more positive. Allowing - in identifiers is not the only incompatible change. Perl 5 doesn't support real named arguments for example so there's got to be some workarounds anyway. And one can always call $foo->call_method('perl6-method', ...) anyway... 05:46
yoleaux nine: I'll pass your message to lizmat.
vendethiel o/ 06:09
dalek kudo/match: 510e68d | (Tobias Leich)++ | src/core/Cursor.pm:
attempt to patch Cursor.MATCH like in nqp
07:03
FROGGS jnthn: can you please take a look at github.com/rakudo/rakudo/commit/51...nt-7780349 ? 07:20
jnthn: I guess you spot my error easily 07:21
FROGGS nine: and you won't be able to access dynamic variables or compile time constants... and we also don't know how Perl 6 code will really be used in ten years 07:37
so there might be bigger problems coming that we do not know yet (wrt. Perl 5 interop)
moritz will be offline the next ~9 days (the good kind of offline :-) 07:44
nwc10 mr-foobar: h 07:45
er
fat fingers
moritz: have fun
FROGGS moritz: enjoy it :o) 07:46
mberends +1 07:48
lizmat moritz: enjoy!
yoleaux 05:46Z <nine> lizmat: and true enough comes the morning I'm a bit more positive. Allowing - in identifiers is not the only incompatible change. Perl 5 doesn't support real named arguments for example so there's got to be some workarounds anyway. And one can always call $foo->call_method('perl6-method', ...) anyway...
lizmat nine: good morning :-)
moritz thanks nwc10, FROGGS, lizmat 07:49
pmurias shouldn't we have runinstead and shellinstead? 08:26
pmurias hmm, what's a good way to create a temporary file in nqp? 08:30
dwarring I've bisected parrot failures affecting advent2010-07.t and other advent tests... 08:39
(test suite had been out of action on parrot for about a week) 08:40
FROGGS dwarring: and? 08:41
dwarring looks like this test started hanging around rakudo commit 3e96fe51a29fd3758fe774b5e3e95aae9e7196dd
FROGGS dwarring: I am about checking panda on parrot again
dwarring: yes, that seems also to be the panda problem 08:42
sergot hi o/
FROGGS hi
lizmat dwarring: going to check that now
(as that commit was my doing)
dwarring there's also a second regression at df2f8b4954477f02f2481f981a7d7c564a959544 08:43
hoping this gist explains things a bit more - gist.github.com/dwarring/12c1e32440a8aea43337
(see comments)
lizmat dwarring: I'm on it 08:44
dwarring ok lizmat++ 08:45
hope that helps 08:46
FROGGS is there a reason to prefer nqp::box_s("foo", Str) over nqp::p6box_s("foo")? and, is there a difference in the resulting thing? 08:47
lizmat hmmm... p6box_s isn't even documented ? 08:49
dwarring zzzz& 08:50
FROGGS lizmat: where are you looking?
lizmat github.com/perl6/nqp/blob/master/d...s.markdown 08:51
FROGGS lizmat: it is not an nqp op, it is an rakudo ext-op
all nqp::p6* are
lizmat eh, then why has it the nqp:: prefix ? 08:51
good night, dwarring!
FROGGS because we register it that way :o)
I think because we can access it is Perl6/Action.nqp this way 08:52
in*
so, I've build all backends now, in case I should test something 08:53
lizmat m: my str $a= "a"; say nqp::p6box_s($a)
camelia rakudo-moar 351c12: OUTPUT«a␤»
lizmat I don't see a difference from this end: to me it's just another (undocumented) nqp:: operation
daxim__ <www.wilfred.me.uk/blog/2014/09/15/c...ology/> "there’s a huge design space of how macro systems can be implemented" (via HN)
lizmat (still building parrot, my is it slow compared to moar) 08:54
FROGGS lizmat: yes, now wonder features get more quickly implemented nowadays :o)
Ven .tell masak www.wilfred.me.uk/blog/2014/09/15/c...macrology/ 08:56
yoleaux Ven: I'll pass your message to masak.
dalek p-js: 351cae7 | (Pawel Murias)++ | tools/build/ (2 files):
Make the Makefile install the required support js modules.
08:57
lizmat rebuilding rakudo on parrot: real4m27.370s = 267 seconds 09:07
on moar: 0m43.920s = about 6x as fast 09:08
lizmat looks like parrot has a problem with basic math 09:23
1 + 1 + 0 = 0
lizmat more specifically: $moving = $chars + 1 + nqp::eqat($ns, $CRLF, $nextpos); 09:29
seems to come out as 0 always on parrot
FROGGS m: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 3) 09:31
camelia rakudo-moar 351c12: OUTPUT«1␤»
FROGGS p: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 3)
camelia rakudo-parrot 351c12: OUTPUT«1␤»
FROGGS p: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 4)
camelia rakudo-parrot 351c12: OUTPUT«0␤»
FROGGS m: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 4)
camelia rakudo-moar 351c12: OUTPUT«0␤»
FROGGS m: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), -1)
camelia rakudo-moar 351c12: OUTPUT«0␤»
FROGGS p: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), -1)
camelia rakudo-parrot 351c12: OUTPUT«0␤»
FROGGS p: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 55)
camelia rakudo-parrot 351c12: OUTPUT«0␤»
FROGGS m: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 55)
camelia rakudo-moar 351c12: OUTPUT«0␤»
FROGGS hmmm
lizmat: what is the test case you're using? 09:32
lizmat say "a\r\nb\nc\n".lines.elems 09:33
FROGGS k
lizmat that hangs on parrot atm
if I put the result of nqp::eqat in a temp variable, it works ok 09:34
something like my int $extra = nqp::eqat; $moving = $chars +1 $ extra; 09:35
s/$/+/
FROGGS eww
lizmat some code gen, maybe optimization issue ? 09:36
FROGGS I would say that a code-gen bug on parrot is very unlikely
and we cannot change the optimization level for perl6-p because some stuff relies on optimization and will break without 09:37
lizmat hates it when she can only try 12 hypotheses an hour
I'll put in some conditional parrot code then, yuck :-(
FROGGS I recompile right now with some debugging output... 09:38
nwc10 do we know which OSes/distributions package Rakudo (on Parrot)?
eg does macports? does cygwin have a packaging system, and does it? which BSD ports? (etc) 09:39
FROGGS nwc10: I only know about daxim++'s work for opensuse 09:42
nwc10 I know that I've installed it on debian, and on ubnutu we have
This is perl6 version 2013.12 built on parrot 5.9.0 revision 0
FROGGS p: say nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 3) 09:43
camelia rakudo-parrot 351c12: OUTPUT«1␤»
FROGGS p: say 0 + nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 3)
camelia rakudo-parrot 351c12: OUTPUT«1␤»
FROGGS p: say 0 + 1 + nqp::eqat(nqp::unbox_s("foo\r\nbar"), nqp::unbox_s("\r\n"), 4)
camelia rakudo-parrot 351c12: OUTPUT«1␤»
FROGGS why does that work here? 09:44
lizmat because you're not using variables?
pmurias lizmat: reducing the bug to an nqp level test that we could put into the nqp test suit would be great 09:45
FROGGS then it might be really a code-gen bug
FROGGS it could be that eqat uses a hard coded register 09:45
lemme look
lizmat but one that exists on parrot only
jvm is also clean, I just checked
FROGGS lizmat: code-gen is backend specific 09:46
lizmat hnmmm... scratch that: jvm seems also infected :-( 09:48
oops, no, I just wasn't patient enough :-(
pmurias all the code-gen in jvm, moar, parrot is a very similiar manner 09:49
dalek kudo/nom: bac255d | (Elizabeth Mattijsen)++ | src/core/Str.pm:
initial fix for hanging Str.lines on parrot
09:52
FROGGS p: my str $CRLF = nqp::unbox_s("\r\n"); my int $chars; say $chars + 1 + nqp::eqat(nqp::unbox_s("a\r\nb"), $CRLF, 0) # here is the bug 09:56
camelia rakudo-parrot 351c12: OUTPUT«0␤»
FROGGS it vanishes when I make $chars an Int, and also when I replace nqp::eqat by a literal 0 09:57
lizmat shall I rakudobug it ? 10:01
FROGGS yes... 10:02
in the meantime I try to understand it
lizmat RT #122783 10:07
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122783
dalek kudo/nom: dc83803 | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Temp fix for other candidates, RT #122783
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122783
FROGGS eww: 10:11
p: sub infix:<+>(int $a, int $b) { nqp::add_i($a, $b) }; my int $chars; say $chars + 1 + nqp::eqat(nqp::unbox_s("a"), nqp::unbox_s("b"), 0)
camelia rakudo-parrot 351c12: OUTPUT«0␤»
FROGGS p: sub infix:<+>(int $a, int $b) { 7; nqp::add_i($a, $b) }; my int $chars; say $chars + 1 + nqp::eqat(nqp::unbox_s("a"), nqp::unbox_s("b"), 0)
camelia rakudo-parrot 351c12: OUTPUT«1␤»
FROGGS I guess it is an optimization problem with infix:<+> on natives 10:12
lizmat guess so: well at least the parrot spec test is not hanging anymore 10:17
dalek kudo/nom: 9c3634d | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Mention #122783 for posterity
10:22
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122783
lizmat leont: I'm thinking about changing the API of Proc::Async.new 10:34
will that be a big problem for you?
instead of :path, :args, use positionals
also allow direct %ENV setting :-) 10:35
(with .start)
leont I don't really care about the API, I'll adapt to it
lizmat ok
leont Just warn me when flag day comes ;-) 10:36
leont Direct %*ENV setting would be sensible too, yes. Not that I've needed it so far. 10:41
dalek ecs: 5123177 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Make .stdout/.stderr suppliers more generic
10:45
lizmat first waits for any reactions to spec changes ^^^ 10:45
FROGGS lizmat: other methods usually use the :bin colonpair to switch between strings and bufs 10:47
lizmat aha, an extra reason not to call it "stdout_bytes" :-
)
FROGGS :o)
dalek ecs: d21d857 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Be more like other IO: :bytes -> :bin FROGGS++
10:52
lizmat does Win have an "echo" ?
lizmat
.oO( portable Proc::Async tests )
10:53
FROGGS lizmat: yes
lizmat ok, cool
FROGGS C:\MoarVM>echo 42
42
leont lizmat: those changes look very sensible to me 10:55
Also, implementation was with underscores, spec with hyphens… 10:58
lizmat yes, I didn't change the implemented API yet
pending feedback on the spec
dalek ast: 47c637e | (Elizabeth Mattijsen)++ | S17-procasync/basic.t:
Add basic Proc::Async test
11:15
dalek kudo/nom: f48eb19 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add basic Proc::Async test for moar only
11:28
leont How do I do the equivalent of \1 in a rule? 12:00
brrt ehm, i'm not sure, but if i recall correctly, a rule is a token with autmatic whitespace ignoring or something, and neither supports backtracking. but i'm not sure if that's what you mean 12:01
in which case there wouldn't be an equivalent. but you'd have to ask somebody else to be sure 12:04
leont Ah, it seems "$1" did the trick. 12:06
brrt then i'm wrong :-) 12:19
leont Hmmm, no I may have been wrong, I think my test passed by accident 12:21
timotimo i'm just now running into some hard drive trouble :\ 12:23
nine suddenly remembers to make a backup.... 12:26
lizmat loves her Time Machine
raiph p5-to-p6: $_ = "ab"; s/(a)/b\1/ 12:28
camelia p5-to-p6 : OUTPUT«$_ = 'ab';␤s:P5!(a)!b!␤»
lizmat leont: $0 maybe, they start at 0 in Perl 6
timotimo i should really do backups, too ... 12:32
timotimo FROGGS: you most probably need to keep the hllize in the match code 12:42
leont was looking for the problem in all the wrong places, again 12:48
raiph .seen Ulti 12:49
yoleaux I saw Ulti 12 Sep 2014 16:19Z in #perl6: <Ulti> TimToady what would your bacon number have been?
pmurias how is p5-to-p6 implemented? 12:50
FROGGS timotimo: hllize does not change anything though 13:03
Bisecting: 358 revisions left to test after this (roughly 9 steps) 13:05
>.<
bisecting rakudo@parrot
this will take months!
brrt ... :-o 13:06
leont 9 steps, that isn't that bad, is it?
brrt wonders if that is worth the trouble
FROGGS brrt: I think it is 13:08
brrt: because that can pop up everywhere
good that I don't have to recompile parrot... "only" nqp and rakudo :o) 13:09
pmurias how hard would it be to add nqp-js to camelia? 13:19
dalek p-js: 7d08260 | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement hashes partially.
p-js: 917dbb0 | (Pawel Murias)++ | / (5 files):
Implement nqp::const::* and nqp::stat.
p-js: 1ea4ff2 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Fix bug.
p-js: 80f126d | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement nqp::existskey
p-js: 2e2538d | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement nqp::existspos
p-js: 9a076b1 | (Pawel Murias)++ | src/vm/js/ (3 files):
Implement nqp::radix.

Pass test 83.
p-js: 54745dc | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js:
Fix indentation.
carlin Illegal attempt to pop empty temporary root stack - gist.github.com/carbin/595b569fb120657eda8a
dalek ast: 9e5f4bc | (Elizabeth Mattijsen)++ | S17-procasync/print.t:
Add .print/.say test: needs TODO :-(
13:25
kudo/nom: 8002629 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add Proc::Async .print test, for moar only
[Coke] is nqp-js standalone or does it require a cross compiler still? 13:28
brrt FROGSS++ for very awesome persistence 13:30
nwc10 brrt: what did FROGGS do this time? 13:33
jnthn evening, #perl6
lizmat jnthn o/
nwc10 good UGT heresey, jnthn
lizmat hopes jnthn had dinner and beer 13:34
[Coke] wonders if nwc10 means "heresy"
nwc10 [Coke]: almost certainly
jnthn discovered Sichuanese bacon rice! o.O 13:35
dalek p-js: 78ed2ac | (Pawel Murias)++ | src/vm/js/ (3 files):
Pass test 40.

Implement nqp::ishash, converting "foobar" to a number gives 0 now.
FROGGS pmurias: I've no idea how to do that... so it would be very hard for *me* :/ 13:36
masak aww, too bad the "Perl 6" example last in www.frantic.com/notes/Perl-6---Is-i...--151.html doesn't actually work as intended in Perl 6 :/ 13:38
yoleaux 08:56Z <Ven> masak: www.wilfred.me.uk/blog/2014/09/15/c...macrology/
masak looks
pmurias [Coke]: currently cross compiling on top of moarvm 13:39
brrt FROGGS is apparantly disecting a parakudo bug 13:40
nwc10 ^
lizmat wonders what the "PSA" stands for at S01:82 13:43
synopsebot Link: perlcabal.org/syn/S01.html#line_82
tadzik Public Service Announcement?
lizmat "RFCs are rated on "PSA" ? 13:44
FROGGS P is for Problem I think
jnthn Problem, Solution, Acceptabnce
FROGGS yeah
was about to say
:o)
[Coke] S99:PSA 13:45
synopsebot Link: perlcabal.org/syn/S99.html#PSA
Timbus_ masak, 4 ~~ @array doesn't work?
[Coke] there's some S99:LHF 13:45
synopsebot Link: perlcabal.org/syn/S99.html#LHF
masak m: my @array = <a b c d>; say 4 ~~ @array 13:46
camelia rakudo-moar f48eb1: OUTPUT«False␤»
dalek ecs: ed4cd1e | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Add PSA lemma
masak m: my @array = 4, 4, 4, 4; say 4 ~~ @array 13:47
camelia rakudo-moar f48eb1: OUTPUT«False␤»
jnthn lizmat: github.com/perl6/specs/commit/5123177528 feels like a step backwards, in so far as I'd rther we tried to eliminate cases where an adverb changes the return type of things, not add more of them...
masak Timbus_: is that "doesn't work" enough for you? :)
Timbus_ i see
masak Timbus_: in Perl 6, the rhs decides on the matching semantics.
Timbus_: this is the thing that got realized/corrected after Perl 5 amicably side-stole smartmatching.
lizmat jnthn: but they both return a Supply, regardless of named param ?
masak Timbus_: before then, the ideal was a misguided aim for symmetry. 13:48
[Coke] lizmat++
jnthn lizmat: Supply isn't the real type
masak Timbus_: but even under that interpretation, it was kind of a stretch to have $elem ~~ @array mean "is it in the array?"
Timbus_ yeah, ~~ has been quite a problem for both 5 and 6
jnthn lizmat: I mean, it *is*, but it's not the type the programmer cares about.
lizmat S17:1024
synopsebot Link: perlcabal.org/syn/S17.html#line_1024
masak Timbus_: I wouldn't say it's been a problem for 6.
nine But all people really wanted from ~~ was Python's "in" operator. 13:49
lizmat "Getting information back from the external process's C<STDOUT> or C<STDERR>, is done by a C<Supply> that either gets characters or bytes."
PerlJam nine: you mean "P5 people"?
nine PerlJam: yes.
masak m: say 3 (in) [2, 3, 5, 6]
camelia rakudo-moar f48eb1: OUTPUT«===SORRY!=== Error while compiling /tmp/AdiZDD3eZ4␤Two terms in a row␤at /tmp/AdiZDD3eZ4:1␤------> say 3 ⏏(in) [2, 3, 5, 6]␤ expecting any of:␤ postfix␤ infix stopper␤ infix or me…»
masak m: say 3 (elem) [2, 3, 5, 6]
camelia rakudo-moar f48eb1: OUTPUT«True␤»
masak \o/
nine PerlJam: I'm sure smartmatch is a lot smarter in Perl 6. But on the other hand "in" is all I ever really missed in P5. 13:50
masak m: say 3 ∈ [2, 3, 5, 6] 13:50
Timbus_ well in perl5 people use 'grep' to mean 'in', knowing it might be suboptimal. in perl 6 you can do the same and it works
camelia rakudo-moar f48eb1: OUTPUT«True␤»
PerlJam nine: aye.
(me too :)
jnthn lizmat: It's kinda like arguing that something returning a Buf or a Str dependin gon adverb is OK because both are storable in a Scalar...
Timbus_ and last i tested its optimal, due to laziness
masak well, those of you who missed "in", see ∈ and (elem) above. 13:51
jnthn lizmat: Supply and Promise are just asynchronous container types rather than the type of data involved in the operation, so I tend to consider them "transparent" 13:51
nine masak: that's cute :) Would be even better if there was a ∈ key on my keyboard...
lizmat jnthn: I guess I look at it differently then 13:52
nine But (elem) is just fine as well
lizmat it's more like an addition to $, @ and % to me
pmurias research.microsoft.com/en-us/projec...raphy.aspx - one way to handle stuff that's not typable on a keyboard
lizmat also transparant, but the same for both cases
pmurias in the Operators section 13:53
jnthn lizmat: Well, that's not a bad wy to look at it, given that I think if we had things where you get an Array[Int] back normally, but an Array[Str] if you wrote an adverb, we'd likely consider it LTA design 13:54
pmurias jnthn: do we have something in nqp land to create a temporary file? 13:55
jnthn pmurias: No
lizmat jnthn: and what about :bin on open() ? 13:56
jnthn pmurias: If you mean the "unique name" part
lizmat how is that different from Proc::Async.new.stdout(:bin) ?
pmurias a "unique name" part is what I'm looking for
lizmat from the IO::Handle\'s outside youc can't see it's in bin mode 13:57
jnthn lizmat: You get a file handle back either way. What's more notable is that you use .get and .lines for a chars view, and .read for a Buf view
Opening a file as :bin and doing .get is probably erroneous.
I ain't defending :bin there, though] 13:58
lizmat agree....
jnthn That's not a particularly great bit of design either.
pmurias jnthn: I want add a --target=node, so "nqp-js --target=node -e 'Hello'" would work like "nqp-js --target=js -e 'Hello' | node"
lizmat jntthn: hysterical raisins, yes 13:59
jnthn For chewing through binary data it'd be much nicer to have an API that was good for reading in binary data
pmurias jnthn: but writing to a tmp file and the calling "node tmp" would be fine too
jnthn pmurias: Yeah. Well, I think PID and nqp::time_n() together would give you a sufficienlty unique thing. 14:00
lizmat jnthn: by the way, when testing this functionality, I found problems: 14:08
lizmat t/spec/S17-procasync/print.t # has 3 todo tests because the .print is not arriving in the async process apparently 14:08
If I'm doing something wrong, let me know 14:09
jnthn lizmat: I assume you are await'ing the Promise that print returns? 14:14
lizmat checking if that makes a diff 14:15
jnthn isa_ok $pc.print( "Hello World" ), Promise;
Looks like it's being thrown away
lizmat yes, as I'm waiting for the proc's start Promise at the end 14:17
hmmm... getting "This process is not opened for write" now 14:18
jnthn Right, meaning you were discarding that error beforehand, I guess? 14:19
lizmat the promise for print is roken
broken
I guess so
hmmm...
jnthn Hm, does the test open the process with :w?
ah, seems not
lizmat ah... 14:20
jnthn So it doesn't open the handle to its stdin.
So, quite accurate error :)
lizmat indeed, so that's what :w is for
not specced yet :-)
will do in a mo
jnthn Cool 14:21
Happy ot see tests/spec :)
lizmat hmmm... it appears that the note is not going to STDERR
lizmat isn't the Promise of the P::A.start supposed to return the Proc::Status object ? 14:24
jnthn yes
lizmat ok 14:25
ah, I see what's wrong
jnthn errand, bbi10 14:26
jnthn back 14:43
dalek ast: 34cf39f | (Elizabeth Mattijsen)++ | S17-procasync/print.t:
Properly wait for .print/.say, jnthn++
lizmat jnthn: the stdout test is flapping
lizmat if it flaps, it only contains "Hello World" 14:43
and misses the "Started" and "Done" 14:44
now, the "Done" I can sort of understand, maybe
hmmm....
but losing the "Started" ?
jnthn Sounds odd 14:45
lemme look at latest
jnthn lizmat: Yes, something odd must be going on :S 14:47
Ven pmurias: github.com/pmurias/nqp-js/commit/2e2538d8c9 are you sure that's the correct behavior? 14:48
m: say (1, 2, 3)[-1]; # no negative
camelia rakudo-moar 800262: OUTPUT«Unsupported use of [-1] subscript to access from end of Parcel; in Perl 6 please use [*-1]␤ in method gist at src/gen/m-CORE.setting:13496␤ in sub say at src/gen/m-CORE.setting:15106␤ in block <unit> at /tmp/G6LLqQULMJ:1␤␤»
dalek ecs: 59a1d61 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Better spec :ENV and :w for Proc::Async.new
Ven pmurias: Also, you might want to use a Map rather than just an object for p6hashes
m: class A{}; my %h; %h{A.new} = 5; say %h 14:49
camelia rakudo-moar 800262: OUTPUT«"A<140474676297232>" => 5␤»
Ven ^ in JS, keys have to be strings (though we're doing something similar in p6?)
Ven backlogs once in a while 14:52
hoelzro o/ #perl6 14:58
PerlJam greetings hoelzro
lizmat cycling& 15:04
pmurias Ven: generally speaking nqp::existpos should die 15:13
* existspos
Ven pmurias: should it?
pmurias die as in be removed
pmurias the whole "sparse" array behavior can be just implemented in the Perl 6 layer without a low-level nqp::existspos support 15:14
Ven: but there is a test for negative indexes being passed to nqp 15:15
Ven oh, I see. 15:16
pmurias github.com/perl6/nqp/blob/master/t...pop.t#L141
as far as I know in nqp hash keys are strings, and the objects as keys support in done in the Perl 6 setting 15:17
pmurias but good to know someone is reading the commits ;) 15:17
Ven Always :). 15:20
sorry for the noise
dalek p: db41176 | jonathan++ | tools/build/MOAR_REVISION:
Get a MoarVM with profiling improvements.
15:22
dalek kudo/nom: 90288f9 | jonathan++ | / (2 files):
Mark various extops up as allocating.

We missed these in the allocation profile before now, and they can be very significant sources of objects. Includes version bump to get the MoarVM additions to support this.
15:23
FROGGS jnthn: can you take a look into that please before you go to bed? github.com/rakudo/rakudo/commit/51...nt-7780349 15:36
jnthn FROGGS: Not sure what you're meaning on the hllize bit off hand; a method call includes emitting a hllize 15:41
FROGGS ahh, okay, nice :o) 15:41
FROGGS jnthn: I guess I am asking how to sneak a Parcel into $!list instead of the Array 15:42
as seen in the .DUMP
jnthn FROGGS: Hmm, is that not coming from the @EMPTY_LIST? 15:44
FROGGS: In which case, my @EMPT_LIST := infix:<,>() may do it
FROGGS jnthn: ohh, that could be it indeed
I've not thought about @EMPTY_LIST at all :o) 15:45
jnthn :) 15:48
Hope it helps a bit
jnthn should rest now...
FROGGS jnthn: thank you :o) and sleep well 15:50
ajr_ Is this www.theregister.co.uk/2014/09/15/fr...ed_breach/ relevant? 15:56
pmurias virtualsue: if you have any questions about nqp-js don't hesitate to ask, I tend to backlog the channel (or at least skim the log for mention of my name / nqp-js) 16:03
jnthn pmurias: Was that for Ven? :)
virtualsue probably :)
pmurias yes 16:05
virtualsue: sorry
virtualsue no worries
pmurias virtualsue: but if you have any questions about nqp-js feel free to ask anyway ;)
jnthn drops jnthn.net/tmp/hk.jpg for anybody who likes city views by night (was from this weekend in hong kong :)) 16:09
'night, #perl6
dalek p-js: 41259ee | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Remove considered TODO.
16:22
p-js: 1c41a1e | (Pawel Murias)++ | src/vm/js/ (3 files):
Pass test 41.

Implement foo(|%named).
jaffa4 hi all 16:39
it is the same: Calling 'Print_c' will never work with argument types (Draw, RichText, Rect, IntTypedCArray[int32])
Expected: :(Draw $w, RichText $text, Rect $page, IntTypedCArray[int32] $pagelist)
jaffa4 when the same is not the same 16:39
Timbus_ m: Thread.new(code => {IO::Socket::Async.listen('127.0.0.1', 1234)}).run; say "Ok"; 16:47
camelia rakudo-moar 90288f: OUTPUT«Ok␤Illegal attempt to pop empty temporary root stack␤»
Timbus_ narrowed it down for you, carlin
liztormato jaffa4: Pretty sure that Type[int32] is not completely implemented 16:49
Timbus_ i dont know for sure but, isn't the typecheck here meant for the perl6 side of things? 16:55
Timbus_ like, you could use IntTypedCArray[Int] and it should be fine? 16:56
FROGGS[mobile] liztormato: these types do work in nativecall 16:59
FROGGS jaffa4: can you provide a short script that shows the problem? 16:59
jaffa4: the problem might be about how you create that array or so 17:00
jaffa4 IntTypedCArray[Int] comes in as an argument as passed in as an arguement 17:00
FROGGS I don't understand that sentence 17:01
tony-oo timotimo: whats up
FROGGS jaffa4: ahh, you are literally passing IntTypedCArray[Int] ? 17:02
jaffa4 froggs... pastebin.com/4BctuHNR 17:04
jaffa4 how can I initialise a CArray with a perl array? 17:09
FROGGS jaffa4: loop over the elems and .push to the CArray or set the values by index
jaffa4 FROGGS: can you see the paste? 17:10
FROGGS jaffa4: yes, and I think you should not pass a CArray[int32] type object, only pass instances 17:11
jaffa4 is it a bug, right/ 17:12
FROGGS so, you sub should be like: multi sub Print(Draw $w,RichText $text,Rect $page,CArray[int32]:D $pagelist)
jaffa4: yes, sort of
jaffa4 It cannot be multi , it is not implemented yet
jaffa4 CArray[int32]:D? 17:13
D?
FROGGS for Defined
FROGGS jaffa4: okay, I can confirm it is a bug 17:18
jaffa4: it looks like removing the type annotation (CArray[int32]) of the Print sub helps... 17:19
jaffa4 not sure what you mean 17:20
jaffa4 What is the final look for both functinos? 17:20
FROGGS -multi sub Print(Draw $w,RichText $text,Rect $page,CArray[int32] $pagelist) { 17:23
+multi sub Print(Draw $w,RichText $text,Rect $page, $pagelist) {
change sub Print like that
jaffa4 yes, that is effective 17:30
[Coke] moritz, diakopter: I can't ssh to host08: ssh_exchange_identification: Connection closed by remote host 17:56
looks like 7 is still up, though. 17:57
timotimo hey tony-o 17:59
nice to see you're here; i'll have to be AFK for a bit before we can talk
tony-o: the core of my problem is i don't want there to be a $data ~= $read_character loop when i turn a http connection into a websocket one
also, that connection wants to handle binary data properly, as websockets also support binary frames 18:00
(and the framing itself uses binary data in the headers)
rindolf thinks that TimToady should totally do an www.reddit.com/r/IAmA . 18:35
PerlJam rindolf: What good would that serve exactly? 18:38
huf he could talk about rampart 18:40
rindolf PerlJam: publicity. 18:42
PerlJam: and fame and fortune.
PerlJam: Larry Wall is a star. 18:43
PerlJam rindolf: he's also a finite resource that we should be careful about "over-spending" 18:44
rindolf PerlJam: well, it's worth it. 18:45
nine rindolf: looks more like a place for attention whores. Which is the diametrical opposite of TimToady :) 18:49
rindolf nine: well , it'll be good for Perl and Perl 6. 18:52
nine rindolf: [citation needed] 18:54
rindolf nine: good publicity. 18:55
brrt why... don't you just ask him? he's here often enough :-) 19:09
huf i think it would just descend into a "more than 10 years huehuehue"-fest 19:10
lizmat is surprised to see rindolf is worrying about Perl 6 19:20
none of his essays / blog posts / show this concern
is he changing is opinion ?
*his
brrt well, no surprise given perl6 awesomeness 19:21
:-)
i'm never on reddit anymore. and hacker news has gotten boring too 19:23
dalek line-Perl5: 086acaa | nine++ | / (3 files):
Translate Perl 5 exceptions to Perl 6 exceptions in run()
19:24
line-Perl5: 23f8ee1 | nine++ | / (3 files):
Handle Perl 5 exceptions when calling Perl 5 functions
line-Perl5: fc91c47 | nine++ | / (3 files):
Handle exceptions when calling Perl 5 package methods
line-Perl5: 2c8211e | nine++ | / (3 files):
Handle exceptions when calling Perl 5 object methods
FROGGS brrt: thedailywtf is still good though :o)
dalek ecs: 4559fe7 | (Elizabeth Mattijsen)++ | S01-overview.pod:
Emphasize the letters of the acronym PSA
brrt hasn't visited that in long
FROGGS brrt: don't do that now! you'll just waste time!! :P 19:27
brrt true :-) 19:28
dalek ecs: aebbc76 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Add lemma for PPI
nine brrt: better write awesome code instead so others can write about your deeds :) 19:30
dalek ecs: 581b3d2 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Add lemma stub for pragma
19:32
timotimo I forgot to take into account the size differences between eu and us when telling the gsoc my shirt size...
FROGGS timotimo: common mistake *g* 19:33
I almost got mine today 19:34
lizmat hmmm...t/spec/integration/advent2009-day04.t hangs on HEAD on OSX 19:37
but only when run from make ? 19:38
brrt timotimo: too large or too small
hoelzro parsed that as "bangs HEAD on OSX" 19:38
brrt bbiab
lizmat hoelzro o/ and :-) 19:39
hoelzro o/ lizmat!
lizmat well, that test file is not really special... :-(
lizmat apparently only hangs when done in the spectest :-( 19:44
diakopter m: say 3 19:52
lizmat three
diakopter aw, I guess host08 is offline; boo 19:53
lizmat yup, no camelia
diakopter hm, java caused out of memory 19:54
bad rakudo-jvm/evalserver
lizmat I guess it wasn't properly limited 19:55
diakopter rebuted 19:56
lizmat diakopter++ 19:58
dalek ecs: 0f271d7 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Steal the first line for P5's perlpragma
20:02
diakopter bleh 20:03
m: say 3
lizmat Camelia still not online :-( 20:04
diakopter she's waking up
camelia rakudo-moar 90288f: OUTPUT«(timeout)» 20:04
diakopter m: say 3
camelia rakudo-moar 90288f: OUTPUT«(timeout)»
diakopter heh
diakopter m: say 3 20:05
camelia rakudo-moar 90288f: OUTPUT«3␤»
dalek line-Perl5: 1dd6c2f | nine++ | / (3 files):
Handle exceptions thrown in Perl 6 code called from Perl 5
nine Darn....I actually didn't want to implement this ^^^ today, but I couldn't stop once I was coding :) 20:06
lizmat nine: so how do we call P6 code from P5 (inside P6) ?
timotimo brrmake an educated guess :) 20:07
nine lizmat: $p5.run(q/ sub foo { my $foo = shift; $foo->bar } /); class Foo { method bar { say "hello"; } }; $p5.call('foo', Foo.new);
timotimo maybe it's time to write that weekly now ... 20:08
lizmat :-) 20:09
++timotimo
brrt lizmat: one of the differences between spectest and direct runningis the handling of file handles
timotimo nine: can you give me a little summary of what Inline::Perl5 can already do? 20:09
or is there perhaps a showcase example program that tries to show off everything?
tony-o timotimo: let me look at my source again so i can get some context
yoleaux 4 Sep 2014 21:17Z <timotimo> tony-o: i'm going to play around with your HTTP::Server::Async for a bit :)
4 Sep 2014 21:29Z <timotimo> tony-o: it seems like your documentation and implementation disagree on the handling of the responsestack; your documentation says the sub should return True or False to influence further processing on the request, but the implementation seems to ignore the return value
12 Sep 2014 09:53Z <timotimo> tony-o: i'm looking more into perl6-http-server-async and i'm not entirely sure how request.parse works. also, is it a good idea to try to re-parse the whole request string every time a new byte arrives?
12 Sep 2014 09:58Z <timotimo> tony-o: i get it now; this is just because i asked you to make data lazy, and since we still need to handle chunked encoding, that still has to run every time ...
12 Sep 2014 10:00Z <timotimo> tony-o: i think this is wrong, though: the chunked encoding thingie looks at %headers, but if $!headercomplete is set, it'll never assign anything to %headers. in fact, i see no code at all that assigns to %.headers in Request.pm6 ?!
timotimo spam spam spam :)
.botsnack
yoleaux :D
tony-o oops 20:10
diakopter .bostonack
nine timotimo: the README has examples of everything but the exception handling I just added: github.com/niner/Inline-Perl5
nine timotimo: and exception handling works just like you'd expect in both languages. Use eval { } in Perl 5 and try/CATCH in Perl 6 :) 20:11
timotimo fuck yeah :) 20:11
exception handling works in both directions already?
nine timotimo: yes 20:11
timotimo cool 20:12
tony-o timotimo: the request only reparses headers if it didn't receive a \r\n\r\n 20:13
brrt which uhm, if i recall correctly was also the issue of blocking restricted.setting
brrt isn't doing much here but retelling information he vaguely heard 20:14
dalek line-Perl5: 60097f0 | nine++ | t/exceptions.t:
Add a test for P6 exception passed through P5 back to P6 to catch.
20:14
timotimo tony-o: it's not the re-parsing i'm worried about
nothing is untapping the piece of code that does $data ~= $received 20:15
PerlJam nine: Are you going to make Inline::Perl6 for P5 too? :)
tony-o it also doesn't assign anything to the request or mark it complete if it doesn't get \r\n\r\n
timotimo i'm not entirely sure, but i think that's quadratic
nine PerlJam: I'm....not sure :) 20:15
PerlJam: Inline::Perl6 would have to decide which Perl6 to actually embed. 20:16
PerlJam moarvm is reasonably small ;)
lizmat nine: the same applies for installations with multiple versions of perllib 20:17
tony-o timotimo: does the untap need to happen when i close the connection?
or are you talking about before hand 20:18
before i realize that it might be a websock
nine lizmat: Inline::Perl5 will build with the perl you have in your $PATH. That's easy. But there is no _one_ Perl 6. There's Rakudo and maybe others. And even Rakudo comes with different backends with widely different embedding options.
lizmat but there *could* be just one perl6 in your path, no? 20:19
you would just need to find out from there where the lib lives
tony-o timotimo: the documentation is wrong now for the registered callback, i'm updating the readme 20:20
PerlJam nine: you should just bundle rakudo+nqp+moarvm with Inline::Perl6 20:20
(at least for the first approximation)
nine lizmat: the problem is, you need to support different backends. Or just require Rakudo MoarVM. Though I've no idea if there is even some embedding support for MoarVM. Right now it might even be easier to embed Rakduo+JVM since there's already an Inline::Java for Perl 5. 20:21
PerlJam nine: oh, that's a good point too.
diakopter yes, moarvm builds a shared library by default
nine I'm not 100 % sure if it's even worth it. One can just wrap the existing code in an Inline::Perl5::run call and set up some hooks to get back to Perl 6. It's how I wrote a Catalyst action in Perl 6 for one of our existing code bases. 20:22
nine diakopter: then I guess all it needs is some documentation on how to use it :) 20:22
diakopter it supports only one MVMInstance per process, though it's meant to support more someday, probably 20:23
PerlJam nine: the "worth it" part for me is that Inline::Perl6 lets the P5 programmer ease into P6 in a highly controlled manner without stepping too far outside of the P5 box. 20:23
PerlJam nine: at least, if I had the gumption to do it, that would be why. 20:24
diakopter the only tricky part of it would be getting the right headers included properly, though if you look at the Makefile for the main entry point in the moar executable, you'd simply copy how that does it
(and load the perl6.moarvm from the right place) 20:25
nine PerlJam: depends on if "use Inline::Perl5; use My::Hooks; my $p5 = Inline::Perl5.new; My::Hooks::setup_hooks($p5); $p5.run(q/ ... your P5 code here ... /);" in your main script is too far outside your P5 box. 20:25
diakopter so you'd need to configure/incorporate the proper libpath entries when loading the perl6.moarvm 20:26
nine diakopter: I really like how perl tells you exactly how you have to compile your code so you can embed it.
PerlJam nine: Say I'm a P5 programmer with a largist app already written in P5 and I learn about some neat P6 feature that I want to use. I think I'd rather leave my app mostly as-is and add a little piece that calls Inline::Perl6. 20:27
diakopter well, it could be made easier, but moarvm is _just_ _as_ flexible as parrot when it comes to multilanguage, so it's just as flexible when embedding...
PerlJam s/ist/ish/
diakopter nine: thing is, such embedding instructions would be not much less involved than making Inline::Perl6 (the way you've described it) itself, imho 20:28
dalek ast: 9781ce0 | (Elizabeth Mattijsen)++ | S02-magicals/KERNEL.t:
Properly skip signal related tests on parrot/jvm
20:38
[Coke] sees that 08 is back for 42 minutes and has what looks like dead cron jobs on it. Coke re-runs today's runs. 20:42
[Coke] diakopter++, probably. 20:43
diakopter something like that
moritz will probably restart the evalbot the proper way later ;) 20:44
lizmat indeed, but you might want to check with diakopter whether it was the cronjob that killed 08
diakopter doesn't know and doesn't know how to find out
[with available time/attention resources]
[Coke] they've been running on 07 for months with no issues. 20:45
and 08 is a bigger box.
lizmat [Coke]: ok
PerlJam
.oO( maybe it just looks bigger from the outside )
20:46
lizmat m: class A { has constant $.pi = 22/7 }; say A.new.pi # from S03:5176
synopsebot Link: perlcabal.org/syn/S03.html#line_5176
camelia rakudo-moar 90288f: OUTPUT«===SORRY!=== Error while compiling /tmp/owyMOn1gYI␤Virtual call $.pi may not be used on partially constructed objects␤at /tmp/owyMOn1gYI:1␤------> class A { has constant $.pi⏏ = 22/7 }; say A.new.pi # from S03:517…»
synopsebot Link: perlcabal.org/syn/S03.html#line_517
lizmat std: class A { has constant $.pi = 22/7 }
lizmat :-( 20:47
that was a shortlived butterfly :-(
[Coke] more cores, anyway 20:48
[Coke] (and I didn't expand to use more I'm being good. everything is ulimited, so if a spec test goes crazy, it'll get killed eventually) 20:48
diakopter: I've completely moved off 07, btw. 20:49
camelia std : OUTPUT«Can't chdir to '/home/p6eval/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 163.␤ EvalbotExecuter::_auto_execute('HASH(0x1944cf0)', 'class A { has constant $.pi = 22/7 }', 'GLOB(0x184c470)', '/tmp/DQv85VayPN', 'std') called at lib/EvalbotExecuter.…»
dalek kudo/nom: de16265 | (Elizabeth Mattijsen)++ | src/core/Num.pm:
We have empty set ∅, then why not have π as well?

Not for parrot, to prevent heat death parsing times.
20:49
lizmat std: class A { has constant $.pi = 22/7 }
diakopter [Coke]: ok cool, thanks 20:49
camelia reports Lost connection to server irc.freenode.org. 20:50
lizmat ok, seems doing something with std: kills camelia
timotimo tony-o: the point is that we can't close the connection when we turn the connection into a websocket
lizmat seems like an oversight in the move to 08
[Coke] r: say π 20:51
lizmat [Coke]: will need some time
camelia std : OUTPUT«Can't chdir to '/home/p6eval/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 163.␤ EvalbotExecuter::_auto_execute('HASH(0x1944cf0)', 'class A { has constant $.pi = 22/7 }', 'GLOB(0x1b9fcc0)', '/tmp/axmfKHx9Ko', 'std') called at lib/EvalbotExecuter.…» 20:52
camelia rakudo-jvm 90288f: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤» 20:52
..rakudo-{parrot,moar} 90288f: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ π used at line 1␤␤»
btyler (backlogging) RE '-' usage in names, it's something that started to stick to my fingers very quickly. I was writing hyphenated names in p5 without thinking about it until the compiler barked at me 20:56
timotimo can someone see if the pull request for perl6/modules.perl6.org works properly and merge it if it does? 20:58
[Coke] another install-related borkage. If you rebuild rakudo in your build directory and cause new versions of your vm & nqp to be installed, you have a period of time where your installed perl6 isn't valid, right? (since there's a mismatch of the installed versions of the 3 tiers) 21:00
FROGGS [Coke]: only for parrot and nqp-* 21:01
lizmat [Coke]: maybe the same trick as the empty_set can be used to create π
[Coke] FROGGS: also moar. 21:02
FROGGS [Coke]: no, usually not
[Coke] just verified. i reconfig'd, which installed nqp... which means my globally installed "perl6" is now borked until I happen to finish building rakudo-moar (here's hoping HEAD builds!) :(
tony-o timotimo got ya- i'll look at how that would work
[Coke] FROGGS: it's happening right now.
I run my installed perl6, I get:
$ perl6
Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp' at <unknown>:1 (/Users/williamcoleda/perl6/languages/nqp/lib/Perl6/Pod.moarvm:<dependencies+deserialize>:237) 21:03
timotimo thanks :)
FROGGS [Coke]: correct, you have an nqp<->rakudo mismatch
[Coke] FROGGS: THAT IS WHAT I AM SAYING, YES.
timotimo but i'm discovering i was only really using that as a reason to procrastinate work on my project
[Coke] that the build/install process is borked that it allows that.
FROGGS [Coke]: though, you can happily pull and reconfigure and make install moar without such a problem
[Coke] ... which I am not complaining about. 21:04
PerlJam [Coke]: you would have it build everything in a temp dir and then copy/mode when the rakudo build was successful? 21:05
FROGGS [Coke]: ahh, so you are always trigger the rebuild in the rakudo dir... that's the difference to what I do :o)
PerlJam s/mode/move/
[Coke] I did say "also moar". apologies. I haven't tried that particular combination.
PerlJam: yes.
dalek ast: f696a6f | coke++ | S32-num/pi.t:
add test for literal π

  lizmat++
21:08
[Coke] timotimo: i love jquery. 21:09
please use it wherever javascript is sold. 21:10
timotimo vanilla-js.com/ 21:11
gtodd either in my testing of the perlmonks logfile pattern matching "benchmark" ( perlmonks.org/?node_id=1099617 )... perl6-m has got 40% faster ... or I wasn't careful to check what was running on my machine the first few times I ran the "benchmark" .... 21:14
tadzik eleks.github.io/js2js/
gtodd has anyone else noticed a speed up ?
timotimo gtodd: could be jit vs no jit
gtodd doh! 21:15
yeah that's it
forgot I added that
[Coke] the vanilla js documentation link is going to a straight js documention link. 21:15
timotimo yes
gtodd timotimo: oh well ... so the "Great List Refactor" willl even be better than this ;-) 21:16
tadzik thatsthejoke.jpg :P
gtodd haha
timotimo [Coke]: also check out where the "plugins" link leads
[Coke] Idon'tgetit.com
gtodd chocolatejs.org
:P
[Coke] So you are not making a serious recommendation of technology I should look at?
timotimo oh, that exists, gtodd
gtodd so fat I use pure vanilla perl6
[Coke] ok. in that case, I stick by jQuery. :P 21:17
timotimo [Coke]: i was saying "jquery's features are partially supplanted by stuff that's natively available in js by now"
and "jquery is bloat and people learn jquery instead of learning js"
youmightnotneedjquery.com/ 21:18
[Coke] (natively available) ... do you support IE8 anywhere?
leont Perl6 doesn't have a monotonic timer yet, right?
timotimo no, when i detect an IE8, i display a huge overlay asking the user to upgrade
:P
leont: instant is monotonic
m: say now.WHAT
camelia rakudo-moar 90288f: OUTPUT«(Instant)␤»
timotimo m: say now
camelia rakudo-moar 90288f: OUTPUT«Instant:1410815962.589945␤»
[Coke] those samples are all much more verbose in IE than in jQuery. 21:19
and no note of whether the code is the same across browsers.
so, I'll continue with jquery. definitely makes my job easier. 21:20
leont timotimo: are you sure? That looks like a wallclock time to me…
S32/Temporal doesn't contain the word monotonic 21:21
timotimo m: say now - time
camelia rakudo-moar 90288f: OUTPUT«Instant:35.956720␤»
timotimo that's the amount of duplicate seconds
leont Wallclocks are notoriously unreliable for benchmarking purposes
Right. That's taking out once source of non-monotonicity, but that's not giving monotonic guarantees 21:22
AFAICT
[Coke] Anyway, if someone wants to use jquery in the future on web stuff, it's fine with me; we have people who can support it if needs be.
timotimo ok :) 21:23
[Coke] still lots of failures in rakudo-star dailies.
what can we do to get fixes out to the modules that are failing? 21:24
timotimo poke the module owners or people with too much time
speaking of people with too much time
should get started on that weekly ...
[Coke] just a pita since I cannot easily mark a failure as "I already reported that". 21:25
nine [Coke]: jquery is thankfully more and more obsolete. Its emphasis on making code easier to write completely missed that code is much more often read than written. 21:26
timotimo [Coke]: oh damn, that's right
[Coke] nine: I find jquery MUCH easier to read. 21:36
"did they copy all this boilerplate required to do an ajax call with no library?" vs. "make an ajax call". 21:37
lizmat just realized that Str.lines is also recognizing unicode line endings 21:39
timotimo "oh no!"?
lizmat S02:63 says: "Perl can count Unicode line and paragraph separators as line markers, but that behavior had better be configurable so that Perl's idea of line numbers matches what your editor thinks about Unicode lines. 21:40
synopsebot Link: perlcabal.org/syn/S02.html#line_63
nine [Coke]: speaking names vs. a function that has two names without any meaning at all and no less than 6 (!!) completely different uses.
lizmat to make it configurable, I think we need a CCLASS_CRLF
I tried a diff for that: gist.github.com/lizmat/4f31120e7ca6bbebc16d
diakopter I think there was supposed to be some record separator (and maybe already there?)
lizmat does that make sense ?
nine sleep & 21:41
lizmat good night nine! 21:42
timotimo gnite nine :) 21:43
which person in here is perlpilot on github again? 21:45
diakopter PerlJam methinks 21:46
timotimo ah, that makes sense
lizmat it does?
timotimo it doesn't? 21:47
lizmat the names share the prefix Perl (case insensitively) 21:48
but that's about it :-)
timotimo well, i meant it more like "that rings a bell" 21:53
lizmat ah, well it rang a bell for me as well, fwiw :-) 21:54
diakopter PerlJam always reminds me of ToeJam & Earl 21:55
timotimo p6weekly.wordpress.com/?p=232&s...76083d3297 - feedback pleez 21:56
tony-o timotimo: it looks like i could just add an untap if i see the header 'Upgrade: websocket' 21:57
timotimo tony-o: that's easy enough, but do you know how re-tapping it in order to read the rest of the headers will allow us to keep all data? 21:58
or will we be losing data in between?
lizmat timotimo: seems to be one <li> too many at the end? 21:59
tony-o timotimo: i can untap after headers are complete
timotimo lizmat: that's something i can fix by myself ;) 22:00
also the extroduction pararaph is missing
tony-o oh i see what you mean, i can pass the headers to a handler after untapping or we can handle websockets via a 'register'ed sub
lizmat timotimo: moritz fixed the segfault when sending on a closes socket 22:01
timotimo ah, nice
lizmat also: Bags and Mixes now return pairs, as per spec change
timotimo "return pairs"? 22:02
lizmat m: say @(<a a b c c>.Bag)
camelia rakudo-moar de1626: OUTPUT«"a" => 2 "b" => 1 "c" => 2␤»
timotimo ah, when coerced to a list
lizmat unlike Set, which only returns keys in that case
m: say @(<a a b c c>.Set)
camelia rakudo-moar de1626: OUTPUT«a b c␤»
lizmat this used to be keys for all Set/Bag/Mixes 22:03
timotimo ah
that's something you implemented?
lizmat yes
timotimo thank you :)
lizmat TimToady did a some reification work that I think, made the spectest at least 5% faster
lizmat 02db739a82874e 22:04
pmurias it's awesome that rakudo keeps getting faster, rather then the usual route of a Perl 6 implementation getting slower as features are added 22:05
tony-o timotimo: how are you implementing web sockets?
as a module or some kind of native p6 thing?
timotimo a module, of course 22:06
tony-o are you extending it into the http-server-async space ?
lizmat timotimo: that's about it from my end, I think 22:07
timotimo thank you :) 22:08
tony-o: i have not yet started, actually
just read the rfc and thought about things, checked out if all our dependencies are good enough yet (base64, sha1)
tony-o timotimo: i'll put together a skeleton for the 'upgrade' header and include that as an example - 22:10
and fix the readme 22:11
timotimo cool, thanks :)
any good ideas for how to best handle static file serving?
tony-o probably another plugin - i'll put that together as the example of how to handle websockets too :-) 22:12
carlin how should I test code that says/prints? 22:14
lizmat also calls it a night
sleep&
tony-o carlin: what are you testing that says/prints? 22:21
anyone have output of what the separate is for windows @*INC ?
carlin tony-o: perl6 code, it's a command-line interface, so I want to test that output is what is expected 22:24
tony-o you could probably run it in a process or hijack stdout 22:25
alexghacker m: %t = a => 1; say !%t{"a"}:exists 22:26
camelia rakudo-moar de1626: OUTPUT«===SORRY!=== Error while compiling /tmp/hzVCR3YvxK␤Variable '%t' is not declared␤at /tmp/hzVCR3YvxK:1␤------> %t⏏ = a => 1; say !%t{"a"}:exists␤ expecting any of:␤ postfix␤»
alexghacker m: %t = a => 1; say !(%t{"a"}:exists)
camelia rakudo-moar de1626: OUTPUT«===SORRY!=== Error while compiling /tmp/IdLqG6DqgK␤Variable '%t' is not declared␤at /tmp/IdLqG6DqgK:1␤------> %t⏏ = a => 1; say !(%t{"a"}:exists)␤ expecting any of:␤ postfix␤»
alexghacker m: my %t = a => 1; say !%t{"a"}:exists
camelia rakudo-moar de1626: OUTPUT«Unexpected named parameter 'exists' passed␤ in sub prefix:<!> at src/gen/m-CORE.setting:4217␤ in block <unit> at /tmp/uQCwyixzmX:1␤␤»
alexghacker m: my %t = a => 1; say !(%t{"a"}:exists)
camelia rakudo-moar de1626: OUTPUT«False␤»
alexghacker as a perl6 newbie and many year perl5 veteran, it seems odd to me that unary ! binds more tightly than an adverb 22:27
can someone please explain that to me?
TimToady operator adverbs are just tighter than comma 22:28
however...
m: my %t = a => 1; say %t{"a"}:!exists
camelia rakudo-moar de1626: OUTPUT«False␤»
TimToady you can negate the adverb in this case
alexghacker oooo.... shiny
timotimo good day, TimToady :)
alexghacker tyvm
tony-o m: my %t = a => 1; say so %t{"a"}:exists
camelia rakudo-moar de1626: OUTPUT«True␤»
tony-o m: my %t = a => 1; say !so %t{"a"}:exists 22:29
camelia rakudo-moar de1626: OUTPUT«False␤»
tony-o i like negative the adverb, didn't know that worked
timotimo "!so" is equivalent to "not" :P
TimToady m: my %t = a => 1; say not %t{"a"}:exists
camelia rakudo-moar de1626: OUTPUT«False␤»
TimToady or you can just use the ! that's looser
tony-o if i'm in a role, how do i get the class that the role is in?
TimToady ::?CLASS or so 22:30
timotimo TimToady: p6weekly.wordpress.com/?p=232&s...76867710ec ← looks good to you?
tony-o Could not locate compile-time value for symbol ::?OUTER 22:32
timotimo that would be OUTER::
TimToady I also finished adding .plan, so it works right now
timotimo oooh!
i read that and thought "i need to note this!", but forgot >_< 22:33
TimToady and made require return True, but failed to get it to declare its symbol yet (though I added a test)
the specchange of Bag and Mix returning pairs was also this week 22:34
not just the implementation :)
but mostly I've been studying up for the GLR 22:35
tony-o m: role T { method t(){ say OUTER::?CLASS; }; }; class U does T { }; U.new.t(); 22:36
camelia rakudo-moar de1626: OUTPUT«===SORRY!=== Error while compiling /tmp/2iseSS2E7z␤Two terms in a row␤at /tmp/2iseSS2E7z:1␤------> role T { method t(){ say OUTER::⏏?CLASS; }; }; class U does T { }; U.new.␤ expecting any of:␤ post…»
tony-o sorry, i've been out of the loop on p6 for a little while writing an ios app
TimToady you shouldn't need OUTER there 22:37
tony-o m: role T { method t(){ say ::?CLASS; }; }; class U does T { }; U.new.t();
camelia rakudo-moar de1626: OUTPUT«(U)␤»
tony-o thank you 22:38
TimToady and Mrs TimToady have been married 35 years today! That's longer than many of you are old. :) 22:42
diakopter barley 22:43
timotimo cool! :)
tony-o 5 years older than i am :-) congrats! 22:48
carlin wonders who the youngest here is 22:50
TimToady of the active contributors, probably Mouq++ 22:52
tony-o how old is mouq? 23:03
TimToady does not feel that that information is his to give out :) 23:05
BenGoldberg m: my %a; %a{"b"}.WHAT.say;
camelia rakudo-moar de1626: OUTPUT«(Any)␤»
BenGoldberg m: my %a; %a{"b".list}.WHAT.say;
camelia rakudo-moar de1626: OUTPUT«(Parcel)␤»
BenGoldberg m: my %a; %a{"b"} += 1; %a.say; 23:06
camelia rakudo-moar de1626: OUTPUT«"b" => 1␤»
BenGoldberg m: my %a; %a{"b".list} += 1; %a.say;
camelia rakudo-moar de1626: OUTPUT«"b" => 2␤»
BenGoldberg m: my %a; say %a{"b".list} + 1; # AHA! 23:07
camelia rakudo-moar de1626: OUTPUT«2␤»
BenGoldberg m: my %a; %a{"b".list}.say 23:08
camelia rakudo-moar de1626: OUTPUT«(Any)␤»
tony-o TimToady: looking at ::?CLASS, how do i get that into a string?
timotimo you mean {::?CLASS}?
tony-o yea 23:09
TimToady .^name maybe?
tony-o m: class t { method y { {::?CLASS}.name.say; }; }; t.y; 23:10
camelia rakudo-moar de1626: OUTPUT«␤»
TimToady no, no, timotimo was talking about interpolating inside "" 23:11
timotimo aye
TimToady and I was talking about calling into the metaobject
tony-o oic, that doesn't work either
TimToady which needs a ^
timotimo m: class t { method y { say "{::?CLASS}"; }; }; t.y;
camelia rakudo-moar de1626: OUTPUT«use of uninitialized value of type t in string context in method y at /tmp/lPD722ZcDI:1␤␤␤»
tony-o m: class t { method y { "{::?CLASS}".say }; }; t.y;
camelia rakudo-moar de1626: OUTPUT«use of uninitialized value of type t in string context in method y at /tmp/_FluJEIQ26:1␤␤␤»
timotimo m)
m: class t { method y { say "{::?CLASS.^name}"; }; }; t.y;
camelia rakudo-moar de1626: OUTPUT«t␤»
TimToady or .gist if you don't mind the parens 23:12
tony-o damn, getting lessons in p6 (again) after the break :-)
ty
timotimo yw 23:13
leont Git a double free in moar, no idea how to make this case small though :-/ 23:51
leont It involved trying if @<foo> DWIMed (guess not) 23:53