»ö« 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:12 Psyche^ joined
timotimo i may have been losing the last line due to not manually closing the file handler 00:15
00:17 Psyche^_ left
timotimo should i have to declare my own $/ locally in order for parallel matchings to not explode? 00:27
bleeeeeeh 00:28
nominal type check failed for parameter null? really? :(
jnthn: i'm getting some weirdness when doing m/.../ in multiple parallelly executed blocks, even if i manually define a $/, or if i $foo ~~ m/.../ -> $match instead 00:32
dalek ecs: 135ce6e | larry++ | S17-concurrency.pod:
to iterate a channel, just use list context, duh
timotimo actually, i have two different matchings going on in there, maybe they overlap in a bad way? 00:34
finely locking around the ~~ invocations with regexes, i can seem to get around the exceptions 00:37
and get each of my 4 cores to 90% usage
00:39 jeff_s1 joined 00:47 btyler left
timotimo i'm losing the last line and don't know why 00:49
maybe because it doesn't have a newline at the end?
yeah, i don't actually see any code to handle the last line if it doesn't end in a newline 00:51
i think i'll have to get some rest before i tackle this code. 00:53
00:53 BenGoldberg joined 00:56 stevan_ joined 01:04 prevost joined 01:15 nnunley joined 01:20 btyler joined 01:23 btyler left 01:36 cooper joined 01:40 davecc joined 01:41 davecc left 01:42 davecc joined, davecc left 01:48 mtk joined 01:51 jnap left 01:52 xinming_ left 01:54 xinming joined 02:02 amkrankruleuen joined, amkrankruleuen left, amkrankruleuen joined 02:07 mtk left
dalek rl6-roast-data: 1b5a5ef | coke++ | / (5 files):
today (automated commit)
02:08
ecs: 3490ccd | larry++ | S17-concurrency.pod:
missed some s/Publish/Supply/
02:11 mtk joined 02:17 tgt left 02:21 telex left 02:24 telex joined
dalek ast: 6d5ee70 | coke++ | S32-exceptions/misc.t:
Add test for RT #86880
02:37
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=86880
02:44 tgt joined 02:46 slavik joined 02:48 ssutch left 02:55 tgt left
dalek ast: 2aa5824 | coke++ | S02-types/range.t:
Add test for RT #116014
03:07
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116014
03:27 logie joined 03:28 colomon left 03:29 colomon joined 03:35 prevost left
[Coke] lizmat: here's a deprecation ticket for you to attack: rt.perl.org/Ticket/Display.html?id=114012 03:37
03:43 stevan_ left, stevan_ joined 03:51 ssutch joined
dalek ast: 0c1a416 | coke++ | S03-metaops/hyper.t:
note test that satisfies RT #74890
03:52
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=74890
lue finds the line "my $EDGE_FATE := 0;" surprisingly disturbing :) 04:09
04:17 preflex left 04:19 preflex joined, ChanServ sets mode: +v preflex 04:34 bbkr left, bbkr joined 04:38 logie left 04:42 cooper left 04:48 lowpro30 joined 04:53 lowpro30 left 04:56 davecc joined
dalek p: 53f5382 | dwarring++ | examples/rubyish/ (8 files):
rubyish tweaks
04:59
05:03 BenGoldberg left 05:08 SamuraiJack_ joined 05:19 [Sno] left 05:45 logie joined 05:49 logie left 05:51 thou left 05:54 logie joined 05:57 xinming left 05:59 xinming joined
dalek p: 75a03f2 | dwarring++ | examples/rubyish/examples-rubyish/fractal-tree.rbi:
fixed rubyish fractal example
06:10
06:13 ssutch left 06:15 logie left 06:19 denis_boyun joined 06:27 kaleem joined, [Sno] joined 06:28 denis_boyun left, daxim left, mls left, perigrin left 06:30 dmol joined 06:32 sftp left, sftp joined 06:44 nnunley left 07:21 brrt joined 07:22 logie joined 07:24 FROGGS joined 07:27 logie left 07:32 SHODAN left 07:35 ssutch joined 07:45 iSlug joined 08:09 zakharyas joined 08:34 frdmn left 08:40 retupmoc1 joined, b^_^d joined, genehack joined 08:41 smash_ joined, sivoais_ joined 08:44 kurahaupo joined, daxim joined, mls joined, perigrin joined, BinGOs joined, gfldex joined 08:46 telex left, c1sung_ left, LordVorp left, d^_^b left, p5eval left, smash left, odoacre_ left, Khisanth left, genehack_ left, bakedb left, revdiablo left, sivoais left, GlitchMr left, retupmoca left, odoacre_ joined 08:47 telex joined, c1sung_ joined, LordVorp joined, p5eval joined, bakedb joined, revdiablo joined, GlitchMr joined, sftp left 08:48 sftp joined 08:52 Khisanth joined 09:20 iSlug left
lizmat drops a pin 09:24
daxim 09:25
lizmat you're it 09:26
09:35 SamuraiJack_ left
timotimo :) 09:35
hoelzro ahoy #perl6 09:36
timotimo should fix some of the tests he b0rked 09:37
FROGGS o/
09:37 dakkar joined
moritz \o 09:43
09:55 ssutch left, SamuraiJack joined 09:58 baest joined
timotimo has a prototype fix for lines() working on no-end-of-line-at-end files 10:00
IO::Async::File.lines to be precise
10:10 iSlug joined
nwc10 good UGT, #perl6 10:11
who is it? (in the sense of doing the next release)
which I think is next Thursday for the compiler
timotimo i thought it was going to be moritz
yes, 6 days
there is no function to rename/move a file? 10:14
moritz isn't masak++ traditionally doing the November release? 10:17
ah no, lizmat++ does, according to docs/release_guide.pod
I'll just do the star release 10:18
timotimo oh, are you the star releaser then?
good to know
hoelzro have people started coming up with cool advent calendar ideas? =)
FROGGS hoelzro: still thinking
10:19 kurahaupo left, daniel-s left
timotimo jnthn: is there a good reason to keep the initial read attempt size at 32 kbytes? it would seem like with an async lines() it would be cool to get the first line ASAP, so maybe reduce the initial read amount to 1kbyte or so? 10:27
moritz timotimo: a read that's smaller than the system buffer size won't be much faster 10:28
timotimo oh, ok 10:29
10:29 iSlug left
timotimo i didn't lose the last line this time \o/ 10:30
10:32 kivutar joined
timotimo er, i was wrong. 10:33
FROGGS :/
10:38 tgt joined 10:40 pecastro_ joined
nwc10 however, system buffer size more likely to be 4K than 32K. But, careful benchmarking for the win here 10:40
moritz how big are the chunks typically in which stuff is read from disc?
nwc10 and this is subtle optimisation, so maybe not as much of a win as dropping the memory use
moritz: yes. :-)
moritz: possibly not the same as the buffer size 10:41
moritz: and will vary between everything.
10:41 pecastro left
timotimo right. i should get back to bigger memory wastages :P 10:42
huh, apparently i didn't rebuild enough of ... everything 10:43
to get my code changes to apply
moritz: can you assist me with figuring this out properly?
moritz timotimo: is that concurrent stuff? 10:44
timotimo i was editing a .java file in src/vm/jvm/runtime/org/perl6/.../io/ and doing make j-install in nqp, then in rakudo
it's makefile stuff :)
moritz ok
timotimo some missing dependency, but where?
moritz wait wait wait, what happened? 10:45
timotimo well, first i'll verify with a j-clean j-install that my changes are actually in the right place
moritz so far you have described what you did, but not what's wrong?
timotimo oh. my changes didn't cause any change in the behavior. i added some debug prints that really should have been hit
moritz did the 'make j-install' in nqp recompile anything? 10:46
timotimo jes
javac -source 1.7 -cp 3rdparty/asm/asm-4.1.jar:3rdparty/asm/asm-tree-4.1.jar:3rdparty/jline/jline-1.0.jar:3rdparty/jna/jna.jar -g -d bin src/vm/jvm/runtime/org/perl6/nqp/io/*.java src/vm/jvm/runtime/org/perl6/nqp/jast2bc/*.java src/vm/jvm/runtime/org/perl6/nqp/runtime/*.java src/vm/jvm/runtime/org/perl6/nqp/sixmodel/*.java src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/*.java src/vm/jvm/runtime/org/perl6/nqp/tools/*.java
so it was in there 10:47
moritz and then, did rakudo's make recompile anything?
(it does for me) 10:48
timotimo no, it did not
i may need to run configure.pl again?
moritz no 10:49
timotimo er ... huh?!
i did a full rebuild and my debug print is still not getting executed?
i must be doing something horribly wrong
10:50 kivutar left
moritz wut. 10:51
I just did a touch src/vm/jvm/runtime/org/perl6/nqp/io/SocketHandle.java; make j-install
and then in rakudo, 'make j-all'
and it recompiled lots of stuff
timotimo OK, it may not be build system trouble, it may be ... me missing something blindingly obvious i guess 10:52
moritz quite possible :-)
timotimo System.out.println("test") should give some output, right? 10:53
moritz one might think so :-)
timotimo no rebuilding is taking place in rakudo's j-all :( 10:56
herp...?! a debug say in the lines method of the nqp-level object gets executed, it then calls Ops.linesasync, which starts with a debug System.out.println that *does not* get called ... what?!? 10:59
11:00 FROGGS[mobile] left
timotimo okay, i added a die_s to the beginning and that doesn't get hit either :o 11:00
i'll have to do this with jdb i fear. but first i have some errands to run 11:01
11:01 brrt left 11:04 Celelibi left 11:06 Celelibi joined
timotimo it annoys me that i can't just replace "java" with "jdb" in the commandline >:( 11:06
11:25 hummeleBop1 left 11:32 Celelibi left 11:33 Celelibi joined 11:40 rindolf joined 11:59 iSlug joined 12:07 xinming left 12:08 xinming joined 12:34 kaleem left 12:35 kaleem joined 12:36 kaleem left, kaleem joined 12:40 rindolf left
lizmat moritz: it's going to be a bit difficult for me to release Rakudo on the 21st, as I'll be on route to Kopenhagen that day 12:41
so it may become the 22nd
*Kobenhavn
moritz understood Kopenhagen just fine :-) 12:42
lizmat it was the Dutch spelling, and maybe the German ?
moritz ja :-)
lizmat :-)
12:43 kaleem left, kaleem joined 12:45 kaleem left, atroxaper joined, atroxaper left 12:46 kaleem joined 12:48 pernatiy joined 12:55 kaleem left 12:56 kaleem joined 12:58 kaleem left 13:11 kaare_ joined 13:15 atroxaper joined
atroxaper Hello #perl6 13:15
jercos hi atroxaper!
atroxaper jercos: hi! 13:16
jercos How goes? :) 13:17
atroxaper Fine. Thank you. :)
lizmat moritz: so who's in charge of commit bits for the Perl6 queue on RT ? 13:19
I have at least 5 tickets I can close 13:20
13:21 logie joined
moritz lizmat: iirc [Coke] can hand them out 13:23
lizmat preflex: tell [Coke] could you please give me a "commit" bit for the Perl 6 queue on RT ? 13:24
preflex Consider it noted.
[Coke] I haven't tried to do this since the RT upgrade... 13:30
preflex [Coke]: you have 1 new message. '/msg preflex messages' to read it.
[Coke] lizmat: done. Probably. 13:31
lizmat++ !
moritz [Coke]++ # our tireless meta committer 13:32
lizmat [Coke] if fixed, then I should change status to "Resolved" right ?
colomon [Coke]++
moritz lizmat: fixed + tested => resolved 13:33
[Coke] if just fixed, change basic -> tag to add "testneeded" 13:34
when responding to tickets, be sure to enable "cc to [email@hidden.address] if you want anyone to see the message (I try to do this for every update) 13:35
... though I see the new one has a bcc to the mailing list pre checked, at least for this one ticket. nifty. 13:36
13:38 logie left
lizmat away& 13:59
[Coke] r: say "We have { 346 + 369 } tickets left for rakudo." 14:01
camelia rakudo-parrot 9f0609, rakudo-jvm 9f0609: OUTPUT«We have 715 tickets left for rakudo.␤»
[Coke] ... plus a lot more todo/skips in the test suite that don't have named tickets. 14:02
colomon BTW, the modules ADT, File::Spec, File::Spec::Case, Inline, JSON::RPC, LWP::Simple, Questhub, Sitemap::XML::Parser, and XML all broke sometime between Oct 25 and Nov 2, and are still broken, according to my smoke tester. 14:05
[Coke] there's some LHF that doesn't require much programming or perl6 knowledge. look for rakudo skips/todos that don't reference a ticket number, create a ticket, referring to the test file, copy in the failing code (run it to show how it fails), then update the file in roast to refer to the newly created ticket number.
FROGGS colomon: I'll fix Inline then... 14:06
moritz colomon++ # smoke testing
colomon colomon-- # not having time to keep better on top of things 14:09
colomon at least got a very interesting bug from a $customer overnight. 14:10
[Coke] #120480 should be an easy update. 14:14
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120480
14:17 rindolf joined 14:24 logie joined 14:32 lowpro30 joined 14:33 spider-mario joined, baest left 14:35 lowpro30_ joined 14:39 lowpro30 left 14:40 sivoais_ is now known as sivoais, sivoais left, sivoais joined 14:44 jnap joined 14:45 btyler joined
moritz r: my @words = <wantarray warranty>; say [eq] @words.map: *.comb.sort.join 14:46
camelia rakudo-parrot 9f0609, rakudo-jvm 9f0609: OUTPUT«False␤»
moritz right, 'wantarray' has an 'a' more
14:48 zakharyas left, bbkr left
pmichaud (14) Disclaimer of Wantarray: THE PACKAGE IS PROVIDED WITHOUT ANY EXPRESS OR IMPLIED WANTARRAYS. 14:54
preflex pmichaud: you have 1 new message. '/msg preflex messages' to read it.
pmichaud ...preflex? 14:55
moritz phenny is dead, long live preflex+yoleaux
where yoleaux appears to be dead now too
FROGGS yeah :/
hi pmichaud 14:56
pmichaud somehow a Duran Duran theme is bubbling to the surface of my brane now :-/
FROGGS which one?
pmichaud en.wikipedia.org/wiki/The_Reflex
FROGGS .oO( (Duran Duran)++, ohh that is re-duran-t ) 14:57
pmichaud not far from "reflex" to "preflex". Some sort of knee-jerk reaction on my part. :)
moritz
.oO( some sort of knee-jerk preflex on your part )
14:59
pmichaud do we end up with a preyacc or prebison, too?
nwc10 where perl 6 is the postyacc? 15:00
(in the sense of grammars are first class, so who needs a specialised tool) 15:01
moritz and postyapc!
15:02 zakharyas joined
timotimo is back 15:13
we are building a pneumatic delivery system \o/ 15:14
15:15 logie left
FROGGS for beer? 15:15
ahh, wait
pneumatic?
where?
moritz and can I have it connected to my home? :-) 15:16
timotimo looks into the ADT test failure
in our hackspace :) 15:17
we only have 20 meters of tube
but we successfully transported a 550g bottle of banana milk
FROGGS *g*
timotimo events.ccc.de/congress/2013/wiki/Pr...denStrasse - belongs to this specification 15:19
twitter.com/loltimo/status/4010063...28/photo/1 - tube
15:19 logie joined
moritz for those who don't get the joke: the project name "seidenstrasse" is the German translation of "silk road" 15:20
(and now you only need to know about the tor-powered underground site of that name which used to sell drugs in the US) 15:21
timotimo drugs and murder.
moritz I'm not sure that last part was actually true, it sounded a bit untrustworthy
timotimo no idea
moritz (and the police couldn't find the alleged victim) 15:22
timotimo that's a relief
wow, my car looks so big on that picture
15:23 kaleem joined
FROGGS anonymous transport? hehe 15:28
jnthn evening, #perl6 15:33
15:33 zakharyas left
nwc10 what is this "evening" concept. Particularly, what is it doing at 16:30 local time? :-) 15:35
or is it merely signalling a shift from coffee to beer?
15:35 nnunley joined
FROGGS nqp: my @a; my @b := [1, 2, 3]; @a.push( |@b ); say(+@a) 15:35
camelia nqp-jvm: OUTPUT«Wrong number of arguments passed; expected 2..2, but got 4␤ in push (gen/jvm/stage2/NQPCORE.setting)␤ in (/tmp/MdXSHdNK6R:1)␤ in (gen/jvm/stage2/NQPHLL.nqp:1100)␤ in eval (gen/jvm/stage2/NQPHLL.nqp:1086)␤ in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1292)…» 15:36
..nqp-moarvm: OUTPUT«Too many positional arguments; max 2, got 4␤push␤»
..nqp-parrot: OUTPUT«too many positional arguments: 4 passed, 2 expected␤current instr.: '' pc 83 ((file unknown):53) (/tmp/hMppHkGoz5:1)␤»
FROGGS hi jnthn
jnthn nwc10: End of Norwegian working day ;)
cosimo_ jnthn: it's winter, so that is 15:30 :-) 15:39
jnthn ;-) 15:40
Yeah, it's dark already
I'd complain about it hampering my Bergen exploration but it's raining, which is a more serious problem. :)
jnthn has been managing to just avoid catching a cold for a while...
FROGGS I am well for almost a week now :o) 15:45
timotimo Unrecognized regex metacharacter | (must be quoted to match literally) -what have i done to deserve this? :|
jnthn timotimo: Screwed up your regex? :P 15:46
timotimo yeah, apparently
15:46 fhelmberger joined
moritz timotimo: you manage to get the most obscure errors :-) 15:46
jnthn Try feeding it to STD to see if it feels the same way abou tit.
FROGGS abou tit?
jnthn about it :P
moritz fwiw an unpatched rakudo should never emit that error message, IMHO 15:47
because | is a recognized meta character for alternations
jnthn Yeah
Thus why I'm curious what STD makes of it
I guess timotimo may have local patches... :)
moritz hopes so
timotimo std: grammar Test { rule params {
camelia std b469b42: OUTPUT«===SORRY!===␤Regex not terminated at /tmp/cOVjot9aMQ line 1 (EOF):␤------> grammar Test { rule params {⏏<EOL>␤Parse failed␤FAILED 00:01 122m␤»
timotimo ...
std: grammar Test { rule params { 15:48
camelia std b469b42: OUTPUT«===SORRY!===␤Regex not terminated at /tmp/7WizX63QMr line 1 (EOF):␤------> grammar Test { rule params {⏏<EOL>␤Parse failed␤FAILED 00:01 122m␤»
timotimo oi!
FROGGS sure he has local patches :o)
timotimo std: grammar Test { rule params { '[' ~ ']' [ '::' $<typevar>=<.ident> { @.typevars.push($<typevar>.Str) }]+ % ',' | } }
camelia std b469b42: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/JjDyuuBbhQ line 1:␤------> pevars.push($<typevar>.Str) }]+ % ',' | ⏏} }␤Parse failed␤FAILED 00:01 128m␤»
timotimo std: grammar Test { rule params { '[' ~ ']' [ '::' $<typevar>=<.ident> { @.typevars.push($<typevar>.Str) }]+ % ',' | <?> } }
camelia std b469b42: OUTPUT«ok 00:01 128m␤»
timotimo r: grammar Test { rule params { '[' ~ ']' [ '::' $<typevar>=<.ident> { @.typevars.push($<typevar>.Str) }]+ % ',' | <?> } }
camelia ( no output ) 15:49
timotimo er, huh?
that doesn't work locally, i'm afraid
jnthn: can you help me fix asynclines? if the file you're reading ends in a non-newline, the last line gets discarded 15:51
i've changed code inside, but my changes are not getting picked up by rakudo-jvm :(
jnthn What's the patch you tried? 15:52
timotimo i tried putting a die_s at the very beginning of Ops.linesasync
15:52 thou joined
jnthn will have to get a build... 15:54
actually, bbi15...
dalek p/fix_async_lines: bd6d36b | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java:
asynclines: make sure the last line gets passed on
15:57
timotimo jnthn: here's a patch for you to try
16:02 zakharyas joined 16:12 dmol left
TimToady I usually use '' rather than <?> when I really mean "match nothing" :) 16:20
16:20 [Sno] left, thou left, btyler left 16:24 thou joined
japhb___ Whoever it was that introduced the typo suggestion code, can you do it for multilevel names too, pretty please? I just spent 10 minutes tracking down MetaModel::ClassHOW <-> Metamodel::ClassHOW. 16:34
FROGGS r: MetaModel::ClassHOW
camelia rakudo-jvm 9f0609: OUTPUT«Could not find symbol '&ClassHOW'␤ in any find_method_fallback at gen/jvm/Metamodel.nqp:2607␤ in any find_method at gen/jvm/Metamodel.nqp:945␤ in any at gen/jvm/BOOTSTRAP.nqp:1658␤ in block at /tmp/s7YJXTOIh7:1␤ in any eval at gen/jvm/stage…» 16:35
..rakudo-parrot 9f0609: OUTPUT«Could not find symbol '&ClassHOW'␤ in method <anon> at gen/parrot/CORE.setting:12006␤ in any at gen/parrot/Metamodel.nqp:2691␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2679␤ in any find_method at gen/parrot/Metamodel.nqp:946…»
TimToady jnthn: Glo and I got drenched when we were in Bergen this summer :) 16:36
jnthn TimToady: Yes, from the folks I was teaching today I gathered that rain here is the common case. :) 16:38
16:39 lucas_ joined, fhelmberger left 16:40 fhelmberger joined
japhb___ "Cannot create rw-accessors for natively typed attribute '$!foo'" -- OK, so what's the right way to set up an RW native attr using the metamodel? I did "my $attr := Attribute.new(:name<$!foo>, :type(str), :package($class), :has_accessor); $attr.set_rw;" then added it to my class-in-progress and composed. 16:41
jnthn japhb___: It doesn't work any way yet
r: class A { has int $.x is rw } # same 16:42
camelia rakudo-parrot 9f0609, rakudo-jvm 9f0609: OUTPUT«===SORRY!===␤Cannot create rw-accessors for natively typed attribute '$!x'␤»
japhb___ Huh. It never occurred to me that I'd never tried that.
jnthn timotimo: Um. So that branch fixes things to me.
japhb___ Well, snto.
jnthn timotimo: It does some debug output and then prints the last line correctly.
japhb___ *snot
japhb___ wanders off to reconsider his plan of attack
jnthn heh, was trying to work out what snto was short for :) 16:43
timotimo jnthn: i can't even get it to do the debug output, what the hell am i doing wrong?!
jnthn timotimo: I have no idea. I just did the make nqp-runtime.jar and then copied the thing in the right place, which is my usual trick to avoid the compilation cycle when testing... 16:44
timotimo %)
jnthn But it should work out exactly the same with a make install and then a clean/make in Rakudo.
timotimo well, if it fixes things, i'll remove the debug stuff and push an amended commit to nom, okay?
jnthn ok
uh, master, no?
It's in NQP
Also, nice catch :) 16:45
16:45 fhelmberger left
timotimo thanks 16:45
it was terrorizing me ;)
oh, it's in nqp! of course!
dalek p: 45cc981 | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java:
asynclines: make sure the last line gets passed on
16:46
16:47 sqirrel joined, btyler joined
timotimo oh, it may be i had rakudo/nqp/install and rakudo/install 16:47
perhaps i've been installing the jvm stuff into the former and trying to use the stuff from the latter 16:48
16:50 FROGGS left
timotimo i wonder if i'll be able to build nqp-moar 16:57
17:01 colomon left 17:02 colomon joined
timotimo now i can build moar again :) 17:05
dalek p: ab172ab | (Timo Paulssen)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
teach moarvm that only QAST::Block has arity.
17:09 fhelmberger joined, dmol joined 17:10 xenoterracide joined 17:14 atroxaper left, zakharyas left 17:15 cognominal joined 17:18 iSlug left
timotimo jnthn: does the stage jast lend itself to being parallelised? 17:20
17:21 kaleem left 17:30 sqirrel left
timotimo jnthn: and do you know any reason why regex matches cause mayhem if they are being run in parallel? something must be shared, be it the $/ variable or something internal to the regexes that doesn't get cloned (perhaps i should have used a sub instead of a simple block? 17:32
diakopter timotimo: any two regexes? or the same regex? 17:35
17:39 kurahaupo_ joined 17:41 [Sno] joined
timotimo diakopter: two different ones in my test case 17:43
i had to put a lock around each invocation of ~~
17:43 fhelmberger left 17:44 fhelmberger joined
timotimo gah, i committed the debug outputs by accident 17:46
17:48 fhelmberger left
diakopter timotimo: wtf. 17:49
timotimo: that's kinda strange.. which backend?
[Coke] timotimo: did you install a version and that's taking precedence over the build-in-situ?
timotimo diakopter: the only one where we can have things in parallel
jnthn timotimo: My first guess is that it's 'cus the work to toss prior invocation hasn't been done on the JVM yet, and that creates some interesting issues 17:51
timotimo ah, possibly
17:53 Suhosin joined
diakopter timotimo: oh, right. :) 17:55
japhb just got a message from someone at $dayjob whose last name is Perl. 17:56
17:56 dakkar left
diakopter *MIND BLOWN* 17:56
timotimo :) 17:57
TimToady a lot folks shortened their name to "Perl" when they immigrated to north america 17:58
*lot of
jnap well, Perl is now old enough that some programmer could have had kids old enough to be working now…. 17:59
timotimo :)
jnap my grandmother's first name was Pearl, so its not so terribly off the mark
geekosaur "Perlman" 18:00
diakopter I knew some Perlmutters 18:01
18:02 rurban1 joined
[Coke] went to college with a perlmutter. 18:05
my last name was changed a few generations ago, stupid lack of cyrillic.
18:06 kurahaupo_ left, lucas_ left
japhb wonders just how many generations you'd have to go back before my last name wouldn't be spelled with a Latin alphabet. 18:07
18:07 kurahaupo_ joined
japhb I'm guessing at least 50. 18:08
18:10 kurahaupo__ joined 18:12 kurahaupo_ left
jnthn dinner & 18:12
lizmat TimToady: re github.com/perl6/specs/commit/3490...e22616adf9 , how can something be a role *and* a class ? 18:14
18:17 kurahaupo__ left
lizmat r: role Foo {}; class Foo {} # most definitely LTA error message 18:18
camelia rakudo-parrot 9f0609, rakudo-jvm 9f0609: OUTPUT«===SORRY!===␤No such method 'is_composed' for invocant of type 'Perl6::Metamodel::ParametricRoleGroupHOW'␤»
18:19 Rotwang joined
TimToady lizmat: only by putting everything you need for the punned class into the role 18:19
lizmat so "class Supply" and "role Supply" should work in the same lexical namespace ? 18:20
TimToady no
you only get to declare the role, and a punned class comes for free 18:21
r: role A { method foo { say 42 }}; say A.new.foo 18:22
camelia rakudo-parrot 9f0609, rakudo-jvm 9f0609: OUTPUT«42␤True␤»
lizmat aha... hmmm...
TimToady A is both a role and a punned class (or .new wouldn't work)
18:23 iSlug joined
TimToady just trying to avoid multiplying names for things that aren't used as heavily as, say Positional/Array 18:23
lizmat finally understands what a punned class is
TimToady a punned class is roughly equivalent (or maybe exactly equivalent) to a role mixed into the empty class 18:24
dalek ecs: 0ddcd00 | duff++ | S17-concurrency.pod:
tiny typo
lizmat I would say the role is cat-licensed into a class 18:27
TimToady speaking of S17, I have three or four gripes about the current formulation of "on", so expect some changes there yet
lizmat: did you see the change from Thread.join to Thread.finish? 18:28
lizmat yes, I will take care of that later tonight
:-)
TimToady that seems to be in your field of endeavor
thanks!
lizmat about to go and see Thor in 3D :-)
TimToady we put that off till tomorrow :)
re: 'on', 1) too moosey, 2) too hashy, 3) too much boilerplate, 4) 'on' is huffmanly rather short, 5) 'on' doesn't express the single-file protection going on 18:32
to me the one-at-a-time-ness is more important than the event-handler-ness 18:33
though it would be nice to express both somehow
but from a smelliness point of view, it's all the boilerplate that bothers me most
Juerd after? 18:34
lizmat atatime
TimToady the metaphor probably wants to be something like working a todo list off one thing at a time, if there's a short word for that 18:35
Juerd Next :P
TimToady :P indeed :)
japhb___ successfully generates source code for a class definition by building the class up in the Metamodel and then serializing from the class metamodel definition. o/ 18:36
Sometimes it's the little wins that feel the best.
lizmat chain?
flow? 18:37
Juerd issue
TimToady but if you look at the examples in S17, the different cases are very neary entirely duplicated, which bothers me more than the name-that-verb bikeshed
*nearly
lizmat neatly { }
TimToady japhb___: \o/ 18:38
18:38 SamuraiJack left
lizmat will be back later 18:39
TimToady also, note the difference between .tap that has a positional interface, and 'on' that does the same thing with named entries
(more,done,fail)
18:39 ssutch joined
TimToady I guess that falls under 2) 18:40
also, all the $a/$b stuff smacks of the sort { $a <=> $b } notion, so I feel like there ought to be a more concise way to express the switchery without actually writing a switch 18:42
needs to be some kind of HOP inversion somehow 18:43
18:45 logie left 18:49 rindolf left 18:52 Shellcat joined
japhb What would you call a ClassHOW subclass that knows how to serialize classes it has created into source code? 18:55
Hmmm, or maybe it deserves to be a role that's composed into the ClassHOW subclass.
18:55 sqirrel joined
japhb Still, my question is about naming. 18:56
TimToady Perlable?
japhb hmmm, that does make sense
PerlJam he didn't say source code of which language ;) 18:57
TimToady hence the ?
japhb Well, in this case, Perl is in fact what I'm generating. :-)
TimToady was assuming the same mental shortcircuit that causes Python to have .repr rather than .python :) 18:58
but was uncomfortable making that assumption, and added the ? Just In Case
but in my mind it was more about the "Perl" part than the "able" part 18:59
japhb If our minds didn't occasionally short-circuit, they'd be very slow indeed.
.oO( Deep Thought )
19:00
TimToady tries to think of a game where Deep Thought and Watson would be equally matched :) 19:01
19:01 logie joined
TimToady well, probably any game that isn't "chess" or "Jeopardy" 19:02
timotimo 11M Nov 14 19:01 original_big_diff 19:04
9,5M Nov 14 20:03 shiny_small_diff
>_<
i did not do this well. 19:08
19:08 thou left 19:09 cognominal left
colomon imagines a game of chess where you have to defeat each piece in a trivia battle... 19:12
PerlJam
.oO( Isn't that just wizard's chess? )
19:13
19:16 iSlug left
TimToady "Hey, Rook, I can't evaluate your move fitness until I know the Final Jeopardy Category on that Bishop over there." 19:16
"It's Biblical Grandfathers." 19:18
"Okay, maybe you'd better hold off on attacking a Bishop then..."
timotimo hum. what to do now? 19:26
19:28 pernatiy left 19:30 FROGGS[mobile] joined, raiph joined 19:32 sqirrel left
timotimo oh, there was some bug i said i would look at 19:35
19:35 logie left
timotimo hm, what was that again :| 19:35
raiph timotimo: ADT?
timotimo: ADHD?
timotimo ADT is something else entirely! ;) 19:36
no, i was going to try to turn postfix:<++> into prefix:<++> in sink context
19:42 Rotwang left
timotimo r: my $start = 0; my $time = nqp::time_n(); while $start < 100_000 { $start++ }; say nqp::time_n() - $time; 19:43
camelia rakudo-jvm 9f0609: OUTPUT«0.8990001678466797␤»
..rakudo-parrot 9f0609: OUTPUT«2.70193910598755␤»
timotimo r: my $start = 0; my $time = nqp::time_n(); while $start < 100_000 { ++$start }; say nqp::time_n() - $time;
camelia rakudo-parrot 9f0609: OUTPUT«2.38896989822388␤»
..rakudo-jvm 9f0609: OUTPUT«0.7319998741149902␤»
timotimo r: my $start = 0; my $time = nqp::time_n(); while $start < 100_000 { $start++ }; say nqp::time_n() - $time;
camelia rakudo-jvm 9f0609: OUTPUT«1.6119999885559082␤»
..rakudo-parrot 9f0609: OUTPUT«2.65007400512695␤»
timotimo r: my $start = 0; my $time = nqp::time_n(); while $start < 100_000 { ++$start }; say nqp::time_n() - $time;
camelia rakudo-jvm 9f0609: OUTPUT«0.6499998569488525␤» 19:44
..rakudo-parrot 9f0609: OUTPUT«2.50400900840759␤»
timotimo ah, a very unstable measurement
19:44 thou joined
FROGGS[mobile] You should make it to switch to JVM instead of the prefix 19:45
timotimo that's a good idea :)
on my local machine it's about 10% difference
since the optimisation is pretty trivial to implement, i can just plop it in. 19:46
japhb___ OK, the metamodel? Officially awesome now. (As if it wasn't before ....) 19:54
timotimo :D 19:55
19:57 logie joined 19:59 Rotwang joined 20:03 logie left
lue hello world o/ 20:03
20:04 logie joined
timotimo hey lue :) 20:06
jnthn japhb___: What made it official? :) 20:07
japhb___ Give me a sec, I'll gist.
tadzik good morning #perl6
timotimo hey tadzik, how are you? 20:08
tadzik pretty good :)
vacations are nice, I should do more of those
jnthn morning? :) 20:09
tadzik ymmv :P
timotimo ytzmv? ;) 20:10
tadzik that too :)
japhb jnthn: gist.github.com/japhb/7473529 20:11
jnthn ooh :) 20:13
japhb Yeah, cool, huh? This makes me happy. 20:14
timotimo is kinda sad he probably won't be breaking the 100 seconds barrier for parrot setting parse time before the release 20:15
tadzik very cool
lue jnthn: I have two quick questions: 1) I can make my own nqp:: ops for use with the <O()> rule, right? 2) How would I deal with an operator that has multiple forms (e.g. + for integers and + for lists)? (Rakudo's grammar isn't too helpful there.) Would I need to move beyond simple actions/grammar, or...?
timotimo do you already know at parse-time if you have a list or an integer? 20:16
20:16 iSlug joined
timotimo of course you do if it's a literal, but what about variables? 20:16
TimToady and why would you want to do that? 20:17
lue timotimo: at the moment I'm not implementing variables, so yes I would know. (But not forever, admittedly.)
20:18 raiph left
jnthn lue: You can register custom ops for your language but it's often easier just to give your language a "setting" or similar and leave the code-gen to produce a call to the op. 20:20
lue I get the feeling it would be better implemented going beyond O() and friends. (There's only one precedence level and parens, so it wouldn't be too bad :P) 20:21
jnthn lue: For multi-form operators, you'll probably need to code-gen a call that dispatches by type, either using multi-dispatch or just nqp::istype to decide. Really depends on the langauge.
lue jnthn: it's APLish :)
jnthn lue: You still use O, you just don't do :op<...?
lue: Instead you leave it alone and it code-gens a call to e.g. &infix:<foo> automatically
Taking the name from the <sym> 20:22
Or something along those lines. :)
lue jnthn: yeah, I noticed rakudo does that towards the end of Grammar.nqp, but I couldn't tell what was supposed to happen after the Grammar
jnthn Or you can write an action method and make it do just what you want.
lue thinks APL has function definition stuff suitable for a setting. He checks
yeah. So I think what I have to do is implement ∇ (function definition) so I can get started on a setting as soon as possible. (Setting seems the natural way to go anyway) :) 20:25
20:25 raiph joined
lue jnthn: so IIUC, using <O()> without :op<> generates a call to a sub which I've defined in NQP, correct? So the definition of &infix:<foo> would occur elsewhere in the NQP code of the compiler in that case. 20:26
jnthn lue: It just needs to be somehow in the lexical scope of the thing that calls it 20:28
lue: Which you can arrange setting-style or import-style.
lue import-style would be 'use' statements or something? 20:31
jnthn yeah 20:32
lue
.oO(and here I thought APL would just be a couple dozen operator parse rules. Now I accidentally a setting :) . I'll go look at how NQP and Rakudo and the like get that working before doing it. )
20:34
20:41 logie left 20:43 kaare_ left 20:45 cooper joined 20:46 iSlug left
dalek ecs: 4fa5b48 | larry++ | S17-concurrency.pod:
clarify that @$channel is not a combinator
20:47
20:50 Vlavv` left
diakopter TimToady: *transfering 20:56
(quick, forcepush correction) 20:57
20:57 logie joined
jnthn ponders how to implement @$channel ))) 20:58
oh...I think I know... 20:59
timotimo jnthn: where's all the remaining performance wins? :( 21:00
lue is @$ supposed to be a new sigil, or @-sigil+$-trigil, or @($channel) ? 21:01
timotimo no, it's just @($....)
japhb___ timotimo: On a positive note, every time you shave away at the non-bottleneck, it means that when someone (maybe you) *does* find and fix the bottleneck, it will be a huge win.
timotimo percentage-wise, yeah 21:02
japhb___ And sometimes you have to scrape away the small problems before you can uncover the big ones.
timotimo mhm 21:03
21:03 Vlavv` joined
japhb___ (For instance, I have the damnedest time reviewing code for bugs when it is formatted poorly in a thousand small ways.) 21:03
timotimo my code is always pretty :P
i think my postfix-to-prefix optimisation works 21:05
jnthn timotimo: Which language? 21:06
timotimo jnthn: nqp and rakudo both
(was that re: where's all the remaining performance wins? or the optimisation?) 21:07
timotimo runs a full spectest 21:08
21:08 amkrankruleuen left
dalek ecs: 9941758 | larry++ | S17-concurrency.pod:
speculate 'on' changes
21:10
jnthn *groan* :P 21:13
(at the pun commit message, not the contents...)
PerlJam is going to have to read S17 (probably a few times) because that commit is a tad indecipherable 21:16
timotimo yeah, S17 is a bit opaque. you have to leave all your preconceptions at the door 21:17
jnthn TimToady: Something feels a bit off with that, but I'm not quite sure what... 21:19
TimToady yeah, just meant to be closer
jnthn combine is a better name.
TimToady needs different topicalization or something
at one point was passing in the instantiable data as $a => @as but that didn't feel even righter 21:20
japhb I read that as "insatiable data"
TimToady but the basic idea that it's a bit of generic code to be instantiated over two (or more) supplies (or channels?)
timotimo TimToady: did i have your blessing to compare signatures in the spectests by strings, or should i implement :(Mu *@) to work as a special case? 21:21
jnthn japhb: Hah, I want to give a talk with that title now :P
TimToady wanted to be able to zip list-associatives
japhb jnthn, YES. DO THAT, PLEASE. ;-)
jnthn TimToady: I *think* the construct only makes sense on supplies.
TimToady could be
21:22 japhb___ is now known as japhb_ 21:24 spider-mario left
diakopter "thread-safely problems" 21:24
jnthn The main point of combine is its actor-ish semantics. 21:26
.oO( The main point of most of what I shoved in S17 is actor-ish semantics... )
21:28 iSlug joined 21:31 bbkr_ left
TimToady timotimo: I'm fine with testing via strings 21:37
21:41 Ember joined
TimToady most languages just throw up their hands at the notion of comparing signatures deeply 21:42
you'd need a fairly circumscribed call syntax and type system to get around that; something you could do in Prolog but not in Perl 21:43
(and it's probably too hard to do right in Prolog too :)
doubtless there's some theory here that I'm glossing over because I'm unaware of it :) 21:44
21:46 davecv joined, bbkr joined 21:49 raiph left
dalek kudo/nom: ce1def9 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp:
in sink context, ++foo is faster than foo++ by 10%
21:50
ecs: c1710c1 | larry++ | S17-concurrency.pod:
conjecture multi-way merge as well
21:53
p: 22f47f8 | dwarring++ | examples/rubyish/examples-rubyish/pi.rbi:
tidied rubyish PI example
21:54
timotimo jnthn: can you explain to me why the pir generator builds lots of "get_sc_object $P5001, "uaidtrenuiadtren", 1234" and directly afterwards "set $P100, 5001"? i made an 'optimisation' that directly puts the second register into the first instruction and it b0rked with NPMCA :( 21:58
diakopter timotimo: I guess it wanted to use P5001 later also? 22:00
timotimo but i set :returns to the same register, too, and that's the only mechanism how the caller could have figure dout what register that was supposed to be
diakopter timotimo: also, be sure to change the "result register" of the expression
ok 22:01
timotimo i don't think i really looked at the resulting code, though
diakopter throws you a look
timotimo thanks, i'll use that
bleh, the commit dropped off my log, i'll have to find it in the reflog
it's gone :| 22:02
i can reconstruct it quickly, though 22:04
jnthn timotimo: Are you sure that the $P100 isn't actually a lexical-holding register? 22:06
timotimo it is
can only set put things into lexical-holding registers?
jnthn No, should be fine to directly put them in too...
timotimo that's what i thought :( 22:07
well, i'll see what the code looks like exactly and then i'll see
22:07 BenGoldberg joined
timotimo i think i may actually have implemented it subtly differently this time 22:10
because now it compiles much further than last time
jnthn :)
You did it subtly righter this time...
timotimo yeah, i bet i accidentally forgot to push the op that created the get_sc_object 22:11
22:11 raiph joined
timotimo er ... too many named arguments: 'instance_of' not used 22:11
wow
22:11 Ember left
jnthn gonna get an early night 22:12
&
timotimo gnite jnthn!
jnthn: gist.github.com/timo/d223a4d09d602091e5af - you just missed it ;) 22:14
it doesn't seem to fill _lex_param_1 at all :o 22:16
though it says .param pmc _lex_param_1, so maybe it passes on the parameter from the caller down to that call? 22:17
i may be looking at the wrong stack frame ... 22:23
22:29 Rotwang left
pmichaud I left a comment on the ++ optimization -- could someone verify that it's actually safe to make that change? 22:30
22:30 denisboyun joined
pmichaud I guess that's what ".is_from_core" is supposed to handle? 22:32
(added comment.) 22:33
I'm afk for a while.
22:35 amkrankruleuen joined, amkrankruleuen left, amkrankruleuen joined, lowpro30 joined 22:37 lowpro30__ joined 22:38 lowpro30_ left 22:39 denisboyun left 22:40 lowpro30 left
dalek p: 9564ed6 | dwarring++ | examples/rubyish/ (2 files):
wrap nqp::sprintf - demo rubyish slurpy args
22:53
22:58 raiph left
BenGoldberg Can anyone here either identify this quote, or at least guess what language the speaker was talking about: "It is the language of the future for the programming techniques of the past" 23:04
:)
23:07 wbill left, PacoAir left
lue BenGoldberg: I want to say C or C++, but it's likely Lisp or, less likely, Go. 23:08
perigrin www.brainyquote.com/quotes/quotes/e...01169.html
Go is too new.
but I thought of Go pretty much immediately too :) 23:09
timotimo a friend told me "go is a better pythonic language than python"
perigrin unless that friend was Guido ... I'm not sure I'd believe them.
BenGoldberg "APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums." —Edsger Dijkstra, 1968 23:10
timotimo or a "more pythonic language"
geekosaur go might, however, be python in google's image... 23:11
perigrin Go is Python as if it were written by Rob Pike. 23:15
japhb rj: class Foo { has str $.str; }; my $foo = Foo.new; say $foo.str; 23:39
camelia rakudo-jvm 9f0609: OUTPUT«java.lang.NullPointerException␤ in method print at gen/jvm/CORE.setting:13035␤ in block at /tmp/SK1aduPw2H:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/s…»
japhb Am I correct that's a bug?
(Well, any NPE is, I meant, that it says anything other than an empty string? ) 23:40
rj: class Foo { has int $.int; }; my $foo = Foo.new; say $foo.int;
camelia rakudo-jvm 9f0609: OUTPUT«0␤»
japhb rj: class Foo { has num $.num; }; my $foo = Foo.new; say $foo.num;
camelia rakudo-jvm 9f0609: OUTPUT«0␤»
japhb So yeah, just a str problem. 23:41
TimToady what is this 'str' type of which you speak? The specs claim there is no str type, in fact...
lue native str ≈ buf methinks 23:42
japhb: try s:g/str/Str/
TimToady rj: class Foo { has Str $.str; }; my $foo = Foo.new; say $foo.str; 23:44
camelia rakudo-jvm 9f0609: OUTPUT«(Str)␤»
TimToady S02:878 btw 23:45
synopsebot Link: perlcabal.org/syn/S02.html#line_878
TimToady though some of the surrounding prose is...speculative...
japhb I'm just trying to support serializing any class definition that can be specified in Rakudo. 23:50
Unfortunately, just that one case fails in r-j, but works in r-p. So far, everything else works in both.
rj: class Foo { has str $.str = ""; }; my $foo = Foo.new; say $foo.str; 23:51
camelia rakudo-jvm 9f0609: OUTPUT«java.lang.NullPointerException␤ in method print at gen/jvm/CORE.setting:13035␤ in block at /tmp/heRDJOqZ7y:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/s…»
japhb rj: class Foo { has str $.str = "foo"; }; my $foo = Foo.new; say $foo.str;
camelia rakudo-jvm 9f0609: OUTPUT«java.lang.NullPointerException␤ in method print at gen/jvm/CORE.setting:13035␤ in block at /tmp/1ZwBAAOhlZ:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/s…»
japhb rj: class Foo { has str $.str; }; my $foo = Foo.new(str => "foo"); say $foo.str;
camelia rakudo-jvm 9f0609: OUTPUT«foo␤»
23:52 btyler left
japhb So perhaps str native attrs don't get built properly .... 23:52
TimToady, what is the native of a Str supposed to be, if not a str? 23:53
TimToady still thinks the concept "native" is overly generic and leads to things like "str" types that mean different things in different lands
TimToady has no clue what a "str" is supposed to be 23:54
japhb Which is to say, if you're creating the Str class itself, how do you specify the underlying VM thing that's holding the string contents?
TimToady nor what "native" means in that context
everywhere else, "native" is currently meaning "like in C", but C has no string types 23:55
japhb For me, "native" means "the form that the VM ops work on"
TimToady so a completely non-portable concept that should probably have different names on different platforms
japhb I can see "like in C" for *sized* natives, but the generic natives surely are VM-specific, no?
TimToady, that answer is a bit negative when it comes to writing the non-VM-specific parts of Rakudo 23:56
TimToady and what do you mean by "native" if C and the VM are in disagreement on a particular matchine?
japhb Perhaps we're talking past each other.
For me, I see num64 == C double, num32 == C float. But num == whatever the VM wants it to be. 23:57
And I apply the same logic to int and str.
TimToady I'm just saying that "native" is a nebulous concept that causes people to apply the same logic where it doesn't make sense :)
japhb I concede that point. 23:58
And now I want to find a practical solution.
TimToady to a nebulous type defined by rakudo but not by Perl 6? :P
TimToady has not opinion on that subject :) 23:59
*no
diakopter TimToady: native just means .. oh nm :)