»ö« 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 40 1 2 3 4Cannot 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«123456» | ||
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/oy6Eh10fNGUndeclared 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/nJj0xtHie4Unsupported 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/yCBtIPRosVUndeclared 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/7OgFEr8m7PUnsupported 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/eu4LF1SVqBUndeclared 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/9JDp7Kcjm1Null regex not allowedat /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/Z2etlqd06RUnable 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/tmpfileUndeclared name: Promise used at line 1Undeclared 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/tmpfileUndeclared name: Promise used at line 1Undeclared 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/tmpfileUndeclared 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/tmpfileUndeclared 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/tmpfileUndeclared 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/tmpfileUndeclared name: Promise used at line 1Undeclared 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/ugfqdnHjIbTwo terms in a rowat /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_0Two terms in a rowat 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/LPw0F51i32Two terms in a rowat /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
|