»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31 Set by jnthn on 28 February 2015. |
|||
timotimo | gen-recents.pl results in a 15 mb sized profile reslut >_< | 00:09 | |
result* | |||
tadzik | timotimo: I like it :) | 00:12 | |
timotimo | have you actually tried it? :P | 00:13 | |
tadzik | oh, you know the answer :P | ||
"I didn't tested, I only proved it correct" :P | |||
timotimo | there should be something clever to prevent filenames that are illegal sub names from b0rking the eval | ||
tadzik | hmm | 00:14 | |
sub subify($ify) | |||
timotimo | :D | ||
dalek | kudo-star-daily: 7e5ae07 | coke++ | log/ (10 files): today (automated commit) |
00:15 | |
psch & | |||
japhb | .ask nine_ It looks like Inline::Python still depends on NativeCall; can you remove that dependency? | 00:16 | |
yoleaux | japhb: I'll pass your message to nine_. | ||
00:17
laouji joined
|
|||
[Coke] | literal++ #vimmy | 00:17 | |
00:18
laouji_ joined
|
|||
timotimo waits for the routine list to become sorted ... | 00:19 | ||
japhb | What's the rakudobrew idiom for saying "Whatever you have built that's not from a tag, pull and rebuild them, and do the same for the modules, and stay switched to the same build"? | 00:22 | |
00:22
laouji_ left
00:24
gamo left
|
|||
timotimo | the tab crashed instead ... | 00:29 | |
interesting | 00:32 | ||
1000 local deopts inside the "of" method of Array in the script | |||
00:38
clawft joined
00:39
laouji left
00:40
laouji joined
00:44
laouji left
00:45
laouji joined
00:46
spider-mario left
00:48
Akagi201 joined
00:53
Akagi201 left
|
|||
avuserow | it has a note in the README saying that it doesn't validate SQL yet :( | 00:53 | |
oops | |||
ww | |||
00:56
raiph joined
00:57
mr-foobar left
01:05
dayangkun left
01:14
cognominal joined
01:19
laouji_ joined
|
|||
japhb | m: my Mu $a := nqp::list(); nqp::push($a, 'b'); say nqp::join('', $a); my str $c = 'c'; nqp::push($a, $c); say nqp::join('', $a); | 01:22 | |
camelia | rakudo-moar 28fddb: OUTPUT«bThis representation (NativeRef) cannot unbox to a native string in block <unit> at /tmp/7waVMu42MC:1» | ||
timotimo | m: my Mu $a := nqp::list(); nqp::push($a, 'b'); say nqp::join('', $a); my str $c = 'c'; nqp::push($a, $c); say nqp::join($a, ''); | ||
camelia | rakudo-moar 28fddb: OUTPUT«bThis representation (VMArray) cannot unbox to a native string in block <unit> at /tmp/aX2WaJm5dT:1» | ||
timotimo | m: my Mu $a := nqp::list(); nqp::push($a, 'b'); say nqp::join($a, ''); my str $c = 'c'; nqp::push($a, $c); say nqp::join($a, ''); | 01:23 | |
camelia | rakudo-moar 28fddb: OUTPUT«This representation (VMArray) cannot unbox to a native string in block <unit> at /tmp/TMpW3vE58Z:1» | ||
timotimo | hm | ||
oh, i see what you're getting at | |||
japhb | .tell jnthn It looks like nativeref broke the new IO::Path.resolve code; nqp::join of an nqp::list containing constants works, but nqp::push a single native str, and boom. | ||
yoleaux | japhb: I'll pass your message to jnthn. | ||
01:23
laouji_ left
01:25
Hor|zon joined
|
|||
japhb | .tell jnthn See irclog.perlgeek.de/perl6/2015-03-02#i_10203236 . The existance of other elements is not essential; just a single native str element by itself will break. | 01:26 | |
yoleaux | japhb: I'll pass your message to jnthn. | ||
japhb | m: my Mu $a := nqp::list(); my str $c = 'c'; nqp::push($a, $c); say nqp::join('', $a); | 01:27 | |
camelia | rakudo-moar 28fddb: OUTPUT«This representation (NativeRef) cannot unbox to a native string in block <unit> at /tmp/vWnyqguQpT:1» | ||
01:29
Hor|zon left
01:40
ash_gti joined
01:41
jack_rabbit left
01:46
BenGoldberg joined,
clawft left
01:49
ash_gti left
|
|||
timotimo | m: say nqp::join('', nqp::list(my str $c = 'c')) | 01:52 | |
camelia | rakudo-moar 28fddb: OUTPUT«c» | ||
timotimo | interesting | ||
this one doesn't seem to take a reference | 01:53 | ||
02:01
Akagi201 joined
|
|||
timotimo | .tell FROGGS i just force-pushed over an incomplete commit; you'll need to git reset origin/master in your cpandatesters.perl6.org checkout i'm afraid | 02:02 | |
yoleaux | timotimo: I'll pass your message to FROGGS. | ||
timotimo | but it seems like the "latest reports" page works properly now | 02:04 | |
i went ahead and uploaded the report i generated manually: testers.p6c.org/recent.html | 02:08 | ||
looks good? | |||
not quite, the links to reports aren't correct | |||
.tell FROGGS and it seems like the lock for generating reports has gotten stuck :( | 02:10 | ||
yoleaux | timotimo: I'll pass your message to FROGGS. | ||
skids | .botsnack | 02:12 | |
yoleaux | :D | ||
timotimo | .tell FROGGS i forgot i got root access on that server so i just did it myself, you have to do nothing (except of course have a look at it and be happy :D ) | ||
yoleaux | timotimo: I'll pass your message to FROGGS. | ||
02:12
kaare_ left
02:13
kaare_ joined
02:15
aborazmeh joined,
aborazmeh left,
aborazmeh joined
02:23
mr-foobar joined
02:32
yeahnoob joined,
kaare__ joined,
chenryn joined
02:36
kaare_ left
02:37
kaare__ is now known as kaare_
|
|||
grondilu | Configuring native build environment ................... JIT isn't supported on i586-linux-gnu-thread-multi-64int yet. | 02:39 | |
^ I wonder where the multi-64int comes from since I'm pretty sure this is 32bits. | 02:40 | ||
02:41
BenGoldberg left
02:45
ilbot3 left
02:46
ilbot3 joined
|
|||
timotimo | .tell masak i've got a nice little pull request for Crypt :) | 03:09 | |
yoleaux | timotimo: I'll pass your message to masak. | ||
03:14
Hor|zon joined
|
|||
timotimo | ooooh, FROGGS made a Punycode module! | 03:17 | |
03:18
Psyche^ joined
03:19
Hor|zon left
03:20
chenryn left
03:22
Patterner left
03:27
kaare_ left
|
|||
timotimo | m: say ("foo" R=> "bar") | 03:28 | |
camelia | rakudo-moar 28fddb: OUTPUT«bar => foo» | ||
03:29
kaare_ joined
03:34
noganex joined,
adu left
03:37
noganex_ left
03:48
cognominal left
04:04
Sqirrel left
04:05
Sqirrel joined
|
|||
timotimo | colomon: you have a t/02-timeout.t running for 37 hours eating 100% cpu on two cores (because two instances of it are running at the same time) | 04:12 | |
.tell colomon you have a job running on hack.p6c.org that's been eating 100% cpu for a LONG time now | |||
yoleaux | timotimo: I'll pass your message to colomon. | ||
colomon | HUH | ||
yoleaux | 04:12Z <timotimo> colomon: you have a job running on hack.p6c.org that's been eating 100% cpu for a LONG time now | ||
timotimo | ah, there you are | ||
colomon | THought I checked this morning.... | ||
timotimo | oh, hold on | ||
300% cpu usage | |||
colomon | so what module has 02-timeout.t ? | 04:13 | |
timotimo | don't know, try that git repository moritz built with all of the ecosystem modules | 04:15 | |
colomon | moritz++ timotimo+_ | 04:17 | |
moritz++ timotimo++ | |||
Test::ClientServer ? | 04:18 | ||
github.com/flussence/Test-ClientSe...-timeout.t | 04:19 | ||
timotimo | i'm making this worse and worse and worse | 04:31 | |
colomon | ? | ||
timotimo | cpandatesters | 04:34 | |
TimToady | m: my method foo(::self: *@stuff) { say self; say @stuff}; foo(42,43,44) | 04:43 | |
yoleaux | 1 Mar 2015 09:48Z <jnthn> TimToady: it's a little pain with our one-passness, but I wonder if *%_ generation being triggered by the presence of a nextsame/callsame somewhere in the method body would do it. | ||
camelia | rakudo-moar 28fddb: OUTPUT«===SORRY!===Lexical 'self' already declared» | ||
yoleaux | 1 Mar 2015 16:38Z <jnthn> TimToady: I've tended to consider .WHAT as an object-y operation, so even though it's macro-esque already and not in any sense a method call, it still compiles the thing it's operating such that it wants a boxed object. Thus I'd not expected it ever could return a native type. Is there anything in the design docs supporting any view besides mine? :) | ||
TimToady | hah | ||
oh, literal++ too :) | 04:44 | ||
04:45
mr-foobar left
|
|||
TimToady | m: my method foo(\self: *@stuff) { say self; say @stuff}; foo(42,43,44) | 04:45 | |
camelia | rakudo-moar 28fddb: OUTPUT«===SORRY!===Lexical 'self' already declared» | ||
TimToady | that seems a bit suboptimal... | ||
04:46
hugme left,
telex left,
hugme joined,
ChanServ sets mode: +v hugme
04:47
mr-foobar joined
04:48
telex joined
|
|||
TimToady | m: my method foo(::class: *@stuff) { say class; say @stuff}; foo(42,43,44) | 04:49 | |
camelia | rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pV9HNSIqzDCompilation unit cannot be anonymousat /tmp/pV9HNSIqzD:1------> 3ethod foo(::class: *@stuff) { say class;7⏏5 say @stuff}; foo(42,43,44)» | ||
04:52
raiph left
04:53
ash_gti joined
|
|||
TimToady | std: my method foo(::class: *@stuff) { say class; say @stuff}; foo(42,43,44) | 04:53 | |
camelia | std 28329a7: OUTPUT«5===SORRY!5===Undeclared routine: 'foo' used at line 1Check failedFAILED 00:01 145m» | ||
TimToady | std: my method foo(::class: *@stuff) { say class; say @stuff} | 04:54 | |
camelia | std 28329a7: OUTPUT«ok 00:01 141m» | ||
TimToady | STD requires space after 'class' and many other keywords | ||
std: if$_ { say "hi" } | 04:55 | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Two terms in a row (listop with args requires whitespace or parens) at /tmp/0mjWC5N7PH line 1:------> 3if7⏏5$_ { say "hi" } expecting any of: POST argument list feed_separator infix or meta-infix infixed function…» | ||
04:55
ash_gti left
|
|||
timotimo | i finally have a state where things are not b0rken | 04:56 | |
04:56
laouji_ joined
|
|||
timotimo rebuilds the last ~1.5k reports on cpandatesters | 05:00 | ||
TimToady | m: if$_ { say "hi" } | ||
camelia | ( no output ) | ||
TimToady | that's kinda wrong by STD's lights | ||
05:01
laouji_ left
05:02
Hor|zon joined
05:07
Hor|zon left,
Alina-malina left
05:14
mr-foobar left
05:20
ash_gti joined
|
|||
timotimo | gen-report.pl swallows more and more memory the longer it runs :( | 05:25 | |
i wonder if its per-page render time gets worse the more memory the whole process has eaten, due to gc etc | 05:27 | ||
05:28
ash_gti left
|
|||
avuserow | is it possible to somehow run a grammar against a file whose contents won't fix in memory? | 05:30 | |
I'm imagining that I would run code within it to stream the interesting bits back to disk, or just collect a small fraction of the data in memory | 05:31 | ||
timotimo | not yet, sadly | ||
avuserow | is there a plan for it, out of curiosity? | 05:33 | |
timotimo | yeah | ||
avuserow | I don't actually need this at present, since the file I'm parsing happens to be line-oriented enough that I can cheat | ||
timotimo | one thing is we want to have is to be able to cut off the stuff you've passed over so far at certain points | 05:34 | |
that's <cut> | |||
one other thing is we want to have "Cat", lazy strings that you can match over that don't have to be in the object right from the start | 05:35 | ||
avuserow | yeah, I know of Cats as "lazy strings" but nothing beyond that | 05:37 | |
05:37
jack_rabbit joined
|
|||
avuserow | also, is there an easy way to find out the next N characters of data after my rules stopped matching? | 05:37 | |
Grammar::Tracer and ::Debugger are useful but don't seem to have any way to inspect the next bits... | |||
timotimo | perl6-debug-m will allow you to see what comes up | 05:39 | |
avuserow | okay cool, thanks timotimo | ||
timotimo | but it won't automatically stop when something doesn't match | 05:40 | |
05:42
dayangkun joined
05:47
rindolf joined
05:49
tmch joined
05:51
diana_olhovik joined,
dayangkun left
06:02
chenryn joined
06:04
aborazmeh left
06:05
laouji left
06:10
laouji joined
06:25
tmch left
06:26
perlh joined
|
|||
moritz | \o | 06:35 | |
06:36
diana_olhovik left
06:52
Hor|zon joined
06:56
Hor|zon left
06:57
Alina-malina joined
06:58
Rounin joined,
bjz joined
07:09
diana_olhovik joined
07:24
anaeem1_ joined
07:26
rindolf left
07:27
Possum left
07:31
Sqirrel left,
tmch joined
07:41
Khisanth left,
davido__ joined
07:42
Khisanth joined,
abraxxa joined
07:44
davido_ left,
rindolf joined
07:47
Ven joined
07:52
alpha- left,
wicope joined
07:53
FROGGS joined
07:54
[Sno] left
|
|||
moritz | my wife's expressionistic rendering of camelia: twitter.com/Lilaloki21/status/5719...18/photo/1 | 07:57 | |
08:03
zakharyas joined
08:04
prime left
|
|||
FROGGS | moritz: :P | 08:05 | |
yoleaux | 1 Mar 2015 23:18Z <timotimo> FROGGS: can you put a cron job in that runs jobs/gen-recents.pl for cpandatesters so i can test my stuff? | ||
02:02Z <timotimo> FROGGS: i just force-pushed over an incomplete commit; you'll need to git reset origin/master in your cpandatesters.perl6.org checkout i'm afraid | |||
02:10Z <timotimo> FROGGS: and it seems like the lock for generating reports has gotten stuck :( | |||
02:12Z <timotimo> FROGGS: i forgot i got root access on that server so i just did it myself, you have to do nothing (except of course have a look at it and be happy :D ) | |||
FROGGS | what the | 08:06 | |
ohh! | |||
timotimo++ | |||
\o/ | |||
masak | :) | 08:11 | |
yoleaux | 03:09Z <timotimo> masak: i've got a nice little pull request for Crypt :) | ||
masak | good morning, #perl6 | ||
nwc10 | good *, * | 08:12 | |
FROGGS | morning | ||
08:12
prime joined,
prime left,
prime joined
|
|||
masak | ooh, a nice little pull request for crypt! \o/ | 08:12 | |
who is this timotimo guy, Santa Claus? | |||
masak is teaching today | 08:13 | ||
08:14
darutoko joined
|
|||
masak | timotimo: merged -- thank you. | 08:15 | |
Ven | o/, #perl6! | 08:22 | |
08:22
virtualsue joined
08:27
rurban joined,
Ven left
|
|||
sergot | morning #perl6 | 08:32 | |
08:33
tenaglia joined,
tenaglia left
08:34
laouji_ joined
08:37
Hor|zon joined
08:38
laouji_ left
|
|||
jnthn | morning o/ | 08:40 | |
yoleaux | 1 Mar 2015 22:33Z <japhb> jnthn: Could you explain the reason for the performance difference between \a and $a params mentioned in 9cb3d64faab881cd8b4082f59417f98fea057d4b? | ||
01:23Z <japhb> jnthn: It looks like nativeref broke the new IO::Path.resolve code; nqp::join of an nqp::list containing constants works, but nqp::push a single native str, and boom. | |||
01:26Z <japhb> jnthn: See irclog.perlgeek.de/perl6/2015-03-02#i_10203236 . The existance of other elements is not essential; just a single native str element by itself will break. | |||
08:41
Ven joined
08:42
Hor|zon left
08:43
[Sno] joined
|
|||
jnthn | .tell japhb re 9cb3d64faa, it's not that the param binding performance is different, but rather the assignment code-gen. Assign code-gen is done differently by SIGIL ($ = use container spec stuff, @/% = call STORE method). Without a sigil, we don't know, so emit code that checks which of the two should be done. | 08:44 | |
yoleaux | jnthn: I'll pass your message to japhb. | ||
08:44
Ven left
|
|||
jnthn | .tell japhb spesh should already be smart enough to do away with the check, but still better to generate smaller code in the first place... | 08:45 | |
yoleaux | jnthn: I'll pass your message to japhb. | ||
FROGGS | jnthn: is that the so called 'slow binder'? | ||
jnthn | FROGGS: No, there's not really a name for it :) | ||
FROGGS | ahh | ||
jnthn | The 'slow binder' is about signature binding. | ||
.tel japhb re the behavior change, that's going to stay; it's consistent with non-native scalars, where you'd need the nqp::decont(...) on the thing you push. Better in your case is to do an explicit box (nqp::p6box_s), but best is probably to use nqp::list_s and nqp::push_s, to avoid the boxing altogether. | 08:47 | ||
.tell japhb re the behavior change, that's going to stay; it's consistent with non-native scalars, where you'd need the nqp::decont(...) on the thing you push. Better in your case is to do an explicit box (nqp::p6box_s), but best is probably to use nqp::list_s and nqp::push_s, to avoid the boxing altogether. | |||
yoleaux | jnthn: I'll pass your message to japhb. | ||
jnthn | .tell japhb the behavior change is what lets stuff like "($native-a, $native-b) = 1, 2" now work, fwiw. | 08:48 | |
yoleaux | jnthn: I'll pass your message to japhb. | ||
FROGGS | timotimo++ # you even added a proper breadcrumb to the reports :o) | ||
FROGGS is much happy | |||
FROGGS is also happy that nwc10++ did a smoke run on raspberry | 08:49 | ||
08:49
salv0 joined
08:51
pecastro left
|
|||
jnthn | m: my int $a = 1; my num $b = 1.2e0; ($a, $b) = 4, 4.2e0; say $a; say $b; # I hope it does work... :) | 08:51 | |
camelia | rakudo-moar 28fddb: OUTPUT«44.2» | ||
jnthn | m: my int $a = 1; my num $b = 1.2e0; ($a, $b) = 4, 4; say $a; say $b; # I hope this doesn't | ||
camelia | rakudo-moar 28fddb: OUTPUT«This type cannot unbox to a native number in method STORE at src/gen/m-CORE.setting:8978 in block <unit> at /tmp/H3qoULWNXv:1» | ||
jnthn | Goody. | 08:52 | |
nwc10 | jnthn++ # more good stuff | 08:53 | |
FROGGS: that was some months ago | |||
jnthn | I think somebody else here mentioned they built r-m on a new raspberry recently | 08:54 | |
FROGGS | nwc10: isnt that you? testers.p6c.org/reports/15598.html | ||
nwc10 | no, that isn't me. that's someone else being awesome | 08:55 | |
FROGGS | ahh, another nick then :D | ||
nickl++ | |||
nwc10 | anyway, it's good to know that (a) it still works (at all) (b) it works on ARM v7 | 08:56 | |
FROGGS | aye | ||
nwc10 | (Old Pis are ARM v6, and I tried to make the "how much misalignment can we get away with?" code arch specific, because there are also ARM v5 machines out there, and they are even more strict | 08:57 | |
) | |||
not all the world is a VAX. | |||
08:57
Ven joined
|
|||
nwc10 | (shame that Alpha died, as Alpha was so not a VAX, in one sense at least) | 08:57 | |
FROGGS | I remember having trouble getting the build flags right to build libSDL on alpha... | 08:58 | |
jnthn | Is ARM v7 LE or BE? | 09:00 | |
Uh, as config'd on an RP, I guess I should specify... | |||
nwc10 | IIRC "switchable". | ||
LE | 09:01 | ||
pretty much every ARM board is built LE | |||
jnthn | Right, the "switchable" is why I realized I'd been under-specific :) | ||
OK, so doesn't tell us about our BE state, just our ARM state. | |||
nwc10 | there's a LE PowerPC port of Linux now from IBM, IIRC | ||
09:03
fhelmberger joined
09:05
cschwenz joined
09:07
Hor|zon joined
09:08
larion joined
09:09
virtualsue left
|
|||
FROGGS | huh, nice: | 09:11 | |
java.lang.NullPointerException | |||
in compose_repr (gen/jvm/Metamodel.nqp:1440) | |||
(in OpenSSL) | |||
09:13
Kristien joined
|
|||
Kristien | hi | 09:13 | |
Ven | o/ | 09:15 | |
Kristien | I had this wonderful idea. | 09:20 | |
raydiak | \o/ resolved my precomp issue and ended up with better encapsulation anyway...g'night #perl6 | 09:23 | |
09:24
kjs_ joined
|
|||
moritz | good night raydiak++ | 09:24 | |
09:24
dakkar joined
|
|||
Kristien | translating goto to CPS is difficult | 09:27 | |
jumping into continuations :'( | |||
09:28
jack_rabbit left
09:33
yeahnoob left
09:35
espadrine left
09:37
donaldh joined
|
|||
jnthn | Kristien: Using CPS as an intermediate program representation? | 09:37 | |
Kristien | No, for the generated code | ||
goto is in the intermediate representation | 09:38 | ||
jnthn | What're you generating? | ||
Kristien | JS XD | ||
jnthn | :) | 09:39 | |
Kristien | I'm sick of the lack of stackful coroutines, so I simulate them using CPS for every function call. | ||
jnthn | In Rakudo on JVM we ended up transforming each block as we code-gen, and using the exception mechanism as a way to iterate/snapshot a call stack, in order to support delimited continuations... "fun" :) | 09:42 | |
Kristien | :{ | 09:44 | |
jnthn | I didn't really want a separate CPS transform pass; designing a code-gen thing so most of the time you don't actually have to care about the simultaneous transform that's taking place was an interesting challenge. | 09:48 | |
Ven 's watching as Kristien++ is trying to implement comefrom in js | |||
09:49
Possum joined
|
|||
Kristien | noo not comefrom :v | 09:49 | |
FROGGS | "getlexref_i: lexical is not an int" :o( | ||
Kristien | jnthn: I prefer a non-CPS IR because that's easier to optimise, and CPS is purely an implementation detail for the JS codegen | ||
jnthn | FROGGS: Urgh, I thought I fixed that one yesterday... | ||
Kristien | not for any other codegen I might want | ||
FROGGS | jnthn: ohh, I need to rebuild then :o) | 09:50 | |
jnthn | Kristien: Maybe I'm just bad at thinking in continuations, but SSA always feels a lot more intuitive to me for an IR... | ||
09:50
darutoko- joined
|
|||
dalek | kudo/nom: 92404c3 | TimToady++ | src/ (5 files): keywords now require whitespace (unless shadowed) Now we parse keywords more like STD, requiring whitespace. When we parse what might be a keyword, if there's whitespace after, it's always taken as a keyword. If not, if the term has been defined elsewhere, we take that other definition. Otherwise we carp about missing whitespace after the keyword. my \if = 42; say (if) if if; # now says 42 |
09:50 | |
Kristien | yeah my IR is SSA | ||
jnthn | TimToady is commiting at *this time of day*?! :D | 09:51 | |
Kristien | the problem lies in generating JS for branch instructions because they can jump into continuations | ||
09:51
darutoko- left
|
|||
jnthn | TimToady++ | 09:51 | |
Kristien | I could generate a JS function for each basic block | ||
jnthn | m: my %h = not => 42; | 09:52 | |
camelia | rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/T5emuEwIGBMalformed initializerat /tmp/T5emuEwIGB:1------> 3my %h = not 7⏏5=> 42; expecting any of: prefix or meta-prefix» | ||
dalek | ast: c2b1d56 | TimToady++ | S (2 files): adjust tests for required keyword spacing |
||
09:52
darutoko- joined
|
|||
jnthn | TimToady: Does it fix ^^, ooc? | 09:52 | |
FROGGS | TimToady++ | ||
TimToady | probably not | 09:53 | |
09:53
darutoko left
|
|||
Kristien | Ven anyway, comefrom is not much more difficult to implement than goto | 09:54 | |
Ven | Kristien: it's not about difficulty of implementation :P | ||
Kristien | you basically transform comefroms into labels and labels into gotos | ||
jnthn | TimToady: Hm, maybe it gets this one though: | 09:55 | |
m: sub not-foo { "2" }; say not-foo(); | |||
camelia | rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/92PJhPsNkkUndeclared routine: foo used at line 1» | ||
jnthn | m: class class {}; say class.new.perl | ||
camelia | rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PBlFtC8JmGUnable to parse class definitionat /tmp/PBlFtC8JmG:1------> 3class class {}; say class7⏏5.new.perl expecting any of: generic role» | ||
jnthn | That one too perhaps :) | ||
TimToady | have a fix for not/so/temp/let | ||
jnthn | (These are all RTs) | ||
Kristien | comefrom is almost like an NTM! | 09:56 | |
09:59
bjz left,
bjz joined
10:00
sqirrel joined
|
|||
TimToady | doesn't fix class class yet, but only because of a bug in my fix :) | 10:00 | |
testing | |||
my fix for not works | |||
jnthn | .oO( "does not work?" ) |
10:03 | |
10:03
Kristien left
|
|||
TimToady | except it now disallows not() | 10:06 | |
10:06
virtualsue joined
10:07
Ven left
|
|||
jnthn | That's not so good... | 10:07 | |
TimToady | obviously named prefixes need a slightly different approach | 10:09 | |
10:12
Ven joined
|
|||
dalek | kudo/nom: 9ddab5e | TimToady++ | src/Perl6/Grammar.nqp: require ws for package declarators also fix not/so/temp/let to check for hyphens and => |
10:12 | |
kudo/nom: 0143b75 | TimToady++ | src/Perl6/Grammar.nqp: named prefixes should allow parens |
|||
TimToady | I think that fixes all of those | ||
though arguably not() should really be a function, not a prefix on a unary expression that happens to start with ( | 10:13 | ||
jnthn | yay | 10:15 | |
More bugs nailed :) | |||
TimToady | also, core/asyncops was probably misparsing last CHECK; | 10:17 | |
might possibly have contributed to the instability | |||
dunno what last Nil does... | 10:18 | ||
jnthn | Me either! | ||
TimToady | though I wouldn't think it would flap | ||
but it might've done unexpected flow control | 10:19 | ||
or lack thereof | |||
10:20
yeahnoob joined,
virtualsue left
|
|||
TimToady | well, passes all tests it passed before, so I think I'm gonna think about going to bed one of these hours | 10:20 | |
jnthn | :) | 10:21 | |
TimToady | there might be some tests can be unfudged now, but I'll let sumwunels do that | ||
jnthn | ++sumwunels | 10:22 | |
Rest well o/ | |||
10:28
virtualsue joined
10:31
espadrine joined
10:32
pecastro joined
10:34
xinming joined
10:36
perlh left
|
|||
ab5tract | o/ #perl6 | 10:52 | |
FROGGS | hi ab5tract | ||
ab5tract | i was reading over last week's announcement | ||
FROGGS, is there a reason why the new op is called nativesizeof ? | 10:53 | ||
FROGGS | ab5tract: yes | ||
ab5tract | to me this is dangerously approaching PHP levels of naming inconsistency | ||
FROGGS | ab5tract: it is about native types and it gives you its sizeof | ||
ab5tract: but we have nativecast, no? | |||
ab5tract | yeah, and i've grumbled about that one too :) | ||
FROGGS | :o) | 10:54 | |
psch | \o | ||
ab5tract | i think we should be really careful with this | ||
FROGGS | problem is that sizeof() on its own might give the wrong impression what it does... | ||
jnthn | What's inconsistent? | ||
ab5tract | native-size-of | ||
jnthn | Ah | ||
ab5tract | jnthn: we don't "smash case" any other ops | ||
jnthn | True | ||
FROGGS | ahh :o) | ||
yeah | |||
that makes sense | |||
jnthn | Yeah, that's a fair point | ||
ab5tract | and we should s/\_/\-/g | ||
for all the other internals as well (imo) | 10:55 | ||
nativecast is another exception to the smash casing | |||
FROGGS | except for all caps | ||
ab5tract | FROGGS: ineed | ||
*indeed | |||
FROGGS | does that mean that the 'is nativeconv' trait should be called 'is native-conv' ? | 10:56 | |
ab5tract | it would be like mixing metric and royal measurements in the first intergalactic space cruiser ;) | 10:57 | |
FROGGS: from my point of view, yes. | |||
dalek | ast: e30392a | peschwa++ | S06-signature/positional-placeholders.t: Unfudge passing test. |
||
ast: cb31b77 | peschwa++ | S14-roles/anonymous.t: Unfudge another passing test. |
|||
10:58
Kristien joined
|
|||
FROGGS | okay, sounds like we want to try 'is DEPRECATED' in module space now :o) | 10:58 | |
ab5tract | NativeCall could be argued to be a special case, because it interfaces with C where smash casing is common | ||
jnthn | native-sizeof is tempting in that sense :P | ||
ab5tract | but i'd actually argue the opposite, especially since it is shipped with rakudo now | ||
FROGGS | jnthn: aye | ||
ab5tract | jnthn: indeed, native-sizeof would definitely work for me | ||
psch | jnthn: i'm getting «Unhandled exception: Expected a native int argument for '$a'» in S02-types/native.t on jvm | 10:59 | |
jnthn | psch: Then there's a bug somewhere in Compiler.nqp | ||
Well, that's the most likely thing | |||
dalek | c: b3797bb | (Matthias Krull)++ | htmlify.p6: replace all occurrences of :: when generating path from class name |
||
nwc10 | and we should keep tabs in Makefiles because the userbase is too large already. | 11:00 | |
FROGGS | hmmm, jvm seems to have a problem with: class Foo is repr<CStruct> { has int32 $.idontcare; has Foo $.bar } | 11:01 | |
this gives a NPE for OpenSSL | |||
nwc10: :P | |||
nwc10 | as in, the time to rename stuff is now. | ||
psch | huh, it's only int that fails the alias binding in the test | ||
nwc10 | Or rue the poor name for eterinity | 11:02 | |
FROGGS | nwc10: yes, rename (alias), deprecate, remove | ||
11:03
spider-mario joined
11:05
Kristien left
|
|||
jnthn did try to discourage adding kebab-case things anywhere in core, so as to keep us consistently with _ | 11:06 | ||
But, it seems kebabs are just too tempting | |||
FROGGS | aye | ||
jnthn | So I guess we should look at going with - everywhere instead... | ||
11:06
chenryn left
|
|||
Ven | PLEASE_DONT_USE_KEBABCASE | 11:06 | |
FROGGS | PLEASE_DON'T_USE_KEBABCASE | ||
Ven | *g* | 11:07 | |
FROGGS | :o) | ||
nwc10 | PLEASE_DON::T | ||
oh, wait, IIRC in Perl 6 one can use ' ? | |||
jnthn | Yes :P | ||
FROGGS | m: constant PLEASE_DON'T_USE_KEBABCASE = 42 | ||
camelia | ( no output ) | ||
jnthn | It doesn't mean :: :) | ||
dalek | ecs: 50becca | TimToady++ | S02-bits.pod: doc design of new keyword override rules |
11:08 | |
FROGGS | sad that the times when we specced something are over :o) | 11:11 | |
now we spec test and doc design | |||
jnthn: I'd also deprecate OpaquePointer while I (or somebody else++) deprecates native\w+, okay? | 11:14 | ||
jnthn | I'm not sad; tests are much more precise :) | 11:15 | |
FROGGS: OpaquePointer becomes...? | 11:16 | ||
Just Pointer? | |||
FROGGS | Pinter | ||
Pointer* | |||
aye | |||
jnthn | mmmm....pints! | ||
FROGGS | :P | ||
and a Pointer is in fact a Pointer[void] | |||
jnthn | *nod | ||
* | |||
OK, I'm fine with that. | |||
FROGGS | m: use NativeCall; say Pointer.of | ||
camelia | rakudo-moar 0143b7: OUTPUT«(void)» | ||
FROGGS | looks nice :o) | ||
jnthn | m: say void.REPR | 11:17 | |
camelia | rakudo-moar 0143b7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OHgj7Uh2B6Undeclared routine: void used at line 1» | ||
jnthn | m: use NativeCall; say void.REPR | ||
camelia | rakudo-moar 0143b7: OUTPUT«CPointer» | ||
FROGGS | it has to be something... | ||
jnthn | m: void.new | ||
camelia | rakudo-moar 0143b7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wMVcGh9jFEUndeclared routine: void used at line 1» | ||
jnthn | gah! | ||
FROGGS | hehe | ||
jnthn | m: use NativeCall; void.new | ||
camelia | ( no output ) | ||
jnthn | Does that make sense? :) | ||
Well, there's also the Uninstatiable REPR | |||
Oh wait | 11:18 | ||
FROGGS | hmmm, I'd have to test if we can use that at all | ||
jnthn | Yeah | ||
I mean | |||
Pointer[void] is obviously a CPointer | |||
But void itself... | |||
- token terminator:sym<if> { 'if' <.end_keyword> } | |||
+ token terminator:sym<if> { 'if' <.kok> } | 11:19 | ||
...kok? | |||
Oh..."keyword ok" | |||
TimToady | m: class class {}; say class.new.perl | 11:20 | |
camelia | rakudo-moar 0143b7: OUTPUT«class.new()» | ||
TimToady | m: sub not-foo { "2" }; say not-foo(); | ||
camelia | rakudo-moar 0143b7: OUTPUT«2» | ||
TimToady | m: my %h = not => 42; say %h | ||
camelia | rakudo-moar 0143b7: OUTPUT«not => 42» | ||
TimToady | there you go | ||
dalek | kudo/nom: a164f30 | FROGGS++ | lib/NativeCall.pm: make void of repr Uninstantiable So one cannot create a void instance and cannot dereference a Pointer[void] |
11:23 | |
FROGGS | jnthn++ | ||
TimToady | m: my \m = 42; say "xxxyyyzzz" ~~ m:3nd/.../ | ||
camelia | rakudo-moar 0143b7: OUTPUT«「zzz」» | ||
TimToady | & | ||
FROGGS | awesome! | ||
jnthn | 3nd :D | 11:25 | |
TimToady++ | |||
I'll write some tests and close some RTs if nobody beats me to it | |||
(Not likely to have tuits until evening, though) | |||
11:28
thilp left
|
|||
donaldh | Has anyone used NativeCall for mmap ? | 11:28 | |
FROGGS | donaldh: not yet | 11:29 | |
donaldh | I'm not sure our file ops are up to the task | ||
11:29
thilp joined
|
|||
donaldh | So I'd end up nativecalling open as well | 11:29 | |
Correct me if I'm wrong but we only support read-only, write-only-truncate and write-only-append | 11:30 | ||
But to successfully mmap /dev/mem I'd need open('/dev/mem', :rw) | 11:31 | ||
11:45
chenryn joined
11:57
dolmen joined
12:06
haroldwu left
|
|||
ab5tract | "kok" <--- here's another potential example of brevity-without-purpose | 12:10 | |
which is something i also see throughout core, in addition to the smash casing thing | 12:11 | ||
12:11
laouji_ joined
|
|||
ab5tract | one of the tradeoffs we get with the concision of perl 6 is, long and expressive variable/method/function names no longer pose much of a burden | 12:12 | |
and in fact using short-name versions can be seen as unnecessarily burdening otherwise very short and clear code | 12:13 | ||
at least, that's been my experience so far :) | 12:15 | ||
12:16
laouji_ left
|
|||
jnthn | ab5tract: If you pick a good single-word name for something, you don't need to whatever case the name at all :) | 12:17 | |
ab5tract | jnthn: that's a bit beside my point, which is that brevity can be the enemy of good naming :) | 12:20 | |
especially in a kebab's-everywhere-able language like perl 6 :D | |||
12:24
sqirrel left
|
|||
ab5tract | to be fair, the most common place i've seen this problem lurking is in the IO stuff | 12:24 | |
dalek | pan style="color: #395be5">perl6-examples: af480e6 | paultcochrane++ | lib/Pod/Convenience.pm6: Add pod-code() sub to return a pod code block |
||
pan style="color: #395be5">perl6-examples: 7339333 | paultcochrane++ | htmlify.pl: Insert code if no pod is found in file |
|||
ab5tract | which isn't quite finalized yet anyway | ||
12:26
kjs_ left
12:34
skids left,
chenryn left
12:36
xinming left
12:38
xinming joined
12:39
Kristien joined
12:44
anaeem1_ left
12:48
sqirrel joined
12:49
laouji left,
larion left
12:50
larion joined
12:54
alpha- joined,
kjs_ joined,
gcole joined
13:04
xinming left,
rurban left
13:06
xinming joined
13:07
cognominal joined
13:09
lizmat joined
13:10
sqirrel left
13:13
Kristien left
13:20
Humbedooh left
13:28
Humbedooh joined
13:29
cognominal left
13:31
rurban joined
13:32
haroldwu joined
13:37
cognominal joined
13:43
cognominal left
13:47
anaeem1 joined
13:50
anaeem1 left
13:52
anaeem1 joined
13:54
gfldex joined
13:57
haroldwu left,
haroldwu joined
13:58
yves joined
|
|||
psch | hah. running S02-types/native.t locally, on java -version 1.8.0_31 instead of on hack with java -version 1.7.0_75 doesn't die with the exception \o/ | 13:58 | |
instead, it segfaults inside the jvm /o\ | |||
|Tux| | FROGSS, Slang::Tuxic barfs on «while ($i < $last) {» | ||
FROGGS | hehe | ||
|Tux|: well, yes of course | |||
that is what you have to deal with | |||
it does not treat keywords specially | 13:59 | ||
|Tux| adjusts mind again | |||
keyswords are to much set in concrete in my way of programming | |||
FROGGS | it is hard to get that one right, and I can not put much work into it right now :/ | ||
psch | curiously the SIGSEGV only happens through make $testfile, while running the test in isolation does produce the same exception... | 14:00 | |
FROGGS | NQP_VERBOSE_EXCEPTIONS=1 and --ll-exception might help here | 14:01 | |
14:02
anaeem1 left,
anaeem1 joined
14:03
xfix joined
|
|||
jnthn | At least if barfing on that makes you quickly notice supersitious parens around conditions... :) | 14:04 | |
psch: 1.7 + invokedynamic = easy SEGV, though less so towards the later versions in the series... | |||
psch | jnthn: but 1.8 SEGVs, 1.7 doesn't | 14:06 | |
jnthn | psch: Oh...wtf | ||
:/ | |||
VM impl considered hard. | |||
psch | 1.7 consistently throws the exception "Expected a native int..." | ||
14:07
anaeem1 left
|
|||
colomon | www.johndcook.com/blog/2015/03/01/graphemes/ # think we need a p6 followup to this… | 14:12 | |
jnthn | colomon: Maybe once I'm done implementing NFG in Moar... ;) | 14:13 | |
nwc10 | JVM + SEGV == CVE? | 14:25 | |
moritz | JVM + SEGV == Business as usual, if you're implementing compilers :-) | 14:26 | |
jnthn | nwc10: Not every SEGV is a security vuln. | 14:27 | |
donaldh | CVE? | ||
moritz | common vulnerability and exposure project | ||
the folks that assign IDs to every security vulnerability | |||
14:32
telex left,
laouji joined
14:34
telex joined
14:40
kaare_ left
|
|||
|Tux| | gist.github.com/Tux/983cdf2c40c674277d0e <= is the fact that the first test FAILs a bug or not? | 14:44 | |
masak | not. | 14:45 | |
or, hm. | |||
yeah, not. I think. | |||
itemified parcel is not deeply equal to array. | |||
we might make it be so, but I don't know if we oughta. | 14:46 | ||
|Tux| | the fact that you are unsure is enough for me to have hit this as surprise :) | ||
masak | yeah, I have never seen that before. | ||
donaldh | psch: I can confirm exception on 1.7 and SEGV on 1.8 for ./perl6 -Ilib t/spec/S02-types/native.rakudo.jvm | 14:47 | |
|Tux| | I have reverted my test case to do the copy before the test | ||
Ven | I think they shouldn't be equal | 14:48 | |
if they're considered equal, then I should be able to get the same behavior from calling functions on either | |||
dalek | pan style="color: #395be5">perl6-examples: e0bc6c6 | paultcochrane++ | htmlify.pl: Sort files within a category Now the list of files on the index pages are sorted. |
14:49 | |
pan style="color: #395be5">perl6-examples: 5715140 | paultcochrane++ | htmlify.pl: Append link to source on GitHub |
|||
14:53
rmgk_ joined,
rmgk is now known as Guest3814,
Guest3814 left,
rmgk_ is now known as rmgk
14:54
molaf joined
14:57
laouji left
14:59
muraiki joined
|
|||
masak sometimes wishes that the Github interface had a "merge, but fast-forward" button | 15:01 | ||
jnthn | Or a "please try to rebase this on top of the branch you want it in" button :) | 15:03 | |
Ven | masak: it's been requested so many times.. | ||
donaldh | yikes t/spec/S02-types/native.rakudo.jvm works when run with perl6-debug-j | 15:07 | |
nwc10 | masak: oh $deity yes. github's ability to make zillions of needless trivial merges really frustrates me | 15:10 | |
Ven | m: my @a = 1, 10, 100; my @b = 2, 20, 200; my @c = 3, 30, 300; say perl [Z+] @a, @b, @c:; | 15:14 | |
camelia | rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/g2G3G28ag3Invocant colon not allowed hereat /tmp/g2G3G28ag3:1------> 3 = 3, 30, 300; say perl [Z+] @a, @b, @c:7⏏5;» | ||
Ven | m: my @a = 1, 10, 100; my @b = 2, 20, 200; my @c = 3, 30, 300; say ([Z+] @a, @b, @c).perl; | ||
camelia | rakudo-moar a164f3: OUTPUT«(6, 60, 600).list» | ||
15:15
sqirrel joined
15:21
|Tux| left,
|Tux| joined
|
|||
[Coke] used to hate merge commits, but is leaning towards seeing them as a way to track process as well as code. | 15:22 | ||
15:24
dolmen left
15:27
yeahnoob left
|
|||
Ven | m: sub map(:(::T -> T) &fn, T @list) {} | 15:27 | |
camelia | rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eaVEWWpLADUnable to parse expression in formal parameter; couldn't find final ')' at /tmp/eaVEWWpLAD:1------> 3sub map(:(::T 7⏏5-> T) &fn, T @list) {} expecting any of: formal par…» | ||
Ven | m: sub map(:(::T -> T) &fn, T @list --> T @list) { () } | ||
camelia | rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/q4gpkNddQDUnable to parse expression in formal parameter; couldn't find final ')' at /tmp/q4gpkNddQD:1------> 3sub map(:(::T 7⏏5-> T) &fn, T @list --> T @list) { () } expecting any of: …» | ||
Ven | m: sub map(&fn :(::T -> T), T @list --> T @list) { () } | ||
camelia | rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QuVQkXgV7cUnable to parse expression in signature; couldn't find final ')' at /tmp/QuVQkXgV7c:1------> 3sub map(&fn :(::T 7⏏5-> T), T @list --> T @list) { () } expecting any of: f…» | ||
15:27
skids joined
|
|||
Ven | i guess subsigs nyi : | 15:27 | |
jnthn | It's spelt --> | 15:28 | |
But type captures certainly aren't implemented to do what you're after there... | |||
Ven | isn't --> what I have? | 15:33 | |
FROGGS | m: sub map(&fn :(::T --> T), T @list --> T @list) { () } | 15:34 | |
camelia | rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EtOAdhrIrKInvalid typename 'T' in parameter declaration.at /tmp/EtOAdhrIrK:1------> 3sub map(&fn :(::T --> T), T7⏏5 @list --> T @list) { () }» | 15:35 | |
FROGGS | Ven: both arrows have to be '-->' | ||
Ven | oh! | ||
m: sub map(&fn :(::T --> T), T @list --> T @list) { () } | |||
camelia | rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M8jKHU6Y9XInvalid typename 'T' in parameter declaration.at /tmp/M8jKHU6Y9X:1------> 3sub map(&fn :(::T --> T), T7⏏5 @list --> T @list) { () }» | ||
Ven | alright, thanks! | ||
m: sub map(:U \T, &fn :(::T --> T), T @list --> T @list) { () } | 15:36 | ||
camelia | rakudo-moar a164f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6XdsUbm6qhMalformed parameterat /tmp/6XdsUbm6qh:1------> 3sub map(:7⏏5U \T, &fn :(::T --> T), T @list --> T @l expecting any of: named parameter formal parameter» | ||
15:37
dolmen joined
15:38
mr-foobar joined
|
|||
hoelzro | o/ #perl6 | 15:44 | |
Ven | jnthn: could that be made to work "maybe at some point"? | ||
or is that unworkable | 15:45 | ||
jnthn | Ven: Well, that latter one has to be an error 'cus it re-defines T | 15:46 | |
Ven | jnthn: yes, definitely. I meant the one with the signature binding | 15:47 | |
jnthn | Ven: But your earlier attempt (sub map(&fn :(::T --> T), T @list --> T @list) { ... }) looks possible to me. | ||
Ven | that's be *really amazing* :-) | ||
jnthn | Though a bit fiddly | ||
jnthn will ponder it a bit in his copious free time :) | |||
The tricky bit is getting the match of fn's signature against ::T to somehow populate the type var environment in the surrounding context | 15:48 | ||
15:50
Rounin left
15:52
tinyblak joined
15:57
laouji joined,
larion left
|
|||
Ven | jnthn++ # considering my crazy things :) | 15:58 | |
16:01
laouji left
16:07
tinyblak left,
tinyblak joined
|
|||
dalek | c: f776ede | moritz++ | lib/Type/Mu.pod: Mu: examples, explain methods a bit more |
16:08 | |
c: 425976f | moritz++ | lib/Type/Any.pod: Any: examples |
|||
c: b6e4b3f | moritz++ | lib/Type/Cool.pod: Any: a few examples |
|||
16:10
Ven left
16:12
tinyblak left
|
|||
PerlJam | huh. From Gabor Szabo's Perl Weekly ... "the August Hackaton in Switzerland is touted as the last one before the dev version of Perl 6 1.0 goes out." | 16:20 | |
There's a couple of bits of awkwardness in that text. | 16:21 | ||
16:22
[Sno] left
|
|||
[ptc] | moritz: I've added something like perl6/doc/htmlify to the perl6-examples repo. It's still quite rough, but it might be better to link to a consistent html site from perl6.org/documentation instead of GitHub as present | 16:23 | |
Juerd | <3 Perl 6 1.0 | ||
[ptc] | moritz: what do you think? | ||
16:23
krunen joined
16:24
diana_olhovik left
|
|||
dalek | p: e942214 | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/NativeCallOps.java: allow to cast from CArray/Cstruct to something else |
16:27 | |
p: a18c983 | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CStruct.java: deal with CStruct Foo as attr of CStruct Foo |
|||
moritz | [ptc]: erm, I don't think I quite understand | ||
[ptc]: what does it do? how do the pages look like that you want to link to? | |||
[ptc] | moritz: the pages look much the same as the doc.perl6.org pages do | 16:28 | |
TimToady points out that <.kok> is 6 characters shorter in STD due to use of 'is endsym<keyspace>' | |||
[ptc] | moritz: currently perl6.org/documentation links to perl6-examples on github, and I thought it'd be nice to use the same "corporate design" for the examples as well | ||
FROGGS | [ptc]: so you want to render the examples to html on a perl6.org site? | 16:29 | |
[ptc] | moritz: the html needs to be built in the same way as doc.perl6.org | ||
moritz | [ptc]: ah, now I undertand | ||
*stand | |||
[ptc] | FROGGS: only if that's sensible | ||
jnthn | TimToady: That's always felt like a very ad-hoc mechanism to me... | 16:30 | |
TimToady: Is it, or...? :) | |||
moritz | [ptc]: +1 then, if you want to do the maintenance | ||
[ptc] | I've got something started and it looks ok (still quite rough though) and wondered if it's worth pursuing further | ||
moritz: I'm updating all the examples so that they work with current rakudo | |||
moritz: so yeah, I'm doing a bit of maintenance already | 16:31 | ||
moritz: thought it might be a nice complement to the docs site | |||
moritz | [ptc]: aye, it might | ||
16:31
kjs_ left
|
|||
FROGGS | Language | Types | Routines | Examples # I'd love to see that | 16:32 | |
16:32
gurrato joined
|
|||
TimToady | jnthn: enforcing constraints consistently on a grammatical category doesn't feel very ad hoc to me | 16:32 | |
16:33
kjs_ joined
|
|||
gurrato | Is this www.perl6.org/archive/rfc/197.html already implemented in Perl 6 ? | 16:33 | |
[ptc] | FROGGS: I think something like that is doable :-) | ||
FROGGS | :o) | 16:35 | |
timotimo | gurrato: no, i don't think this has made it into the design | ||
gurrato | timotimo, it's a pity that would have been useful | ||
16:35
PerlJam left
|
|||
moritz | [ptc]: bonus points for adding some sort of test suite (can be just storing results from one run, and then comparing on the next run), and only HTML-rendering those that pass the tests | 16:35 | |
gurrato | has anything done toward working with regexes and numbers? | 16:36 | |
timotimo | gurrato: it looks very mis-huffmanized and i don't understand the examples very well | ||
jnthn | I'm trying to figure out exactly what's wanting | ||
:) | |||
*what it's | |||
16:36
PerlJam joined
|
|||
jnthn | I mean | 16:36 | |
timotimo | gurrato: you can already put a <?{ ... }> block directly after matching a (\d+) and do calculations on it | 16:37 | |
gurrato | a bit like i don't understand the word mis-huffmanized | ||
timotimo | ah | ||
jnthn | m: say 'omg 2 42' ~~ /(\d+) <?{ $0 > 5 }>/ | ||
camelia | rakudo-moar a164f3: OUTPUT«「42」 0 => 「42」» | ||
gurrato | woukd <?{ ... }> allow a condition? | ||
timotimo | yes | ||
FROGGS | m: say 42 ~~ / @( 1..100 ) / | ||
jnthn | m: say 'omg 2 42' ~~ /(\d+) <?{ $0 > 1 }>/ | ||
camelia | rakudo-moar a164f3: OUTPUT«「42」» | ||
rakudo-moar a164f3: OUTPUT«「2」 0 => 「2」» | |||
timotimo | the proposal looks like it steals many short pieces of syntax for a very rarely used thing | ||
jnthn | m: say 'omg 2 42' ~~ /(\d+) <?{ 1 < $0 < 4 }>/ | 16:38 | |
camelia | rakudo-moar a164f3: OUTPUT«「2」 0 => 「2」» | ||
jnthn | etc. | ||
So yeah, it seems quite easily do-able, just...not with such a concise syntax. :) | |||
And that's probably the right thing. | |||
gurrato | nice | 16:39 | |
FROGGS | m: say 42 ~~ / << @( 1..100 ) >> / | ||
camelia | rakudo-moar a164f3: OUTPUT«「42」» | ||
FROGGS | m: say 101 ~~ / << @( 1..100 ) >> / | ||
camelia | rakudo-moar a164f3: OUTPUT«Nil» | ||
jnthn | Note that "if 1 <= $x <= 100 { }" also works nicely enough if you're not in a parsing context too | ||
TimToady | this is a prime example of an RFC where we ignored the proposed solution but didn't ignore the pain point that inspired it | ||
jnthn | FROGGS: Cute but darn slow :P | ||
timotimo | gurrato: "huffman coding" can more or less be summarized as "things that are used very often are easy to reach" | ||
as in "common words are short" | 16:40 | ||
FROGGS | jnthn: I fast enough here :o) | ||
16:40
kjs_ left
|
|||
TimToady | and if @() could determine that its context were static, could turn into a fast NFA/DFA | 16:41 | |
16:41
perl6_newbee joined
|
|||
TimToady | but other than inlining a constant like that, @ doesn't have a good way to determine whether or not its input array has been modified | 16:42 | |
jnthn | Indeed | ||
dalek | href="https://perl6.org:">perl6.org: 82f1d1e | FROGGS++ | source/compilers/index.html: the text about nqp ... a word |
16:43 | |
jnthn | A trie might be at least as good as DFA here too | ||
16:44
zakharyas left
16:45
FROGGS left
16:46
abraxxa left,
abraxxa joined
16:47
donaldh left
|
|||
dalek | line-Python: 280919c | (Stefan Seifert)++ | / (3 files): Remove dependency on NativeCall - it's in core now. |
16:48 | |
japhb | Thanks, nine_++ | ||
yoleaux | 08:44Z <jnthn> japhb: re 9cb3d64faa, it's not that the param binding performance is different, but rather the assignment code-gen. Assign code-gen is done differently by SIGIL ($ = use container spec stuff, @/% = call STORE method). Without a sigil, we don't know, so emit code that checks which of the two should be done. | ||
08:45Z <jnthn> japhb: spesh should already be smart enough to do away with the check, but still better to generate smaller code in the first place... | |||
08:47Z <jnthn> japhb: re the behavior change, that's going to stay; it's consistent with non-native scalars, where you'd need the nqp::decont(...) on the thing you push. Better in your case is to do an explicit box (nqp::p6box_s), but best is probably to use nqp::list_s and nqp::push_s, to avoid the boxing altogether. | |||
08:48Z <jnthn> japhb: the behavior change is what lets stuff like "($native-a, $native-b) = 1, 2" now work, fwiw. | 16:49 | ||
japhb | jnthn: I've got a fix that sprinkles more _s around, and seems to not blow up on an out-of-tree copy of .resolve. I did find it interesting that a list produced with nqp::split does *not* appear to be an nqp::list_s. Is that intentional? If so, can you explain why? | 16:50 | |
16:51
rindolf left
|
|||
jnthn | japhb: Intentional in so far as "it's what NQP expects", yes | 16:53 | |
japhb: Also means that an eager split in Perl 6 gets back something that can go straight into a List. | |||
dalek | kudo/nom: ddddd07 | (Geoffrey Broadwell)++ | src/core/IO/Path.pm: Fix IO::Path.resolve to work with native refs |
||
japhb | jnthn: Ah, OK | 16:54 | |
jnthn | Cute sha-1! | ||
japhb | heh | ||
TimToady | jnthn: the other nice thing about endsym is that it magically knows what the symbol is, rather relying on touchy cursor semantics to try to determine what symbol matched | ||
if <.kok> isn't the next thing, it breaks badly | |||
and it relies on the subrule not updating .from when it probably should | 16:55 | ||
timotimo | we could unshorten kok into kwok, that'd be much more understandable for people who don't know what it's about !! | ||
TimToady | there you go | ||
jnthn | TimToady: It's .pos rather than .from that updates | ||
16:55
pochi_ is now known as pochi
|
|||
TimToady | I believe STD will also update .from when calling a subrule, iirc | 16:55 | |
japhb | jnthn: Oh, also, why did I need to use nqp::elems($a) + nqp::elems($b) for the nqp::list_s variants, but I could just do $a + $b before (with nqp::list's)? | ||
TimToady | so I felt guilty relying on that | 16:56 | |
jnthn | japhb: Because there's no NQP => Perl 6 marshalling set up for nqp::list_s at a guess | ||
TimToady | s/update/start the subrule out with a new .from/ | 16:57 | |
16:57
cognominal joined,
cognominal left
|
|||
jnthn | japhb: Your code before will probably have produced a Parcel around each of the nqp::lists before calculating the multi-dispatch | 16:57 | |
japhb: Meaning $a + $b where the two are NQP lists resulting in a couple of extra allocations. | 16:58 | ||
japhb: If doing stuff with nqp:: data structures, I suggest staying with nqp:: operations on them. | 16:59 | ||
It's a lot more predictable. | |||
TimToady | so what's the difference between a str and a Str, structurewise? | ||
japhb | Great, thanks for the explanation jnthn++! | ||
jnthn | TimToady: str = a VM-level NFG string, with some implementation-defined representation | 17:00 | |
17:00
cschwenz left
|
|||
jnthn | TimToady: Str = a P6opaque referencing a str, which you can use "but" on to mix in to, call methods on, etc. | 17:00 | |
moritz | Str: boxed object into which you can mix roles as you please | ||
jnthn | Anything that's going to do intensive amounts of work can save some indirection using str. The regex engine does exactly that. | 17:01 | |
It's also worth noting that spesh will probably soon start to kill off temporary boxes (including those it can see post-inlining) in the not too distant future. | 17:04 | ||
17:05
dakkar left
|
|||
japhb | Eggselent | 17:05 | |
17:10
H2O1 joined,
diana_olhovik joined
17:11
rindolf joined
17:12
[Sno] joined
17:13
cognominal joined
17:15
cognominal left
|
|||
nine_ | japhb: happy to help :) | 17:17 | |
yoleaux | 00:16Z <japhb> nine_: It looks like Inline::Python still depends on NativeCall; can you remove that dependency? | ||
17:19
H2O1 left
|
|||
lizmat | good *, #perl6! | 17:25 | |
lizmat just pulled, configged, built and spectested | |||
and found spectest takes quite a bit longer | 17:26 | ||
and startup has gone up from .205 to .220 :-( | |||
lizmat will now backlog | |||
17:27
virtualsue left
17:28
cognominal joined
|
|||
timotimo | maybe that'll improve again when we get better code-gen for native refs back? | 17:29 | |
lizmat | I have no idea, still backlogging the past 30 hours or so | 17:30 | |
TimToady | I maybe am doing some unnecessary lookups in <.kok> | ||
17:30
sqirrel left
|
|||
dalek | Heuristic branch merge: pushed 109 commits to rakudo/newio by lizmat | 17:30 | |
kudo/newio: ddddd07 | (Geoffrey Broadwell)++ | src/core/IO/Path.pm: Fix IO::Path.resolve to work with native refs |
17:31 | ||
kudo/newio: a84c327 | lizmat++ | src/core/IO/Path.pm: Merge branch 'nom' into newio |
|||
cognominal | kok? what name is that? names in Perl 6 are kind of cocky and unhelpful. Or is that obvious from context? | 17:32 | |
jnthn | timotimo: I'd be surprised if native-ref made a difference to startup... | ||
timotimo | OK | ||
bcode | !j | 17:33 | |
err, wrong channel. | |||
timotimo | today i'll run benchmarks again if you're interested, jnthn | ||
jnthn | cognominal: It's not even a Perl 6 keyword, it's a rule in the grammar. Nothing user-land. | ||
17:33
laouji joined
|
|||
japhb | bcode: What would !j do in the right channel? | 17:33 | |
bcode | japhb, eh, it's for a game bot that plays werewolf >.< sorry | ||
lizmat | TimToady: startup time for me is "perl6 -e 1' | ||
jnthn | timotimo: Yes, please do...and maybe plot it against the previous result | ||
dalek | rl6-roast-data: 4fca25a | coke++ | / (9 files): today (automated commit) |
17:34 | |
lizmat | hardly much grammar action there? | ||
jnthn | timotimo: (From pre-merge nom) | ||
bcode goes back into hiding | |||
jnthn | timotimo: I did go through each of the regressions and Did Something. :) | ||
[Coke] | integration/weird-errors.t is failing on moar, jit or not. | 17:35 | |
S17-scheduler/every.t is failing on moar-jit and jvm. | |||
S02-types/native.rakudo.jvm is failing on jvm | |||
TimToady | well, I should fix the unnecessarily lookups anyway, since it probably slows down parsing a bit | 17:37 | |
masak | bcode: welcome to #perl6! :) I used to be a lurker too, long ago ;) | ||
17:38
laouji left
|
|||
bcode | masak, heh, thanks :) i'm a little shy so tend to watch, yeah. what I've seen so far is awesome, though. :D | 17:38 | |
17:38
Kristien joined
|
|||
Kristien | hi | 17:39 | |
masak | bcode: yes, quite. | ||
17:39
larion joined
|
|||
jnthn | [Coke]: I plan to look at the S02-types one on JVM this evening | 17:42 | |
lizmat | m: sub a(Int \b) { b = 42 }; a my int $b; say $b # seems to work | ||
camelia | rakudo-moar ddddd0: OUTPUT«42» | ||
lizmat | m: sub a(int \b) { b = 42 }; a my int $b; say $b # native int in sig doesn't :-( | ||
camelia | rakudo-moar ddddd0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Y_o1l0zJwkCannot assign to readonly variable bat /tmp/Y_o1l0zJwk:1------> 3sub a(int \b) { b = 42 7⏏5}; a my int $b; say $b # native int in» | ||
lizmat | jnthn: rakudobug ? | ||
jnthn | lizmat: Yes, grondilu already reported that one | ||
lizmat: It's that the declarator doesn't evaluate to the ref | 17:43 | ||
lizmat | ah ok, didn't backlog there yet | ||
jnthn | m: sub a(int \b) { b = 42 }; my int $b; a $b; say $b | ||
camelia | rakudo-moar ddddd0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RsApdSwgBpCannot assign to readonly variable bat /tmp/RsApdSwgBp:1------> 3sub a(int \b) { b = 42 7⏏5}; my int $b; a $b; say $b» | ||
jnthn | Hm, and also that \ doesn't allow writes, apparently... | ||
lizmat | yeah, that doesn't work either... :-) | ||
dalek | line-Perl5: a7a5d66 | (Stefan Seifert)++ | p5helper.c: No need to copy the name of the called method NativeCall does not free() the string anyway. |
||
jnthn | Hmm | ||
Please just write int $b :P | 17:44 | ||
I'm not quite sure how to deal with int \b | |||
int $b is rw # actually an object register | |||
lizmat | m: sub a(int $b is rw) { $b = 42 }; a my int $b; say $b # does this work? | ||
camelia | rakudo-moar ddddd0: OUTPUT«42» | ||
17:45
gurrato left
|
|||
jnthn | int $b # actually an int register | 17:45 | |
And...int \b is going to have to be the first of those if it's to support the ref, meaning that in the other case it'll have to force a boxing, and argh | |||
So I'm inclined to simply forbid \ forms on native params. | |||
lizmat | fine by me if it dies at compile time :-) | 17:46 | |
17:46
xinming left
|
|||
[Coke] | +1 | 17:46 | |
17:49
xinming joined
|
|||
lizmat | jnthn: is (str $a is rw) supposed to be faster than (Str $a is rw) ? | 17:50 | |
17:51
grettir joined
|
|||
jnthn | lizmat: uh...that's really hard to answer in isolation | 17:52 | |
lizmat | my str $s = "foo"; sub a(str $b is rw) { $b = $s }; for ^1000000 { a my str $c } | 17:53 | |
real0m0.879s | |||
my Str $s = "foo"; sub a(Str $b is rw) { $b = $s }; for ^1000000 { a my Str $c } | |||
real0m0.740s | |||
17:54
xinming left
17:55
xinming joined
|
|||
jnthn | I'd epxect those to come out roughly the same | 17:55 | |
It's possible after spesh learns more on native refs you'll find the first slightly edges the second | 17:56 | ||
But they're approximately the same amount of work | |||
oh, actually.. | 17:57 | ||
There's a way the str one might come out quite a lot faster once ref eliding opts are in. | |||
But that's not likely given that a is not inlinable. | 17:58 | ||
(By spesh) | |||
lizmat | jnthn: roughly the same, with native always slower ? | ||
jnthn | Since it closes over an outer lexical. | ||
lizmat: I think for the foreseeable future, you'll find they are very close, native perhaps a little faster at some point | |||
lizmat | fwiw, without the outer lexical, it's the same | ||
moritz | I got benchmark results in the same range as lizmat++ | 17:59 | |
1.25 +- 0.02 (str is rw) vs. 1.06 +- 0.01 (Str is rw) | |||
jnthn | Without the outer lexical access, in the next month or so when spesh learns to elide native ref takes, the native one will likely come out notably faster. | 18:00 | |
With it, it's harder to say. | |||
But native won't be notably faster in that case any time soon. | 18:01 | ||
lizmat | ok | 18:02 | |
jnthn | Part of the reason I implemetned --profile, fwiw, is because the more clever Moar gets, the harder it's going to get for us to reason about performane without measuring. | 18:03 | |
(Note that the JVM is already well past this level of sophistication.) | 18:04 | ||
dalek | kudo/nom: f0359a1 | TimToady++ | src/Perl6/Grammar.nqp: Don't do name lookup when there's whitespace, duh |
18:07 | |
18:08
Hor|zon left
|
|||
lizmat | what was the profile option again here with camelia? | 18:08 | |
m-prof: 1 | |||
.help | 18:09 | ||
yoleaux | lizmat: I'm yoleaux. Type .commands to see what I can do, or see dpk.io/yoleaux for a quick guide. | ||
lizmat | jnthn: the str case has only 50% jitted frames, as opposed to the Str case having 100% jitted frames | ||
jnthn | lizmat: That might well explain the difference. | 18:10 | |
lizmat | the str case spends 26% in garbage collect, whereas the Str case only spends 14% | ||
jnthn | lizmat: Also tells me there's something needing JITting | ||
lizmat | those 50% were actually deopts | 18:11 | |
Of 1999967 specialized or JIT-compiled frames, there were 999983 deoptimizations (that's 50% of all optimized frames). | |||
for the str case | |||
eh... no, scratch that | 18:12 | ||
[Coke] | prof-m: say 3; | ||
camelia | prof-m f0359a: OUTPUT«3» | ||
.. Prof: p.p6c.org/502816 | |||
timotimo | huh? that link seems dead? | ||
[Coke] | that url: 404 | ||
lizmat backlogs some more | 18:13 | ||
18:14
fhelmberger left
|
|||
jnthn | lizmat: Wowza, that also wants a look. Thanks. | 18:16 | |
lizmat | the 50% deopts were for the Str case | 18:17 | |
jnthn | Ah | ||
That still wants a look ;) | |||
lizmat | prof-m: sub a(str $b is rw) { $b = "foo" }; for ^1000000 { a my str $c } | ||
camelia | ( no output ) | ||
.. Prof: p.p6c.org/502953 | |||
jnthn | Well, it seems I succeeded at cooking dinner, so... & | ||
lizmat | alas, page not there :-( | ||
smakelijk eten! | 18:18 | ||
18:18
FROGGS joined
18:23
pecastro left
|
|||
lizmat | TimToady: your last .kok patch seems to largely remove the extra startup time | 18:27 | |
TimToady++ :-) | 18:28 | ||
TimToady | I dunno why it would though, since perl6 -e '1' does almost no parsing | ||
lizmat | agree, but empirically it seems to have worked | ||
lizmat tries to profile | |||
lizmat just notices that precomping NativeCall is noisy | 18:30 | ||
Useless declaration of a has-scoped method in multi (did you mean 'my method name'?) | |||
TimToady | yes, I noticed that yesterday and wondered if kok had flushed it out somehow | 18:31 | |
the irritating thing is that it gives no line number | |||
lizmat | --ll-exception doesn't give any extra info | 18:34 | |
timotimo | FROGGS: what's keeping us from making testers.p6c.org also available as testers.perl6.org? | 18:36 | |
dalek | ast: 89b30a8 | TimToady++ | S17-procasync/basic.t: conjecture that test is no longer flapping |
||
avuserow | timotimo: IIRC you were playing with ipython at some point in the past, have you seen ipython.org/ipython-doc/3/whatsnew/version3.html and github.com/jupyter/tmpnb ? | 18:37 | |
timotimo | haven't looked into it yet, but i did see there were big changes | ||
avuserow | the tmpnb project could potentially help support a (Moar-based) try.perl6.org | 18:39 | |
timotimo | yes! | ||
divide-and-conquer 1032/s 163/s | 18:41 | ||
1.0x 6.3x | |||
dalek | kudo/nom: 637c6bb | TimToady++ | src/Perl6/Actions.nqp: replace toy method warning with real worry |
||
timotimo | this is native-ref-backed rakudo-moar being 6x slower than pre-native-ref rakudo-moar | 18:42 | |
but before i post a comparison i'll get TT's kok performance fix | 18:43 | ||
ugexe | recent report table on testers.perl6.org column OS name doesn't match up with the os names in the "Code quality" table above it (code quality lists 'raspbian' in a header, but in the table below the OS name column says linux, and the code quality graph attributed the failure to linux not raspbian) | ||
timotimo | OK, gimme a minute | 18:44 | |
FROGGS | timotimo: I already wrote an email to the perl6.org domain admin | ||
18:44
ash_gti joined
|
|||
TimToady | now gets: Useless declaration of a has-scoped method in multi (did you mean 'my method name'?) | 18:44 | |
at lib/NativeCall.pm:115 | |||
------> ⏏method deref(::?CLASS:D \ptr:) { nativec | |||
which is weird | |||
timotimo | cool, thanks FROGGS | ||
FROGGS | I did that on Friday... we'll see when this happens | 18:45 | |
18:46
n00w0t joined
|
|||
nine_ | What really does not make any sense to me is that there's a heisenbug giving the exact same error message both in Inline::Perl5 and Inline::Python though they implement calling methods on P6 objects in completely different ways. | 18:50 | |
timotimo | ugexe: i was pulling the osname from the reports table without limiting the search to the last 1000 reports. | ||
raydiak | \o morning #perl6 | ||
nine_ | Inline::Python uses .can to get a method object and call that later on while Inline::Perl5 uses $object."$name"() | ||
ugexe | timotimo: shouldnt it still show up if its in the last 1000 reports? | 18:52 | |
raydiak | nine_: haven't backlogged so this may not be pertinent, but thought you'd want to know I fixed some problems I had last night by replacing the meta fallback code I copied from Inline::Python with FALLBACK methods and ** delegation | ||
FROGGS | ugexe: the problem is/was that $*DISTRO.name showed what $*KERNEL.name is now... so reports were recorded incorrectly | 18:53 | |
raydiak | was wondering, should Mu or Any provide a .sink? if you define a FALLBACK or ** delegation, you get "Method 'sink' not found for ..." if you use the object in sink context...I can't readily tell where the .sink is called from in rakudo but also curious why it doesn't happen for core classes | 18:54 | |
FROGGS | ugexe: and I fixed some manually | ||
raydiak | s/core classes/any class without the fallback/ | ||
n00w0t | why should I teach perl6? | ||
timotimo | ugexe: it isn't in the last 1k reports | 18:55 | |
ugexe | FROGGS: recently i take it? this is a test report from last night/today with rakudo built right before it | ||
FROGGS | ugexe: can you provide the url to the report? | ||
ugexe | testers.p6c.org/reports/15598.html | ||
FROGGS | ugexe: ahh, you are that nickl :o) | 18:56 | |
timotimo | FROGGS: i hope you were OK with me reading your mail on hack and "being you" to fix things with cpandatesters? | ||
18:56
mohij joined
|
|||
ugexe | i.imgur.com/btW587z.jpg | 18:56 | |
FROGGS | timotimo: yes, of course | ||
timotimo | phew | ||
FROGGS | timotimo: there will never be any private stuff on it :o) | ||
timotimo | n00w0t: are you going to teach perl6 before learning perl6? :) | ||
FROGGS | ugexe: the column in the stats is from an older report | 18:57 | |
timotimo | n00w0t: it'd be interesting to know what you're expecting to use perl6 for and what you're comparing it against. probably also what languages you already know | ||
18:58
ash_gti left
|
|||
timotimo | ugexe: reports 14200, 14256 and 14190 have raspbian set as the osname in the database | 18:59 | |
18:59
perl6_newbee left
19:00
pierrot joined
|
|||
timotimo | ugexe: testers.p6c.org/dist/D/Digest/Lucie...ondin.html | 19:00 | |
ugexe | but i mean the OS health column doesnt show any report success/failure for raspbian | ||
FROGGS | I updated the osname field of three reports now | ||
ugexe: first, it collects all osnames, not only for the last thousand reports | 19:01 | ||
ugexe: and then it fetches said thousand reports to make up the stats and list | |||
19:02
n00w0t left
|
|||
FROGGS | timotimo: btw, how do you like that flame icon? :D | 19:02 | |
timotimo | i like it! | ||
FROGGS | I enjoy it... | ||
timotimo | FROGGS: would you rebuild the recent reports page please? :) | 19:03 | |
wait, i still have a shell open where i am you | |||
btw, do you regularly update the database dump? | |||
FROGGS | no, that dump is when I moved everything from hack | 19:04 | |
timotimo | OK | ||
FROGGS | but I will create (daily?) dumps | ||
timotimo | much appreciated | ||
19:04
Hor|zon joined
|
|||
timotimo | i should have developed this stuff on my local machine right from the start | 19:04 | |
or maybe on hack | |||
FROGGS | and copy them to my machine and perhaps also make them available for download | ||
timotimo | rather than have a million commits that fix silly mistakes ... | ||
FROGGS | yeah | 19:05 | |
:o) | |||
timotimo | hm | ||
have i still done something wrong | |||
19:05
gcole_ joined
|
|||
FROGGS | raspbian is gone now: testers.p6c.org/recent.html | 19:06 | |
timotimo | but why are the others still there? | 19:07 | |
is my query wrong? | |||
oh | |||
i didn't sort the reports by id :) | |||
FROGGS | ahh, that's what you are doing | 19:08 | |
timotimo | also, the way we do locking for the jobs is kind of fragile | ||
19:08
Hor|zon left
|
|||
FROGGS | timotimo: well, I'd prefer an exclusive lock on a file but... | 19:09 | |
19:09
gcole left
|
|||
timotimo | yeah | 19:09 | |
19:09
adu joined
|
|||
timotimo | why are there still 5 osnames when the db actually only returns 2? | 19:09 | |
not yet uploaded? | 19:10 | ||
there we go | |||
FROGGS | rsync also only runs every five minutes | ||
we need more smokers :P | 19:11 | ||
dalek | kudo/nom: 35f0c9c | FROGGS++ | tools/build/NQP_REVISION: bump nqp with jvm NativeCall/CStruct fixes |
19:12 | |
[Coke] | docs/architecture.html is still parroty. | 19:14 | |
FROGGS | the number of uploaded fosdem videos seems to be a constant :o( | 19:15 | |
19:15
myp left
|
|||
timotimo | FROGGS: how expensive is a rsync call when nothing needs to be updated? | 19:15 | |
FROGGS | timotimo: it looks like it still copies everything | 19:16 | |
rsyncd might be better there | |||
but that's out of my expertise | |||
timotimo | FROGGS: things look a bit weird when there's only two distinct osnames, maybe we should invent silly fillers for when there's not enough to be had in the reports? | ||
19:17
mohij left
|
|||
FROGGS | timotimo: that's why I usually show a minimum set of osnames | 19:17 | |
timotimo | aye, i saw that in the code and didn't think about it | ||
should i reinstate that? | 19:18 | ||
FROGGS | no, not yet | ||
I think I want to have it show stats about *all* reports instead of the last thousand anyway... | |||
timotimo | ah | 19:19 | |
FROGGS | but collapsing dev releases into a single line, without the ability to show more | ||
19:20
myp joined
|
|||
FROGGS | though that's not quite what /recent is about | 19:20 | |
that index page is kinda nice: cpantesters.org/ | 19:21 | ||
flussence | m: sub foo(Int $bar = 5 where * ~~ 0..11) {...} # unusually *un*helpful suggestion here | 19:22 | |
camelia | rakudo-moar 637c6b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wwf1HNgPxTThe post constraint "where * ~~ 0..11" came after the default value(did you mean "...where * ~~ 0..11 = 5 "?)at /tmp/wwf1HNgPxT:1------> 3sub foo(Int $bar = 5 where * ~~ 0..117⏏5) {..…» | ||
TimToady | heh, ..… | 19:24 | |
Kristien | booo | 19:25 | |
TimToady | bo… | 19:27 | |
colomon | huh, the smoker suddenly started reporting lots of “prerequisite failed” statuses today. :\ | 19:29 | |
FROGGS | ewww | ||
TimToady | possibly a bunch of modules not using whitespace after keywords? | ||
or just one on which the others depend? | 19:30 | ||
FROGGS | " Dependency NativeCall is not present in the module ecosystem " | ||
dalek | p: af2e221 | TimToady++ | src/QRegex/Cursor.nqp: add PRECURSOR method This generates a cursor pointing to $!from for better error messages on constructs that would otherwise point confusingly to the next statement/declaration. |
||
TimToady | oh, well, it's not in the module ecosystem | ||
colomon | oh, yeah, that will do it all right. | 19:31 | |
darn, I was thinking someone had fixed panda / emmentaler so that prereq test failures were now reported as prereq failures. | 19:32 | ||
smoke.perl6.org/report | 19:34 | ||
19:37
rurban left
|
|||
timotimo | t.h8.lv/p6bench/2015-03-02-pre_post...veref.html - orange is before nativeref, blue is after | 19:37 | |
dalek | kudo/nom: e2cd569 | TimToady++ | tools/build/NQP_REVISION: bump nqp rev |
19:38 | |
kudo/nom: a01d502 | TimToady++ | src/Perl6/Actions.nqp: don't locate declarator errors on next statement |
|||
FROGGS | I just opened twelve pull requests :o) | 19:40 | |
timotimo | for what? | ||
TimToady | ENONATIVECALL | ||
FROGGS | timotimo: stripping NativeCall from META.infos | ||
timotimo | ah | ||
nice :) | |||
colomon | FROGGS++ | 19:41 | |
TimToady | still have not clue about the method ^name warning, but at least it's pointing to the right declaration now :) | ||
FROGGS | *g* | 19:42 | |
19:43
espadrine left,
kaare_ joined
|
|||
timotimo | i'm feeling a bit low-powered | 19:49 | |
i'm working on the weekly right now, but somehow i don't find a lot of good stuff | |||
19:50
ugexe left
|
|||
dalek | ast: b76efe4 | usev6++ | S12-class/basic.t: Unfudge test for RT #67784 |
19:53 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=67784 | ||
timotimo | p6weekly.wordpress.com/?p=419&...4c0481835c - i need help/inspiration | 19:56 | |
19:57
raiph joined
|
|||
skids | timotimo: +pmichaud starting GLR soon | 20:00 | |
20:01
ugexe joined,
jnthn left
|
|||
FROGGS | timotimo: I've send feedback | 20:03 | |
ugexe | (perl6-j) smoke testing killed one of my servers during DateTime :)~ | ||
FROGGS | timotimo: ahh, and perhaps mention testers.p6c.org | 20:04 | |
moritz | timotimo: you might mention DBIish fixes for Postgresql | ||
ugexe | any way i can look into the cause? like if its the module or rakudo? | ||
Kristien | m: say ⌊3.14⌋ | ||
camelia | rakudo-moar 35f0c9: OUTPUT«5===SORRY!5===No valid term seen where one is requiredat /tmp/d6OUY5PXXn:1------> 3say 7⏏5⌊3.14⌋Bogus termat /tmp/d6OUY5PXXn:1------> 3say 7⏏5⌊3.14⌋ expecting any of: argument list prefix …» | ||
Kristien | no floor operator! | ||
Mouq | timotimo: docs work… examples.perl6.org… TimToady++'s work today/last night… | 20:05 | |
moritz | timotimo: has doc.perl6.org/language/5to6 made an appearance on the weekly yet? | ||
uhm, why doesn't doc.perl6.org/language/5to6 show a search box? | 20:06 | ||
just in firefox; it's there in chromium | |||
timotimo: also [ptc]++'s has done a lot for doc.perl6.org/type/IO | 20:08 | ||
Mouq | timotimo: Support for “quoting”, ‘quoting’, ‚quoting’ and „quoting” | ||
And … | |||
TimToady | m: sub circumfix:<⌊ ⌋> { .floor }; say ⌊3.14⌋ | 20:09 | |
camelia | rakudo-moar 35f0c9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hcQtbSdnx7Calling 'circumfix:<⌊ ⌋>' will never work with argument types (Rat) Expected: :()at /tmp/hcQtbSdnx7:1------> 3sub circumfix:<⌊ ⌋> { .floor }; say 7⏏5⌊3.14⌋» | ||
moritz | timotimo: also, I did some basic documentation for sockets (no examples yet) | ||
nine_ | timotimo: rsync is very cheap if there's nothing to update | ||
TimToady | m: sub circumfix:<⌊ ⌋> { $_.floor }; say ⌊3.14⌋ | ||
camelia | rakudo-moar 35f0c9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vXkkRnrFagCalling 'circumfix:<⌊ ⌋>' will never work with argument types (Rat) Expected: :()at /tmp/vXkkRnrFag:1------> 3sub circumfix:<⌊ ⌋> { $_.floor }; say 7⏏5⌊3.14⌋» | ||
TimToady | m: sub circumfix:<⌊ ⌋> { $^a.floor }; say ⌊3.14⌋ | ||
camelia | rakudo-moar 35f0c9: OUTPUT«3» | ||
TimToady | Kristien: easy enough to roll your own, I think | 20:10 | |
Kristien | nice | ||
TimToady | it's not like your client is gonna turn 3.14.floor into ⌊3.14⌋ for you :) | ||
Mouq | timotimo: Improved JVM marshalling | ||
bartolin | timotimo: wrt bugs, bugs, bugs: there was a lot of work from other people as well (among others Mouq++ did fix quite some bugs) | ||
nine_ | raydiak: FALLBACK would very probably make the bug go away, but there's no way to know if it fixed it or just hid it | 20:11 | |
Mouq | bartolin: None this week I don't think :/ | ||
(From me! bugfixers++) | 20:12 | ||
TimToady | m: sub foo() { $^a }sub bar() {} | ||
camelia | rakudo-moar a01d50: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zOiXuX2LOYPlaceholder variable '$^a' cannot override existing signatureat /tmp/zOiXuX2LOY:2------> 3<BOL>7⏏5sub bar() {}» | ||
bartolin | Mouq: but you worked on the tickets, that's for sure! | ||
timotimo | Mouq: oh yes! i had thought of that and forgot again | 20:14 | |
bartolin | Mouq: also that paragraph from timotimo++ wasn't specific for the last week | ||
timotimo | moritz: do we know anything about memory management and leaks in DBIish? | 20:15 | |
20:16
ugexe_ joined
|
|||
hoelzro | timotimo: where does literal say that the new syntax stuff requires 7.4? | 20:16 | |
the way I read his article, it's that he used the new profiler in 7.4 to identify issues | |||
moritz | timotimo: yes, I know that I ignored the topic when I worked with DBIish, because rakudo/NativeCall had basically zero support for anything like it | ||
DrForr_ | rakudo question, if I may - The compiler error "Cannot call 'new': none of these signatures match:" has no indication of what invocation of 'new' failed. | 20:17 | |
20:17
ugexe left
|
|||
TimToady | m: method foo() {}method bar() {} | 20:17 | |
camelia | rakudo-moar a01d50: OUTPUT«Potential difficulties: Useless declaration of a has-scoped method in mainline (did you mean 'my method foo'?) at /tmp/rjzoBA_GUc:1 ------> 3method7⏏5 foo() {} Useless declaration of a has-scoped method in mainline (did you me…» | ||
20:17
ugexe_ is now known as ugexe
|
|||
moritz | timotimo: I try to use close/free native subs from the backend libs where available | 20:17 | |
DrForr_ | I guess that's more of a statement, with the implied question being "Is this correct behavior?" | 20:18 | |
FROGGS | DrForr_: there is no file and line number? | ||
DrForr_ | Correct. | ||
FROGGS | hoelzro: it uses a regex feature which is new in 7.4 | 20:19 | |
DrForr_: can you rakudobug that please? | |||
DrForr_ | Yep, I'll trim that down. | ||
dalek | ast: 83da5c2 | usev6++ | S02-types/hash.t: Add test for RT #123084 |
||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123084 | ||
20:19
amaliapomian joined
|
|||
Mouq | timotimo: Updates to &is/&isn't semantics | 20:20 | |
*isnt | |||
hoelzro | FROGGS: did he mention that on hinrik.github.io/perl6.vim-gets-more-love/? | ||
Mouq | timotimo: Lack of any updates to ChangeLog in almost two weeks | ||
FROGGS | hoelzro: no, here on channel... after [Coke] said that he upgraded from 7.3 to 7.4 and that the problems he had went away | 20:21 | |
hoelzro | ahhhhh | ||
ok, I missed that =) | |||
dalek | c: 5189f2e | moritz++ | lib/Type/IO/Socket/INET.pod: IO::Socket::INET: echo server + client |
20:22 | |
timotimo | hoelzro: he only noticed that after the blog post | ||
hoelzro | literal++ gets major points from me for making those changes. I've been wanting to get around to that for quite some time | 20:23 | |
20:27
darutoko- left,
virtualsue joined
20:28
jnthn joined
20:31
sqirrel joined
|
|||
FROGGS | lol! thedailywtf.com/articles/polish-elections | 20:32 | |
20:34
felher left,
gtodd joined
|
|||
gtodd | wow a never before seen by me error compiling perl6 :-) | 20:34 | |
20:34
felher joined
|
|||
gtodd | Useless declaration of a has-scoped method in multi (did you mean 'my method name'?) | 20:35 | |
at lib/NativeCall.pm:114 | |||
------> method ^name() { 'Pointer[' ~ ::TValue.^name ~ | |||
20:35
felher is now known as Guest66620
|
|||
TimToady | appears to be a bogus error caused by an internal problem of some sort | 20:35 | |
20:35
bjz left
|
|||
TimToady | yesterday it was pointing to the wrong line | 20:36 | |
gtodd | :) | 20:37 | |
jnthn | Also it's a warning, not an error :) | 20:38 | |
yoleaux | 20:21Z <nwc10> jnthn: yes MVM_SPESH_DISABLE=1 gets pass for Rakudo 2014.10's make test | ||
gtodd | hehe | ||
sorry | |||
20:38
mohij joined,
telex left
|
|||
dalek | ast: c3d0fa4 | usev6++ | S06-other/misc.t: Add tests for RT #117901 |
20:39 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117901 | ||
gtodd | yes ... to be fair it said something like "potential problem" ... but some kind of ansi-fication made it red! | ||
Mouq | gtodd: Still, thanks for pointing it out! :) It's definitely something that needs to be diagnosed | ||
gtodd | hey a silly "benchmark" I ran in december at 64 seconds is now only .... (drum roll) .... | 20:40 | |
53 seconds ! | |||
20:40
telex joined
|
|||
mohij | (Context: I want to save state in a grammar that reverts during backtrack.) I fail using make / $/.made to save state in my grammar. It seems the stuff I add to the cursor can't be accessed in sub rules or later non sub rules. Did I just fail to find out how or is it impossible? | 20:40 | |
ugexe | is there a flag for moarvm that might help it install on a low memory platform? | ||
[Coke] | You want dynamic vars. | 20:41 | |
TimToady | [Coke]: not, not dynvars | ||
[Coke] | mohij: $*THINGEE | ||
TimToady | those don't work right for backtracking | ||
[Coke] | ok, ignore me. | ||
TimToady | not if you backtrack into a scope that you've exited as a block | ||
DrForr_ | rakudobug sent. | 20:42 | |
mohij | [Coke]: Already tried that. | ||
20:42
paulohrpinheiro joined
|
|||
DrForr_ | #123697 | 20:42 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123697 | ||
FROGGS | DrForr_++ | ||
moritz | help, my gdb doesn't seem to understand --args | ||
what am I doing wrong? | 20:43 | ||
20:43
paulohrpinheiro left
|
|||
bartolin | DrForr_: actually it seems to be #123967 :-) | 20:43 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123967 | ||
[Coke] | too old version that you have to use "run" from inside the gdb prompt? | ||
FROGGS | moritz: paste something? | ||
20:43
AnxiousGarlic joined
20:44
AnxiousGarlic left
|
|||
moritz | FROGGS: I did cp $(which perl6-m) perl6-m-gdb and changed it to read exec gdb /path/to/moar --args rest here | 20:44 | |
DrForr_ | I can't paste from host to uest cleanly so I retyped it, that's probably correct. | ||
20:44
Kristien left,
agentzh joined
|
|||
moritz | and it says | 20:44 | |
Type "apropos word" to search for commands related to "word"... | |||
--execname=./perl6-m-gdb: No such file or directory. | |||
20:44
agentzh left,
agentzh joined
|
|||
mohij | I'll get a code sample together... | 20:44 | |
bartolin | DrForr_++ | 20:45 | |
20:45
molaf left
|
|||
timotimo | moritz: do we know why camelia's prof-m target gives 404s on the links it spits out? | 20:45 | |
moritz | timotimo: no | ||
timotimo | OK | ||
were there interesting blog posts about perl6 over the last week? | 20:46 | ||
aside from the vim highlighter one? | |||
vendethiel hasn't seen any in the perl weekly | |||
FROGGS | moritz: gdb --args /home.../moar ....moarvm -e 'say 42' | ||
moritz | FROGGS: oh, the --args must come first? | ||
FROGGS | moritz: yes | 20:47 | |
moritz | FROGGS: takk | ||
FROGGS | it tells gdb that the rest also includes args to the executable | ||
[Coke] | timotimo: no perl in GSOC this year. | ||
moritz | :( | ||
timotimo | oh damn :( | 20:48 | |
TimToady | probably screwed over by a pythonista somewhere deep inside Google | ||
timotimo | that sounds unlikely | 20:49 | |
"no perl in gsoc" is information i'm free to share with the readers of my blog? | |||
TimToady | well, okay, it could be something other than malice... :) | ||
nwc10 | timotimo: blogs.perl.org/users/shadowcat_mdk/...-gsoc.html | ||
20:50
mr-foobar left
|
|||
timotimo | thank you | 20:51 | |
;( | |||
20:53
paulohrpinheiro joined,
Hor|zon joined
|
|||
agentzh | TimToady: I've been playing with Perl 6 grammar lately. | 20:53 | |
TimToady: One big missing thing is better error reporting facilities IMHO :) | 20:54 | ||
TimToady: Really missing Damian Conway's P::RD and R::G's error reporting support. | |||
paulohrpinheiro | Hello. I want to do DBD::SQLite3 module (Most Wanted Native Bindings), but I see a MiniDBD::SQLite3. Can I do this, or the job is done? Thanks. | ||
timotimo | p6weekly.wordpress.com/?p=419&...4ce30d646e - have another draft :) | 20:55 | |
moritz | paulohrpinheiro: DBD::SQLite3 works | ||
jnthn | How hard is a darn wiki in 2015 :/ | ||
moritz | paulohrpinheiro: though I'm sure there's also room for improvement | ||
agentzh | TimToady: I especially like Regexp::Grammars's @! variable while handling parse failures. | ||
lizmat | timotimo: I think it's either psch or peschwa, not pschw ? | 20:56 | |
timotimo | oh | ||
indeed | |||
agentzh | hi guys, how much slower is rakudo's rule engine as compared to perl 5's Parse::RecDescent and Regexp::Grammars? | ||
moritz | agentzh: no idea | 20:57 | |
timotimo | good questions; we don't have a benchmark for that yet, do we? | ||
agentzh | I have a simple benchmark for these three. | ||
timotimo | Regexp::Grammars and Parse::RecDescent are not shipped with perl5, eh? | ||
moritz | agentzh: so what's your result? | ||
agentzh | I'm pasting my code to gist right now for your review. | ||
literal | timotimo: technically you don't have to update to Vim 7.4 to use the latest perl6.vim, I included a make target in the Makefile to strip the new regex syntax from the syntax file | ||
agentzh | I'm still new to these. | ||
ugexe | how should we package grammars that are RFC parser? for instance, i have RFC7230-7235, which are used together (usually) for parsing http messages. Some RFC in it could feasably be useful outside 'http' (like email stuff), so dont know if i should package them all together or separately | 20:58 | |
20:58
Hor|zon left
|
|||
agentzh | rakudo is about 5x slower? | 20:58 | |
literal | it also does it for you on "make install" if it sees that your vim is <7.4 | ||
timotimo | literal: ah, thanks | ||
bartolin | good night, #perl6 | 20:59 | |
timotimo | gnite bartolin | ||
except | |||
moritz | \o bartolin | ||
timotimo | did you do something cool last week? | ||
bartolin: then i can put you into the weekly :3 | |||
bartolin | timotimo: you already did (I'm usev6 on github) | ||
*g* | |||
timotimo | ah! | ||
perfect | 21:00 | ||
bartolin | timotimo++ # weekly | ||
moritz | prof-m: say 'just testing' | ||
camelia | prof-m a01d50: OUTPUT«just testing» | ||
.. Prof: p.p6c.org/504f6d | |||
bartolin | o/ | ||
timotimo | moritz: do we have a good idea how we can put the commandline and/or filename and/or code into the profiler output somewhere? | ||
ugexe | also pardon my inheritence ignorance, but if i have 2 grammars that both require each other how do I setup the depends/composition without getting a circular dependency error? i tried composing roles and using straight inheritence but i think im a dummy doing it wrong :( | 21:01 | |
moritz | timotimo: the information is there in nqp; I'd just have to be done | ||
timotimo | OK | ||
moritz | ugexe: you can't have circular dependencies between grammars or classes if they are in separate files | ||
timotimo | and got any clues where to look for finding out why a DBIish-using script is gobbling up memory infinitely? | ||
[Coke] wonders why you'd construct the grammars in such a way as they depended on each other. | |||
moritz | ... unless you make them runtime dependencies | 21:02 | |
21:02
brrt joined
|
|||
agentzh | my benchmark files and results: gist.github.com/agentzh/c5108a959309f015c4f6 | 21:02 | |
please have a look for me :) | |||
moritz | timotimo: well, currently DBDish::* don't really do much memory management | ||
agentzh | the results are pasted to the last file. | ||
lizmat | timotimo: maybe mention that Test is/isnt now DWIM for type objects ? | 21:03 | |
agentzh | I've found that perl 5.20 improves the performance of P::RD dramatically. | ||
like 70% speedup. | |||
lizmat | timotimo: japhb implemented IO::Path.resolve | ||
agentzh | with perl 5.18 and 5.16, P::RD is significantly slower than R::G. but 5.20, P::RD is consistently faster. | ||
moritz timotimo: please let me know if my benchmarks are flawed or can be improved :) | 21:04 | ||
it's just a simple infix arithmetic calculator. | |||
timotimo | agentzh: for me it's now dinner time and also movie time :) | 21:05 | |
ugexe | moritz: thanks... i thought i needed to drink more | ||
moritz | prof-m: say 'just testing...' | ||
camelia | prof-m a01d50: OUTPUT«just testing...» | ||
.. Prof: p.p6c.org/5050b9 | |||
moritz | ... fixed | ||
agentzh | timotimo: no hurry :) | 21:06 | |
I've also found that rakudo + moar uses 10x more memory than P::RD. | 21:07 | ||
timotimo | p6weekly.wordpress.com/ - publish'd | 21:08 | |
jnthn | agentzh: Yes, though the "base memory" of Perl 6 is a *lot* higher than Perl 5 | ||
mohij | TimToady: gist.github.com/patzim/361b80a01e3217ad9073 | ||
lizmat | .tell japhb did you know I implemented nqp::readlink recently ? | ||
yoleaux | lizmat: I'll pass your message to japhb. | ||
timotimo | AFK | ||
lizmat | timotimo++ | ||
21:08
rindolf left
|
|||
jnthn | agentzh: So only so much of it is attributable to the grammar/parsing | 21:08 | |
21:09
sqirrel left
|
|||
agentzh | jnthn: yeah, i understand that. | 21:09 | |
jnthn | agentzh: Anyway, thanks for the example; will run it through the profiler when I have time and see if anything stands out to me. | ||
lizmat | prof-m: sub a(str $b is rw) { $b = "foo" }; for ^1000000 { a my str $c } | 21:10 | |
agentzh | jnthn: that'll be great! | ||
camelia | ( no output ) | ||
.. Prof: p.p6c.org/5051be | |||
agentzh | jnthn: thanks! | ||
21:10
Kristien joined
|
|||
agentzh | jnthn: I also pasted a silly perl script to that gist for generating random huge input strings (that is, huge arith expressions) :) | 21:10 | |
21:10
laouji joined
|
|||
agentzh | jnthn: and the results there are for random expressions of ~5K operands :) | 21:11 | |
lizmat | prof-m: sub a(Str $b is rw) { $b = "foo" }; for ^1000000 { a my Str $c } # compare with this one | ||
camelia | ( no output ) | ||
.. Prof: p.p6c.org/5051fb | |||
21:11
J-L joined
|
|||
J-L | Hi, I'm a little confused as to what the NativeCall module (for Perl 6) is all about. | 21:11 | |
yoleaux | 27 Feb 2015 01:13Z <raydiak> J-L: the cygwin dll could be included with your script like the termios module, then modify the termios module to check if it's on windows and nativecall the functions from the dll instead...might even be a change the author of the termios module would be interested in merging too, though I'm not familiar with cygwin's license terms wrt commercial distribution | ||
lizmat | moritz++ | 21:12 | |
moritz | J-L: it's for calling functions from libraries written in C | ||
J-L | Someone told me that NativeCall can be used to read input without echoing the input back to the screen (like what you'd expect on password prompts), but when I loop up the documentation, I don't see anything about that. | 21:13 | |
moritz | J-L: if there's a C function that does that, you can call it with nativecall | ||
J-L | So any functionality available in a GNU C compiler I can ultimately get via NativeCall? | 21:14 | |
Even on MS Windows platforms? | |||
brrt | that... depends... | ||
on how you mean it :-) | |||
but yeah, NativeCall basically does dynamic linking for perl6 | |||
21:14
xfix left
|
|||
paulohrpinheiro | moritz: I saw it listed as a priority, so I was confused. | 21:15 | |
lizmat | TimToady: re pairup: the EnumMap.STORE method also does: | ||
elsif nqp::istype($x,EnumMap) and !nqp::iscont($x) { | |||
for $x.list { self.STORE_AT_KEY(.key, .value) } | |||
21:15
laouji left
|
|||
lizmat | do you think that should be part of .pairup as well, or not ? | 21:15 | |
J-L | Unltimately, I want to be able to prompt the user for a password, without the password being echoed to the screen. Seems simple to do, but on Perl5 there's no standard way to do it. (There would be if Term::ReadKey were standard in every distribution, but it isn't.) | ||
paulohrpinheiro | moritz: but if there improvements to do, it's good. Thanks! | 21:16 | |
skids | damn. I was just about to suggest using Term::ReadKey via Inline::Perl5 | 21:17 | |
moritz | J-L: well, there can't be a standard way for everything in a programming language | 21:18 | |
J-L: that's why modules exist | |||
21:18
kaare__ joined
|
|||
J-L | Yeah, I've had to write Perl scripts for customers, and I have no control over which modules are already on their system. So what works fine on Unix and my own Win platform, may not work on a customer's Win platform. | 21:18 | |
brrt | moritz, i think python has a standard library for it :-) | ||
i personally find interpreted languages are not such a great fit for distributing software anyway :-) | 21:19 | ||
J-L | I know that's why modules exist, but I've hit brick walls trying to get this seemingly simple task of not echoing the input to work. It seems easy to do (and would be, if Term::ReadKey were standard), but as a result I've had to jump through many hoops. | 21:20 | |
dalek | rl6-most-wanted: a70d0d1 | moritz++ | most-wanted/bindings.md: Mention status of DBD modules, paulohrpinheiro++ |
||
skids | J-L: If Term::Readkey does work on windows (and just isn't available in e.g. activestate perl installs, but would work if you installed it) you could look a the code it uses and write something for NativeCall that does the same thing. | ||
moritz | J-L: have you tried things like fat packing? | ||
brrt | J-L - i must ask, what problem are you really trying to solve? | ||
J-L | I've had quite a few successes with distributing Perl software, actually. Just not with hiding password input. That's always been the thorn in my side, and for some reason, adding Term::ReadKey as a standard module never really happened. | 21:21 | |
jnthn | J-L: Just to check: if Perl 6 has a pure Perl, no compilation needed, module that does what Perl 5 Term::ReadKey did so you could easily ship it with your program, you'd be fine? | ||
J-L | Interesting idea about writing something for NativeCall. I don't know much about Perl 6, having just started dabbling with it last week. | 21:22 | |
21:22
kaare_ left
|
|||
J-L | jnthn: Yes, if Perl 6 has either a 1) standard way of hiding input, or 2) has a Pure-Perl version that I can distribute with my program, that would be what I want. | 21:23 | |
mst | actually, it appears my pure perl code does | 21:25 | |
J-L | What I'm trying to solve is the problem of asking the user for a password (that would get passed on to another program) without actually printing out the password when typed. Right now the only platform-independent method is to ask for the password and the clear the screen, which is not quite what I'm looking for. | ||
mst | system('stty -echo'); chomp(my $res = <STDIN>); system('stty echo'); | ||
which. um. yes. I know. but it works really nicely. | |||
jnthn | mst: ...on Windows? :P | ||
J-L | mst: That works for Unix, I'm sure, but not Windows. I don't think it works on either ActiveState Perl nor Strawberry Perl. | 21:26 | |
mst | on windows I'd be shipping my own perl anyway so I can use whatever XS modules I like | ||
J-L | In fact, the Perl5 perldoc "perldoc -q keyboard" works great on Unix, but not on Strawberry Perl. | ||
(Even though Strawberry Perl has the POSIX module, it lacks POSIX::Termios support, evidently.) | 21:27 | ||
(By the way, "perldoc -q keyboard" gives: "How can I read a single character from a file? From the keyboard?") | |||
brrt | i'm wondering how in windows the terminal windows is controlled | 21:28 | |
Kristien | my guess is "crappily" | 21:29 | |
dalek | pan style="color: #395be5">perl6-examples: 3767647 | paultcochrane++ | TODO: Add TODO file |
||
brrt | that is an unfair guess imho :-) | ||
hoelzro | literal: you say in your blog post that the perl6 vim syntax file is now more accurate than the pygments one. That's fantastic! Do you have any pointers on how I could improve the pygments highlither? | 21:30 | |
brrt | there's a javascript API for office. wow | ||
21:31
tmch left
|
|||
J-L | I wonder if a small executable would work that all it does is read non-echoing input and then print it out, all at once. That way, you could do a qx// or `` call (not sure how on Perl 6) and simply return what was typed in. | 21:32 | |
[Coke] | API? In my day we handrolled XML generation to emit excel file... oh, wait, I'm doing that still, today. carry on | 21:33 | |
brrt | msdn.microsoft.com/nl-nl/library/w...s.85).aspx :-) | 21:34 | |
literal | hoelzro: where is the source for the Perl 6 pygments highlighter? | ||
skids | J-L: it looks like perl5's Term::ReadPassword::Win32 uses Win32, Win32::Console and Win32API::File. Are those three modules available on your target systems? | ||
brrt | i've once use perl-and-xslt to transform .docx to .html | ||
hoelzro | literal: bitbucket.org/birkenfeld/pygments-...ult#cl-209 | ||
[Coke] | J-L: have you investigated bundling your modules with your app? | ||
brrt | msdn.microsoft.com/nl-nl/library/w...s.85).aspx :-) | 21:35 | |
[Coke] | er, more specifically, your dependencies. | ||
J-L | skids: Let me see... hold on... | ||
hoelzro | granted, there might be some patches in Hg that aren't in a stable release | ||
literal | hoelzro: so it's just a Python class and you can do anything in it? | ||
hoelzro | literal: yup! | ||
literal | that's neat | ||
hoelzro | it is; adding that to pygments was very simple | 21:36 | |
J-L | skids: It doesn't look like Term::ReadPassword::Win32 is available on (my copy of) Strawberry Perl. | ||
hoelzro | they give you a good basic tool set, but don't limit you from doing crazy things | ||
skids | Are the Win32:: modules mentioned above available? | ||
J-L | skids: By the "Win32:: modules", you mean Term::ReadPassword::Win32 ? That is not on Strawberry Perl, but I was able to successfully install it (just now) with "cpan Term::ReadPassword::Win32". Is that what you meant? | 21:38 | |
skids | No, I meant: Win32, Win32::Console and Win32API::File | ||
J-L | Skids: Oh, hold on while I check... | 21:39 | |
skids | (and be sure you did not just install them along with Term::ReadPassword::Win32) | ||
dalek | Heuristic branch merge: pushed 43 commits to roast/newio by lizmat | 21:40 | |
21:41
paulohrpinheiro left
|
|||
J-L | skids: I just checked on a near-virgin installation of Strawberry Perl, and they (Win32, Win32::Console, and Win32API::File) do appear to be all there. | 21:42 | |
skids: I can't vouch for ActiveState Perl, though. | |||
literal | hoelzro: I'm not sure what to suggest at the moment, but if you have a question about how perl6.vim is able to highlight something that pygments has issues with, I could probably give pointers | ||
hoelzro | literal: some examples of things that pygments doesn't properly highlight would be sufficient | 21:43 | |
skids | OK, well, Term::ReadPassword::Win32 is only several dozen lines, so you could just copy/paste it into your program, remove the module wrappings, and use it that way. | ||
literal | hoelzro: ah, I think I can come up with something | ||
hoelzro | I have a backlog of changes that have happened in the language since I wrote the lexer, but ENOTIME/ETOOLAZY | ||
I could probably follow TimToady's suggestion of *not* highlighting builtin classes/functions | |||
dalek | kudo/nom: b85b85d | lizmat++ | src/core/ (2 files): Cat-license EnumMap.STORE into Any.pairup() Hope this is what TimToady meant, from the .pairup() speculation. |
21:45 | |
J-L | skids: Hmmm... interesting. That might work. | 21:46 | |
21:46
raiph left,
diana_olhovik left
|
|||
agentzh | is rakudo using the same regex engine as NQP? | 21:47 | |
is it expected that NQP can be much faster in my infix arithmetic expression calculator benchmarks? | |||
jnthn | agentzh: Yes, and if you're seeing a big difference there it probably means the thing making the difference is not the parsing. | ||
skids | J-L: and if at any time you want to try your hand at making a Perl6 version of those packages, I am sure other 6ers would appreciate that. | ||
agentzh | jnthn: thanks for the info. I'll try NQP out in my experiments. | 21:48 | |
lizmat | TimToady: $ 6 '(a => 42, "b", 65, %( c => 25, d => 99 )).pairup.perl.say' | ||
("a" => 42, "b" => 65, "c" => 25, "d" => 99).list | |||
agentzh | jnthn: i'm thinking about building a Perl 6 land flame graph tool just as the tools I built for LuaJIT and Perl 5: github.com/openresty/stapxx#lj-lua-stacks & github.com/agentzh/perl-systemtap-...-sample-bt | 21:51 | |
jnthn: basically the tools use systemtap to sample scripting language level backtraces. | |||
jnthn: they do not require changing the program nor restarting the process. | 21:52 | ||
jnthn: the downside is that it's linux only while Mac OS X's dtrace is not strong enough on userland probing as systemtap. | |||
J-L | skids: I'd love to make a Oerl 6 version. (I once wrote up (and posted) my own attempt with Perl 5 and called it PortableReadKey) However, I have lots of questions.about NativeCall. | 21:53 | |
agentzh | jnthn: even Solaris's dtrace is not strong enough the last time i checked. | ||
brrt | i heard bsd's dtrace was the knees bees | ||
J-L | skids: Can I just write a Perl 6 module that uses NativeCall to call C system functions, and use it without the need to compile anything? | ||
agentzh | brrt: heh. | ||
brrt | J-L: yes | ||
skids | J-L: This is the place to ask those. Though I'm afk for the drive home (and not much for windows devel personally) | 21:54 | |
brrt | that is what NativeCall is for | ||
21:54
Hor|zon joined
|
|||
J-L | brrt & skids: So even if no C compiler exists on my system, I can still use NativeCall to write up my own modules that make system calls? | 21:55 | |
dalek | kudo/nom: 0b42fc4 | lizmat++ | src/core/Any.pm: No need to first make a list and then pairs again |
||
skids | J-L: Yes. NativeCall is easier if the API does not have #defines for values, you may have to hardcode those and hope they do not change, but yes. | ||
agentzh | brrt: the last time i checked, freebsd 9.0's dtrace port is as poor as mac os x. has it improved a lot since then? | ||
J-L | skids: Wow, I hope that's not too good to be true. Any chance that there's anything like that for Perl 5? | ||
timotimo | i hear there's something new for perl5 that is a tiny bit like NativeCall | 21:56 | |
i forgot the name | |||
brrt | yes | ||
literal | hoelzro: I tried running the pygmentize on all the files in vim-perl/t_source/perl6/ and I see they all have major highlighting issues :P | ||
skids | J-L: A lot has probably changed since I last used perl5's XS system, so I don't know whether C compilation is strictly required there. | 21:57 | |
J-L | skids: The latest rakudo perl for Windows at rakudo.org/downloads/star/ (rakudo-star-2014.03.msi) doesn't have NativeCall. I was told it just recently got added last month. | ||
timotimo | colomon: you're running timeout.t again :) | ||
dalek | kudo/nom: cb7ded3 | TimToady++ | src/Perl6/ (2 files): put cursor on correct decl for sig vs placeholder |
||
timotimo | 02-timeout.t | ||
brrt | it basically works by taking a dll (or so) files and matching dll symbols to perl6 symbols | ||
J-L | timotimo: If you remember the name, let me know! I'd be grateful! | 21:58 | |
colomon | timotimo: yes, that’s what happens when you smoke test the modules every day and one of them is badly broken. | ||
jnthn | agentzh: How do they co-opt the script language to spit out a backtrace? | ||
[Coke] | J-L: nativecall has shipped with star for ages; it only just changed from a module to core. | ||
21:58
Hor|zon left
|
|||
skids | J-L: try rakudo-star-2014.12.1-moar.msi | 21:58 | |
hoelzro | literal: =( | 21:59 | |
well, thanks for testing that out | |||
I'll see if I can fix that up | |||
21:59
agentzh left
|
|||
skids | Anyway, drive time, laterz o/ | 21:59 | |
J-L | skids: I'm unclear what the "moar" part is, but I'll install it. | 22:00 | |
timotimo | it's the backend you'll get | ||
jnthn | J-L: The virtual machine it runs on | ||
J-L | I don't have to uninstall the Rakudo Perl I already installed, do I? | 22:01 | |
I thought the virtual machine was Parrot, no? | 22:02 | ||
brrt | i don't think so.. what do you get with perl6 --version | ||
timotimo | you can just rm -rf the folder it's in | ||
[Coke] | J-L: there are multiple backends. Moar is the preferred one. | ||
J-L | perl6 --version gets me: This is perl6 version 2014.01 built on parrot 5.9.0 revision 0 | ||
literal | hoelzro: a big part of it seems to be mishighlighting of '<', whether it's a quoted list or a hyperop, etc | ||
timotimo | haha, 2014.01 | 22:03 | |
literal | that is indeed tricky to get right | ||
[Coke] | J-L: that is super old and you must upgrade. | ||
J-L | timotimo: Well, that's the latest *.msi file at rakudo.org/downloads/star/ that doesn't end in parrot* or moar* | 22:04 | |
timotimo | right | ||
after that we finally got multiple backends | |||
22:04
skids left
|
|||
brrt | haven't we been building .msi's since 2014? | 22:04 | |
J-L | timotimo: So I don't know how to get a newer general version of Perl 6. | ||
timotimo | oh, that's a very novel way to look at that | 22:05 | |
hoelzro | literal: oh, yes, my heuristic for < is pretty bad, iirc | ||
[Coke] | use rakudo.org/downloads/star/rakudo-st...1-moar.msi | ||
J-L | Moar has finished installing. "perl6 --version" still gets me: This is perl6 version 2014.01 built on parrot 5.9.0 revision 0. I see no mention of Moar. | ||
timotimo: Not counting *parrot.msi and *moar.msi, the latest *.msi file at rakudo.org/downloads/star/ is rakudo-star-2014.03.msi . | 22:07 | ||
22:09
beastd joined
|
|||
FROGGS | J-L: that old perl6 is probably in path before the new one | 22:10 | |
timotimo | J-L: you do know we describe what it all means on rakudo.org/how-to-get-rakudo/ ? | ||
and a few words on it are in every announcement of rakudo star, too | |||
22:10
sqirrel joined
|
|||
timotimo | can you point out what's lacking about that text? | 22:11 | |
FROGGS | jnthn: I do not enjoy debugging a NPE for nqp-j about the URI module failure... | 22:12 | |
java.lang.NullPointerException | 22:13 | ||
at org.perl6.nqp.runtime.IndyBootstrap.subcallstaticResolve_noa(IndyBootstrap.java:195) | |||
jnthn | FROGGS: :( | ||
J-L | FROGGS: It looks like you're right. There's a "perl6.BAT" file alongside my "perl6.EXE" file. Typing "perl6.BAT --version" gets me: This is perl6 version 2014.12 built on MoarVM version 2014.12" | ||
FROGGS | that's basically the information I have, and I cannot make any sense out of it... | ||
jnthn | FROGGS: I'm not sure *anybody* enjoys that... | ||
FROGGS | jnthn: the line number (195 here) changes when I add debugging code or checks "randomly" | ||
22:14
raiph joined
|
|||
jnthn | FROGGS: OK, that *is* odd | 22:14 | |
FROGGS: Is the object its receiving to invoke null? | |||
FROGGS | line 195 is: if (invokee.st != null && invokee.st.ContainerSpec != null) { | ||
and within the block it just does a decont | |||
jnthn | OK, that would NPE if invokee is null | ||
FROGGS | jnthn: but it seems not to be | ||
J-L | Okay, now "perl6.exe -e "use NativeCall"" does not complain, but "p6doc NativeCall" does complain ("No Pod found in ..."). Where do I learn how to use NativeCall ? | 22:16 | |
FROGGS | J-L: here is a getting-started and there are also examples: github.com/jnthn/zavolaj | 22:17 | |
brrt afk :-) | |||
22:17
brrt left
|
|||
FROGGS | J-L: we just moved NativeCall to the compiler repository and are about to move its documentation also | 22:17 | |
J-L | timotimo: I've see that page, but I was never sure how the different parts meshed together. That is, If I install *moar*, does it play nicely with all the other things, without uninstalling them? I was never sure. | ||
22:19
virtualsue_ joined
22:21
virtualsue left,
virtualsue_ is now known as virtualsue,
[particle]1 joined
|
|||
J-L | Sweet! I got the example at github.com/jnthn/zavolaj/blob/mast...pi-call.p6 working. Now, where would I go about learning about 'user32' and which lib/call to make for reading raw keyboard text without echoing? | 22:22 | |
22:22
[particle] left
|
|||
FROGGS | J-L: google and stackoverflow? or you look at existing P5 or python or whatever bindings... | 22:22 | |
J-L | I don't understand how, in the example at github.com/jnthn/zavolaj/blob/mast...pi-call.p6 , and how 'user32' puts up a simple message box. | 22:23 | |
22:23
sqirrel left,
gfldex left
|
|||
FROGGS | J-L: is native('user32') refers to the user32.dll in your C:\Windows\system32 | 22:24 | |
J-L: and this exposes a C function called MessageBoxA | |||
if you need more details, please ask for said details :o) | 22:25 | ||
22:28
agentzh joined,
kjs_ joined
|
|||
J-L | FROGGS: Ah, I see! I thought MessageBoxA was just an arbitrary function name. Didn't realize it referred to the specific C function in 'user32'. | 22:30 | |
22:31
amaliapomian left
|
|||
FROGGS | jnthn: it seems you were right... but I wonder, why did 'if (invokee == null) System.out.println("foo")' print nothing? | 22:31 | |
J-L: the default is that the sub name is taken as the symbol for the C call | |||
J-L: but you can instead supply a symbol name with the 'is symbol("foo")' trait, and then call you sub how you want to have it | 22:32 | ||
J-L | So now that I am able to use NativeCall, any hint as to which *.lib and function name to begin looking for? | 22:33 | |
Incidentally, my perl6 installation doesn't seem to have POSIX installed. Or is it a different name ? | |||
FROGGS | jnthn: okay confirmed, invokee is null... what does that mean? is "invokee = Ops.getlex(name, tc)" buggy? | 22:34 | |
22:34
sisar joined
|
|||
FROGGS | jnthn: or are the warnings I see for other code as well about the method P6::O.lexical_vars_to_locals to blame? | 22:34 | |
J-L: there is no posix, no | 22:35 | ||
J-L | FROGGS: Are there any plans to include POSIX eventually? It's so useful on Perl 5. | 22:36 | |
FROGGS | J-L: I have no personal plans, and I cant speak for somebody else :o) | 22:37 | |
22:37
cognominal left
22:39
kjs_ left
|
|||
FROGGS | Can not invoke object '&postcircumfix:<{ }>' in sub scheme_port at lib/URI/DefaultPort.pm:30 | 22:39 | |
pmichaud | J-L: we will undoubtedly consider POSIX support if/when someone implements it. :) | ||
raydiak wondered if J-L couldn't use cygwin termios functions via nativecall | |||
FROGGS | well, that's slightly better than a NPE | ||
pmichaud | I'd want it to be first created as a module, though. | 22:40 | |
22:40
Guest66620 is now known as felher
|
|||
J-L | raydiak: Maybe I could use cygwin termios, but then it woudn't run on all Windows Perls. I can't guarantee that a customer has cygwin termios. | 22:41 | |
raydiak | J-L: you can include all you need with your script, like I said last time :) | 22:42 | |
22:42
spider-mario left
|
|||
raydiak | unless there are licensing problems with your commerical uses | 22:43 | |
idk a lot about cygwin myself | |||
back to afk | |||
22:44
coffee` left,
Kristien left
|
|||
dalek | p: 87161db | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java: throw meaningful exception instead on NPE We have an issue with our-scoped subs in combination with precompiled modules, like one can see here: testers.p6c.org/reports/15765.html This patch is hopefully just the first step of fixing this beast. |
22:46 | |
lizmat | m: class A { method a { 42 ?? nextsame !! die } } # huh? | 22:47 | |
camelia | rakudo-moar cb7ded: OUTPUT«5===SORRY!5===Found ?? but no !!at /tmp/s8MSpkHgOJ:1------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} } # huh?Confusedat /tmp/s8MSpkHgOJ:1------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} } # huh? expecti…» | ||
jnthn | pmichaud: If invokee is null then Ops.getlex(name, tc) will have returned something null | ||
lizmat | m: class A { method a { 42 ?? nextsame() !! die } } # seems to work ok? | ||
camelia | ( no output ) | ||
jnthn | uh | ||
FROGGS: ^^ :) | |||
FROGGS | jnthn: yes, that sounds quite correct | 22:48 | |
jnthn | std: class A { method a { 42 ?? nextsame !! die } } | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Found ?? but no !! at /tmp/3bydg___DX line 1:------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} }Unexpected closing bracket at /tmp/3bydg___DX line 1:------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} }Parse fail…» | ||
FROGGS | jnthn: so, I shall take a look at getlex you say? :o) | ||
jnthn | FROGGS: That may mean it's looking at some kind of static lexpad when it should be seeing a real one, for example | ||
FROGGS: I dobut getlex itself is broken; we use that a *load* | 22:49 | ||
FROGGS: I more suspect the .outer chain is | |||
22:50
muraiki left
|
|||
FROGGS | jnthn: but getlex walks it in some way, right? | 22:50 | |
jnthn | FROGGS: Correct | ||
FROGGS | ahh yes, I see | ||
jnthn | FROGGS: I mean, getlex's implementation likely isn't buggy, it's that the data it's operating on is | 22:51 | |
FROGGS | yeah | ||
lizmat | m: class A { method a { 42 ?? nextsame !! die } } # rakudobuggable? | ||
camelia | rakudo-moar cb7ded: OUTPUT«5===SORRY!5===Found ?? but no !!at /tmp/SVbLR3J9wa:1------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} } # rakudobuggable?Confusedat /tmp/SVbLR3J9wa:1------> 3ss A { method a { 42 ?? nextsame !! die 7⏏5} } # rakudobu…» | ||
22:51
kjs_ joined
|
|||
jnthn | lizmat: I just showed STD agrees | 22:52 | |
lizmat: So no | |||
lizmat: nextsame is a list op; it then parses ! as prefix:<!> | |||
lizmat: 'cus with listops we're looking for a term next, not an infix. | 22:53 | ||
lizmat: I do wonder if we mightn't get a hintier error though | 22:54 | ||
lizmat: Like in | |||
m: for foo -> $a { } | |||
camelia | rakudo-moar cb7ded: OUTPUT«5===SORRY!5===Function foo needs parens to avoid gobbling blockat /tmp/qHo_IzugcH:1------> 3for foo -> $a { }7⏏5<EOL>Missing block (apparently taken by 'foo')at /tmp/qHo_IzugcH:1------> 3for foo -> $a { }7⏏5<EOL>» | ||
jnthn | Which is an instance of the same thing | ||
pmichaud | I wonder if it's worth fixing the prefix:<!> parse so that it doesn't accept a second ! | 22:55 | |
lizmat | hmmm... then I wonder why nextsame is a listop ? | 22:56 | |
pmichaud | although I think this had been discussed (and I guess rejected) before. | ||
jnthn | lizmat: Uh, it's not that nextsame is, it's that any foo that's not a term is | ||
lizmat: The alternative would be making nextsame a term | 22:57 | ||
lizmat | shoulden't nextsame then be a term | ||
yes | |||
:-) | |||
jnthn | I don't immediately feel so | ||
lizmat | ok, I just stumbled on it | ||
J-L | raydiak: I might be able to include cygwin termios with my script, but can I just distribute that, even if their system has nothing Cygwin-related on it? | ||
lizmat | so the fix is to do nextsame() ? | ||
FROGGS | that would not solve: a ?? foo !! b | ||
lizmat: yes | |||
jnthn | lizmat: Yeah. Mebbe TimToady will feel differently, but my gut feeling is "no, nextsame doesn't deserve promotion to a term" | 22:58 | |
pmichaud | what happens if we fix prefix:<!> to fail if immediately followed by another !? | ||
lizmat goes to bed | |||
jnthn | I thought STD already did that but apparently it doesn't here... | ||
'night, lizmat | |||
FROGGS | lizmat: sleep well | 22:59 | |
pmichaud looks at STD.pm6 | |||
jnthn | m: say !!2 | ||
camelia | rakudo-moar cb7ded: OUTPUT«True» | ||
jnthn | std: say !!2 | ||
camelia | std 28329a7: OUTPUT«ok 00:00 135m» | ||
jnthn | Hm, not | ||
std: say ~~2 | |||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Expecting a term, but found either infix ~~ or redundant prefix ~ (to suppress this message, please use space between ~ ~) at /tmp/eKQ7LUtsgh line 1:------> 3say ~~7⏏052Parse failedFAILED 00:00 135m» | ||
jnthn | Hm, it gets that one. | ||
std: say ??2 | |||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Expecting a term, but found either infix ?? or redundant prefix ? (to suppress this message, please use space between ? ?) at /tmp/4A4dKrNzdE line 1:------> 3say ??7⏏052Parse failedFAILED 00:00 135m» | ||
jnthn | I wonder if !! is actually being parsed as meta-op ! on an infix ! :) | 23:00 | |
And so doesn't trip the dupe prefix warning :) | |||
pmichaud | github.com/perl6/std/blob/master/STD.pm6#L3352 | ||
jnthn | Ah, the !before '!' | 23:01 | |
pmichaud | well, that's not it entirely. | ||
Because there's also | |||
github.com/perl6/std/blob/master/STD.pm6#L3600 | |||
which doesn't seem to care about a second ! | |||
jnthn | Right, I'm wondering where the ??2 and ~~2 errors came from | 23:02 | |
It's not in github.com/perl6/std/blob/master/STD.pm6#L3618 | |||
oh | |||
pmichaud | maybe 3615? | ||
jnthn | github.com/perl6/std/blob/master/STD.pm6#L3609 | 23:03 | |
pmichaud | so perhaps prefix:<!> should do a similar thing? | ||
or, more precisely, we should define a prefix:<!!> ? | |||
jnthn | No, it's the infix (like I linked) that seems to call dupprefix | ||
J-L | Well, I gotta go now. Thanks for all your help, guys. | 23:04 | |
FROGGS | it is still a prefix, not an infix | ||
J-L: o/ | |||
pmichaud | prefix:<??> and prefix:<~~> both call .dupprefix, so perhaps prefix:<!!> should also | ||
23:04
adu left,
J-L left
|
|||
jnthn | oh, duh, you're right | 23:05 | |
I read prefix as infix somehow. | |||
FROGGS | hmmm, this should not break the ternary since an infix is expected... | ||
(adding the prefix:!! I mean) | |||
23:05
dolmen left
|
|||
FROGGS | so I wonder why it is not there already | 23:05 | |
pmichaud | std: nextsame ?? 1 !! 2 | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Expecting a term, but found either infix ?? or redundant prefix ? (to suppress this message, please use space between ? ?) at /tmp/sqkdC1S5fO line 1:------> 3nextsame ??7⏏5 1 !! 2Parse failedFAILED 00:00 135m» | ||
23:05
perl4life joined
|
|||
jnthn | pmichaud, FROGGS: Yeah, adding prefix:<!!> seems worth a try | 23:05 | |
pmichaud | agreed. | ||
make it so. :) | |||
jnthn | I do wonder why it's not there, though...and if it's exclusion is 'cus it trips something up | 23:06 | |
pmichaud | if that's the case, let's add a comment to that effect somewhere. | ||
23:06
kaare__ left
|
|||
jnthn | We're missing dupprefix stuff entirely at the moment. | 23:06 | |
That's a nice LHF :) | |||
pmichaud | m: nextsame ?? 1 !! 2 | ||
camelia | rakudo-moar cb7ded: OUTPUT«5===SORRY!5=== Error while compiling /tmp/o2XEPOVHgwTwo terms in a rowat /tmp/o2XEPOVHgw:1------> 3nextsame ?? 1 7⏏5!! 2 expecting any of: infix stopper infix or meta-infix postfix statement …» | 23:07 | |
jnthn | I'm meant to be doing like 2 other things with deadlines at the moment, mind... :/ | ||
FROGGS | and I've not enough battery power left :o( | ||
pmichaud | just add a ticket somewhere, then. | ||
FROGGS | pmichaud++ | ||
pmichaud | I've to go pick up my dog before the kennel closes... bbl | 23:08 | |
FROGGS | gnight | 23:10 | |
23:10
FROGGS left
23:13
mohij left
|
|||
dalek | kudo-star-daily: 80aa286 | coke++ | log/ (9 files): today (automated commit) |
23:16 | |
23:16
wicope left
|
|||
[Coke] | Huh: example.com is a valid do-nothing op in C99 & C++ | 23:22 | |
23:24
kjs_ left
23:27
adu joined
23:29
virtualsue left
|
|||
jnthn | [Coke]: ahaha! | 23:30 | |
[Coke]: That's the best thing I've seen this week :P | |||
timotimo | :D | 23:31 | |
i understand how that works! | |||
.o( but you can only put it in your code once, right? ) | |||
raydiak | .tell J-L you'll have to learn more about these various parts by reading docs and trying things out, but assuming cygwin does indeed provide termios, it is my understanding that you can use the cygwin dll by just including it with your script (maybe both 32 and 64 bit dlls) and calling it...everything else you can get from the installer is just if you want posix userland things like bash | ||
yoleaux | raydiak: I'll pass your message to J-L. | ||
timotimo | raydiak: do you know if cygwin can run in windows cmd.exe? | 23:32 | |
grondilu | (isn't it wat Cygwin does?) | 23:33 | |
timotimo | it doesn't come with its own terminal emulator? | ||
raydiak | timotimo: afaik it is common to port posix-reliant apps to windows by including the cygwin dll, not special cygwin environment required for the user | ||
timotimo | OK | ||
raydiak | but yeah exactly how much terminal functionality it supports without the bash it provides, idk...but hope someone looks it up or even better tries it out eventually :) | 23:36 | |
23:39
sisar left
23:43
Hor|zon joined
23:47
beastd left,
Hor|zon left
23:50
raiph left
23:53
raiph joined
23:54
cognominal joined
|