»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:01
Ven left,
dayangkun joined
00:13
klaas-janstol joined
|
|||
Mouq | m: class Foo { }; Foo.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); Foo.new.bar # LTA | 00:15 | |
camelia | rakudo-moar b982bd: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0) in block at /tmp/Q5w3lThXLF:1» | ||
00:16
klaas-janstol left
00:17
dayangkun left
00:20
iarna left
00:21
ajr_ left
|
|||
dalek | kudo/HyperWat: b0b24c9 | Mouq++ | src/core/traits.pm: Add $.attr handles * and $attr handles ** to spec 'handles *' should only delegate if the $.attr can do the method. 'handles **' should always try to delegate to $.attr. This allows for something like: class Bar { method baz { 42 } } class Foo { has Bar $.bar handles *; has @.bax handles **; } So that Foo.baz will be delegated to $.bar, but anything else will be delegated to @.bax |
00:25 | |
00:25
klaas-janstol joined
|
|||
Mouq | I'm going to run spectest once more, then merging with nom | 00:26 | |
There's really not much more to do with ** until we have shaped arrays/hashes, IMO :/ then there'll be plenty to do with it | |||
TimToady | indeed! Mouq++ | 00:28 | |
Mouk** in fact | |||
Mouq | :9 | 00:31 | |
00:33
klaas-janstol left,
bjz_ joined,
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg,
bjz left
00:36
kurahaupo left
|
|||
cono | guys, if I did some changes in nqp/MoarVM/src, what should I run to rebuild rakudo with my changes? | 00:38 | |
Mouq | sometimes you can just run 'make install' in the nqp/MoarVM directory and it'll work | 00:41 | |
If that doesn't work, however, you might have to run 'perl Configure.pl ...' and then 'make install' in each of rakudo/nqp/MoarVM, rakudo/nqp, and then rakudo | 00:43 | ||
00:44
ventica left,
xenoterracide joined
|
|||
cono | Mouq: it will install in rakudo folder? not to the system wide? | 00:44 | |
I've deleted install/bin/{moar,nqp-m} and ran Configure.pl --gen-moar | 00:45 | ||
Mouq | The problem with running --gen-moar is that it'll overwrite your changes... running 'make install' in nqp/MoarVM should do what you want, though if it breaks something your perl6 might be broken | 00:47 | |
You might want to ask in #moarvm though | |||
dalek | kudo/nom: 412920f | Mouq++ | src/ (5 files): Add HyperWhatever, move NYIs |
00:48 | |
rakudo/nom: fbae5fd | Mouq++ | src/core/ (4 files): | |||
rakudo/nom: Merge branch 'nom' into HyperWat | |||
00:48
dalek left
|
|||
TimToady | I often just do a . config.status in the top directory, and that *usually* does what I want | 00:48 | |
and doesn't risk losing your --prefix | |||
00:48
dalek joined,
ChanServ sets mode: +v dalek
|
|||
TimToady | an intermediate step is 'make clean; make install' at each level | 00:49 | |
cono | got it. thanks :) | ||
TimToady | but the build system is certainly not handling all the deps it oughta | ||
Mouq | .oO( make dwim ) |
00:51 | |
TimToady | at least it the top-level . config.status doesn't throw away your nom and moar branch like it used to | ||
*at the | |||
used to send nqp headless all the time | |||
in fact, when I wanted to enable jit yesterday, I just edited my config.status instead of rerunning Configure directly | 00:52 | ||
01:11
nbrown_ joined
01:15
nbrown_ left
|
|||
dalek | ecs: 7ddad32 | (Stéphane Payrard)++ | S99-glossary.pod: too many changes in glossary too bad the github edit tool does not allow me to preview the diffs. Or am I missing something? |
01:19 | |
01:22
iarna joined
01:28
FROGGS__ joined
01:29
Sqirrel left
01:31
FROGGS_ left
01:34
BenGoldberg left
01:37
BenGoldberg joined
01:44
klapperl joined
01:47
klapperl_ left
01:59
ssutch left
|
|||
Mouq | j: class Foo { }; Foo.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); Foo.new.bar | 02:05 | |
camelia | rakudo-jvm b0b24c: OUTPUT«(timeout)» | ||
Mouq | p: class Foo { }; Foo.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); Foo.new.bar | 02:06 | |
camelia | rakudo-parrot b0b24c: OUTPUT«No such method 'bar' for invocant of type 'Foo' in block at /tmp/7paoCssoCW:1» | ||
Mouq | Yeah, it's a Moar bug | ||
02:07
peter_z_ joined
02:11
xenoterracide left
|
|||
BenGoldberg | r: my $f = class { }; $f.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); $f.new.bar; | 02:17 | |
camelia | rakudo-moar b0b24c: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0) in block at /tmp/tmpfile:1» | ||
..rakudo-{parrot,jvm} b0b24c: OUTPUT«No such method 'bar' for invocant of type '<anon>' in block at /tmp/tmpfile:1» | |||
02:18
xenoterracide joined
|
|||
BenGoldberg | And now, it's two moar bugs. | 02:18 | |
r: my $f = class { }; $f.new.bar; | 02:19 | ||
camelia | rakudo-{parrot,jvm,moar} b0b24c: OUTPUT«No such method 'bar' for invocant of type '<anon>' in block at /tmp/tmpfile:1» | ||
diakopter | yay, Null REPR | 02:21 | |
TimToady | m: my $i = 1; while $i < 155000 { ++$i }; say 'not jitted' | 02:24 | |
camelia | rakudo-moar b0b24c: OUTPUT«not jitted» | ||
02:24
rurban1 joined
|
|||
TimToady | we have a reliable test for JIT now :P | 02:24 | |
Mouq | Yeah. Moar needs to check if the return value from .HOW.find_method if null, it never does. I'm not sure how to make it do so.. | 02:25 | |
6model/6model.c L 98 or so, btw | |||
Should just be able to copy the code for throwing the exception from L 70 | 02:26 | ||
02:46
BenGoldberg left,
BooK left,
eternaleye left,
lue left,
baest left,
aindilis left,
telex left,
xinming left,
huf left,
bjz_ left,
ggoebel1111119 left,
rjbs left,
clkaoud left,
revdiablo left,
pmichaud left,
kst left,
stux|RC left,
Gothmog_ left,
broquaint left,
eiro left,
_sri left,
Celelibi left,
smash left,
timotimo left,
ribasushi left,
brother left,
ggherdov left,
sivoais left,
salv0 left,
krunen left,
takesako left,
vike left,
Akagi201 left,
yeltzooo left,
clkao left,
mtj left,
mtj_- left,
oetiker left,
Alula_ left,
immortal left,
mr-foobar left,
japhb left,
haroldwu left,
ponbiki left,
amkrankruleuen left,
djanatyn left,
ilbot3 left,
DarthGandalf left,
synopsebot left,
pecastro left,
coffeeyy_ left,
cooper__ left,
Woodi left,
rhr left,
bcode left,
Juerd left,
Tene left,
dylanwh left,
lestrrat left,
cotto left,
Exodist left,
lee_ left,
Mouq left,
dalek left,
ivanshmakov| left,
Psyche^ left,
rurban1 left,
en left,
PZt left,
mls left,
cosimo_ left,
Bucciarati left,
pochi left,
rurban left,
cooper left,
betterworld left,
PerlJam left,
xfix left,
ivan`` left,
yogan left,
moritz left,
camelia left,
cxreg left,
sorear left,
tokuhirom left,
pnu left,
lizmat left,
simcop2387 left,
arnsholt left,
mhasch left,
Ulti left,
carlin left,
tadzik left,
[Coke] left,
epochbell left,
apejens left,
raydiak left,
Util left,
iarna left,
cibs left,
[Sno] left,
thou left,
noganex_ left,
akaseki left,
Vlavv left,
Khisanth left,
woolfy left,
sjohnson left,
psch left,
fling left,
Pleiades` left,
integral_ left,
isacloud____ left,
flussence left,
yakudzo left,
kshannon left,
erdic left,
xiaomiao left,
jlaire left,
felher left,
charsbar__ left,
Maddingue left,
nebuchadnezzar left,
BinGOs left,
mst left,
masak left,
geekosaur left,
Grrrr left,
nwc10 left,
jtpalmer_ left,
diakopter left,
tony-o left,
jnthn left,
hoelzro left,
itz left,
cognome left,
PotatoGim left,
araujo left,
btyler_ left,
SHODAN left,
mathw left,
[particle]1 left,
sftp left,
avar left,
eMBee left,
wtw left,
Possum left,
labster left,
hugme left,
yoleaux left,
jercos left,
cono left,
c1sung left,
sunnavy left,
bloonix_ left,
go|dfish left,
nickpatc1 left,
Rounin left,
atta left,
felipe left,
Timbus left,
risou left,
peter_z_ left,
colomon left,
MilkmanDan left,
ChoHag left,
daxim left,
sjn left,
muraiki left,
robinsmidsrod left,
ingy left,
retupmoca left
03:13
BenGoldberg joined,
colomon joined,
BooK joined,
MilkmanDan joined,
eternaleye joined,
lue joined,
ChoHag joined,
baest joined,
daxim joined,
sjn joined,
muraiki joined,
robinsmidsrod joined,
ingy joined,
retupmoca joined,
noganex joined,
rurban1 joined,
iarna joined,
dalek joined,
bjz_ joined,
ivanshmakov| joined,
Psyche^ joined,
en joined,
aindilis joined,
Mouq joined,
ggoebel1111119 joined,
[Sno] joined,
telex joined,
itz joined,
thou joined,
_sri joined,
cognome joined,
PotatoGim joined,
Akagi201 joined,
Alula_ joined,
psch joined,
xinming joined,
immortal joined,
huf joined,
araujo joined,
PZt joined,
amkrankruleuen joined,
mr-foobar joined,
fling joined,
lizmat joined,
simcop2387 joined,
Celelibi joined,
smash joined,
djanatyn joined,
btyler_ joined,
japhb joined,
ilbot3 joined,
DarthGandalf joined,
Pleiades` joined,
rjbs joined,
timotimo joined,
ribasushi joined,
brother joined,
SHODAN joined,
integral_ joined,
isacloud____ joined,
akaseki joined,
asimov.freenode.net sets mode: +v dalek,
yeltzooo joined,
Vlavv joined,
ggherdov joined,
flussence joined,
mathw joined,
mls joined,
yakudzo joined,
kshannon joined,
synopsebot joined,
pecastro joined,
coffeeyy_ joined,
[particle]1 joined,
sftp joined,
sivoais joined,
cosimo_ joined,
salv0 joined,
Khisanth joined,
Bucciarati joined,
pochi joined,
rurban joined,
clkaoud joined,
clkao joined,
cooper__ joined,
revdiablo joined,
pmichaud joined,
Woodi joined,
cono joined,
woolfy joined,
avar joined,
eMBee joined,
cibs joined,
wtw joined,
haroldwu joined,
Possum joined,
kst joined,
cooper joined,
betterworld joined,
erdic joined,
mtj joined,
mtj_- joined,
stux|RC joined,
rhr joined,
arnsholt joined,
Gothmog_ joined,
broquaint joined,
PerlJam joined,
labster joined,
oetiker joined,
mhasch joined,
hugme joined,
krunen joined,
yoleaux joined,
Ulti joined,
xfix joined,
ivan`` joined,
eiro joined,
ponbiki joined,
jercos joined,
takesako joined,
c1sung joined,
carlin joined,
bcode joined,
tadzik joined,
xiaomiao joined,
sunnavy joined,
jlaire joined,
yogan joined,
vike joined,
felher joined,
[Coke] joined,
epochbell joined,
bloonix_ joined,
go|dfish joined,
charsbar__ joined,
nickpatc1 joined,
Maddingue joined,
apejens joined,
Util joined,
Rounin joined,
atta joined,
sjohnson joined,
raydiak joined,
Juerd joined,
lee_ joined,
Exodist joined,
cotto joined,
lestrrat joined,
dylanwh joined,
Tene joined,
felipe joined,
Timbus joined,
risou joined,
pnu joined,
asimov.freenode.net sets mode: +vv hugme yoleaux,
tokuhirom joined,
sorear joined,
cxreg joined,
camelia joined,
moritz joined,
hoelzro joined,
jnthn joined,
tony-o joined,
jtpalmer_ joined,
nwc10 joined,
diakopter joined,
Grrrr joined,
geekosaur joined,
mst joined,
masak joined,
BinGOs joined,
nebuchadnezzar joined,
asimov.freenode.net sets mode: +v camelia
03:14
Sqirrel joined
03:15
xragnar_ joined,
xragnar is now known as Guest23002,
Guest23002 left,
xragnar_ is now known as xragnar
|
|||
dalek | ecs: 7ce46f1 | (Stéphane Payrard)++ | S99-glossary.pod: glossary: slang |
03:15 | |
03:26
rindolf joined
|
|||
diakopter | cognome: pinciipled | 03:29 | |
cognome | yea I will correct my many typos tomorrow. good night. | 03:30 | |
diakopter | ok, I don't know what it should be | ||
TimToady | good night | 03:31 | |
cognome | * principled | 03:32 | |
03:34
xenoterracide left
|
|||
diakopter | I suspect you mean "Slangs are the principal way to ... " but I'm curious that there might be a meaning for principled there | 03:36 | |
03:36
xenoterracide joined
|
|||
TimToady | yes, it means something quite different from that | 03:36 | |
it's the opposite of "unprincipled" | 03:37 | ||
a regular mechanism, not an irregular mechanism | |||
diakopter | as in "the regulatory principal confused the principled grammarian with a Slang slang"? | 03:39 | |
hm, maybe should eat something today other than ice cream | 03:40 | ||
TimToady | despite their name, slangs are an official language extension mechanism | ||
One can easily see why a French person would conclude that this conundrum needs to be explained, at least to the other French. :) | 03:42 | ||
diakopter | dialect is a bit closer, or maybe colloquialism, or even jargon, but those aren't as cute as slang | 03:43 | |
TimToady | well, and it's also short for "sublanguage" :) | 03:44 | |
diakopter | the subtlest of subtext is written in sublanguage, but not by subhumans | 03:45 | |
TimToady | don't forget to eat subthing | 03:46 | |
diakopter | masak: marco jargon(Slang $$s) { $$s.asploded } | ||
.oO( can all knowledge be framed as an inside joke? ) |
03:47 | ||
TimToady | God only knows. | 03:48 | |
03:49
araujo left
|
|||
dalek | ast/S26-WHY: 7825f80 | (Rob Hoelz)++ | S26-documentation/why- (3 files): Add doc tests for constants |
03:53 | |
03:58
xenoterracide left
04:16
xinming_ joined
04:19
xinming left
04:28
iarna left
04:30
iarna joined
|
|||
Mouq | TimToady: I did some work on .tree but would rather you play around with it, if you have time, since I'm not really sure what its exact semantics are supposed to be: gist.github.com/Mouq/36aa0035aa3e06d3e3c9 | 04:30 | |
04:36
ren1us joined,
ggoebel1111119 left
04:37
xinming_ left
04:40
BenGoldberg left
|
|||
TimToady | casual inspection indicates that this is an improvement :) | 04:42 | |
but we need to come up with a literal syntax for LoLs, so we use up all the LoL.new() electrons printing them out | 04:44 | ||
*don't use up | |||
we could claim [;;], and require people to write [()] for an array from a comprehension | 04:45 | ||
much to be said for that approach... | 04:46 | ||
except that a LoL is really more like $(;;), and then it conflicts with (;;) | 04:47 | ||
Mouq | m: sub foo(*@a) {say @a.WHAT}; foo <bar baz> | 04:48 | |
camelia | rakudo-moar b0b24c: OUTPUT«(Array)» | ||
Mouq | m: sub foo(**@a) {say @a.WHAT}; foo <bar baz> | ||
camelia | rakudo-moar b0b24c: OUTPUT«(LoL)» | ||
Mouq | ^^ | ||
I think [;;] looks special-er than (;;) | 04:49 | ||
*$(;;) | |||
TimToady | I am willing to consider that using () for list comprehensions is a mistake | 04:51 | |
and that a LoL should be (;;) | |||
lue | If Parcels were supposed to be mostly invisible anyway, I'd say it'd make more sense to take from the parcel syntax a bit, and thus use (;;) . :) | 04:53 | |
TimToady | or that we disallow multiple statements inside (), and you can still write a list comprehension, but each dimension is its own statement | 04:54 | |
so you couldn't write (my $x; $x++ + $_ for @foo) and such | 04:56 | ||
we'd require do {} for such shenanigans | 04:58 | ||
lue | {} would be more intuitive than () in any case :) "oh, bare code doesn't work. Let's try braces!" | 05:01 | |
TimToady | well, there's always {}() | 05:02 | |
05:03
gfldex joined,
rurban1 left
|
|||
TimToady | that would allow us to say either my @array = (list; list; list); or my @array := [list; list; list]; | 05:08 | |
Mouq | &infix:<;> | 05:11 | |
:P | |||
std: (1,,2) | |||
camelia | std 81e0d07: OUTPUT«===SORRY!===Preceding context expects a term, but found infix , instead at /tmp/by_Rk_u6zM line 1:------> (1,⏏,2)Parse failedFAILED 00:01 125m» | ||
Mouq | std: (1;;2) | ||
camelia | std 81e0d07: OUTPUT«ok 00:01 123m» | ||
Mouq | std: [1;;2] | ||
camelia | std 81e0d07: OUTPUT«ok 00:01 124m» | ||
TimToady | basically only blocks would allow ; to mean the sequential side-effect monad if we made this change | 05:12 | |
05:13
thou left
|
|||
TimToady | even .{} would be semilists | 05:13 | |
Mouq | Yeah, the more I think about it, the more it seems like an icky hack | 05:16 | |
Need more ASCII | 05:17 | ||
TimToady | well, everything is an icky hack at the moment | ||
Mouq | m: sub infix:<,,> (**@l) { @l }; say (1 ,, 2 ,, 3).perl | 05:18 | |
camelia | rakudo-moar b0b24c: OUTPUT«LoL.new(LoL.new(1, 2).item, 3)» | ||
Mouq | Aww :P | ||
m: sub infix:<,,> is chaining (**@l) { @l }; say (1 ,, 2 ,, 3).perl | |||
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/gHOyKXM0mEMissing blockat /tmp/gHOyKXM0mE:1------> sub infix:<,,> is chaining ⏏(**@l) { @l }; say (1 ,, 2 ,, 3).perl expecting any of: colon pair …» | ||
TimToady | equiv(&infix:<Z>) maybe | 05:19 | |
Mouq | m: sub infix:<,,> is equiv(&infix:<Z>) (**@l) { @l }; say (1 ,, 2 ,, 3).perl | ||
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/nv16tPzoiuMissing blockat /tmp/nv16tPzoiu:1------> sub infix:<,,> is equiv(&infix:<Z>) ⏏(**@l) { @l }; say (1 ,, 2 ,, 3).perl expecting any of: postfix…» | ||
Mouq | Oh, I'm putting it in the wrong spot | ||
m: sub infix:<,,> (**@l) is equiv(&infix:<Z>) { @l }; say (1 ,, 2 ,, 3).perl | |||
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/W9xyh79ocWRoutine given to equiv does not appear to be an operatorat /tmp/W9xyh79ocW:1------> » | ||
TimToady | bug | 05:20 | |
Mouq | m: sub infix:<,,> (*@l) { @l.lol }; say (1 ,, 2 ,, 3).perl # well anyway | 05:21 | |
camelia | rakudo-moar b0b24c: OUTPUT«LoL.new(ListIter.new())» | ||
TimToady | we need a semi-eager context that evaluates the first 4 or 5 elements of a lazy list | 05:23 | |
"gist" context :) | 05:24 | ||
Mouq | Anything looser than &[,] "does not appear to be an operator" | ||
05:29
kurahaupo joined
05:52
aoseki joined
05:55
akaseki left
06:01
iarna left
06:02
iarna joined
06:06
kaare_ joined
06:08
FROGGS__ is now known as FROGGS,
iarna left
|
|||
TimToady | m: foo: say "here"; goto foo; | 06:11 | |
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/szKN3kLOxUUndeclared routine: goto used at line 1» | ||
TimToady | segfaults under jit | ||
diakopter | m: loop { start { die } } | 06:12 | |
camelia | rakudo-moar b0b24c: OUTPUT«(signal )Unhandled exception in code scheduled on thread 140061769201408» | ||
diakopter | m: loop { start { die } } | ||
camelia | rakudo-moar b0b24c: OUTPUT«(signal )Unhandled exception in code scheduled on thread 140489453991680» | ||
TimToady | oh, mine only segfaults in the repl | 06:13 | |
actually, it just segfaults on the label in the repl :/ | 06:14 | ||
diakopter | m: f:\ | ||
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/gwXhIoLdNrTwo terms in a rowat /tmp/gwXhIoLdNr:1------> f⏏:\ expecting any of: argument list postfix infix stopper infix o…» | ||
diakopter | m: f: | ||
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/xmv3oIuuRdTwo terms in a rowat /tmp/xmv3oIuuRd:1------> f⏏: expecting any of: argument list postfix infix stopper infix or…» | ||
TimToady | m: f: | 06:15 | |
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/hMvGtWPTopTwo terms in a rowat /tmp/hMvGtWPTop:1------> f⏏: expecting any of: argument list postfix infix stopper infix or…» | ||
TimToady | m: f: ; | ||
camelia | ( no output ) | ||
diakopter | m: ENTER ENTER ENTER LEAVE ENTER LEAVE ENTER LEAVE say 4 | 06:19 | |
camelia | rakudo-moar b0b24c: OUTPUT«4» | ||
diakopter | m: start { say 4 } | 06:23 | |
camelia | rakudo-moar b0b24c: OUTPUT«4» | ||
diakopter | m: start { start { say 4 } } | ||
camelia | ( no output ) | ||
TimToady | m: await start { start { say 4 } } | 06:24 | |
camelia | ( no output ) | ||
TimToady | m: await start { await start { say 4 } } | ||
camelia | rakudo-moar b0b24c: OUTPUT«4» | ||
TimToady | m: start { await start { say 4 } } | ||
camelia | ( no output ) | ||
06:25
bjz_ left
|
|||
TimToady | m: say result start { result start { 4 } } | 06:26 | |
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/GU4QF63sTIUndeclared routine: result used at line 1» | ||
diakopter | m: await await { start { start { say 6 } } } | ||
camelia | rakudo-moar b0b24c: OUTPUT«(timeout)» | ||
TimToady | m: sub result ($x) { $x.result }; say result start { result start { 4 } } | 06:28 | |
camelia | rakudo-moar b0b24c: OUTPUT«4» | ||
TimToady | m: sub result ($x) { $x.result }; say result start { result start { sleep 2; 4 } } | 06:29 | |
camelia | rakudo-moar b0b24c: OUTPUT«4» | ||
diakopter | m: await LAST start { say 6 } | ||
camelia | ( no output ) | ||
diakopter | p: await LAST start { say 6 } | ||
camelia | rakudo-parrot b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/51e_DyXItTUndeclared routines: await used at line 1 start used at line 1. Did you mean 'spurt', 'sqrt', 'sort'?» | ||
TimToady | m: say await start { 4 }, start { 2 } | 06:32 | |
camelia | rakudo-moar b0b24c: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in sub start at src/gen/m-CORE.setting:18659 in block at /tmp/IMe1iYWu2l:1» | ||
diakopter | m: await { lazy { start { say 4 } } } | 06:33 | |
camelia | ( no output ) | ||
TimToady | m: say await start({ 4 }), start { 2 } | ||
camelia | rakudo-moar b0b24c: OUTPUT«4 2» | ||
TimToady | start is supposed to be a statement prefix, not a listop | 06:36 | |
dalek | d: ee1ef48 | TimToady++ | STD.pm6: s/async/start/ in statement prefixes |
06:38 | |
TimToady | see also S04:1434 | 06:39 | |
synopsebot | Link: perlcabal.org/syn/S04.html#line_1434 | ||
06:39
darutoko joined
06:40
xinming joined
|
|||
Mouq | So I added the rest of the missing precedence info to precendence.pm, and it makes stage parse hang. Discecting the cause may take a while... | 06:40 | |
TimToady | er, have the appropriate amount of fun... | ||
06:41
mr-foobar left
|
|||
Mouq | :9 | 06:41 | |
I'll try | |||
06:41
mr-foobar joined
|
|||
diakopter | m: { CATCH { say 44; CATCH { say 33 }; die 55 }; die 66 } | 06:43 | |
camelia | rakudo-moar b0b24c: OUTPUT«443355 in block at /tmp/3pCGNjribn:1 in block at /tmp/3pCGNjribn:1» | ||
Mouq | Ah, I was missing a semicolon | 06:45 | |
TimToady | m: { CATCH { say 44; CATCH { say 33; default {} }; die 55 }; die 66 } | 06:46 | |
camelia | rakudo-moar b0b24c: OUTPUT«4433» | ||
TimToady | m: { CATCH { say 44; default {} CATCH { say 33; default {} }; die 55 }; die 66 } | ||
camelia | rakudo-moar b0b24c: OUTPUT«===SORRY!=== Error while compiling /tmp/ONPspyL66aMissing semicolon.at /tmp/ONPspyL66a:1------> { CATCH { say 44; default {} ⏏CATCH { say 33; default {} }; die 55 };  expecting any of: stateme…» | ||
TimToady | m: { CATCH { say 44; default {}; CATCH { say 33; default {} }; die 55 }; die 66 } | 06:47 | |
camelia | rakudo-moar b0b24c: OUTPUT«44» | ||
dalek | kudo/nom: 9947667 | Mouq++ | src/core/precedence.pm: Add more ops to precedence.pm |
||
06:48
thou joined
06:52
thou left
06:54
hurry joined
06:56
hurry is now known as tiny,
tiny is now known as tinyToday
06:59
tinyToday left
07:01
next_ joined
|
|||
dalek | kudo/nom: daf9612 | Mouq++ | src/core/ (2 files): Make .tree somewhat more to spec |
07:06 | |
kudo/nom: 2f42311 | Mouq++ | src/core/LoL.pm: Use simpler .perl for LoL |
|||
p: 9b526d1 | duff++ | src/HLL/sprintf.nqp: better sprintf formatting for floats When outputing a float to some number of decimal places, some calculations are done with native numbers and others with bigints. This results in odd formatting once intermediate calculations generate a number that's too big to fit in a num. This commit reworks the stringify-to-precision() routine to treat the number as a string and then use only bigints for the individual parts. Fixes RT #120232 |
07:10 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120232 | ||
p: a9cf677 | duff++ | src/HLL/sprintf.nqp: Only output trailing dot if there are also trailing digits |
|||
p: e806b34 | duff++ | src/HLL/sprintf.nqp: Decimal expand numbers given in scientific notation C<sprintf()> outputs strange numbers, sometimes with 2 radix points or extra stuff on the end, when given a number in scientific notation to format. So, prior to formatting, expand the number into the appropriate decimal representation. |
|||
Mouq | PerlJam++ :D | 07:15 | |
timotimo | aye! | 07:20 | |
and good morning | |||
07:25
bowtie_ joined
07:34
denis_boyun joined,
tinyToday joined
07:45
cooper left
07:46
cooper__ left
|
|||
dalek | p: c6c02af | duff++ | t/hll/01-language.t: skip t/hll/01-language since it's highly parrot specific right now |
08:01 | |
p: 340eaeb | duff++ | t/hll/06-sprintf.t: un-todo some tests; plan the correct number of tests |
|||
p: 0055bf5 | duff++ | tools/build/Makefile- (2 files): Add t/hll tests to moar and jvm backends Most of t/hll is skipped anyway right now, but there are some bits that can run on all the backends, so we should run them. |
|||
08:03
cooper joined,
cooper left,
cooper joined
08:12
molaf joined
|
|||
dalek | kudo/nom: a63b1ba | Mouq++ | src/core/Any.pm: .tree logic fix |
08:16 | |
ast: 332eb67 | Mouq++ | S02-lists/tree.t: Fix .tree tests |
08:17 | ||
08:19
chenryn joined
|
|||
dalek | kudo/nom: 5bb3a03 | duff++ | src/core/Any.pm: I think this fixes RT #122028 |
08:22 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122028 | ||
08:24
tinyToday left,
next_ left
08:25
Mouq left,
Mouq joined
08:26
aoseki is now known as Jaoseki
08:27
Jaoseki is now known as midoriseki
|
|||
lizmat | t/spec/S12-subset/subtypes.t hangs with the latest pull | 08:29 | |
08:30
dmol joined
|
|||
Mouq disagrees... | 08:35 | ||
Oh, but my nqp is behind yet | |||
ChoHag | That grammar didn't work. | ||
Oh never mind I was printing [0] | |||
This is why programming doesn't work inthe morning... | 08:36 | ||
08:36
thou joined
|
|||
Mouq | lizmat: What's your -v? | 08:36 | |
lizmat | This is perl6 version 2014.07-193-g5bb3a03 built on MoarVM version 2014.07-388-ge953112 | 08:37 | |
Mouq | same... | 08:38 | |
lizmat | m: use Test; subset AE of Int where { $_ % 2 == 0 }; my AE $x = 2; dies_ok { $x++ } # seems to not get past the dies_ok | ||
camelia | rakudo-moar 2f4231: OUTPUT«ok 1 - » | ||
lizmat | oddly enough, if I skip the block *before* the block that hangs, we don't have a problem :-( | 08:40 | |
masak | good antenoon, #perl6 | 08:41 | |
lizmat | masak o/ | ||
08:41
thou left
|
|||
Mouq | lizmat: maybe you need to make clean? | 08:41 | |
lizmat | I'll try | ||
08:43
tinyToday joined
|
|||
lizmat | nope: complete rebuild (with install dir zapped): still the same | 08:47 | |
golfing now | 08:49 | ||
08:50
chenryn left
|
|||
ChoHag | Why does \N match where . doesn't? | 08:54 | |
masak | ChoHag: do you have a concrete example? | 08:55 | |
ChoHag | Given this: rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ }; | ||
This works: token log { 2014\N* } | 08:56 | ||
This doesn't: token log { 2014.* } | |||
masak | could you show that, on the p6eval, with some input? | ||
ChoHag | The p6eval being camelia? | 08:57 | |
Ein moment. | |||
masak | oh, right. yes. | ||
camelia used to be named p6eval :) | |||
lizmat | Mouq: I had a local change that caused the hanging | ||
but the change is really minimal | |||
after the try block in dies_ok, I had "say $! if $!" | 08:58 | ||
Mouq | lizmat: Obviously not *that* minimal :9 | ||
ChoHag | What's the method to a Grammar to parse a string? | ||
moritz | .parse | 08:59 | |
lizmat | oddly enough, if I change it to "diag $! if $!" there is no problem | ||
wouldn't be surprised if I'm tickling a crossing the streams between S*OUT and $*ERR bug there | |||
ChoHag | m: grammar GoodAntiBullshitDetector { rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ }; token log { 2014\N* }; }; say GoodAntiBullshitDetector.parse("bad line\n2014: good line\n"); | 09:01 | |
camelia | rakudo-moar 2f4231: OUTPUT«「bad line2014: good line」 line => 「bad line」 bullshit => 「bad line」 line => 「2014: good line」 log => 「2014: good line」» | ||
ChoHag | m: grammar BadAntiBullshitDetector { rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ }; token log { 2014.* }; }; say BadAntiBullshitDetector.parse("bad line\n2014: good line\n"); | ||
camelia | rakudo-moar 2f4231: OUTPUT«「bad line2014: good line」 line => 「bad line」 bullshit => 「bad line」 line => 「2014: good line」 bullshit => 「2014: good line」» | ||
ChoHag | That plays merry havoc with my terminal :( | ||
dalek | ast: a813440 | (Elizabeth Mattijsen)++ | S02-lists/tree.t: Fix test count |
||
masak | I can read it just fine. | 09:03 | |
ChoHag | I could too until I moved irssi to freebsd. | ||
It's some locale thing I think. | |||
Locales are weird enough in Linux where people care. | |||
masak | aye. | ||
ChoHag | I'm just learning to love ctrl-l. | 09:04 | |
huf | the l stands for love! | ||
ChoHag | ctrl-love? That sounds rather psychotic. | 09:05 | |
masak | m: say so "foo\nbar\n" ~~ /bar $$/ | ||
camelia | rakudo-moar 2f4231: OUTPUT«True» | ||
masak | m: say so "foo\nbar" ~~ /bar $$/ | 09:06 | |
camelia | rakudo-moar 2f4231: OUTPUT«True» | ||
masak | hm. | ||
I *thought* that would end up being the problem. apparently not. | |||
ChoHag | It's probably down to the sigspace magic, but I really have no clue about grammars. | ||
lizmat | Mouq: your fix to push seems to break things: | 09:07 | |
$ 6 'my %h; push %h<a>,42' | |||
Cannot call 'push'; none of these signatures match: | |||
:(Any:U \SELF: *@values, *%_) | |||
ChoHag | P5 regex have filled my brain. | ||
masak | ChoHag: shouldn't be any sigspace involved; you're using `token`, not `rule` | ||
ChoHag | Oh. | ||
See? | |||
No clue. | |||
masak | :) | ||
moritz | m: say so "foo\nbar" ~~ /foo $$ bar / | ||
camelia | rakudo-moar 2f4231: OUTPUT«False» | ||
ChoHag | I was swapping them around to see what happened. | ||
Mouq | lizmat: Errr, PerlJam's fix? | ||
moritz | that's because nothing is eating the \n | ||
masak | oh, oh! right. | ||
09:07
Rotwang joined
|
|||
masak | that one trips me up every so often. | 09:08 | |
moritz | $$ is a zero-width assertion | ||
masak | right. | ||
lizmat | oops, actually duff++ 's fix, I think | ||
masak | PerlJam++ | ||
moritz | maybe we should have token nl { \n? $$ } | ||
lizmat | github.com/rakudo/rakudo/commit/5bb3a03cbf | ||
moritz | duff is PerlJam :-) | 09:09 | |
lizmat | ah, ok | ||
and perlpilot on github, :-) | |||
testing a fix | 09:11 | ||
ChoHag | Bah. | ||
This hacking thing was so much easier before I grew up and got responsibilities. | |||
I have to go shopping. | |||
masak | hah, I thought you meant responsibilities towards a client. :) | 09:12 | |
ChoHag | No. Real responsibilities. | ||
Children like food, you see. | |||
masak | so I've heard. | ||
lizmat | .oO( masak will find that out before too long as well :-) |
09:13 | |
ChoHag | Clients can go hang themselves on Saturday. | ||
Or pay me far more than I'm worth. | |||
09:13
klaas-janstol joined
|
|||
masak | lizmat: the surprise involved in finding out the answer to "do children like food?" is projected to be: very small. :P | 09:15 | |
dalek | kudo/nom: d0bf8a2 | (Elizabeth Mattijsen)++ | src/core/Any.pm: Better fix for #122028 |
09:17 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122028 | ||
dalek | ast: 5c4e3ee | (Elizabeth Mattijsen)++ | S09-typed-arrays/arrays.t: Unfudge now passing test, PerlJam++ |
09:18 | |
Mouq | Here's a question: why are grammars and actions so disconnected? They currently rely on this $*ACTIONS mechanism which doesn't (in the code I've seen) change unless in unison with a change in the grammar | 09:23 | |
lizmat | because you might want to use the same grammar with different actions | 09:24 | |
this is what perl6-debug is based on, e.g. afaik | |||
Mouq | I think that if there is a need to change the actions of a grammar, it's an esoteric enough thing to warrenting using the metamodel | ||
lizmat: Hm. I think I stand by my last statement | |||
masak | Mouq: if you prefer to have some actions always fire, you can (a) write them inline in the grammar, or (b) wire things up so that some actions class is chosen by default. | ||
actually, I should blog about that. | 09:25 | ||
that ought to be a short-and-sweet but useful blog post. | |||
09:26
denis_boyun left
|
|||
Mouq | Cool :) | 09:28 | |
masak | (not sure I'll get to it today, though. in the meantime, suffice the above.) | 09:30 | |
moritz | using totally different actions is indeed a rather rare thing; but subclassing an action class (or mixing things in) might become very comon | ||
Mouq | I don't think the grammar and actions should be the same thing, just that they should be able to be tied together better. grammar Foo has actions(Foo::Actions) {} | 09:31 | |
masak | interesting idea, to put it in a trait. | 09:32 | |
that should fly; if someone makes a proof-of-concept, I'll put that in the blog post. | |||
09:35
pmurias joined
|
|||
pmurias | what would be a good way to expose the ability to call javascript call from nqp? | 09:35 | |
something like eval('console.log("Hello World")') | 09:39 | ||
masak | is the question interesting because the compiler has to intercept this call and do something unusual with it? | 09:40 | |
Mouq | Can functions be imported and exported from pure JS? | 09:44 | |
Err, I'm not sure 'import' is the right word for Javascript, but be inherited from an outside scope? | 09:45 | ||
dalek | p-js: f7590c4 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Refactor adding infix ops. |
09:48 | |
pmurias | masak: it's mostly a user interface question, is there some existing nqp convention etc. | 09:49 | |
09:49
kurahaupo left
|
|||
masak | oh. | 09:50 | |
no idea, then. | |||
pmurias | masak: there would need to be some mapping between different calling conventions | ||
timotimo | "nativecall" is taken, so you should call it ... uglycall? terriblecall? disgustingcall? :) | ||
masak | hey, what's this anti-JS vibe I get? :) | ||
you're talking about the substrate programming medium of the 21st century! | 09:51 | ||
mock it at yer own peril! | |||
timotimo | :D | ||
pmurias likes js much more than pir | 09:52 | ||
masak | oh man, PIR. | ||
the preciseness of Perl combined with the succinctness of assembly language! | 09:53 | ||
09:58
ventica joined
|
|||
dalek | p-js: 467e54c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Implement nqp ops: iseq_n, isne_n, iseq_s, isne_s, eqaddr. |
09:59 | |
10:01
FROGGS[mobile] joined
10:03
denis_boyun joined
10:08
denis_boyun left
10:09
denis_boyun joined
|
|||
pmurias | what's the prefered form in nqp? nqp::push(@foo,1) or @foo.push(1) ? | 10:09 | |
10:11
spider-mario joined
|
|||
pmurias | nqp-m: my @foo; @foo.push(1) | 10:12 | |
camelia | ( no output ) | ||
pmurias | nqp-m: my @foo; @foo.push(1); say @foo[0] | ||
camelia | nqp-moarvm: OUTPUT«Confused at line 2, near "say @foo[0" at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:105) from gen/moar/stage2/NQP.nqp:913 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:872) fro…» | ||
pmurias | nqp-m: my @foo; @foo.push(1); say(@foo[0]) | ||
camelia | nqp-moarvm: OUTPUT«1» | ||
10:12
denis_boyun left
10:13
denis_boyun joined,
zakharyas joined
10:14
denis_boyun left,
Mouq left
10:15
denis_boyun joined
10:24
thou joined
|
|||
dalek | p-js: ee28142 | (Pawel Murias)++ | src/vm/js/ (2 files): Pass test 10. Add nqp::numify, nqp::stringify, nqp::list, and the ability to coerce strings to num. |
10:25 | |
10:29
thou left
|
|||
lizmat | m: my $a = 42; $a = q# 32 #; say $a # huh? | 10:29 | |
camelia | ( no output ) | ||
masak | oh, interesting. | 10:30 | |
lizmat | m: my $a = 42; $a = q# 32 #; say $a | ||
camelia | ( no output ) | ||
masak | which rule wins, (a) the one that says you can use any character as quote delimiter | ||
lizmat | well, # is supposed to be specifically barred | ||
masak | or (b) the one that says comments are whitespace, and thus don't count? | ||
m: say q{ "OH HAI" } | 10:31 | ||
camelia | rakudo-moar 5bb3a0: OUTPUT« "OH HAI" » | ||
lizmat | found this in t/spec/S02-lexical-conventions/comments.t | ||
masak | m: say q foo ; | ||
camelia | rakudo-moar 5bb3a0: OUTPUT«===SORRY!=== Error while compiling /tmp/syVQq_ciMlAlphanumeric character is not allowed as a delimiterat /tmp/syVQq_ciMl:1------> say q ⏏foo ; expecting any of: argument list prefix …» | ||
lizmat | an eval_dies_ok test that is dying for the wrong reason | ||
I'll mark them as todo... | 10:32 | ||
jnthn | std: my $a = 42; $a = q# 32 #; say $a | ||
camelia | std ee1ef48: OUTPUT«===SORRY!===No delimiter found at /tmp/iYZC6aG1MB line 1 (EOF):------> my $a = 42; $a = q# 32 #; say $a⏏<EOL>Parse failedFAILED 00:01 125m» | ||
masak | testing unspecified failure is a very bad idea. | ||
I'd say (b) feels like the winner. | |||
but I say it somewhat reluctantly. | |||
is there any other character special-cased such that (a) wins? | 10:33 | ||
jnthn | STD seems to expect (b), as another data point. | ||
masak | right. | ||
lizmat | no idea, I'm just working on replacing "(eval_|)dies_ok" tests with "throws_like" tests | ||
psch | S02:3920 is one more data point, fwiw | 10:35 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_3920 | ||
masak | lizmat++ # changing bad things to things that are not as bad | 10:36 | |
psch | plus the obligatory second thing i say: hi #perl6 | ||
masak | psch! \o/ | ||
psch: that reference seems to talk about twigils; seems unrelated. | |||
jnthn | o/ psch | 10:37 | |
psch | oh | ||
yes | |||
that's probably my local specs out of date | |||
thus grep giving me the wrong line number | |||
masak .oO( pro tip: ... ) | |||
:P | 10:38 | ||
moritz | hpmor.com/chapter/102 \o/ | ||
psch | perlcabal.org/syn/S02.html#Delimite...ting_forms | ||
end of that paragraph | 10:39 | ||
is what i wanted to point to :) | |||
masak | "Nor may a # character be used as the delimiter since it is always taken as whitespace (specifically, as a comment)." | ||
just found it :) | |||
OK, so STD has it right. | |||
lizmat: does that mean the test is wrong? | |||
lizmat | the test was passing when it shouldn't have | 10:40 | |
it's now failing with a TODO | |||
psch | well, STD sorries, rakudo doesn't | ||
for # specifically | |||
masak | oh, troo. | ||
is that worth a RT ticket, summarizing the thing? | |||
psch | the TODO lizmat+ | ||
the TODO lizmat++ supposedly put in is correct | 10:41 | ||
in my understanding :) | |||
lizmat | I've marked is as NYI | ||
masak | well, a rakudobug might translate to someone grabbing it as a low-hanging fruit thingy... | ||
10:42
timotimo left
|
|||
masak | moritz: I'm sorry? wasn't 102 posted on July 25? | 10:43 | |
moritz: or are you rejoicing about its mere existence? | |||
10:46
ventica2 joined
10:49
ventica left
10:50
mr-foobar left,
kurahaupo joined
10:51
mr-foobar joined
|
|||
moritz | masak: I missed it back then | 10:56 | |
masak | ah. | ||
in that case, enjoy. :) | |||
moritz enjoyed | 10:59 | ||
masak | ...perhaps some www.reddit.com/r/hpmor for dessert? :) | 11:06 | |
11:09
timotimo joined
11:33
bjz joined
|
|||
psch | m: my $x = fail "foo"; say "alive"; # why does this print "alive" with -e? | 11:38 | |
camelia | rakudo-moar d0bf8a: OUTPUT«Unhandled exception: foo at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:13059 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:29)…» | ||
psch | "it's assigned and doesn't get evaluated" seems a bit too hand-wavey to me, as an explanation | 11:40 | |
but maybe camelia throwing it is an artifact of what camelia does | 11:41 | ||
as in, it shouldn't be thrown because it's just sitting in it's container and not evaluated, but camelia throws it because of [i'm not sure what goes here, something about scope and exiting?] | 11:42 | ||
lizmat | m: { my $x = fail "foo" }; say "alive"; | 11:51 | |
camelia | rakudo-moar d0bf8a: OUTPUT«Unhandled exception: foo at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:13059 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:29)…» | ||
sergot | o/ | ||
yoleaux | 14 Aug 2014 23:40Z <psch> sergot: i've added a very basic error-printing to your OpenSSL module and the error message seems to points at something upstream (3rd file in gist.github.com/peschwa/c60c1c06a96781418d27; upstream discussion www.mail-archive.com/openssl-dev@op...2009.html) | ||
14 Aug 2014 23:40Z <psch> sergot: i'm not sure that's actually the problem though; the discussion mentions AES-NI, which at least one of the machines i encounter that error doesn't support | |||
lizmat | m: sub { my $x = fail "foo" }(); say "alive"; | 11:52 | |
camelia | rakudo-moar d0bf8a: OUTPUT«foo in block at /tmp/_ricdU_n8k:1» | ||
sergot | psch++ thanks for your help | ||
psch | m: sub { my $x = fail "foo"; 1 }(); say "alive" | ||
camelia | rakudo-moar d0bf8a: OUTPUT«foo in block at /tmp/aYZK9cqt2o:1» | ||
psch | sergot: your welcome :) | 11:53 | |
sergot | I will get into this tomorrow, ok? :) | ||
psch | sure, no rush | ||
sergot | or... I willtry to do this today :) | ||
lizmat | m: sub a { $^a * 10; }; say a (2) + 1; say a(2) + 1 | ||
camelia | rakudo-moar d0bf8a: OUTPUT«3021» | ||
lizmat | m: sub a { $^a * 10; }; say a (2); say a (2) + 1; say a(2) + 1 # feels to me this is going to trip up some people | 11:54 | |
camelia | rakudo-moar d0bf8a: OUTPUT«203021» | ||
psch | sergot: i'll be around at least 2-3 hours to test patches, if you need me to | ||
sergot | thanks a lot :) | 11:55 | |
psch | lizmat: fwiw, for me the warning about "you can't parens after 'if'" makes it rather clear to me | 11:57 | |
where "after" means "without whitespace" | |||
lizmat | but this is more about the precedence of () as an invoker, wrt to other operators | 11:58 | |
psch | i also wouldn't want to warn for cases like "sum(1..10) / 10" with "did you want to call sum (1..10) / 10?" because i feel that'd be almost mandatory to silence for some styles of writing | 11:59 | |
the if-case i mentioned is just how i got "when the parens touches to the left it contains all params" | 12:00 | ||
it's somewhat of my mnemonic, i guess | |||
lizmat | but it would be the other way around: | ||
m: sub sum (*@a) { [+] @a }; say sum (1..5); say sum (1..5) / 10; say sum(1..5) / 10 | 12:02 | ||
camelia | rakudo-moar d0bf8a: OUTPUT«150.51.5» | ||
FROGGS | psch: is there already an github issue for the openssl problem? | 12:03 | |
lizmat | the case with 'sum () / 10' is probably *not* doing what you want | ||
so maybe a warning would be in place for those cases? | |||
psch | lizmat: right, warning for the other case makes sense. it's really the inverse case of what if complains about | ||
lizmat | std: sub sum (*@a) { [+] @a }; say sum (1..5) / 10; | 12:04 | |
camelia | std ee1ef48: OUTPUT«ok 00:01 131m» | ||
lizmat | std thinks it's ok anyway | ||
psch | FROGGS: on their github? i honestly didn't check. i found a debian ticket which states the error shouldn't occur on debian because they package 1.0e instead of 1.0d and 1.0d should be the one affected, but i'm using debian and have 1.0e and get the error | ||
FROGGS | psch: no, sergot's github | 12:05 | |
psch | fwiw, it only happens with sergot++'s module, not with sslclient or what it was called. | ||
FROGGS | psch: so we do not loose track of the info you've collected | ||
psch | FROGGS: yeah, that's a good idea, i'll open it | ||
FROGGS | psch++ | ||
psch | not sure if i should put it to IO::Socket::SSL or OpenSSL - i guess the latter because even though i used the former, it's the latter that (probably) exhibits the problem | 12:06 | |
FROGGS | hmmmm | 12:09 | |
probably, yeah | |||
psch | also, minor correction: the versions involved are 1.0.1d and e, respectively :) | 12:10 | |
12:12
Sqirrel left
12:13
thou joined
|
|||
psch | sergot: should i PR the very-basic err-bindings i wrote to get the stringy error message or are you ok with applying the diff in the gist manually (if you want the code)? | 12:15 | |
sergot | a PR would be nice psch++ | 12:16 | |
psch | alright, i'll finish the issue and add a comment referencing the PR after opening that | ||
12:17
thou left
12:19
zakharyas left
|
|||
psch | hm, i must've missed this one when i search before bugs.debian.org/cgi-bin/bugreport....bug=742152 | 12:21 | |
12:25
Sqirrel joined
|
|||
sergot | thanks psch++ | 12:26 | |
psch | sergot++: all done, PRs for both modules as well | 12:34 | |
sergot: i'm rather confident it is a problem upstream, which implementation can configure themselves to go around | |||
this comes from 1) the debian bug mentioning python 2) your module breaking and 3) the cli-tool for ssl working | 12:35 | ||
sergot | hope we can fix it easily | ||
pmurias | does nqp::getcomp('JavaScript') seem a resonable way of exposing javascript access in nqp-js? | 12:37 | |
12:46
cognome left
12:47
cognome joined,
telex left
12:48
telex joined
|
|||
psch | pmurias: fwiu, nqp::getcomp gets you compilers written in nqp. nqp-j accesses (and implements) java classes via nqp::jvminterop | 12:48 | |
pmurias: i'm not sure if that's a hard and fast rule or a weak convention though. | 12:49 | ||
timotimo | wow, my benchmark run just finished | 12:50 | |
12:50
klaas-janstol left
12:51
cognome left
|
|||
pmurias | nqp::jvmiterop is not tested anywhere :/ | 12:52 | |
timotimo | t.h8.lv/p6bench/2014-08-16-longterm...-moar.html | 12:53 | |
12:55
ggoebel1111119 joined
|
|||
lizmat | so, from the first 2 graphs, rakudo.moar has gotten slower ? | 12:56 | |
otherwise, pretty amazing differences between 2014.06 and 2014.07 | 12:58 | ||
wonder what 2014.08 will bring! | |||
timotimo | that's weird. | 13:00 | |
lizmat | the first 2 ? yes, that seems weird to me to | ||
jnthn | Those mean startup time got worse | 13:01 | |
lizmat | especially the frequence 4 or 5 per second ? | ||
timotimo | could be more additions to the setting for example | ||
lizmat | ah, that could be... :-) | ||
should be better in 2014.08 | |||
timotimo | a bit | ||
lizmat | (fixes in @*INC setup and such) | ||
timotimo | i'll run nqp benchmarks for the same versions, too | 13:03 | |
lizmat | timotimo: couldn't we make the granulatity of the zero benchmark better? | 13:07 | |
timotimo | no clue, honestly | ||
i already set "enough-time=10" | 13:08 | ||
lizmat | value * 1000 on the vertical axes ? and show startup time, rather than frequence ? | ||
timotimo | japhb: ^ | ||
wait, did japhb say he wanted to be alerted by the bot or does he backlog? | |||
lizmat | errands& | 13:09 | |
dalek | p-js: 9e04ca4 | (Pawel Murias)++ | src/vm/js/ (2 files): Implement nqp::sub_n, nqp::isinvokable, nqp::takeclosure |
13:10 | |
p-js: 46ad7cd | (Pawel Murias)++ | src/vm/js/ (2 files): Implement nqp::isinvokable, subs now can return values. |
|||
p-js: 65650e5 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Implement nqp::null. |
|||
p-js: d4d8e56 | (Pawel Murias)++ | src/vm/js/bin/run_tests: Add passing test 16 to run_tests |
|||
13:11
Pleiades` left,
ChoHag left
13:15
Pleiades` joined
13:16
ChoHag joined,
dmol left
|
|||
ChoHag | m: "foo" ~~ /o/ | 13:17 | |
camelia | ( no output ) | ||
ChoHag | Bah. | ||
Where's the weird unicode when you need it? | |||
m: grammar GoodAntiBullshitDetector { rule TOP { ^ <line>+ % \n $ }; token line { ^^ [ <log> || <bullshit> ] $$ }; token bullshit { \N+ }; token log { 2014\N* }; }; say GoodAntiBullshitDetector.parse("bad line\n2014: good line\n"); | 13:18 | ||
camelia | rakudo-moar d0bf8a: OUTPUT«「bad line2014: good line」 line => 「bad line」 bullshit => 「bad line」 line => 「2014: good line」 log => 「2014: good line」» | ||
timotimo | m: say "did you mean this on? ->" | ||
camelia | rakudo-moar d0bf8a: OUTPUT«did you mean this on? ->» | ||
ChoHag | Bloody thing still doesn't work. | 13:19 | |
Another try then no more spam. | |||
13:19
ChoHag left
13:22
ChoHag joined
|
|||
ChoHag | m: say "something stupid" | 13:22 | |
camelia | rakudo-moar d0bf8a: OUTPUT«something stupid» | ||
ChoHag | Hmm. | ||
Well it *seems* happier. | |||
tmux uses the same environment for every new session as was extant when the first session was started. | 13:23 | ||
It's kind of shit, but they think it's The Right Way. | 13:24 | ||
But now my locale settings are set. | |||
m: grammar { rule TOP { (abc) (foo) (def) } }.parse("wtf? abcfoodefghi") | 13:25 | ||
camelia | rakudo-moar d0bf8a: OUTPUT«===SORRY!=== Error while compiling /tmp/kxmKiC1spnTwo terms in a rowat /tmp/kxmKiC1spn:1------> ammar { rule TOP { (abc) (foo) (def) } }⏏.parse("wtf? abcfoodefghi") expecting any of: statement…» | ||
geekosaur | it's more "pretty much the only thing they can do" | ||
ChoHag | Nope. | ||
'tmux new-session' starts a whole new process with a whole new environment. That new environment is then thrown away and the shell which new-session eventually opens uses the old environment. | 13:26 | ||
dalek | p-js: 43b73dd | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Implement nqp::mul_n, nqp::div_n, handle floating point literals |
13:27 | |
p-js: 7a685f1 | (Pawel Murias)++ | TODO: Add a low hanging fruit task to TODO. |
|||
p-js: 4ecfc8c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Implement a bunch of nqp string ops. |
13:46 | ||
14:01
thou joined
14:06
thou left,
prevost joined
14:08
rurban1 joined
|
|||
pmurias | what should nqp::say when running inside a browser? | 14:13 | |
s/when/do when/ | |||
14:14
cosimo_ left,
prevost left
|
|||
lizmat | wouldn't that be the equivalent of writing to the DOM ? | 14:17 | |
pmurias | making it call document.write is one choice | 14:19 | |
it could also call console.log | |||
lizmat | I would see that more as what "note" would do, aka writing to $*ERR | ||
pmurias | there is also console.info, console.error etc. | 14:21 | |
but writing to the dom is rarely used | |||
lizmat | so if you would want to generate HTML from Perl6 in a browser, what would you do? | 14:23 | |
some Plack approach maybe ? | |||
timotimo | running a plack application in perl6-to-js'd code inside the browser seems weird :) | 14:24 | |
lizmat | why? Feels natural to me, and would allow harnassing a lot of middleware potentially | 14:25 | |
you could see it as a running proxy | 14:26 | ||
Juerd | If you wanted to generate html with a lot of say(), you'd need to buffer. | ||
Because once written to the DOM, the browser will fix errors, which includes closing open tags. | |||
lizmat | hence the Plack idea | 14:27 | |
Juerd | Yes, that would be much better than document.write() stuff. | ||
lizmat | I could totally see a click / mouseover / whatever generate an event in a Supply | ||
14:27
rindolf left
|
|||
lizmat | in fact, tracing mouse movements is one of the reasons we have Supply.rotot | 14:28 | |
*rotor | |||
.oO( why can't I just type rotot :-) |
|||
timotimo | well, plack and stuff are kind of like "the browser has requested this new URL:" and plack goes ahead and gives a new page to the browser | ||
lizmat | yup, only now that happens within the browser | 14:29 | |
timotimo | whereas in-browser javascript would be killed and replaced if you give the browser a new url to load | ||
Juerd | timotimo: Unless that (semi)URL begins with a # | ||
timotimo | oh, rightf, there's that, too | ||
that's what angular.js does i believe | |||
pmurias | yes | ||
pmurias likes angular.js | |||
Juerd | timotimo: I use this with jQuery. <a href="#/some/other/page">...</a> and then a jQuery plugin that acts on those. | ||
pmurias | food& | 14:31 | |
timotimo | ircing is a bit painful on this sluggish ssh connection >_< | ||
lizmat | afk& | 14:32 | |
pmurias | the big problem with making nqp::say call console.log, is what is nqp::print supposed to do | 14:33 | |
Juerd | timotimo: Get mosh :) | 14:34 | |
pmurias: Buffer things and call say when \n is reached :) | |||
Wrong way around perhaps, but with an output mechanism that doesn't do partial lines, it may make sense | 14:35 | ||
14:37
akaseki joined
14:38
treehug88 joined
14:40
midoriseki left
14:42
zakharyas joined
|
|||
timotimo | Juerd: i don't own the machine my irc client is on | 14:42 | |
15:02
treehug88 left
|
|||
[Coke] | PerlJam++ #productive day! | 15:16 | |
15:16
rurban1 left
15:31
rindolf joined
|
|||
masak | nwc10: lucumr.pocoo.org/2014/8/16/the-pyth...ke-to-see/ -- news.ycombinator.com/item?id=8186008 | 15:32 | |
it's interesting to read someone's wishlist about Python. | |||
TimToady | how much of it are doing/missing? | ||
or not-a-bugging? | 15:33 | ||
masak | let's see... | ||
slots -- shouldn't do it that way. | |||
pyobject -- should do it better. | |||
interpreter -- should redesign it. | |||
TimToady | seems a bit vague... | ||
masak | I'm summarizing, but yes, the post is short on details. | 15:34 | |
vtables -- not really sure what he wants here. | |||
TimToady | C++, perhaps | ||
masak | HN calls the post on being a rant without a well-defined solution. | 15:35 | |
though even a rant can lead somewhere good sometimes. | |||
TimToady | like about ⅓ of the Psalms :) | ||
masak | heh :) | 15:36 | |
nwc10 | masak: thanks. Will read at some point after small terrorist mealtime | 15:37 | |
15:39
guru joined,
guru is now known as Guest66073,
Guest66073 is now known as ajr_
|
|||
masak .oO( "[small terrorist] mealtime" or "small [terrorist mealtime]"? assuming former, with "small terrorist" bound as affectionate moniker for offspring ) | 15:41 | ||
15:41
klaas-janstol joined
|
|||
nwc10 | the latter. it's based on a comment made by someone else's mother about "not negotiating with terrorists" | 15:44 | |
in particular in this context, I think it was hungry irrational terrorists that are in denial about being hungry | |||
TimToady | mine were more like small anarchists, except when they were being small lawyers | 15:45 | |
masak | that's a cute combination :) | ||
TimToady | you think that's cute today! | ||
well, lawyers are almost like adults... | |||
so we encouraged it some | 15:46 | ||
masak | I think I would welcome the lawyers, too. | ||
TimToady | one wishes to ignite the spark of rationality, even in so ignominious a form :) | 15:47 | |
masak | haha | ||
masak .oO( Harry Potter and the Terrorist Mealtime Incident ) | |||
moritz | children are very good at pompoting fairness, especially when it works for them :-) | ||
15:49
rurban1 joined,
thou joined
|
|||
masak | well, fairness seems an important concept in general, but in raising kids especially. | 15:49 | |
I speak only from second-hand experience here, but that's how it seems to me. | |||
nwc10 | although right now the smaller one appears to be more interested in cables | 15:50 | |
network, power, who cares? :-) | |||
TimToady | well basically, if you want your kids to turn out sane, you have to let them argue you into things successfully, every now and then, that you would not otherwise have agreed to | ||
nwc10 | masak: consistency is also important. At least, all the adults need to stick to the same rules, and not contradict each other, even if they are privately seething about someone else's decision | 15:51 | |
TimToady | but a lot of parents never get it through their thick heads that it's ever a good thing to lose to your kid | ||
I'd call that more of a "united front" | |||
but consistency is overrated | |||
different kids have different needs, and sometimes the fairest thing is to be unfair | 15:52 | ||
nwc10 | yes, your description is better/more accurate | ||
TimToady | but a reflex of "What did your mother say about that?" is a good one | ||
masak scribbles frantically | 15:53 | ||
TimToady | at least half your kids will learn how to play you off against each other, if you let 'em :) | ||
15:54
thou left
|
|||
TimToady | if you want your kids to have a large vocabulary, go ahead and use the big words, then explain it in simpler words | 15:54 | |
Glo and I did a lot of such explaining for each other | |||
masak | oh, that one I knew already. my parents always used big words with me, and I loved it. | 15:55 | |
TimToady | it's okay to show your kids you're angry occasionally, or they'll think you don't actually care | 15:56 | |
masak | "the department of ecclesiastics" is one long compound word in Swedish. my father used to ask me to repeat it, to see how far I got through it. | ||
TimToady | in a controlled sort of way, of course | ||
masak | sure. | ||
ChoHag | $daughter has learned extremely fast by, imo, not being coddled by me. | 15:57 | |
TimToady | funny how clerics like those long words: antidisestablishmentarianism | ||
ChoHag | Her life so far has been *just* hard enough that she's forced to grow constantly. | 15:58 | |
Seems to be working extremely well. | |||
masak | TimToady: I guess that's English's "famous long compound". | ||
TimToady | yeah, it's the Official Longest Word :) | ||
ChoHag | She is not shielded from real life, just protected frmo it. | 15:59 | |
15:59
BenGoldberg joined
|
|||
TimToady | ChoHag: neverthess, we all find some way to inflict a certain amount of dysfunction on our kids | 15:59 | |
*theless | 16:00 | ||
ChoHag | It's only fair. | ||
TimToady snerks. | |||
masak | at least it's our dysfunction, and nobody else's. | 16:01 | |
16:01
j4jackj joined
|
|||
TimToady | well, you hope | 16:01 | |
masak | right. | ||
guess that shouldn't be an end in itself, either. | |||
BenGoldberg thought that disfunction was infliced by kids upon parents. | 16:02 | ||
s/infliced/inflicted/; #can't spell before coffee | |||
TimToady | it's really an impossible task, because you will simultaneously be overprotective and underprotective | ||
but mostly, you have to treat them like people, not like experimental animals | 16:03 | ||
BenGoldberg | That sounds like advice you'd give to BBC's Sherlock ;) | ||
TimToady | no, I'd tell him to not reproduce :) | 16:05 | |
well, not unless he fosters them out to John and Mary | 16:06 | ||
BenGoldberg | As a fanfiction addict, I've read a couple of stories where he adopts :) | 16:07 | |
TimToady | well, to get things back on topic, it's amazing how similar raising kids is to designing a computer language :) | 16:10 | |
maximum freedom within the constraints, and all that | |||
encouragement of downstream creativity | 16:11 | ||
hoping you'll be supported in your old age :) | |||
BenGoldberg | And highly variable time until completion, for some definition of completion :) | ||
masak | TimToady: haha | ||
TimToady: as I grow ever closer to becoming a parent, I'm struck by how much of my parents' parenting consisted of explaining how to be a good parent. to me, that vibes both with your "downstream creativity" thing, and with Alan Kay's explanation of objects as being "small computers", each one no less powerful than the whole machine. | 16:13 | ||
16:14
klaas-janstol left
|
|||
diakopter | Father Carl | 16:16 | |
timotimo | on a totally unrelated note: do we have proper support for udp sockets? like recvfrom and such? | 16:18 | |
jnthn | Don't think so | ||
TimToady | Do think not | 16:19 | |
timotimo | :\ | ||
jnthn | Would make another nice MHF project :) | 16:20 | |
TimToady | we're gonna have to put MHF in the glossary soon... | ||
jnthn | At least that's an LHF :P | 16:21 | |
pmurias | MHF? | 16:23 | |
TimToady | see LHF | ||
pmurias | medium hanging fruit? | 16:24 | |
TimToady | or mid, or medial, or some such | ||
jnthn | Or Mild Headache Felt | ||
:) | |||
TimToady | that would be Low Headache Felt though | ||
dalek | p-js: 30bd2d2 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Implement cmp_n,cmp_s,cmp_i. |
16:25 | |
p-js: 7e591f0 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Add more coersion to and from $T_BOOL. |
|||
p-js: 37b9db3 | (Pawel Murias)++ | / (7 files): Add a simple example of running the compiled js in the browser. nqp::say will call console.log when running in the browser. Create a simple loader for webpack, which compiles nqp code to js. |
|||
pmurias | nqp-js has now webpack support ;) | 16:26 | |
TimToady is thinking of reserving ; inside of circumfix [] and () for now, until we decide how monadically contextual to make it | |||
if ; is going to be sequence points inside blocks, but dimensional separators inside subscripts, it's not clear yet where the one leave off and the other begins | 16:27 | ||
or if there are other uses for ; in context | 16:29 | ||
note also the loop (my $i = 1; $i < 100; $i++) usage, where it's essentially just three different thunks to be applied at different times | |||
one can even view a block as a series of thunks separated by ; that we just happen to call in order | 16:31 | ||
though I wouldn't suggest implementing it that way :) | |||
jnthn | Was gonna say... :P | ||
TimToady is getting a feeling for when the kids are about to panic :) | 16:32 | ||
I think that if we change [;;] and (;;) to be lollipopish, we carry over the policy that a bare block in such a sequence is executed immediately, just as it is in a more statement sequence, if it's the only thing in a pseudostatement | 16:38 | ||
need a better term for one of the pieces of a semilist... | |||
pmurias | masak: when running on the browser side what would you like nqp::say to do? | ||
TimToady | so, for example, [my $x; $_ * $x++ for @foo] would not be good, but [{my $x; $_ * $x++ for @foo}] would be how you'd embed multiple statements as a pseudostatement in a possibly dimensional [] | 16:39 | |
it's either that or force people to write do {}, but that's kinda ugly | 16:40 | ||
so I think immediate blocks can work for one of the dimensions of a [;;] or (;;) lol | |||
jnthn | TimToady: We want ; to be a dimension separator, and so treating it as statement sep like today is a problem, iiuc? | 16:41 | |
TimToady | in [] and (), yes, and it seems we could tweak it the other way without too much bother | 16:42 | |
and ; is not heavily used inside [] or () yet | |||
a deprecation cycle might be in order though | |||
jnthn | It doesn't break the common single-statement case of list comprehension? | ||
TimToady | no | ||
you don't get a lol unless there is a ; | 16:43 | ||
and basically [;;] becomes itemized lol, (;;) parcelized | |||
jnthn | *nod* | ||
Makes sense, and consistent with subscript meaning of it too | 16:44 | ||
TimToady | and we can probably warn longterm if we see a my decl as the left list | ||
a cursory glance did not see any use of that kind of semicolon in our corpus | 16:45 | ||
hoelzro | morning #perl6 | ||
TimToady | I think there may be one or two uses of it on RC | ||
o/ | |||
jnthn | o/ hoelzro | 16:47 | |
16:47
zakharyas left
|
|||
dalek | ast/S26-WHY: 487434b | (Rob Hoelz)++ | S26-documentation/why- (3 files): Skip constants in S26 tests for now |
16:48 | |
ast/S26-WHY: b56a35b | (Rob Hoelz)++ | S26-documentation/why- (3 files): Add tests for S26 decl comments on variables They're NYI for now, and marked as such. They should probably be tested for each scope type (my, our, state, temp) and container type ($ @ % &) |
|||
ast/S26-WHY: 9fdb1e4 | (Rob Hoelz)++ | S26-TODO.md: Mark constants/variable decl comments as NYI in the TOOD |
|||
hoelzro | ahoy TimToady, jnthn | ||
japhb | timotimo: I see a highlight from you. So that I don't have to backlog a whole bunch, can you point me to the start of the section I need to think about? | 16:53 | |
masak | pmurias: I *think* I'd expect $*OUT and $*ERR to be tied to console.log (or the moral equivalent on browsers that don't have it). | ||
16:53
ajr_ left
|
|||
masak | pmurias: or, flipping the question around, I'd expect to have some way to reach console.log, and if I didn't know what it was, `say` would probably be the first thing I tried. | 16:54 | |
TimToady is trying to think of a better term than "pseudostatement" under the monadic view: sublist, semistate, statelet, semithunk, clause, action, generator, computation, effect, statement, oh wait... | |||
timotimo | japhb: lizmat wanted more precise data for the first benchmarks, zero and hello | 16:55 | |
TimToady | maybe we should call the semiquavers :) | ||
*them | 16:56 | ||
and a lololol would have hemisemidemiquavers | |||
16:57
klaas-janstol joined
|
|||
raydiak | good morning, #perl6 o/ | 16:58 | |
japhb | timotimo: Yes, I prefer bot ping, since I can't keep up with the backlog for this channel *and* write Perl 6 code. Since it's one or the other, actually writing code wins. :-) | ||
timotimo | japhb: OK :) | ||
jnthn | decision++ | ||
TimToady | we can't have that sort of productivity around here! :P | ||
japhb | lizmat: I had been trying to maintain the invariant that higher on the graphs is always better. If I go with time instead of write, | 16:59 | |
*rate | |||
then lower is better, which seemed possibly confusing. | |||
16:59
chenryn joined
|
|||
timotimo | btw: t.h8.lv/p6bench/2014-08-16-longterm...-moar.html | 16:59 | |
TimToady | invert the graph? | ||
japhb | That said, if all bar charts go one way, and all plots the other, at least that would be a rule I could state plainly. Still seems off though. | 17:00 | |
TimToady: Yeah, I considered that thought. | |||
timotimo | phoronix always has a little triangle pointing in the direction that is "better" | ||
and i seem to recall there is also text saying what the graph has and which direction is better | |||
TimToady | doubtless they have a patent on it :) | 17:01 | |
japhb | timotimo: re: the longterm plots, it is *so* nice to see how much faster 2014.07 is. Too bad that's almost entirely on microbenchmarks. :-( | 17:02 | |
timotimo | yes | 17:03 | |
japhb | TimToady: Is phoronix known for that sort of thing? | ||
TimToady has no idea | |||
timotimo | don't think so | 17:04 | |
TimToady | it was more of a comment on the sad state of patent law | ||
japhb | true enough | ||
17:05
jnap joined
|
|||
TimToady | I think the microbenchmarks tend to stay in cache, whereas real code doesn't (yet) | 17:05 | |
17:06
guru joined,
guru is now known as Guest34431
|
|||
TimToady | a large part of the list refactor is going to be to figure out how much we can be eager by default | 17:06 | |
timotimo | oh? huh. | ||
17:06
Guest34431 is now known as ajr_
|
|||
TimToady | or at least batchy | 17:08 | |
17:09
denis_boyun left
|
|||
pmurias | japhb: are any of the plot not a microbenchmark? | 17:10 | |
TimToady | the rc-* ones are larger | 17:11 | |
interesting that the only place we've had a bit of slowdown is in native 2d indices | 17:15 | ||
well, and maybe a hair on 9-billion-names | |||
japhb | TimToady: I believe the loop correctness fixes came after the 2014.07 release, so having nom on there as well would show any regressions since then. | 17:28 | |
pmurias: Yeah, TimToady is right. Also json parsing. | 17:29 | ||
pmurias: We really need more benchmarks. If you'd like to add some, I'd be happy to give you a commit bit. :-) | 17:30 | ||
17:30
jnap left
|
|||
timotimo | are there benchmarks we can throw out at some point? %) | 17:30 | |
japhb | timotimo: Maybe. For now, I'm still seeing optimization work benefitting from the microbenchmarks | 17:31 | |
timotimo | OK :) | ||
japhb | (I do actually try to pay attention to how it's getting used. :-) | 17:32 | |
pmurias | japhb: currently I'm working on getting my rewriten nqp-js to run the existing ones | 17:33 | |
timotimo | :) | 17:34 | |
17:35
anaeem1 joined
17:36
zakharyas joined
17:37
anaeem1 left
17:38
thou joined
17:39
anaeem1 joined
|
|||
japhb | pmurias: Awesome. :-) | 17:41 | |
timotimo | huh, nqp-js is getting a rewrite? | ||
japhb | timotimo: Something for your next p6weekly. :-) | 17:42 | |
17:42
anaeem1 left,
thou left
|
|||
FROGGS[mobile] | timotimo: btw, the Perl 6 version of v5 passes nearly 10% of the tests the nqp version passes (about 8000) | 17:44 | |
steadily growing | |||
17:45
chenryn left
|
|||
timotimo | 10% of how many %? :) | 17:45 | |
that doesn't sound so encouraging :D | |||
FROGGS[mobile] | well, now there are only minor issues... | ||
17:46
cooper- joined
|
|||
FROGGS[mobile] | like a nqp::p6bool here and a .list there... | 17:46 | |
porting EXPR really was pain, and that is past :o) | 17:47 | ||
timotimo | OK :) | ||
pmurias | timotimo: I'm making nqp-js emit much better code, emit sourcemaps, removing old hacks (and adding new ones ;) | 17:48 | |
dalek | ast/S26-WHY: a02da85 | (Rob Hoelz)++ | S26-documentation/why-trailing.t: Add a multi-line decl test for trailing docs |
17:51 | |
timotimo | OK :) | ||
pmurias | for example the old code was ignoring $*WANT and just casting all the types at runtime | 17:54 | |
17:58
rindolf left
17:59
anaeem1_ joined
|
|||
hoelzro | there's no specification for getting the candidates of a role group, is there? | 17:59 | |
ex. role Boxer {} ; Boxer.HOW # ParametricRoleGroupHOW | |||
but I would like the ParametricRoleHOW that represents Boxer[] | 18:00 | ||
jnthn | hoelzro: You can introspect the group iirc | 18:10 | |
hmm | 18:11 | ||
BenGoldberg | m: (role Boxer {}).HOW.say; | ||
camelia | rakudo-moar d0bf8a: OUTPUT«Perl6::Metamodel::ParametricRoleHOW.new()» | ||
jnthn | no, we're missing an introspection method for that. D'oh. | ||
hoelzro | yeah, I didn't see one =/ | 18:12 | |
I'll mark the role WHY tests as TODO, then | |||
jnthn | Well, we can add one easy enough | ||
hoelzro | true | 18:13 | |
jnthn | method possibilities($obj) { nqp::clone(@!possibilities) } | ||
May want a nicer name | |||
hoelzro | I'm trying to avoid other changes to Rakudo for the S26 stuff | ||
jnthn | .oO( groupies :) ) |
||
hoelzro | heh | ||
trying to come up with something that I can merge in | |||
jnthn | Well, then put the above in master and merge :) | ||
hoelzro | heh | ||
18:14
anaeem1_ left
|
|||
hoelzro | when's 2014.08 supposed to go out? | 18:14 | |
jnthn | I think it should be there anyway. | ||
Thu | |||
hoelzro | heh | ||
one day too late! | |||
I'm going to a project night on Thursday my TZ | |||
and I was hoping to finish the S26 work then and there | |||
hoelzro knocks on wood | |||
jnthn: what about candidates? (ala multis) | 18:15 | ||
jnthn | hoelzro: That could work well given that's how it works anyway | ||
18:16
anaeem1 joined
|
|||
jnthn | Should probably rename other bits in there to candidates too | 18:16 | |
Though if you don't want to take that detour just add it as candidates and I can pick off the rename at some point | |||
hoelzro | I could just do it right now =) | 18:17 | |
on nom | |||
I'll run a quick spectest with current nom, so I can see if I break anything =) | |||
pmurias | jnthn: :$want can be undefined in the as_* methods in the QAST::Compiler | 18:18 | |
jnthn: when should it be the case? | |||
jnthn | pmurias: When the calling thing doesn't have a context that it'd prefer | 18:19 | |
pmurias: For example, if ... { }. The ... could be any kind of value; the code we generate will handle what we get, but we don't mind which it is. | |||
pmurias | are there a lot of such places? I think I might attempt to make :$want mandatory in the javascript QAST::Compiler | 18:21 | |
18:22
anaeem1 left
|
|||
pmurias | for the if ... {} I have a special boolean thing context | 18:22 | |
jnthn | Heh, I'd been pondering a boolean context thingy in the Moar one too :) | 18:23 | |
I'm not all that sure how often it is, but I suspect that isn't the only case. | |||
pmurias | I use the boolean context so that I can have if (foo == 123) {...} instead of if ((foo == 123) ? 1 : 0) {...} | ||
18:23
kaare__ joined
|
|||
jnthn | *nod* | 18:23 | |
Yeah, it makes sense. | |||
I want it for p6bool elimination... | 18:24 | ||
I guess the easiest way to see how common it is, would just be to instrument QASTCompilerMAST and see what kinds of nodes show up when it's undefined | |||
18:26
kaare_ left
|
|||
dalek | p-js: 828a4c5 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: More progress towards running test 59. Handle QAST::Var's with positional scopes, implement nqp::elems, nqp::split. Make the use of :$want in as_js mandatory. |
18:28 | |
18:34
kaare__ left
18:35
molaf_ joined
|
|||
dalek | p-js: 55bdb9a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Implement nqp::ceil_n, nqp::floor_n, nqp::abs_n. |
18:35 | |
hoelzro | $multi.candidates isn't spec'd, is it? | 18:37 | |
I'm just wondering if I should add the new ParametricRoleGroupHOW.candidates method to the spec | |||
18:38
molaf left
18:39
fling left
|
|||
hoelzro | grr | 18:41 | |
it doesn't seem like this will be as easy as I'd hoped | |||
No such method 'candidates' for invocant of type 'Perl6::Metamodel::ClassHOW' | |||
hoelzro forgot about the punning that happens | |||
I had this problem with WHY too | 18:42 | ||
and I was wondering if WHERE should avoid the pun too | |||
I thought about adding WHY/WHERE to the RolePunning exceptions method, but I'm not sure if that would be a good idea | 18:47 | ||
HOW should probably avoid the pun | |||
actually, all of those kooky methods should | 18:48 | ||
</braindump> | |||
shower & | |||
FROGGS | perl6-m -Ilib -e 'use v5; $a = 42; sub foo { say $a; my $a = 21; say $a }; foo()' | 18:50 | |
42 | |||
21 | |||
\o/ | |||
who wants some scary Perl 5? :D | |||
BenGoldberg | Sure, why not? | 18:51 | |
dalek | p-js: cf3f7f1 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Remove debugging statements. |
19:00 | |
p-js: 1ea1882 | (Pawel Murias)++ | src/vm/js/ (2 files): Implement nqp::islist and boolification of list. |
|||
psch | scary Perl 5 \o/ FROGGS++ | 19:01 | |
19:09
pmurias left
|
|||
hoelzro | how does Boxer.HOW.candidates(Boxer) differ from Boxer.^candidates? | 19:10 | |
19:11
Sqirrel left
|
|||
timotimo | doesn't | 19:11 | |
$foo.^foobar is short for $foo.HOW.foobar($foo) | 19:12 | ||
19:17
Colby` joined
19:18
darutoko left
|
|||
hoelzro | hmm | 19:18 | |
well, the former works for my new method | |||
but the latter doesn't o_O | |||
timotimo | does your method take the instance as first argument? | 19:19 | |
hoelzro | mhmm | ||
19:19
Pleiades` left,
Colby` is now known as Pleiades`
19:26
thou joined
19:32
thou left
19:38
iarna joined
19:48
aindilis left,
huf left,
Pleiades` left,
ggoebel1111119 left,
ventica2 left,
spider-mario left,
rjbs left,
clkaoud left,
revdiablo left,
pmichaud left,
kst left,
stux|RC left,
Gothmog_ left,
broquaint left,
eiro left,
kurahaupo left,
_sri left,
Celelibi left,
smash left,
ribasushi left,
brother left,
ggherdov left,
sivoais left,
salv0 left,
krunen left,
takesako left,
vike left,
j4jackj left,
FROGGS[mobile] left,
Akagi201 left,
yeltzooo left,
clkao left,
mtj left,
mtj_- left,
oetiker left,
Alula_ left,
noganex left,
immortal left,
japhb left,
haroldwu left,
ponbiki left,
amkrankruleuen left,
djanatyn left,
ilbot3 left,
DarthGandalf left,
synopsebot left,
pecastro left,
coffeeyy_ left,
Woodi left,
rhr left,
bcode left,
Juerd left,
Tene left,
dylanwh left,
lestrrat left,
cotto left,
Exodist left,
lee_ left,
molaf_ left,
zakharyas left,
akaseki left,
dalek left,
ivanshmakov| left,
Psyche^ left,
cooper- left,
rurban1 left,
timotimo left,
tinyToday left,
en left,
PZt left,
mls left,
Bucciarati left,
pochi left,
rurban left,
betterworld left,
PerlJam left,
xfix left,
ivan`` left,
yogan left,
moritz left,
camelia left,
cxreg left,
sorear left,
tokuhirom left,
pnu left,
ajr_ left,
ren1us left,
lizmat left,
simcop2387 left,
arnsholt left,
mhasch left,
Ulti left,
carlin left,
tadzik left,
[Coke] left,
epochbell left,
apejens left,
raydiak left,
Util left,
iarna left,
cibs left,
[Sno] left,
Vlavv left,
Khisanth left,
woolfy left,
sjohnson left,
bjz left,
psch left,
integral_ left,
isacloud____ left,
flussence left,
yakudzo left,
kshannon left,
erdic left,
xiaomiao left,
jlaire left,
felher left,
charsbar__ left,
Maddingue left,
nebuchadnezzar left,
BinGOs left,
mst left,
masak left,
geekosaur left,
Grrrr left,
nwc10 left,
jtpalmer_ left,
diakopter left,
tony-o left,
jnthn left,
hoelzro left,
ChoHag left,
gfldex left,
itz left,
PotatoGim left,
btyler_ left,
SHODAN left,
mathw left,
[particle]1 left,
sftp left,
avar left,
eMBee left,
wtw left,
Possum left,
labster left,
hugme left,
yoleaux left,
jercos left,
cono left,
c1sung left,
sunnavy left,
bloonix_ left,
go|dfish left,
nickpatc1 left,
Rounin left,
atta left,
felipe left,
Timbus left,
risou left,
BenGoldberg left,
Rotwang left,
xragnar left,
BooK left,
eternaleye left,
lue left,
baest left,
klaas-janstol left,
telex left,
mr-foobar left,
xinming left,
colomon left,
MilkmanDan left,
daxim left,
sjn left,
muraiki left,
robinsmidsrod left,
ingy left,
retupmoca left
19:51
ClarusCogitatio_ joined,
ventica joined,
iarna joined,
Pleiades` joined,
molaf_ joined,
LAA80NI joined,
zakharyas joined,
ajr_ joined,
j4jackj joined,
rurban1 joined,
akaseki joined,
ChoHag joined,
ggoebel1111119 joined,
bjz joined,
timotimo joined,
kurahaupo joined,
ventica2 joined,
spider-mario joined,
FROGGS[mobile] joined,
tinyToday joined,
gfldex joined,
ren1us joined,
noganex joined,
dalek joined,
ivanshmakov| joined,
Psyche^ joined,
en joined,
aindilis joined,
[Sno] joined,
itz joined,
_sri joined,
PotatoGim joined,
Akagi201 joined,
Alula_ joined,
psch joined,
immortal joined,
huf joined,
PZt joined,
amkrankruleuen joined,
lizmat joined,
simcop2387 joined,
Celelibi joined,
smash joined,
djanatyn joined,
btyler_ joined,
japhb joined,
ilbot3 joined,
asimov.freenode.net sets mode: +v dalek,
DarthGandalf joined,
rjbs joined,
ribasushi joined,
brother joined,
SHODAN joined,
integral_ joined,
isacloud____ joined,
yeltzooo joined,
Vlavv joined,
ggherdov joined,
flussence joined,
mathw joined,
mls joined,
yakudzo joined,
kshannon joined,
synopsebot joined,
pecastro joined,
coffeeyy_ joined,
[particle]1 joined,
sftp joined,
sivoais joined,
salv0 joined,
Khisanth joined,
Bucciarati joined,
pochi joined,
rurban joined,
clkaoud joined,
clkao joined,
revdiablo joined,
pmichaud joined,
Woodi joined,
cono joined,
woolfy joined,
avar joined,
eMBee joined,
cibs joined,
wtw joined,
haroldwu joined,
Possum joined,
kst joined,
betterworld joined,
erdic joined,
mtj joined,
mtj_- joined,
stux|RC joined,
rhr joined,
arnsholt joined,
Gothmog_ joined,
broquaint joined,
PerlJam joined,
labster joined,
oetiker joined,
mhasch joined,
hugme joined,
krunen joined,
yoleaux joined,
Ulti joined,
xfix joined,
ivan`` joined,
eiro joined,
ponbiki joined,
jercos joined,
takesako joined,
c1sung joined,
carlin joined,
bcode joined,
tadzik joined,
xiaomiao joined,
sunnavy joined,
jlaire joined,
yogan joined,
vike joined,
felher joined,
[Coke] joined,
epochbell joined,
bloonix_ joined,
go|dfish joined,
charsbar__ joined,
nickpatc1 joined,
Maddingue joined,
apejens joined,
Util joined,
Rounin joined,
atta joined,
sjohnson joined,
raydiak joined,
Juerd joined,
lee_ joined,
Exodist joined,
cotto joined,
lestrrat joined,
dylanwh joined,
Tene joined,
felipe joined,
asimov.freenode.net sets mode: +vv hugme yoleaux,
Timbus joined,
risou joined,
nebuchadnezzar joined,
BinGOs joined,
masak joined,
mst joined,
geekosaur joined,
Grrrr joined,
diakopter joined,
nwc10 joined,
jtpalmer_ joined,
tony-o joined,
jnthn joined,
hoelzro joined,
moritz joined,
camelia joined,
cxreg joined,
sorear joined,
tokuhirom joined,
pnu joined,
asimov.freenode.net sets mode: +v camelia,
LAA80NI joined,
nhayashi left
|
|||
hoelzro | jnthn: well, that | 19:51 | |
timotimo | japhb: are you still attentive? | ||
19:51
nhayashi joined
|
|||
hoelzro | along with WHY and WHERE | 19:51 | |
I find it odd that they pun | |||
timotimo | .tell japhb it'd be kinda cool to have a way to tell perl6-bench to run all tests exactly once at a somewhat high workload number, so that i can collect a huge jit log or spesh logs or something | 19:52 | |
yoleaux | timotimo: I'll pass your message to japhb. | ||
19:52
ventica2 left,
BenGoldberg joined,
Rotwang joined,
xragnar joined,
BooK joined,
eternaleye joined,
lue joined,
baest joined
19:53
klaas-janstol joined,
mr-foobar joined,
xinming joined,
colomon joined,
MilkmanDan joined,
daxim joined,
sjn joined,
muraiki joined,
robinsmidsrod joined,
ingy joined,
retupmoca joined
|
|||
japhb | timotimo: I'm here now | 19:53 | |
yoleaux | 19:52Z <timotimo> japhb: it'd be kinda cool to have a way to tell perl6-bench to run all tests exactly once at a somewhat high workload number, so that i can collect a huge jit log or spesh logs or something | ||
japhb | Oh now that's an interesting idea. | 19:54 | |
timotimo | i'm using --runs=1 now, but that's not good enough, the log file is closing in on 2gb :) | ||
19:54
telex joined
|
|||
timotimo | and most of it will just be duplicated data | 19:54 | |
japhb | Add a github request for that. (I still haven't had the tuits to clean up the TODO, as I'm currently deep in something else.) | ||
nodnod | 19:55 | ||
psch | m: sub foo($a, $) { }; say &foo.signature.params>>.name # uhh... | 19:57 | |
camelia | rakudo-moar d0bf8a: OUTPUT«(signal )» | ||
jnthn | ugh | 19:58 | |
Looks like some unhandled null | |||
psch | m: sub foo($a, $b) { }; say &foo.signature.params>>.name | ||
camelia | rakudo-moar d0bf8a: OUTPUT«$a $b» | ||
19:59
ClarusCogitatio_ left
|
|||
psch | jnthn: that's linked to #69492 as well i think | 19:59 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=69492 | ||
psch | or rather, a consequence of it | ||
not the issue directly, but the name of any anon param breaks | |||
20:00
rurban1 left
|
|||
BenGoldberg | Speaking of anon-things breaking: | 20:00 | |
r: my $f = class { }; $f.^add_fallback(-> $obj, $name { False },-> $obj, $name { {"doesn't matter"} }); $f.new.bar; | 20:01 | ||
20:01
ClarusCogitatio joined
|
|||
camelia | rakudo-moar d0bf8a: OUTPUT«Cannot invoke this object (REPR: Null, cs = 0) in block at /tmp/tmpfile:1» | 20:01 | |
..rakudo-{parrot,jvm} d0bf8a: OUTPUT«No such method 'bar' for invocant of type '<anon>' in block at /tmp/tmpfile:1» | |||
timotimo | japhb: is there a better trick to getting the number of runs per test down? | 20:02 | |
--enough-time=0.1? | |||
.o(though, is that enough to kick off spesh and the jit | 20:06 | ||
20:07
araujo joined
20:13
klaas-janstol left
|
|||
psch sleeps & | 20:13 | ||
FROGGS | gnight psch | 20:14 | |
20:15
cibs left,
rindolf joined,
j4jackj left
20:16
j4jackj joined
|
|||
FROGGS | r: my $f = class { }; $f.^add_fallback(-> $obj, $name { True },-> $obj, $name { -> $ { say "doesn't matter" } }); $f.new.bar; | 20:17 | |
camelia | rakudo-{parrot,moar} d0bf8a: OUTPUT«doesn't matter» | ||
..rakudo-jvm d0bf8a: OUTPUT«No such method 'bar' for invocant of type '<anon>' in block at /tmp/tmpfile:1» | |||
timotimo | www.reddit.com/r/perl6/comments/2co...at/cjs4rpv - links to my benchmarks | ||
20:17
cibs joined
|
|||
jnthn | FROGGS: Got a fix for that in Moar locally | 20:20 | |
Also for the psch segv | 20:21 | ||
FROGGS | hmmmm, that sounds like I should retest JSON::RPC after your patches... | 20:22 | |
20:29
haroldwu left
|
|||
jnthn | bah, I forgot a return, which made weird bugs, so retesting... | 20:29 | |
20:32
pmurias joined
|
|||
dalek | kudo/nom: 95da918 | jnthn++ | src/core/Parameter.pm: Missing null check on param name introspection. |
20:35 | |
20:41
haroldwu joined
|
|||
pmurias | if I create a branch localy, how do I push it to my github repo? | 20:47 | |
FROGGS | pmurias: does origin point to your repo? | 20:48 | |
if not: | 20:49 | ||
git remote add pmurias <url to your repo> | |||
git push pmurias <branch name> | 20:50 | ||
dalek | p-js/gh-pages: 122e491 | (Pawel Murias)++ | index.html: Initial homepage. |
20:51 | |
20:54
Possum left
20:55
ajr_ left
|
|||
dalek | p-js/gh-pages: 9ff6657 | (Pawel Murias)++ | / (2 files): Put an interactive example on the homepage. |
20:56 | |
pmurias | do we have anything to turn nqp code into syntax highlighted html? | 20:57 | |
diakopter | nqp-js? | ||
(kidding.) | |||
pmurias.github.io/nqp-js/ <- is this right? | 20:58 | ||
dalek | p-js/gh-pages: 0657204 | (Pawel Murias)++ | / (2 files): Link to the nqp code for the example. |
||
20:59
Possum joined
|
|||
dalek | p-js/gh-pages: ad5457f | (Pawel Murias)++ | index.html: Put the link to the example code in a better place. |
21:01 | |
pmurias | diakopter: yes that's the correct url | 21:02 | |
diakopter: it should allow you to draw black and white circles | |||
FROGGS | pmurias: it works on my box | 21:03 | |
(firefox) | 21:04 | ||
21:07
BenGoldberg left
|
|||
pmurias | it's not really a proper homepages yet, just a way to share a simple example | 21:11 | |
diakopter: you were asking what nqp-js is or if that page was working correctly? | 21:13 | ||
FROGGS | I think he made a joke that nqp-js could be used for syntax highlighting :o) | ||
21:14
thou joined
|
|||
japhb | timotimo: Saw your highlight. Are you asking to see fewer steps in the scaling (so fewer total runs)? | 21:15 | |
jnthn | pmurias: ooh, cool :) | 21:17 | |
timotimo | japhb: no, just have fewer executions of the perl6-m binary | ||
japhb has been considering an option to bump the starting scale up a few steps, for machines that are fast enough that the first few runs are always going to be in the noise | |||
timotimo | because each will generate pretty much the same jit log for start-up | ||
japhb | Well, we can reduce the number of runs per scale | 21:18 | |
(From 2 to 1, IIRC) | |||
21:19
thou left
|
|||
timotimo | right, i set --runs=1 | 21:19 | |
but it'd also be nice to have a run that starts at a higher scale, so that the "body" of the benchmark actually gets considered hot enough for jitting | |||
otherwise we'll just see jit stuff for startup, but none for the actual benchmark in question | |||
japhb | Right, that's what I was talking about a couple minutes ago. | 21:20 | |
timotimo | oh | 21:21 | |
21:22
Mouq joined
|
|||
japhb | I was basically thinking you could say your system was, say, 10x faster than the "average" computer, you could say that, and it would alter the starting scale appropriately, which would cut off all the runs that aren't long enough to have measurable post-JIT time. | 21:22 | |
timotimo | pmurias: i have to tell my chrome to "load unsafe script" to make that work | 21:23 | |
masak | could that be a same-origin policy thing? | 21:28 | |
timotimo | maybe | ||
pmurias | does chrome say anything else? | 21:32 | |
21:33
Possum left
|
|||
dalek | p-js/gh-pages: 35025bc | (Pawel Murias)++ | index.html: Remove http:// prefix from cdn url. |
21:34 | |
pmurias | timotimo: does the problem persist? | 21:35 | |
timotimo | now it works just fine | 21:37 | |
21:47
Possum joined
21:49
rurban1 joined
21:56
mr-foobar left,
zakharyas left,
mr-foobar joined
22:02
rurban2 joined
|
|||
dalek | ast: 1d0923d | (Rob Hoelz)++ | S14-roles/parameterized-basic.t: Add test for new candidates method on ParametricRoleGroupHOW |
22:03 | |
kudo/nom: 198f51b | (Rob Hoelz)++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp: Rename possibilities to candidates for role group candidates |
22:04 | ||
kudo/nom: 9e475e2 | (Rob Hoelz)++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp: Add candidates method to ParametricRoleGroupHOW |
|||
22:05
rurban1 left
22:10
rurban1 joined
22:14
rurban2 left
22:22
rurban2 joined,
rurban2 left
22:26
rurban1 left
|
|||
hoelzro | I'm guessing the reason that the role is punned is because dispatch:<.^> is a method call? | 22:28 | |
jnthn | Yes | 22:29 | |
22:31
Psyche^_ joined
22:35
Psyche^ left,
rurban1 joined
22:49
rindolf left
22:53
pmurias left
22:54
rurban1 left
|
|||
j4jackj | "punned" | 22:55 | |
i didn't know this was a thing | |||
o.o | |||
masak | for some reason, here in Perl 6 land, "punned" almost always means "the role pretends it's a class". | ||
out in the wider world, it just means "this type pretends to be that type". | |||
e.g. type punning is what makes `if @things { ... }` not complain that it got an array, not a bool. | 22:57 | ||
jnthn | The role and the class that composes exactly that role and inherits from Any *are* different types. | 22:58 | |
22:58
ventica2 joined
22:59
ventica left
|
|||
masak | not contesting that, at all. | 22:59 | |
just saying we've taken to using the term in a very restricted context. | |||
22:59
spider-mario left
|
|||
jnthn | True; I guess 'cus we don't tend to think of the other case as anything unusual :) | 23:00 | |
masak | I find I use role->class punning in exactly one use case: when I want both the parametricity of roles, and instantiation of classes. | 23:01 | |
if classes were parametric, or if roles could be instantiated, I'd happily use that ;) | |||
23:02
thou joined
|
|||
masak | 'night, #perl6 | 23:04 | |
23:07
thou left
23:11
Akagi201_ joined,
Akagi201 left
|
|||
japhb | Using r-j, I'm finding something a bit wierd. I have a file Clusters.pm that has nothing but static lists (constant @LIST_A is export = ...) of server clusters in it, some of which are derived by grep/map from earlier lists (constant @LIST_B is export = @LIST_A.grep({ .type ~~ BAR}) ) | 23:18 | |
If I 'use Clusters;' from my main app, and try to search one of the later lists ( @LIST_B.first({ ... }) ), I get a crashy crash of various sorts. If at the end of Cluster.pm, I 'say @LIST_B.perl', then (aside from the noise at app startup), it works. | 23:19 | ||
So ... I'm guessing a serialization and/or eagerness problem, but I'm not sure where to look from here. | 23:20 | ||
jnthn | japhb: On r-j only? | ||
Yes, I'd guess one of those two also. | |||
japhb | That's the only one I've tried, I was doing some heavy threading work. | ||
Want me to try with r-m? | |||
jnthn | Well, I'm guessing it goes boom early-ish... | 23:21 | |
Does putting .eager on your constant decls also help? | |||
TimToady | does = eager grep help? | ||
jnthn | I know that our list internals don't handle two threads trying to reify very gracefully. | 23:22 | |
japhb | The architecture is that MAIN() starts a couple threads that go off and spawn a bunch more tasks that do the actual work. The crash is usually after the main threads have been started, while the subtasks are trying to do their work. | ||
jnthn | I've not done a lot about it 'cus dealing with that was one of the pmichaud++ list refactor jobs anyway; I remember talking about that a bit. | ||
japhb | OK, I'll but eagers in the Clusters.pm definitions | ||
Mouq | m: my @a; @a[2;3] = 42; say @a.perl # Doesn't autoviv :| | 23:23 | |
camelia | rakudo-moar 9e475e: OUTPUT«Array.new()» | ||
japhb | Yeah, works perfectly if Clusters.pm contains 'constant @LIST_B is export = eager @LIST_A.grep: ...' | 23:24 | |
I thought list assignment (as opposed to bind) was supposed to be eager? Or is constant definition always binding? | 23:25 | ||
TimToady | Mouq: I'm trying to figure out where [;;] currently sinks the first n-1 entries from a semilist, and failing... | 23:26 | |
jnthn | Always binding at the moment. | ||
japhb | Is that spec, or just implementation? | ||
TimToady | it's spec | ||
japhb | Oh, hmmm. I'll have to keep that in mind. | ||
TimToady | pseudoassignment depends on the declarator | ||
23:26
kst left
|
|||
TimToady | pseudoassignment to 'has' and 'state' have their own idiosyncracies | 23:27 | |
Mouq | TimToady: does this help? github.com/rakudo/rakudo/commit/1d...2b820d2fd7 | ||
japhb | TimToady: So is the intent that I should do 'constant @FOO = eager @BAR.grep' or is that where I should be changing to e.g. 'our @FOO = @BAR.grep'? | 23:28 | |
TimToady | I saw that part, but that should just leave the semilist as a semilist; I don't see where the sink annotations happen | ||
m: [42; 43] | |||
camelia | rakudo-moar 9e475e: OUTPUT«WARNINGS:Useless use of constant integer 42 in sink context (line 1)» | ||
TimToady | but that's parsed with semilist, and doesn't do the processing that statementlist does | 23:29 | |
maybe I can trace it back from the warning end | |||
jnthn | I believe the warning is spat out in src/Perl6/Optimizer | 23:30 | |
Mouq | github.com/rakudo/rakudo/blob/nom/....nqp#L1155 | 23:31 | |
TimToady | Mouq: I dunno if you read the backlog, but I'm definitely intending to shove [;;] and (;;) in the direction of lol | ||
and trying to decide if we need a deprecation first | |||
Mouq | TimToady: zip(@a;@b;@c) too? | ||
TimToady | hopefully we get that too | 23:32 | |
though named args are weird | |||
Mouq | ew... | ||
TimToady | zip(@a;@b;@c) :carefully | ||
I guess that would work... | |||
Mouq | maybe they can float to the top somehow? | 23:33 | |
TimToady | or just steal them from the sublists | ||
23:34
kst joined
|
|||
TimToady now imagines an S operator that sinks its self side and returns its right | 23:35 | ||
as a variant on the S metaoperator | |||
but then I notice that semicolon also begins with s | 23:36 | ||
which is a weird coincidence | |||
jnthn | Ain't that what ; does in semilists now? ;) | ||
TimToady | yes, be we wanna steal it | ||
*but | |||
so S would a list infix precedence ; or so :) | 23:37 | ||
or we could use $ and confuse the Haskellers completely :) | |||
jnthn | I've no idea how this would look, but if we're pondering an operator that does what ; does today, maybe it's the other thing that wants another syntax. But ; is the natural thing for multi-dim, so...hmm :) | ||
TimToady | yeah, ; is the right sze | ||
*i | |||
I looked for something else, but nothing looked decent | 23:38 | ||
23:40
fling joined
|
|||
TimToady | and sunk statements are so non-FP in the first place... | 23:40 | |
if we added S, I'd just tell everyone it's the C comma operator, I suppose | 23:41 | ||
arguably it should be C then... | 23:42 | ||
but then the fortran programmers will expect a comment | |||
and we already have an S metaop specced for sequential, if NYI | 23:43 | ||
it would just default to C comma operator instead of the Perl comma operator | |||
23:44
silug joined
|
|||
TimToady | Mouq: you don't happen to recall what blew up when you tried to LoLify semilist, do you? | 23:46 | |
Mouq | TimToady: No, sorry. Is it proving to be harder than a drop-in change? | 23:47 | |
23:49
BenGoldberg joined
|
|||
TimToady | haven't tried yet, still scoping it out to try to understand | 23:50 | |
which is hard for a geezer like me :) | |||
Not all of my stupidity is feigned. :) | 23:51 | ||
Mouq | TimToady: Surrre ;) I'm too dumb myself for scoping things out -- I just bang my head against it until it works. Like this pod-table branch which, it seems, requires a lot of head-banging | 23:53 | |
TimToady | yes, being stubborn helps compensate :) | 23:54 | |
Mouq | m: sub infix:<,,> (**@l) is looser(&[,]) { lol |@l.map({$_ ~~ LoL ?? .flat !! $_}) }; say (1 ,, 2 ,, 3, 4).perl | 23:56 | |
camelia | rakudo-moar 9e475e: OUTPUT«lol(1, 2, $(3, 4))» | ||
23:57
avuserow left
|
|||
jnthn | m: sub infix:<,,> (**@l) is looser(&[,]) is assoc('list') { lol |@l.map({$_ ~~ LoL?? .flat !! $_}) }; say (1 ,, 2 ,, 3, 4).perl | 23:57 | |
camelia | rakudo-moar 9e475e: OUTPUT«lol(1, 2, $(3, 4))» | ||
23:57
iarna left
|
|||
jnthn | m: sub infix:<,,> (**@l) is looser(&[,]) is assoc('list') { @l }; say (1 ,, 2 ,, 3, 4).perl | 23:58 | |
camelia | rakudo-moar 9e475e: OUTPUT«lol(1, 2, $(3, 4))» | ||
Mouq | jnthn++ | ||
23:58
iarna joined
|
|||
lue | I like the look of the double comma, in a way. | 23:59 |