»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:02 aborazmeh left 00:06 jerrycheung left 00:07 chenryn joined
[Coke] diakopter: ah, so maybe it's not entirely me. 00:08
camelia: m: say 3
camelia [Coke]: rakudo-moar ee805a: OUTPUT«3␤»
diakopter well it's calmed down now
also there's some script kiddie with username larry installing advanced persistent threats that run entirely in a turing-complete interrupt-throwing CPU-instruction-less scheme 00:09
TimToady looks like a new java process is spawned every 30 seconds or so, and there's always 100%-200% CPU load on it 00:13
now it's moar, so I guess it's just compiling 00:18
and now it's parrot, duh
00:19 jerrycheung joined
TimToady oh, yeah, I'd forgotten the failure mode of STD now, it randomly picks one op= to not parse, but it's a different one every time you try to make, sigh 00:22
so looks like something is dependent somewhere on memory trash 00:23
diakopter *startle* 00:24
that um sounds like a perl bug
TimToady yes, both machines that fail are running 5.18.2
00:27 chenryn left
TimToady and nothing stresses p5 quite like std does... 00:27
funny though that it's always an op= parse that fails
so it's something that is specifically poked by op= parsing 00:28
diakopter try a huge parse without any of those?
TimToady well, one can rewrite all the op=, of course, but that's, like, work...
00:30 jack_rabbit joined
diakopter
.oO( next yapc::na as a Perl Roast? such ironic? )
00:36
TimToady wow, you wouldn't think that a module named Try::Tiny would pull in ten billion other modules... 01:02
that Moose does this is not unexpected, however :) 01:04
01:09 dayangkun joined
TimToady and...the Moose install fails >.< 01:11
01:11 slmult0 joined 01:14 avuserow joined 01:17 FROGGS_ joined 01:19 yeahnoob joined 01:21 FROGGS left
TimToady nope, STD fails under 5.20.1 too 01:23
dinner &
01:28 slmult0 left, slmult0 joined 01:33 [Sno] left, [Sno] joined 01:37 dayangkun left
tony-o timotimo: is there a flag on tap to detect whether it is closed ? 01:38
01:40 daxim__ left
diakopter if it said it wasn't closed, it wouldn't be guaranteed to be still open when you tried to use it ^_^ 01:41
01:42 daxim__ joined 01:43 Psyche^ joined 01:45 ilbot3 left, firnsy left
tony-o i'm trying to detect whether my tap is being hijacked by another method 01:45
or if it is closed, i'm not sure which one is right 01:46
01:46 slmult0_z joined 01:48 [Sno] left, slmult0 left, raiph left, Psyche^_ left, vike left, mattp_ left, araujo left, davido_ left, erkan left, Woodi left, sivoais left, dj_goku left, Juerd left, pnu_ left, itz left, go|dfish left, pochi left, tinita_ left, amkrankr1leuen left, Rounin left, TimToady left, erdic left, huf left, salv0 left, leedo left, moritz left, Grrrr left, cosimo_ left, yukko left 01:50 ilbot3 joined 01:51 slmult0_z left 01:52 leont left 01:53 [Sno] joined, raiph joined, vike joined, mattp_ joined, araujo joined, davido_ joined, erkan joined 01:54 Woodi joined, sivoais joined, dj_goku joined, Juerd joined, pnu_ joined, itz joined, go|dfish joined, pochi joined, tinita_ joined, amkrankr1leuen joined, Rounin joined, TimToady joined, erdic joined, huf joined, salv0 joined, leedo joined, moritz joined, Grrrr joined, cosimo_ joined, yukko joined, araujo left, go|dfish left 01:55 araujo joined, go|dfish joined 02:25 firnsy joined, firnsy left, firnsy joined 02:46 noganex_ joined 02:49 noganex left 03:07 Pleiades` joined, jerrycheung left 03:20 jerrycheung joined 03:31 vendethiel- joined 03:33 vendethiel left 03:36 vendethiel joined 03:38 vendethiel- left 03:44 raiph left 04:08 araujo left
timotimo tony-o: should we perhaps make the parsing routine for Request's headers less duplicative for the work it does? 04:15
it'll be splitting and parsing the first header for every byte after the first header's : or something like that 04:16
04:17 BenGoldberg left 04:21 anaeem1_ joined 04:26 anaeem1_ left 04:27 anaeem1 joined
tony-o timotimo: yea i can work on that more too, i'm working on allowing a plugin to hijack the connection 04:36
timotimo tony-o: i'm now interested in building some routing module that would fit nicely into HTTP::Server::Async; do you know of prior art that's worth stealing ideas from? 05:04
also, do we have anything sensible that we can use to serve file content? like sendfile? 05:09
(possibly way premature optimization here)
another thing i was wondering about: what ways are there to gradually send chunks of data as an answer to an XMLHttpRequest and have it run some javascript code for each chunk we send off through the socket? 05:13
05:15 itz left, itz joined 05:20 [Sno] left 05:21 [Sno] joined 05:25 jack_rabbit left 05:30 kaare_ joined 05:38 mr-foobar joined 05:40 mr-foobar left
timotimo reads and learns about server-sent events and EventSource 05:41
05:41 mr-foobar joined
timotimo seems like it's a nice alternative to websockets if you only need to stream events from the server to the client, but not send responses back through the exact same channel 05:43
and it doesn't require the upgrade dance at all
05:47 [Sno] left 05:48 [Sno] joined 05:52 xenoterracide joined 06:00 xenoterracide left 06:02 FROGGS_ left 06:06 bjz joined
vendethiel ingy: missing readme update :p 06:09
06:16 FROGGS_ joined 06:49 kaleem joined 06:55 jerrycheung left 07:08 Alina-malina left 07:09 Alina-malina joined, jerrycheung joined, darutoko joined 07:11 Alina-malina left 07:13 virtualsue joined 07:17 jerrycheung left 07:18 BinGOs joined 07:19 zakharyas joined 07:43 Alina-malina joined 07:46 jerrycheung joined 07:47 Ven joined
Ven well met, #perl6 07:47
07:52 bjz_ joined, bjz left 07:53 brrt joined
sergot mo/rning 07:57
07:58 brrt left 08:02 rlilja is now known as Larry_the_cow
Ven well 08:03
08:07 FROGGS_ is now known as FROGGS
FROGGS lizmat: thanks, I'll look into it 08:07
yoleaux 16 Sep 2014 22:10Z <lizmat> FROGGS: feels like 4c7922850a is adding ~ .5 second to setting parsing
08:16 mr-foobar left 08:18 slmult0_z joined 08:22 telex left, slmult0_z left 08:24 telex joined, Akagi201 left 08:28 odc joined 08:40 slmult0_z joined 08:43 slmult0_z left 08:49 slmult0_z joined 08:50 slmult0_z left, slmult0_z joined 08:52 dakkar joined 08:54 WAAJHOH joined 08:59 cognome joined 09:02 jerrycheung left 09:06 virtualsue left 09:11 mr-foobar joined 09:13 fhelmberger joined
lizmat leont: are you seeing an improvement with my interpretation of your fix? 09:21
09:29 yeahnoob left
dalek kudo/nom: 46a0d29 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
We don't need a hash for extra promises
09:31
09:39 denis_boyun_ joined
dalek ecs: 3a9b7a1 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Promise.keep/break no longer need explicit values
09:47
09:51 slmult0_z left
Ven re: features matrix: "Argument coercion" - did we fix the syntax? 09:51
LoL - what's missing? 09:52
m: my @a = 1, 2, 3, 4; say @a[].perl; say @a[*].perl
camelia rakudo-moar 567da3: OUTPUT«Array.new(1, 2, 3, 4)␤(1, 2, 3, 4)␤»
Ven meh. One day I'll understand the difference ) 09:53
lizmat (1,2,3,4) is a Parcel
m: my @a = 1, 2, 3, 4; say @a[].WHAT; say @a[*].WHAT
camelia rakudo-moar 567da3: OUTPUT«(Array)␤(Parcel)␤»
Ven m: my @a = ^5; say @a[]; @a[].push: 3; @a = ^5; say @a[*]; @a[*].push: 4; 09:54
camelia rakudo-moar 567da3: OUTPUT«0 1 2 3 4␤0 1 2 3 4␤Cannot call 'push'; none of these signatures match:␤:(Any:U \SELF: *@values, *%_)␤ in block <unit> at /tmp/ObUjVVC9pL:1␤␤»
lizmat the Zen-slice just returns self
Ven zen is the [], right?
lizmat yes
Ven So, I can't push to a [*]. 09:55
because a parcel is immutable.
Why Any:Undefined tho?
lizmat whuch Any:U ? 09:56
Ven "none of these signatures match:␤:(Any:U \" on @a[*].push 09:57
I like how green that feature matrix is, btw :-)\ 09:59
lizmat the Any:U is for
m: my %h; %h<a>.push: 42; say %h.perl
camelia rakudo-moar 567da3: OUTPUT«("a" => [42]).hash␤»
lizmat it vivifies an array 10:00
Ven mmh. 10:01
m: my Parcel @a; @a.push: 3;
camelia rakudo-moar 567da3: OUTPUT«Type check failed in .push; expected 'Parcel' but got 'Int'␤ in method push at src/gen/m-CORE.setting:8604␤ in block <unit> at /tmp/2E8sXvzB0B:1␤␤»
Ven of course...
lizmat that's an Array of Parcel 10:02
Ven yep :). 10:03
m: for 1, 2, (3, (4, 5)[*], 6)[] { .say }
camelia rakudo-moar 567da3: OUTPUT«1␤2␤3␤4␤5␤6␤»
lizmat developer.apple.com/library/prerel...index.html # nice for when we have rakudo on JS 10:10
10:11 virtualsue joined
dalek kudo/nom: 0c54522 | (Elizabeth Mattijsen)++ | src/core/Promise.pm:
Bring Promise up to spec wrt keep/break
10:13
kudo/nom: 79b6cec | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Beef up the ChangeLog a bit
10:14
10:20 leont joined 10:31 kaleem left 10:38 [Sno] left 10:39 [Sno] joined
dalek kudo/nom: 9d2cfad | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
Don't need to pass values to .keep/.break anymore
10:39
10:40 virtualsue left 10:41 denis_boyun_ left 10:44 Larry_the_cow is now known as Larre_the_cow 10:45 cognome left 10:46 cognome joined 10:50 cognome left
lizmat jnthn, brrt: this might interest you: gist.github.com/lizmat/4012dd0819e30dd8196b 10:51
Making Str.words always return a Parcel breaks building core setting with a malloc error
(from 9d2cfad1b369c1d5) 10:52
Ven "thou shall never pass a string, a bool or an int to a function" - somebody. # lizmat++ 10:54
10:55 virtualsue joined 10:57 mberends_ joined 10:58 Akagi201 joined 10:59 anaeem___ joined 11:01 mberends_ left 11:02 anaeem1 left 11:06 kaleem joined 11:09 bjz_ left, bjz joined 11:16 [Sno] left, [Sno] joined 11:53 colomon left 11:55 anaeem___ left 11:57 anaeem1_ joined 11:58 colomon joined
Ven m: sub m(:@a?) { say @a.perl }; m; say "alive" 12:12
camelia rakudo-moar 9d2cfa: OUTPUT«===SORRY!===␤Regex not terminated.␤at /tmp/aDu7UPQtzn:1␤------> m(:@a?) { say @a.perl }; m; say "alive"⏏<EOL>␤Couldn't find terminator ;␤at /tmp/aDu7UPQtzn:1␤------> m(:@a?) { say @a.perl }; m; say …»
Ven m: sub m(:@a?) { say @a.perl }; m; say "alive";
camelia rakudo-moar 9d2cfa: OUTPUT«Cannot call 'match'; none of these signatures match:␤:(Cool:D: Any $target, *%adverbs)␤ in block <unit> at /tmp/UU2T9ETHaA:1␤␤»
Ven it just .. loops here. 12:13
leont m is a regex operator, it's not calling the function… 12:22
I think… 12:23
timotimo m: $_ = "hello there"; m; ... ;; 12:25
camelia ( no output )
timotimo m: $_ = "hello there"; say m; ... ;;
camelia rakudo-moar 9d2cfa: OUTPUT«「hel」␤␤»
timotimo m: $_ = "hello there"; say m(*); 12:27
camelia rakudo-moar 9d2cfa: OUTPUT«===SORRY!=== Error while compiling /tmp/oy6Eh10fNG␤Undeclared routine:␤ m used at line 1␤␤»
timotimo for this reason, you cannot use ( ) as the delimiters for regex operators
Ven m: sub k(:@a?) { say @a.perl }; k; say "alive"; 12:28
camelia rakudo-moar 9d2cfa: OUTPUT«Array.new()␤alive␤»
Ven kek
thanks timotimo
timotimo <3
Ven timotimo: is there an equivalent to p5's s///r; ? 12:29
timotimo what does /r do?
PerlJam Ven: $string.subst(...)
Ven timotimo: return instead of in-place modify 12:30
PerlJam timotimo: it's similar to if you'd done ($copy = $string) =~ s////;
Ven PerlJam: :(
leont Has anyone ever tried to use grammars on a indenting based format? I'm not sure how to efficiently maintain the indenting state. 12:36
timotimo we have a module for that
oh
it's not on the project list :\
Ven leont: see masak 's blogpost (strangelyconsistent.org IIRC) 12:37
FWIW, I'm not happy with any current solution :(
I saw some grammars from cognome to do that as well 12:38
PerlJam leont: specifically strangelyconsistent.org/blog/parsin...ented-text
timotimo masak: shall i add text::indented to the ecosystem? 12:39
Ven timotimo: doesn't really seem... extendable to me. At least not in its current form, I think 12:46
timotimo it's more like a preprocessor 12:50
Ven Right. But what do we want? One-pass parsing! ;P 12:52
nwc10 when do we want it? This week!
12:54 anaeem1_ left 12:55 guru joined
lizmat cycling& 12:55
12:55 guru is now known as Guest45401, Guest45401 is now known as ajr_
leont Yeah, what Ven said 12:57
masak yeah.
yoleaux 16 Sep 2014 19:25Z <[Coke]> masak: if he's on target for the release in 2 days
12:57 erkan left
masak I've had second thoughts about how text::indented should really look. 12:57
I'm willing to give it a second chance at some point, and then add that to the ecosystem.
leont It would be helpful I think if grammars could have attributes, but I'm having the impression that doesn't work
FROGGS ohh, the right ppl are online.... how do I get the average per key of a list of hashes like: ({ a => 42, b => 1 },{ a => 11, b => 3 }) 12:58
Ven FROGGS: %hash.map({ .key => avg(.value) }) ?
m: my %h =a => 1, b => 2; %h.map({ .perl.say }); 12:59
camelia rakudo-moar 9d2cfa: OUTPUT«"a" => 1␤"b" => 2␤»
nwc10 fa7a1cc97d064d8c8cadfbe0fbc565af0211c63b reveals a Rakudo on Moar spectest hang
FROGGS Ven: I've got a list of hashes, not a single hash
Ven oh, right :D
I read an hash of arrays]
nwc10 with it, t/spec/S17-procasync/kill.rakudo.moar hangs forever with a parent moarvm (stuck in a futex), a zombie child, a child stuck in a futex, and a child spinning on epoll 13:00
parent of fa7a1cc97d064d8c8cadfbe0fbc565af0211c63b is a syntax error in that spectest, so not clear what actually introduced the problem
masak FROGGS: you smash them into pairs, then .classify into key, then take hyper averages.
nwc10 suspect that automatic spectests may hang, unless they have a way to time out
FROGGS hmmmm
Ven m: my @froggss_hash = {a => 42, b => 1 }, { a => 3, b => 200 }; my %h; @froggss_hash.map({ %h{.key} += .value for .value }); say %h.perl 13:01
camelia rakudo-moar 9d2cfa: OUTPUT«No such method 'value' for invocant of type 'Hash'␤ in block <unit> at /tmp/RkC45aOhO4:1␤␤»
Ven m: my @froggss_hash = {a => 42, b => 1 }, { a => 3, b => 200 }; my %h; @froggss_hash.map({ %h{.key} += .value for $_ }); say %h.perl
camelia rakudo-moar 9d2cfa: OUTPUT«No such method 'key' for invocant of type 'Hash'␤ in block at /tmp/QEipJDun9H:1␤ in method reify at src/gen/m-CORE.setting:8185␤ in method reify at src/gen/m-CORE.setting:8021␤ in method gimme at src/gen/m-CORE.setting:8508␤ in method sink …»
Ven m: my @froggss_hash = ${a => 42, b => 1 }, ${ a => 3, b => 200 }; my %h; @froggss_hash.map({ %h{.key} += .value for $_ }); say %h.perl
camelia rakudo-moar 9d2cfa: OUTPUT«===SORRY!=== Error while compiling /tmp/nJj0xtHie4␤Unsupported use of ${a => 42, b => 1 }; in Perl 6 please use $(a => 42, b => 1 )␤at /tmp/nJj0xtHie4:1␤------> my @froggss_hash = ${a => 42, b => 1 }⏏, ${ a => 3, b …»
FROGGS masak++
Ven sighs at flattening 13:02
FROGGS m: say ({ a => 42, b => 1 }.flat,{ a => 11, b => 3 }.flat).classify(*.key)
camelia rakudo-moar 9d2cfa: OUTPUT«"a" => ["a" => 42, "a" => 11], "b" => ["b" => 1, "b" => 3]␤»
Ven m: m: segfaultpls
camelia rakudo-moar 9d2cfa: OUTPUT«===SORRY!=== Error while compiling /tmp/yCBtIPRosV␤Undeclared routine:␤ segfaultpls used at line 1␤␤»
Ven m: m: say 'a'
camelia rakudo-moar 9d2cfa: OUTPUT«a␤»
Ven m: m: my @froggss_hash = ${a => 42, b => 1 }, ${ a => 3, b => 200 }; my %h; @froggss_hash.map({ %h{.key} += .value for $_ }); say %h.perl
camelia rakudo-moar 9d2cfa: OUTPUT«===SORRY!=== Error while compiling /tmp/7OgFEr8m7P␤Unsupported use of ${a => 42, b => 1 }; in Perl 6 please use $(a => 42, b => 1 )␤at /tmp/7OgFEr8m7P:1␤------> : my @froggss_hash = ${a => 42, b => 1 }⏏, ${ a => 3, …»
Ven well that segfaults here.
m: say ({ a => 42, b => 1 }.flat,{ a => 11, b => 3 }.flat).classify(*.key).map({ .map(*.value) }) 13:03
camelia rakudo-moar 9d2cfa: OUTPUT«"a" => 42 "a" => 11 "b" => 1 "b" => 3␤»
masak m: sub avg { [+](@^x)/@x }; my %h1 = <a 42 b 1>; my %h2 = <a 11 b 3>; say (%h1.pairs, %h2.pairs).classify(*.key).map({; .key => avg .value>>.value })
camelia rakudo-moar 9d2cfa: OUTPUT«"a" => 26.5 "b" => 2.0␤»
masak FROGGS: ^
FROGGS thank you :o) 13:05
masak my pleasure.
FROGGS that's it then: gist.github.com/FROGGS/142df67239d20915245c 13:09
leont Is there any reason why attributes don't work in Grammars? I didn't instantiate this thing for nothing… 13:11
FROGGS lizmat: stage parse of my MATCH patch is only 0.013s slower
leont Or can I give arguments to rules? It's not clear to me how that would work… 13:12
FROGGS m: grammar Foo { has $.bar }
camelia ( no output )
tadzik m: grammar A { has $.b }; A.new(b=>7); say A.b
camelia rakudo-moar 9d2cfa: OUTPUT«Cannot look up attributes in a type object␤ in method b at src/gen/m-CORE.setting:3186␤ in block <unit> at /tmp/26Ax12gzNL:1␤␤»
tadzik m: u wot m8 13:13
camelia rakudo-moar 9d2cfa: OUTPUT«===SORRY!=== Error while compiling /tmp/eu4LF1SVqB␤Undeclared routines:␤ m8 used at line 1␤ u used at line 1␤ wot used at line 1␤␤»
tadzik oh
masak m: grammar G { has $.foo = "OH HAI"; regex TOP { { say $.foo } } }; G.parse("")
camelia rakudo-moar 9d2cfa: OUTPUT«(Any)␤»
masak m: grammar G { has $.foo = "OH HAI"; regex TOP { { say $.foo } } }; G.new.parse("")
camelia rakudo-moar 9d2cfa: OUTPUT«(Any)␤»
tadzik m: grammar A { has $.b }; say A.new(b=>7).b
camelia rakudo-moar 9d2cfa: OUTPUT«7␤»
masak leont: that *is* kinda weird.
tadzik works for me
FROGGS masak: no
not really
tadzik so they do work, maybe they're not quite accessible in rules
masak TimToady tends to say that .parse is a constructor.
FROGGS mind that self in a regex is something else
masak self in a regex is something else!? 13:14
FROGGS m: grammar G { has $.foo = "OH HAI"; method TOP { say $.foo } }; G.new.parse("")
camelia rakudo-moar 9d2cfa: OUTPUT«(Any)␤No such method 'MATCH' for invocant of type 'Bool'␤ in method parse at src/gen/m-CORE.setting:13923␤ in block <unit> at /tmp/EHzQkoO4Tq:1␤␤»
leont tadzik: yeah, they're not accessible in the rules AFAICT 13:15
masak ran stresstest. t/spec/S17-procasync/basic.t and t/spec/S17-procasync/print.rakudo.moar both fail with "Parse errors: Bad plan."
leont Which makes them rather useless
FROGGS m: class Foo { has $.bar = "abc"; method baz { "abc" ~~ /$.bar/ } }; say Foo.new.baz
camelia rakudo-moar 9d2cfa: OUTPUT«No such method 'bar' for invocant of type 'Cursor'␤ in method ACCEPTS at src/gen/m-CORE.setting:13953␤ in method baz at /tmp/IQ0W3MWKHa:1␤ in block <unit> at /tmp/IQ0W3MWKHa:1␤␤» 13:16
masak error message: Default constructor for 'Proc::Async' only takes named arguments
tadzik m: grammar A { has $.b; method selfie { say "but first..."; self }; token TOP { selfie() } }; say A.new(b=>7).parse("")
camelia rakudo-moar 9d2cfa: OUTPUT«===SORRY!=== Error while compiling /tmp/9JDp7Kcjm1␤Null regex not allowed␤at /tmp/9JDp7Kcjm1:1␤------> t first..."; self }; token TOP { selfie(⏏) } }; say A.new(b=>7).parse("")␤ expecting any of:␤ …»
FROGGS masak: do you see my err message?
tadzik I should try that off channel
masak FROGGS: I do.
FROGGS masak: self is the cursor
in a regex { } too 13:17
masak FROGGS: seems you changed the rules from "in a grammar" to "in a regex" on the way, though :)
FROGGS: there's nothing a priori to me that would make attrs not be accessible inside a grammar.
FROGGS masak: a regex token in a grammar is just a regex, no?
masak it's a kind of method, IIUC.
FROGGS but it is not code
it should work in a real method though, dunno why it does not 13:18
masak *nod*
anyone know anything about the two stresstest failures in t/spec/S17-procasync/basic.t and t/spec/S17-procasync/print.rakudo.moar?
seems something changed around Proc::Async recently. 13:19
FROGGS lizmat: knows about the print.t IIRC
err, s/://
13:22 FROGGS left 13:25 ajr_ left
Timbus_ thought i'd work a bit more on this gtk strangeness. moarvm segfaulted at p6capturelex ().. ah okay... *sips coffee and stares blankly at screen*. hmm. that was a good effort, imo. time to play video games. 13:25
tadzik ooh, tell me more
what games? :)
Timbus_ probably openttd :o 13:26
programming threads -- with trains
tadzik I like trains
Ven I LIKE TRAINS. 13:27
Timbus_ lol
13:28 ajr joined 13:29 ajr is now known as Guest84074
leont masak: until recently Proc::Async didn't really have such tests. It not working isn't new AFAIK, it being tested is 13:29
13:29 Guest84074 is now known as ajr_
leont Can anyone explain to me what <foo('bar')> is supposed to do in a regexp? I mean, it calls a function/method, but then what? How do I usefully use that? 13:36
13:36 mr-foobar left
timotimo you can call into a rule/regex/... like that 13:37
leont Is there any example of anything using it? That could be most enlightening. 13:39
13:39 ajr_ left
masak STD.pm6, I'm sure. 13:40
13:41 ajr_ joined
Ven also, it's a match, not a zero-width assertion 13:41
masak ah, yes. print.t and basic.t were both added Monday.
I'd like to either remove them from spectest.data, or fudge them as skip (since they fail). 13:42
leont Shouldn't that be TODO then? 13:43
13:44 rurban joined
masak TODO is for "parses but fails the test". this dies at parse. 13:45
13:45 ajr_ left
masak hm, or not necessarily when parsing the test. but it dies running it. 13:46
13:49 guru joined, guru is now known as Guest56862, Guest56862 is now known as ajr_
Ven Why is it that my ruby IDE is better at some kind of escape analysis than my compilers? 13:52
masak probably because the IDE source code is newer and more pliable... 13:57
13:57 ajr_ left
dalek p-js: e6ef35a | (Pawel Murias)++ | src/vm/js/ (2 files):
Iterating over hashes.

Implement nqp::iterval, nqp::iterkey_s.
  .key and .value missing.
13:59
p-js: 11a008a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Emit better formated if statements.
13:59 pmurias joined
masak oh, hm. seems basic.t and print.t pass now. re-running stresstests. 14:00
14:01 ajr_ joined
Ven pmurias++ 14:03
masak: right. But still :P. 14:05
14:06 Pleiades` left
Ven I'm kinda excited about clion. Well, I'll be as soon as it's not cmake-only anymore 14:06
leont masak: it tends to run unreliable, it seems 14:08
14:09 mst joined
pmurias we will need a Perl 6 IDE/editor support at some point 14:10
14:10 ajr_ left
Ven pmurias: maybe I'll work on an intellij plugin. I'm kinda fine with vim. 14:11
Well, a p6-ctags might be good
14:11 Pleiades` joined 14:12 liztormato joined, ajr joined, ajr is now known as Guest55842
masak t/spec/S17-procasync/kill.rakudo.moar seems to hang here. 14:12
14:13 Guest55842 is now known as ajr_
liztormato Sorry about the Proc::Async issues. Will look at them when I'm back, in a few hours 14:13
PerlJam
.oO( kill rakudo moar?!? )
14:14 ajr_ left
liztormato Please take the P::A tests out of spectestdata in the mean time 14:14
nwc10 masak: irclog.perlgeek.de/perl6/2014-09-17#i_9369887
pmurias Ven: I use and like vim too 14:15
14:15 ajr_ joined
masak liztormato: no sweat. just giving early warning. release day tomorrow. I'd like for us to be relatively stable then. whether that means taking things out, fudging, or fixing. 14:15
14:15 cognome joined
masak nwc10: aha. 14:17
nwc10: this indicates to me I should remove kill.t from spectest.data right now.
nwc10 masak: that will stop the 3 backends running it by default?
14:17 liztormato left
dalek kudo/nom: 5753dcc | masak++ | t/spectest.data:
Revert "Add Proc::Async.kill tests"

It hangs on Moar. See irclog.perlgeek.de/perl6/2014-09-17#i_9369887
This reverts commit abbd3767684b04d1ba677affd62a008ce8f62fa2.
14:18
masak nwc10: someone else is welcome to add it back with 2 backends running it.
14:18 liztormato joined
nwc10 masak: yes, not running it for now seems wise. 14:18
masak I'm not 100% sure how to do that. 14:19
14:19 ivanshmakov left, ivanshmakov joined
liztormato They should only run on moar anyway. So marked in spectestdata 14:19
masak oh. then that was the right thing.
14:23 treehug88 joined 14:25 FROGGS joined
dalek p-js: 3984fc2 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Make the call op make use of .stored_result.
14:29
p-js: a31cb51 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
stored_result takes a :$want which reduces the amount of temporary variables.
p-js: b3b5a13 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Remove dead code.
p-js: f1cfa6d | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Use add_sideffect_op more.
TimToady m: my \b1 = (a => 42, b => 1).Bag; my \b2 = (a => 11, b => 3).Bag; my \bv = [(+)] b1, b2; my \bk = bag map *.keys, b1, b2; say bv »/« bk 14:34
camelia rakudo-moar 9d2cfa: OUTPUT«"a" => 26.5, "b" => 2.0␤»
masak TimToady++
FROGGS O.o 14:35
TimToady hypers work on hashes too
dalek p-js: 1acca08 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Move method description above the correct method.
TimToady and you were just struggling to do what bag unions do naturally 14:36
pmurias Ven: re IDE plugin one of the things that I'm considering doing is creating a Perl 6/NQP brackets plugin
14:36 isacloud_____ left
Ven TimToady: bag map *.keys?? 14:36
14:36 pnu_ left, clkaoud left
Ven oh, read that wrong. (scala style) 14:36
masak m: my $b1 = (a => 42, b => 1).Bag; my $b2 = (a => 11, b => 3).Bag; my $bv = [(+)] $b1, $b2; my $bk = bag map *.keys, $b1, $b2; say $bv »/« $bk 14:37
camelia rakudo-moar 9d2cfa: OUTPUT«"a" => 26.5, "b" => 2.0␤»
masak ...for those of us who still don't think sigilless is all that cool :)
pmurias Ven: the brackets editor is written in javascript, so using nqp-js the plugin could be written in NQP (or in the future Perl6) and the brackets editor is web-dev oriented which seems an important platform for Perl 6 14:38
14:38 raiph joined
Ven pmurias: right, I've seen it. Wasn't it ace-compatible? 14:39
masak t/spec/S17-procasync/print.rakudo.moar failed one test (13) and TODO passed another (12).
it seems a bit flappy here.
TimToady m: my \b1 = (a => 42, b => 1).Bag; my \b2 = (a => 11, b => 3).Bag; my \bv = [⊎] b1, b2; my \bk = bag map *.keys, b1, b2; say bv »/« bk 14:40
camelia rakudo-moar 9d2cfa: OUTPUT«"a" => 26.5, "b" => 2.0␤»
TimToady works with ⊎ too
.u ⊎
yoleaux U+228E MULTISET UNION [Sm] (⊎)
masak ⊎se all the ⊎nicode! \o/
liztormato masak: It is very flappy. Hope jnthn can have a look at it before release
14:40 mst left 14:41 mst joined
colomon release tomorrow! 14:41
masak heh. unless someone pairs with him until he keels over :P
jnthn liztormato: Not likely. :(
TimToady m: my \b1 = (a => 42, b => 1).Mix; my \b2 = (a => 11, b => 3).Mix; my \bv = [⊎] b1, b2; my \bk = mix map *.keys, b1, b2; say bv »/« bk
camelia rakudo-moar 9d2cfa: OUTPUT«"a" => 26.5, "b" => 2.0␤»
TimToady okay, works with mixes too
jnthn Trouble is, I got Proc::Async to the point where it did the handful of things I immediately needed.
masak I think we should simply not include those tests yet. 14:42
colomon TimToady: we have hyper over Bags and Mixes working?! \o/
jnthn And so I'm watching y'all rediscover the things I know are undone but didn't have chance to do yet :(
TimToady since nobody specified that the values were integers
jnthn For example, the low-level MoarVM bit is already pushing a sequence number out
But I didn't get around to writing the thingummy on the Perl 6 side that makes sense of them.
TimToady colomon: no, we have hyper over hashes working, and Bags and Mixes are just hashes
jnthn Thus the dis-ordering. 14:43
colomon TimToady: …. was going to say same thing, but the result type will be different, eh?
TimToady m: my \b1 = (a => 42, b => 1).Mix; my \b2 = (a => 11, b => 3).Mix; my \bv = [⊎] b1, b2; my \bk = mix map *.keys, b1, b2; say (bv »/« bk).WHAT
camelia rakudo-moar 9d2cfa: OUTPUT«(Hash)␤»
liztormato jnthn: So it should be mored in seq number order?
jnthn liztormato: Yeah.
TimToady note that it returns a hash
colomon TimToady++
liztormato jnthn: Ok, I can fix that
jnthn liztormato: The seq number is there so you can make sure that happens
liztormato: But the mechanism needs care 14:44
liztormato: Basically, I suggest you do it with a mutex and a condvar associated with it.
Oh, maybe the mutex alone is enough
It needs a "currently more-ing" flag along with a "current sequence number/" one or so
TimToady m: my \b1 = Mix(a => 42, b => 1); my \b2 = Mix(a => 11, b => 3); my \bv = [⊎] b1, b2; my \bk = mix map *.keys, b1, b2; say Mix(bv »/« bk) 14:45
camelia rakudo-moar 9d2cfa: OUTPUT«Cannot coerce to Mix with named parameters␤ in block <unit> at /tmp/NVKaa7zh7k:1␤␤»
jnthn Probably a buffer too
TimToady heh, not sure coercers should know about named parameters
liztormato So the callback can be called by multiple threads at the same time?
jnthn liztormato: Yes.
liztormato: Well, that's not quite the right way to see it.
colomon m: my \b1 = Mix(a => 42, b => 1); my \b2 = Mix(a => 11, b => 3); my \bv = [⊎] b1, b2; my \bk = mix map *.keys, b1, b2; say (bv »/« bk).Mix 14:46
camelia rakudo-moar 9d2cfa: OUTPUT«Cannot coerce to Mix with named parameters␤ in block <unit> at /tmp/Lwcr6UGw0h:1␤␤»
jnthn liztormato: How it *actually* works is that we are throwing the events into the ThreadPoolScheduler's queue.
TimToady m: my \b1 = Mix(a => 42, b => 1;); my \b2 = Mix(a => 11, b => 3;); my \bv = [⊎] b1, b2; my \bk = mix map *.keys, b1, b2; say Mix(bv »/« bk)
camelia rakudo-moar 9d2cfa: OUTPUT«===SORRY!=== Error while compiling /tmp/Z2etlqd06R␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/Z2etlqd06R:1␤------> my \b1 = Mix(a => 42, b => 1⏏;); my \b2 = Mix(a => 11, b => 3;); …»
jnthn liztormato: And so multiple threads may grab the things.
colomon m: my \b1 = (a => 42, b => 1).Mix; my \b2 = (a => 11, b => 3).Mix; my \bv = [⊎] b1, b2; my \bk = mix map *.keys, b1, b2; say (bv »/« bk).Mix
camelia rakudo-moar 9d2cfa: OUTPUT«mix(a(26.5), b(2))␤»
14:46 isacloud______ joined
liztormato jnthn: Ok. That explains a lot 14:46
colomon m: my \b1 = (a => 42, b => 1, c=>3).Mix; my \b2 = (a => 11, b => 3).Mix; my \bv = [⊎] b1, b2; my \bk = mix map *.keys, b1, b2; say (bv »/« bk).Mix
camelia rakudo-moar 9d2cfa: OUTPUT«mix(a(26.5), b(2), c(3))␤»
jnthn liztormato: The solution, though, is to make sure only one thread canre it at a time. 14:47
TimToady m: my \b1 = Mix('a' => 42, 'b' => 1); my \b2 = Mix('a' => 11, 'b' => 3); my \bv = [⊎] b1, b2; my \bk = mix map *.keys, b1, b2; say Mix(bv »/« bk)
camelia rakudo-moar 9d2cfa: OUTPUT«mix(a(26.5), b(2))␤»
colomon wants a raised eyebrow smiley
liztormato jnthn: Gotcha
jnthn liztormato: I'm pretty sure, now I think about it, that you only need a lock. And a flag.
liztormato Flag?
jnthn Yes, for "something is more-ing a value Right Now" 14:48
Just a boolean.
there's various cases
The idea is that you only hold the lock momentarily, though.
Consider a chunk of data arriving. The first one. So, we see the sequence number is 1. We take the lock, and set the boolean saying we're more-ing. We then release the lock. 14:49
And call .more
Another thread, while we're doing the more-ing, pulls the next thing out of the queue. We take the lock, see the boolean is set. So we just put the new data we got into a buffer and let go of the lock. 14:50
That second thread does nothing more. 14:51
When the first thread then comes back from the .more-ing, it takes the lock, and notices that some other data is in the queue. It then takes responsibility for doing the more-ing of that thing that arrived.
That's quite cache friendly, as well as satisfying the one-at-a-time invariant.
14:51 Celelibi joined, pnu_ joined
jnthn Also need to handle the unfortunate case where the seq numbers show that you're out-of-order 14:52
liztormato In that way, are we sure things are in order
jnthn But again, you store the thing for the future.
And let the thread that gets the thing that goes "in the gap" .more both of them.
liztormato Ok. That answers my question
[Coke] (peanut gallery from the backlog; fine to remove tests that aren't fully baked with a release coming up, we can add them back in when they work. (we're at a stage now, we shouldn't be adding any tests that fail to spectest)
jnthn It's a slightly fiddly mechanism to write.
Note that IO::Socket::Async wants exactly the same. 14:53
14:53 chenryn joined
liztormato Will have a stab at the fiddle. ;-) 14:53
jnthn But sockets spew slower than processes so we get away with it more often ;)
But if we fix it for one, we fix it for both. :)
leont jnthn: glad to see my basic problem analysis was right, and that you have a clue of how to fix it :-)
[Coke] someone please verify that we get a decent jvm run for the release. Mine is currently exploding on host08
14:54 clkao joined
TimToady can do that 14:54
jnthn leont: Yeah. Sorry. :( I wish I'd been able to get to it before you ended up discovering it the hard way...
[Coke] TimToady++
14:54 mr-foobar joined
TimToady assuming you don't mind running HEAD of everything 14:54
jnthn leont: About the async code in Moar: its a bit gnarly but it's more tedious that it is difficult. 14:55
leont: The key thing to know is that we run a single event loop thread that is used to process async IO stuff
leont I'm started to get it, but it takes some time
jnthn leont: We give it work by sending AsyncTask objects. 14:56
Those are sent to it via a concurrent queue.
When it wants to notify that something is done, it schedules the callback to run by shoving it on a concurrent queue, supplied by a scheduler.
[Coke] re-pings the planeteria support person again.
14:56 ajr_ left
jnthn So that thread never actually runs Perl 6 land code, and can never get blocked up with such things. 14:57
[Coke] Util++ did the parrot release.
14:58 ajr_ joined
liztormato jnthn: In text mode, can we be sure we get line by line? 14:58
leont I think I get the async parts, it's more that's still alien to me.
s/more/moar/
jnthn liztormato: Can you define "text mode"?
[Coke] do we need line by line or just "in order" ?
liztormato Stdout_chars
leont I'm sure I'd understand a lot more once I grok MVMROOT, for example
jnthn liztormato: It's not about lines.
liztormato: Just about bunches of chars. 14:59
liztormato Ok
Just checking
jnthn liztormato: Can write a linify supply combinator of course ;)
liztormato Yup
14:59 kaleem left
jnthn leont: Oh, I can explain that one. :) 14:59
liztormato Supply.lines coming up 15:00
leont I guess it's doing stack-machine thingies 15:01
jnthn Not really 15:02
It's about the GC
The MoarVM GC can move objects
If you were to do something in C like:
MVMObject *fo = ...;
Ven
.oO( once they have roots, they don't move )
15:03
jnthn ...something that allocates...
Then after the allocating, the pointer in fo (I meant to type foo :)) would point to where the object *used to be*, not where it is now.
MVMROOT is used to tell the GC about adresses on the C stack that it needs to update should we run GC 15:04
leont Ah, right
jnthn Note that stack scanning is not an option for moving GCs
Because you aren't just looking at it, you need to update it.
15:04 jack_rabbit joined
jnthn And updating an integer that just happens to look pointer enough would be rather bad. :) 15:05
The other thing that's GC related that shows up a bunch in C code is MVM_ASSIGN_REF. 15:06
TimToady
.oO(When is conservative too progressive?)
jnthn Whcih really does a pointer assignment, but also trips a write barrier if we're going to violate the gen2 -> nursery constraint. 15:07
So, MVMROOT is about precise GC, and MVM_ASSIGN_REF is about generational GC.
Between them we can uplod the various invariants the GC cars about. 15:08
*cares
TimToady upholds jnthn's uploads 15:09
jnthn The lag on this SSH is enough I can't spot/fix my typos in time :)
pmurias Ven: I think it's using CodeMirror
jnthn The wee packets get tired, what with having to walk their way up and over the great wall... 15:10
15:11 eternaleye joined, esaym left 15:12 esaym153 joined
leont Kind of makes sense, though it makes me wonder if given concurrency the rooting isn't too late. 15:13
And does the block mean rooted while in this block? 15:14
jnthn Yes 15:15
The MVMROOT macro just saves you writing a push and pop call
The temp roots stack is per thread, just as the C stack is, so it's fine
It's important to be clear that this isn't about the particular object pointed to, it's about the pointer itself 15:16
So what's actually pushed is a pointer into the C stack
So the stack is of MVMCollectable **, *not* MVMCollectable * 15:17
liztormato continues cycling& 15:18
leont understands now
(maybe)
jnthn :)
The GC is stop-the-world. 15:19
So there's no concerns about one thread GCing while another is running.
15:19 liztormato left
jnthn (It's also parallel in that multiple threads can participate in the GC to get it done faster; for thread affinity/cache friendliness reasons, threads typically GC their own nursery, pass work when they encounter objects owned by another thread, and work-steal from any threads that marked themselves as blocked - perhaps on thread join, or sleep, or obtaining a lock, and so on) 15:20
Ven pmurias: isn't it using it? 15:24
15:24 Ven left
pmurias vendethiel: you are Ven's alter ego? 15:26
vendethiel: according to the wiki Brackets is using CodeMirror instead of Ace 15:27
15:28 grondilu joined 15:29 [Sno] left 15:30 [Sno] joined, spider-mario joined 15:33 pat_js joined
carlin is this error my fault, or a moar/rakudo's fault: 15:37
Unhandled exception: When invoking bind, Provided outer frame 0x1964f70 (MVMStaticFrame bind_one_param) does not match expected static frame type 0x1964d10 (MVMStaticFrame )
15:38 ggoebel11111111 joined
FROGGS carlin: not your fault 15:38
carlin: you should never see such low level error messages 15:39
dalek p-js: 20af910 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Refactor out args groups merging.
p-js: 2f1995e | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Refactor the 'call' op handling some more.
p-js: 820163d | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Implement calling methods.
p-js: ea1190b | (Pawel Murias)++ | src/vm/js/ (2 files):
Pass test 68.

Implement key and value methods on the thing returned from the hash iterator.
TimToady well, unless you're hacking in the low-level, in which case it might be your fault :)
FROGGS :P
15:40 ggoebel11111110 left
carlin FROGGS: okay, that's good then 15:41
well, good for me at least :p
TimToady [Coke]: gist.github.com/anonymous/7eb91dfe9a31f3d69a92 15:45
leont It seems :temp and :let aren't accepted in rules (the way :my and :state are) 15:46
TimToady they aren't declarators really
otoh STD uses :temp 15:47
leont S05 says «As quasi declarators, temp and let are also recognized», but I get an «Unrecognized regex modifier :let» error when trying to use them 15:48
TimToady so NYI basically, and rakudo works around the lack of :temp somehow 15:52
15:52 ajr_ left
jnthn By the grammar being written in NQP? :P 15:53
TimToady well, STD uses it to handle nested RX mods, for instance
jnthn Yeah. We do something equivalent. 15:54
TimToady m: say "foo" ~~ / :i ( :r FOO ) /
camelia rakudo-moar 5753dc: OUTPUT«「foo」␤ 0 => 「foo」␤␤»
jnthn Just lack the temp sugar in NQP
No reason we can't support it in Rakudo
TimToady something obviously keeps the :i inside the :r there
15:54 guru joined
jnthn Right 15:55
I know where the code doing it is )
15:55 guru is now known as Guest80759
jnthn Thing is we have no assignment in NQP, and temp/let hang off container semantics. 15:55
TimToady that's just :temp %*RX; in STD
nod 15:56
dalek kudo/nom: 8ae74d2 | jonathan++ | src/Perl6/Grammar.nqp:
Support :temp/:let declarators in regexes.
TimToady that was...fast... 15:57
jnthn That gets 'em to parse and compile at least :)
*least
Might need to see if let has the desired semantics.
TimToady how hard can the rest be >.<
jnthn As in, I dunno if the default definition of success semantics for routines cover what we need in regex land...
TimToady :foo should be invisible on the "success" level, I'd think 15:58
jnthn OK. Well, can tweak if what I just put in ain't enough. :) 15:59
TimToady as in, :foo should probably be in sink context anyway
and the Nil notionally returned by that notional sink should notionally not count as lack of notional success :) 16:01
jnthn Well, it's notionally midnight here and I not so notionally have work tomorrow, so should probably rest a bit :) 16:02
TimToady night, night
jnthn 'night 16:03
PerlJam m: my $x = 42; try { let $x = 57; fail }; say $x; try { let $x = 23 }; say $x;
camelia rakudo-moar 5753dc: OUTPUT«Unhandled exception: ␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13512 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:29)␤ f…»
dalek p-js: 098a0dc | (Pawel Murias)++ | src/vm/js/bin/run_tests:
Add passing test 36.
16:04
p-js: fc1230b | (Pawel Murias)++ | src/vm/js/bin/run_tests:
Add passing test 22.
p-js: b428c2e | (Pawel Murias)++ | src/vm/js/bin/run_tests:
Add passing test 38.
PerlJam um ... So, I was going to say "I didn't even know that let worked", but now I'm not so sure that it does. 16:05
TimToady I don't believe that's the specced behavior :)
16:06 zakharyas left
PerlJam Works locally, so I'm going to go with cameliabug 16:06
16:06 anaeem1_ joined 16:08 chenryn left
TimToady speaking of cameliabugs, back to trying to unbitrot STD wrt perl-5.20.1 16:09
16:10 chenryn joined
TimToady at the moment, it appears that <?before '='> in infixish is either looking in the wrong place in the string, or looking in the wrong string 16:11
but that still doesn't explain how it just fails occasionally, which feels like a malloc/free issue 16:12
16:16 chenryn left
carlin it makes me feel better that even Larry Wall struggles with perl sometimes 16:19
nwc10 TimToady: where is STD, and is there a terse test case?
I might be able to bisect to find the commit which does it in
which may help
16:19 dwarring left
PerlJam nwc10: if it "fails occasionally" you may need to run the test several times to get something that shows failure/success for the bisection 16:21
16:22 Tacit joined 16:23 Tacit is now known as TacitSage
gtodd how do/will nqp-js <--> perlito relate? will perlito be able to use nqp-js or will the fantasticness of nqp-js surpass perlito? 16:24
TimToady while the offer is appreciated, I think I'm zeroing in on it already; $C->_EXACT('=') is not matching occasionally for some reason
16:24 pmurias left
TimToady despite sitting right there on an =, according to substr 16:24
TacitSage hi, i'm newcomer here. somebody can tell me which are the paradigms that perl 6 supports well presently? 16:35
PerlJam TacitSage: all of them :) 16:36
TacitSage all? concatenative, array, oop protoype-based, functional reactive, dependent types, etc too? 16:38
TimToady well, logic is a bit weak
gtodd reactive++ :-)
TimToady though we have primitives for logic programming that are close to being useful 16:39
and macros need more work
gtodd TactSage: try asking if it is designed to make it possible to maybe support future unknown paradigms :-) 16:40
16:40 virtualsue left, adu joined 16:41 dotslashb joined, telex left
TimToady and our generic types do not yet compose very well 16:41
TacitSage will perl6 supports first-class macros (run-time) as lisp, and meta-circular evaluation (it doesn't yet support)? 16:42
16:42 telex joined
TacitSage *if does not yet support* sorry 16:42
TimToady yes, those are already close to adequate, if not adequate (we're rethinking macros at the moment to tie them into our model of slang generation) 16:44
and masak++ is coming up with an AST model for the semantic manipulations 16:45
at the moment we'd have to work with QAST, which is a bit too low-level
leont wants those semantic manipulations, badly 16:46
TimToady but pretty much the whole compiler is built that way on a fundamental level, so this is mostly just providing official API to it
gtodd I await the fruits of GLR ... having no ability to help directly I will constantly make perl6 parse big log files ... do pushups situps etc 16:48
gtodd gives p6 a huge piece of vitamin rich kale 16:49
16:49 fhelmberger left
TimToady TacitSage: we can't, of course, close that loop quite as tightly as Lisp does, since we don't use s-exprs, but we're trying to make that loop as small as possible, given a richer syntax 16:49
vendethiel .tell pmurias vendethiel is me, home, ven is me either at work or on my laptop, and I also use vendethiel- sometimes :-) 16:53
yoleaux vendethiel: I'll pass your message to pmurias.
TimToady on prototype oo, we haven't done it yet, but 6model is designed to support things like that
TacitSage thank 16:54
TimToady a lot of the design of Perl 6 has been to not get everywhere immediately, but to consider how to get close to everywhere from the start, so it's possible later
vendethiel TacitSage: dependent type, probably not, however ;) 16:55
well, if we get get decidables `where`s...
-get 16:56
TimToady what's a few halting problems among friends...
vendethiel no
turing completeness is a bug :)
(but one it's rather convenient to have. of course, unless you're trying to solve said halting problem) 16:58
TimToady but the syntax, the semantics, and the metamodel are all hijackable, so how hard can it be? :)
vendethiel you just need a turing-complete type system... :P
TimToady that would be one that can pass the Turing Test, right? 16:59
vendethiel at least one that doesn't solve (yet) the halting problem :)
16:59 cibs left 17:00 cibs joined, [Sno] left, bjz left, BinGOs left, ChoHag left, MilkmanDan left, [Sno] joined, bjz joined, BinGOs joined, ChoHag joined, MilkmanDan joined, pat_js left, spider-mario left, cognome left, Alina-malina left, firnsy left, btyler left
vendethiel TimToady: to be fair, I already demonstrated that the type system was turing complete 17:01
TacitSage turing completeness is brainf*ck (too hard for humans), not? so, i can say that p6 will be system/computerf*ck (too hard for machines)?
vendethiel TacitSage: uuh... not really. Turing completeness just says you can do a few maths operations and have infinite loops :P
TimToady People can, and do, say whatever they like about Perl 6. :)
vendethiel (I mean, p6's type system)
17:02 pat_js joined, spider-mario joined, cognome joined, firnsy joined, btyler joined, dakkar left, dotslashb left, Guest80759 left, ggoebel11111111 left, ilbot3 left, Psyche^ left, daxim__ left, xinming left, Guest89424 left, muraiki left, ClarusCogitatio left, lizmat left, xiaomiao left
dalek kudo/nom: 680162b | (Tobias Leich)++ | src/Perl6/ (7 files):
change all nqp::substr+eq to nqp::eqat

This results in a performance boost of about 0.4 to 0.6% accross stage parse and stage optimize!! /o/
17:02
17:02 Alina-malina joined, TacitSage left, dotslashb joined, Guest80759 joined, ggoebel11111111 joined, ilbot3 joined, Psyche^ joined, daxim__ joined, xinming joined, Guest89424 joined, muraiki joined, ClarusCogitatio joined, lizmat joined, xiaomiao joined
dalek line-Perl5: 0513cdd | nine++ | / (4 files):
Set UTF-8 flag on strings passed to Perl 5.
17:03
leont lizmat: your version of my patch has broken my code by reintroducing the double-done issue 17:05
TimToady bad netweather today...
nine Turns out, writing Inline::Perl5 is a great way to learn Perl 6. I'm curious how a P5 thing maps to P6. I figure it out, write code for what I learned and a new feature is born ;)
leont Fix would be paste.scsys.co.uk/424120
vendethiel nine: and p6 people thank you :-)
TimToady well, I *was* going to go work on STD some more, but you folks keep sayin' interesting things :P 17:06
lizmat is back 17:07
leont: that would be a copy/pasto on my side
will fix
dalek kudo/nom: f0a4b50 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
We should only do .done at the end, leont++
17:09
lizmat leont: ^^ 17:10
leont :-)
[Coke] TimToady: thanks. seems mostly clean.
17:10 zakharyas joined
[Coke] IWBNI someone else could fudge those. :) 17:13
17:22 Guest80759 left
dalek ecs: 075aec9 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Spec Supply.lines/words
17:26
line-Perl5: d22f0eb | nine++ | / (3 files):
Support floats passed from P5 to P6
17:32
line-Perl5: 764ec13 | nine++ | / (3 files):
Support passing floats from P6 to P5
17:32 slmult0_z joined
nine So this is it. I'm out of ideas. 17:34
Now I need some real world usage of Inline::Perl5 to find out what's missing. 17:35
avuserow nine++ 17:36
[Coke] nine++
vendethiel nine++, right
PerlJam nine++ Can you use perl modules that have an XS component with it?
nine PerlJam: since Aug 24th 17:37
Even before it could return strings from P5 to P6 :)
17:39 ab5tract joined
tadzik nine: is there already a full-blown binding to DBIx::Class as a proof to the world? :) I seem to recall that being one of our ideas in that bar on yapc 17:46
17:47 kaleem joined
ingy vendethiel: ta 17:53
vendethiel ta? 17:54
lizmat very british
nine tadzik: I've posted some examples where I used DBIx::Class in the first week. Now with subclassing support one could probably even write a whole DBIx::Class schema in Perl 6...
ingy australian
vendethiel: fixed the readme. ta.
vendethiel ah, alright 17:55
tadzik nine: that'd be fun :) 17:56
17:56 dwarring joined
nine tadzik: DBIx::Class still seems to work :) 17:57
perl6 -Ilib -e 'use Inline::Perl5; my $p5 = Inline::Perl5.new; $p5.use("Atikon::DB::Timemngt"); my $schema = $p5.invoke("Atikon::DB::Timemngt", "connect", "dbi:Pg:database=timemngt"); say $schema.resultset("Product").find(1234).id;'
1234
tadzik :)
that's fantastic
maybe I'll shove it into work code tomorrow somewhere and see what happens :D
nine yeah! 17:58
lizmat nine: you're going to talk about that at the APW, right ?
nine lizmat: yes
lizmat cool!
vendethiel APW?
lizmat Austrian Perl Workshop 17:59
act.useperl.at/apw2014/
timotimo i should probably sign up there now that i have booked the hotel room 18:00
lizmat timotimo: that seems wise :-)
18:00 erkan joined
FROGGS masak: status report so far gist.github.com/FROGGS/78c5203d0b145ca57196 18:04
nwc10 timotimo: and set your t-shirt size correctly if you haven't yet 18:05
FROGGS masak: panda@parrot fails, I try now to fix that before the release
timotimo :)
TimToady this is bizarre, for some reason the _from and the _pos hash entries are swapped in the infix_postfix_meta_operator's result
woolfy I don't want to be a distraction. I don't want to be a distraction. But, but, puppies! news.distractify.com/matt-buco/pupp...re-amazing 18:06
TimToady if P5 is putting results into the wrong hash entry, that's bad
lizmat there has been some work on hashes in P5 recently, afaik 18:08
TimToady nwc10: ^^^ are the random hash functions possibly occasionally producing bogus results somehow? That would explain where the randomness of this failure comes from... 18:09
nwc10 TimToady: if so, you'd be the first person to report hittingit 18:10
TimToady STD produces bazillions of new hashes
FROGGS TimToady: that's unlikely, given the hugeness of cpan and the coverage of cpantesters
TimToady it has to be some peculiar confluence of events, because it's only that one rule that manages it 18:11
I'll dig further and see if there's something wrong in the rule itself
or might be something subtle in hash cloning, I suppose 18:12
if _from and _pos hash to the same bucket, maybe some optimization that prevents the string comparison from working right? just guessing here... 18:13
well, I'd better rule out STD first 18:14
but there has to be some random component, and STD doesn't roll very many dice... 18:15
lizmat if STD uses hashes, it does it a lot in P5
TimToady every cursor is a hash, basically, and cursors are cloned frequently because they are notionally immutable 18:16
ab5tract TimToady: is there any chance you have a dependency on a consistent hash ordering? 18:19
because that for sure has gone out the window in newer versions of Perl 5
rurban TimToady: I would try an older p5 first. perl5.14 e.g. Since 5.18+5.20 randomization is now even activated for small hashes and esp. for iters. 18:21
18:22 guru joined, guru is now known as Guest48096 18:23 Guest48096 is now known as ajr_
ab5tract nine: very cool work on Inline::Perl5 18:24
FROGGS rurban: we know that it works on older perls 18:29
at least I know for sure it works at least until 5.14.2
timotimo ooooh, scala.js 18:30
tony-o timotimo: i've updated the HTTP-Server-Async README and added an example of how to hijack the connection in the repo/examples 18:31
timotimo cool!
how extensively have you tested it?
rurban FROGGS: Then STD needs to look at its implicit hash order assumptions, also with iters now. 18:33
18:34 darutoko left
gtodd timotimo: something like scala.js would be neat to have ... it seems to have a sort of core and then plugins and extensions 18:35
ab5tract implicit, that was the word i was looking for
PerlJam timotimo: looking at the code, I'd guess that it would still suffer from a similar sequencing problem like Proc::Async (i.e. HTTP::Server::Async uses IO::Socket::Async which doesn't do anything special to guarantee the sequence). 18:39
timotimo yes
that's one thing that worries me greatly
vendethiel timotimo: scala.js is pretty nice :-) 18:42
timotimo i think i'd like it much more than coffeescript 18:44
no clue about typescript or livescript, though
gtodd perlito compiles perl6 to js ;-)
timotimo a very, very, very limited subset of perl6 ... 18:45
gtodd scala.js seems to compile scala to js but has extra scala.js specific libraries for making buttons and GUIs etc
yeah ... it's very "complete"
by comparison
timotimo i'm really looking forward to what we'll be able to do with rakudo-js 18:46
lizmat looking at the P::A issues, I found that the order in which stdout is being read from the external process is ok
gtodd cool :-)
timotimo lizmat: read from the very same thread and without races etc etc?
lizmat it's the order in which the more's are being processed, is not the same
timotimo is not too good at this kind of problem yet 18:47
lizmat no, from different threads *but* arriving in order
at least, in my test case right now
18:48 ForthTacitSage joined
timotimo strange 18:48
FROGGS lizmat: jnthn said that rakudo gets the information of the sequence passed by moarvm, but does not handle it yet 18:51
irclog.perlgeek.de/perl6/2014-09-17#i_9370636 18:52
in the meantime I think I've got a fix for IO::Handle.lines on parrot, which also should fix panda... at least I hope there is no additional bug to hunt down 18:53
lizmat FROGGS: yes, I know /me is also liztormato :-)
didn't we have a fix for that yet ???
I mean, parrot spectest doesn't hang, does it ? 18:54
FROGGS lizmat: it does not hang, but fails
lizmat: I know you are also liztornado or some such, just thought you did not catch that line :o)
see gist.github.com/FROGGS/78c5203d0b1...ile-parrot 18:55
lizmat the first assumption was that the delivery by different threads would be the cause for out of order
18:55 anaeem1_ left, Ven joined
lizmat but it also happens on the way "out" when moreing 18:55
18:56 anaeem1 joined
lizmat so I wonder whether we need a lower level solution to this, apparently more general, problem 18:56
18:56 BizarreCake joined
leont I can imagine a Supply that takes a [seq, data, err] triplet, and only more's on when it's contiguous 18:59
timotimo we'd prefer to do this in C, though, no?
leont This doesn't necessarily need to happen in C
18:59 mberends left
lizmat leont: that's what I'm working on :-) 19:00
timotimo we do this for every single byte/character, though ...
you do recall how fast perl6 code is? :)
leont No, for every chunk
Which may be big or small, depending on circumstances
timotimo oh, i did not realize that
leont IME it's often line-sized
but that may be an artifact of my situation 19:01
It's "whatever is available"
19:02 virtualsue joined, kaleem left
lizmat I guess if the external process is flushing after each line, it will come in as lines :-) 19:02
FROGGS the usual chunk size we're trying to read in MoarVM is 64k 19:03
19:05 slmult0_z left
dalek kudo-star-daily: 3e77c32 | coke++ | log/ (14 files):
today (automated commit)
19:05
FROGGS ==> Successfully installed panda
===SORRY!===
Cannot assign a non-Perl 6 value to a Perl 6 container
dalek rl6-roast-data: d86732c | coke++ | / (6 files):
today (automated commit)
FROGGS gah!
dalek p: 2b8753c | (Tobias Leich)++ | src/vm/parrot/QAST/Operations.nqp:
bring nqp::eoffh on parrot in line with moar

That is, eoffh will be true when the user code is at EOF, whether a read past EOF was attempted or not.
19:09
19:09 araujo joined, araujo left, araujo joined
dalek kudo/nom: 0ac159e | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp rev for eoffh fix on parrot
19:09
19:10 slmult0_z joined
lizmat FROGGS++ 19:10
19:12 amkrankr1leuen is now known as amkrankruleuen, amkrankruleuen left, amkrankruleuen joined 19:13 adu left
FROGGS perl6-j needs that eoffh patch too :/ 19:15
19:17 ab5tract left 19:18 bartolin joined
dalek kudo/nom: 7fa4eef | usev6++ | src/core/ (2 files):
add freebsd to KERNELnames

and in KERNEL.name (for all backends)
19:18
kudo/nom: 391b487 | lizmat++ | src/core/ (2 files):
Merge pull request #309 from usev6/nom

add freebsd to KERNELnames
19:19 exixt left
bartolin Hi #perl6! 19:21
lizmat bartolin, welcome!
raiph nine, FROGGS, others: How do you feel about a widespread announcement on, say, Oct 15th, something like: "Best combinations of P5 and P6 by November 30, 2014 win prizes. Categories include v5, Inline::Perl5, p5helpsp6, p6helpsp5, P6newbie, P5newbie. Judges are nine, FROGGS, lizmat, etc. Winners to be announced Dec 10th as part of 2014 advent calend
ar. No, this does not mean that this is THE Xmas."
yoleaux 16 Sep 2014 12:36Z <Ulti> raiph: yes the code base was identical but 8-22 might have been without the JIT, which at the time made no difference to the execution time
19:22 BizarreCake left
timotimo what is "P6newbie" and "P5newbie"? 19:22
raiph o/ bartolin
Ven timotimo: baby p5/p6 code :)?
raiph timotimo: I just meant someone who hasn't written P6 (P5) before 19:23
PerlJam raiph: A contest to encourage people to combine P5 and P6 sounds nice.
bartolin lizmat: I just logged in to ask about my pull request (#309). But you already merged it!
FROGGS raiph: that would mean that I would have to spend supporting ppl by using v5, and I'm not this is what I an do in that timeframe
lizmat bartolin++ :-)
FROGGS spend time*
PerlJam FROGGS: what if "support" meant growing other v5 hackers? 19:24
FROGGS PerlJam: that would be awesome :o)
but perhaps not very likely 19:25
PerlJam perhaps not.
lizmat growing other v5 hackers would be high on my list to support 19:26
Ven (btw, timotimo, noticed how people are going the p6 route nowadays, with backend? scala.js just reuses scalac, idris can compile to python, js, ruby, llvm...)
bartolin lizmat: Since I am new to p6 (and to git as well): Is a pull request a good way to suggest such a change? Or are there better ways, like suggesting it on #perl6?
lizmat pull request is the best
19:26 anaeem1 left
bartolin great :-) 19:27
lizmat as it will automatically be picked up for testing by jarvis
so we know it will at least build :-)
bartolin I see.
19:27 anaeem1_ joined 19:28 slmult0_z_t joined
bartolin I am planning to set up a freebsd box to run spectests on. 19:28
FROGGS bartolin++
19:28 anaeem1_ left, slmult0_z left
dalek kudo/nom: 20193d2 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
Normalize stdout/stderr handling to a single sub

So we can be sure we will handle both the same way in the future (as there were subtle differences in the past). This does *not* fix any problems yet, it just makes sure I need to fix it at only 1 place.
19:29
lizmat this will also make sno very happy
awwaiid sorry if I missed it earlier -- am I the only perl6 advocate here at StrangeLoop?
lizmat (the freebsd smoke)
19:29 anaeem1 joined
awwaiid lambdacamel if you will 19:29
19:30 exixt joined
lizmat Mark Allen is a Perl person... 19:31
bartolin I thought about running perl6-roast-data from [Coke]++. I will not promise anything, but maybe I can set up something useful.
lizmat not sure how perl 6 minded he is 19:32
FROGGS bartolin: running the usual spectest targets might be helpful enough
(in case you run into trouble running the summary)
lizmat thestrangeloop.com/sessions/dynami...s-products feels like a potential perl 6 target :-)
masak ^^^
bartolin FROGGS: yes, I will start with plain spectests. 19:33
PerlJam lizmat: have you looked at IO::Socket::Async? I don't see how yet or even if it's possible, but it would be nice if your sub could be used there as well.
lizmat PerlJam: will look at that after I got Proc::Async stable :-) 19:34
PerlJam lizmat++ :)
19:35 ForthTacitSage left 19:36 Ven left 19:37 treehug88 left 19:39 zakharyas left
nine raiph: Oct 10th is the Austrian Perl Workshop where I'll give my first talk about Inline::Perl5. I'd rather wait for those reactions and experiences. 19:39
raiph nine: gotchya
nine I've never used Inline::Perl5 in useful code myself :) Though I get the impression that other's are trying. 19:40
lizmat m: sub a(\a) { a => 42 }; say a("foo") # half expected to see foo => 42 19:41
camelia rakudo-moar f0a4b5: OUTPUT«"a" => 42␤»
19:42 Ven joined 19:44 ab5tract joined
carlin If I use Inline::Perl5 to get binary data, I can I get that info Perl 6 without rakudo dying because of Malformed UTF-8 19:47
gtodd is the "-n" of perl6 -n -e 'say so True ' just wrapping what -e sees in for lines() { } ? 19:48
so it becomes perl6 -e 'for lines() { say so True }' 19:49
19:49 mberends joined
FROGGS gtodd: yes, exactly 19:51
dalek kudo/nom: 8d45e69 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
Make sure we .quit only if we're completely ready
FROGGS carlin: try it :o)
gtodd carlin: because perl5 or Perl5:: is doing something bad w/ UTF-8 that perl6 won't accept?
FROGGS (I really have no idea)
19:52 ClarusCogitatio left
dalek kudo/nom: dae02a4 | (Tobias Leich)++ | src/core/Cursor.pm:
fix for MATCH on parrot

nqp::split returns a ResizeableStringArray which happily explodes in a for loop
19:54
19:55 ClarusCogitatio joined
lizmat FROGGS++ , but shouldn't that be parrot specific code then ? 19:55
FROGGS lizmat: it is also low level enough that the others should profit 19:56
gtodd FROGGS: thanks .... I'm playing around with Supply and tap (where would "ofificial" docs be for those? in source) and I seem to need to send input into my script before the supply will start, 19:57
PerlJam gtodd: S17
carlin at the moment, anything that returns binary I'm just writing a perl5 sub for and converting it to hex in perl5 and returning that
timotimo the S17:1 more or less is the docs :\ 19:58
synopsebot Link: perlcabal.org/syn/S17.html#line_1
19:58 kaare_ left
gtodd PerlJam thanks 19:58
nine carlin: can you please open an issue for that? Have to find a solution...
lizmat almost all should be implemented...
nine I guess I should only return a Str for UTF-8 enabled strings and a Buf for everything else.
As far as I understand Perl 6...
PerlJam S17:Supplies # test 19:59
gtodd timotimo: lots of docs ... just hard for me to navigate without my perl5 POD crutches (the "metadocs" like perlsub etc) :-) ... cheers 20:00
20:03 ClarusCogitatio left
FROGGS ahh, "S05-match/capturing-contexts.rakudo.jvm aborted 41 test(s)" is about .WHICH changes, and not about my MATCH patch... pheew 20:04
20:05 xragnar_ joined, xragnar is now known as Guest18983, xragnar_ is now known as xragnar, ClarusCogitatio joined
carlin nine: done 20:05
20:05 anaeem___ joined
ab5tract colomon: around? 20:08
20:08 anaeem1 left
colomon ab5tract: yes, but only for a minute or so more. 20:08
20:08 anocelot joined 20:09 Guest18983 left 20:10 anocelot left 20:13 colomon left
ab5tract okay then let's discuss some other time. it's not urgent. 20:14
20:24 kjs_ joined
dalek kudo/nom: 5f30b5d | (Tobias Leich)++ | src/core/Capture.pm:
unbust Capture.WHICH on jvm
20:31
ingy vendethiel: just did the Go port 20:33
what a hateful experience
I'm going to try to refactor now.
GoLang *can't* really be that awful :\ 20:34
Ven :)
lizmat FROGGS: so JVM doesn't know how to handle unboxed strings as keys ? 20:35
vendethiel hates go
FROGGS no, that's a BOOTHash
m: say nqp::hash()<foo> # that won't work on jvm 20:36
camelia rakudo-moar f0a4b5: OUTPUT«(Any)␤»
lizmat j: say nqp::hash()<foo>
camelia rakudo-jvm f0a4b5: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
lizmat aha !
or not? 20:37
FROGGS jvm is busted here
lizmat j: 42
camelia rakudo-jvm f0a4b5: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
lizmat ah
No such method 'at_key' for invocant of type 'BOOTHash'
gotcha
FROGGS "java.lang.IllegalStateException: Current state = FLUSHED, new state = CODING" <-- the what? 20:42
vendethiel ingy: re := regexp.MustCompile("^([^aeiou]*)(.*)$") 20:45
<- you sure you need to recompile it every iteration?
20:47 Ven left, flussence left 20:48 flussence joined, Ven joined
Ven ingy: for racket, I'm not going with the "OO" approach 20:49
it doesn't rly make sense
unless you want me to
(imho, you shouldn't have gone that way with go :P) 20:50
20:51 grondilu left, vendethiel left
ingy Ven: well the point is to be able to generate the code reasonably from an OO model object 20:52
Ven right, but stil :/
hackish here
ingy Ven: also repull. just tightened up the Go a bit 20:53
larned how to define object.Function() calls 20:54
Ven haha :)
fn (blah) (blah) blah {}
ingy fn (blah) blah (blah) {} // no?
20:55 ab5tract left
ingy anyway this isn't a rosetta exercise, even though it feels like it 20:55
the point is to single source useful modules/libraries/packages/gems/whateveryoucallreusablecode 20:56
20:56 pat_js left
ingy that's been my vision for too many years now :( 20:56
the reasoning is that nobody cares about the coding style of a CPAN module that just works 20:57
or a Go or Racket module
20:59 slmult0_z_t left 21:00 pmurias joined, slmult0_z joined
pmurias gtodd: re nqp-js and perlito, I think fglock is concentrating on perlito5 (which is a p5 implementation) right now 21:01
yoleaux 16:53Z <vendethiel> pmurias: vendethiel is me, home, ven is me either at work or on my laptop, and I also use vendethiel- sometimes :-)
Ven right.
ingy: well, it makes you unable to contribute back 21:02
ingy not really
it's the same pattern as coffeescript
except with CoffeeScript you have extra work to do just JS 21:03
but with this you're fixes help 20 communities :)
*your 21:04
Ven ingy: you don't understand 21:05
how many people I've seen burst in rage
when they realized a library they used - and wanted to contribute back to - was written in coffee.
sooo.. I really, really, really don't believe in that :(
pmurias ingy: what is your newest multi backend compiler? 21:08
Ven ingy: I got a good racket start ) 21:12
21:12 Ven left 21:13 kjs_ left 21:17 mr-foobar left, mr-foobar joined
rurban I would say Lingy is Ingy's latest 21:18
search.cpan.org/~ingy/Lingy-0.0.2/lib/Lingy.pod 21:19
But it only speaks YAML yet 21:20
21:23 ab5tract joined
ingy Lingy is an analog to 6model 21:23
has no syntax
and Cafe is my first syntax that will compile to Lingy 21:24
and then to many backends
github.com/ingydotnet/pig-latin-ac...Latin.cafe
github.com/ingydotnet/pig-latin-ac...in.ly.yaml
that yaml is a bit more concise that an actual compile 21:25
I wanted to be able to write a not insanely complex yaml to test lingy
The first real candidate to use this is Pegex 21:26
and I've already "ported" most of Pegex to Cafe
even though it's not runnable I still consider it the canonical source
leont nine: problem in p5 is that you can't know if something should be a Str or a Buf 21:27
pmurias will it be possible to translate between dialects?
ingy and update the other ports based on the Cafe
pmurias: I'm not sure what you mean by dialects
pmurias the other syntaxes 21:28
ingy but one front end sister to Cafe, would probably be a Perl5/Perlito subset
frontend or backend syntaxes?
pmurias front ends
ingy I think so
21:29 rurban left
ingy but the results might not roundtrip perfectly 21:29
since the frontend→lingy relationship is almost certainly many-to-one 21:30
as with almost any language/syntax
ie you could almost certainly translate from one to another, but the result would not be as nice as hand-coding 21:31
why do you ask? (curious)
pmurias if the frontend syntaxes roudtriped perfectly (module whitespace) it would be possible for different coauthors of a module to use different languages
ingy nod 21:32
kind of like perltidy
pmurias yes that's an analogy I thought of too
ingy people can code in their perl style and commit in the "group"-style
Tony Bowden did this 15 years ago 21:33
so I've heard
awwaiid lizmat: this entire conference feels like potential perl6 topics :) 21:34
ingy so a possibility here is that people can decompile a lingy perl6 module to BozoScript, make changes, and recommit as lingy/perl6
lizmat awwaiid: hehe :-) 21:35
ingy awwaiid: which?
awwaiid strangeloop
lizmat never heard of it before, but will probably want to visit it next year
awwaiid today I learned about JVM bytecode building, React, Hack (facebook's PHP compiler written in ocaml)... and this is the pre-conference
lizmat and visit some old friends in the Champaign/Urbana area 21:36
awwaiid the videos from last year are published, they are what sold me
ingy lizmat: are you there as well? 21:37
oh nm
21:37 colomon joined
awwaiid www.infoq.com/strange-loop-2013/ <- 2013 videos 21:37
lizmat ingy: next year, maybe :-)
ingy awwaiid: sounds like a neat conference
awwaiid I'm mainly mad that it has been going since 2009 and I just heard about it to attend this year 21:38
:)
lizmat awwaiid: I just heard about it from you :-)
ingy awwaiid: how many peoples?
me too
pmurias ingy: without being able to "tidy" between different frontend syntaxes I think multiple syntaxes would just lead to huge splintering of the lingy community
21:39 dotslashb left
awwaiid 1100 attendees 21:39
and apparently 1 #perl6 idler :)
ingy pmurias: I'm not sure I see that. example?
tony-o timotimo: testing isn't extensive on http-server-async 21:40
21:43 spider-mario left
ingy pmurias: the idea that we are talking about (from my PoV) is that a module has a "source" and a "p6-install" 21:44
and the latter points to the former
21:44 mberends left
ingy hmm I see what you mean 21:45
:)
so when someone wants to fix a bug in the syntax of their choice
the patch needs to get back into the original source repo
without looking like crap 21:46
brb 21:47
21:50 anaeem___ left 21:52 raiph left
tony-o how do i use the .tell thing in here? 21:54
lizmat .tell tony-o Here are your messages 21:56
yoleaux lizmat: I'll pass your message to tony-o.
lizmat tony-o: do you need more ? 21:57
tony-o nope - just didn't know what the command was, thank you 21:58
yoleaux 21:56Z <lizmat> tony-o: Here are your messages
dalek kudo/nom: df69aa6 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
Initial stab at serializing stdout/stderr on P::A

I'm still not sure whether I covered the case that data may come in *after* the pipe has been closed. Probably not. But at least this is an initial stab at it. FWIW, the associated test file fails about 1 in 5 times still with segfaults and all sorts of other strange messages. So there's still work to be done!
22:02
lizmat leont: ^^^
jnthn: pretty sure there are still some race conditions, but I can't see them at the Perl6 level anymore now :-( 22:03
jnthn: wouldn't be surprised we have some at a very deep Supply.more level
and on that thought, goodnight #perl6!
leont Awesome! 22:05
22:10 virtualsue left 22:20 slmult0_z left
dalek p: 4ee0023 | (Tobias Leich)++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
align eoffh on jvm to moar/parrot

So we recognize EOF right at EOF from a user perspective.
22:23
p: e4385a2 | (Tobias Leich)++ | tools/build/PARROT_REVISION:
bump parrot revision to 6.8.0
22:24
kudo/nom: d0e09ee | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp rev for eof fixes and newer parrot
22:28
tony-o m: my $p = Promise.new; start { sleep 3; $p.vow.break; }; await Promise.anyof($p); 22:29
camelia rakudo-moar 5f30b5: OUTPUT«(timeout)»
tony-o j: my $p = Promise.new; start { sleep 3; $p.vow.break; }; await Promise.anyof($p);
camelia rakudo-jvm df69aa: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
22:30 erkan left
tony-o is that a bug ? shouldn't $p's broken vow trigger the Promise.anyof ? 22:30
guess not, misread the docs 22:31
22:31 Psyche^_ joined 22:35 Psyche^ left 22:38 telex left 22:40 telex joined, BenGoldberg joined 22:46 bartolin left
leont It should 22:49
«If the first promise to produce a result is instead broken, then the resulting Promise is also broken.» 22:50
tony-o «The anyof combinator creates a Promise that is kept whenever any of the specified Promises are kept.» 22:53
that makes it sound like using anyof only triggers when any of the Pormises are Kepy 22:54
Kept
r: my $p = Promise.new; start { sleep 3; $p.vow.break; }; await Promise.anyof($p); 22:55
camelia rakudo-parrot df69aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared name:␤ Promise used at line 1␤Undeclared routines:␤ await used at line 1␤ start used at line 1. Did you mean 'spurt', 'sqrt', 'sort'?␤␤» 22:56
..rakudo-jvm df69aa: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-moar df69aa: OUTPUT«(timeout)»
ab5tract perl6: my $p = Promise.new; start { sleep 3; $p.vow.break; }; await Promise.anyof($p);
camelia rakudo-parrot df69aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared name:␤ Promise used at line 1␤Undeclared routines:␤ await used at line 1␤ start used at line 1. Did you mean 'spurt', 'sqrt', 'sort'?␤␤»
..rakudo-moar df69aa: OUTPUT«(timeout)»
..rakudo-jvm df69aa: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
tony-o this is also in S17 that i can see working in moar 23:02
r: start { sleep 5; }, :max(1);
camelia rakudo-parrot df69aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ start used at line 1. Did you mean 'spurt', 'sqrt', 'sort'?␤␤»
..rakudo-jvm df69aa: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-moar df69aa: OUTPUT«Unexpected named parameter 'max' passed␤ in sub start at src/gen/m-CORE.setting:19449␤ in block <unit> at /tmp/tmpfile:1␤␤»
tony-o r: Promise.start({ sleep 5; }, :max(1)); 23:03
camelia rakudo-jvm df69aa: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
( no output )
..rakudo-parrot df69aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared name:␤ Promise used at line 1␤␤»
23:03 pmurias left
tony-o r: Promise.start({ sleep 5; 'sup'.say; }, :max(1)); 23:03
camelia rakudo-jvm df69aa: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
( no output )
..rakudo-parrot df69aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared name:␤ Promise used at line 1␤␤»
tony-o r: await Promise.start({ sleep 2; 'sup'.say; }, :max(1)); 23:04
camelia rakudo-jvm df69aa: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-parrot df69aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared name:␤ Promise used at line 1␤Undeclared routine:␤ await used at line 1␤␤»
..rakudo-moar df69aa: OUTPUT«sup␤»
tony-o guess it's just the shorthand that isn't working
timotimo tony-o: you want to use "m:" instead of "r:" 23:05
tony-o timotimo: yea i was curious if it works on the jvm or not..jvm isn't working on the bot (looks like). 23:06
timotimo: i'm trying to use as few promises to take care of this handling as possible because once i hit some unknown threshold on moar, it locks up the scheduler and it appears to not be recoverable 23:07
timotimo yeah, r-j is b0rked frustratingly often on camelia 23:08
moar's scheduler isn't smart enough yet to dispatch to other jobs whenever we start waiting for something
23:09 robinsmidsrod left
tony-o should i ignore high volume testing on moar for the moment? 23:09
timotimo hmm, maybe
tony-o timotimo: i'm writing a lot more tests for async http 23:10
23:11 robinsmidsrod joined
timotimo that's good! :) 23:13
i'm massively procrastinating finally writing a simple routing thingie so that i can plop it in as a middleware (and add a static file serving middleware to that) 23:14
23:16 ab5tract left
diakopter m: say 2 ↑↑↑↑↑↑↑ 2 ↑↑↑↑↑↑↑ 2 23:19
camelia rakudo-moar df69aa: OUTPUT«===SORRY!=== Error while compiling /tmp/ugfqdnHjIb␤Two terms in a row␤at /tmp/ugfqdnHjIb:1␤------> say 2 ⏏↑↑↑↑↑↑↑ 2 ↑↑↑↑↑↑↑ 2␤ expecting any of:␤ postfix␤ infix…»
23:20 ajr_ left
timotimo diakopter: technically speaking our ints are boundless ... but ... no! :P 23:20
diakopter well the error could at least tell me how much space and time it WOULD take to display it ;) 23:21
(not really) 23:22
tony-o timotimo: i found some problems with the way i did this in writing these tests, so the repo kinda works at this point 23:23
diakopter actually though, how would one create such an expandable infix operator
23:23 raiph joined 23:27 jerrycheung joined 23:33 chenryn joined
diakopter m: sub foo($x) { EVAL "$x "~('↑'x $x)~" $x" }; say foo(foo(foo(foo(2)))); 23:34
camelia rakudo-moar df69aa: OUTPUT«===SORRY!=== Error while compiling EVAL_0␤Two terms in a row␤at EVAL_0:1␤------> 2 ⏏↑↑ 2␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement en…»
BenGoldberg m: say 2 ↑ 3; 23:37
camelia rakudo-moar df69aa: OUTPUT«===SORRY!=== Error while compiling /tmp/LPw0F51i32␤Two terms in a row␤at /tmp/LPw0F51i32:1␤------> say 2 ⏏↑ 3;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤…»
BenGoldberg .u ↑
yoleaux U+2191 UPWARDS ARROW [Sm] (↑)
BenGoldberg diakopter, Thinking of Knuth's up-arrow operator? 23:38
diakopter yeah www.mrob.com/pub/math/largenum-3.html#hyper4
23:49 jerrycheung left