»ö« 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.
timotimo er ... well volunteered? ;) 00:10
[Coke] zacts: check the logs, prolly not worth it. 00:15
you end up having to write a lot of stuff when using llvm. 00:16
zacts oh interesting.. ok 00:18
[Coke] I'm not an expert, but this really is a FAQ. 00:19
timotimo yes, we do get it a lot 00:20
even the pypy people get it often and i seem to recall they said at one point it's much too low-level for them
but i may be misremembering
00:24 thou joined 00:25 btyler joined 00:36 bjz left
[Coke] irssi question : is there a way to make -some- windows autoscroll, but have others page? 00:37
00:42 virtualsue left 01:02 bjz joined
lue the best hope is implementing a LLVM backend for MVM, from what I hear. 01:03
01:07 benabik joined 01:11 rurban joined 01:16 rurban left 01:23 bfulgham_ left 01:29 klapperl_ joined 01:32 bfulgham_ joined, kurahaupo left 01:33 klapperl left 01:38 BenGoldberg joined 01:45 ilbot3 left 01:46 ilbot3 joined 01:52 hoverboard joined 02:12 rurban joined 02:17 rurban left, hoverboard left 02:22 bfulgham_ left 02:27 xragnar_ joined, xragnar is now known as Guest48210, xragnar_ is now known as xragnar 02:31 Guest48210 left 02:38 rindolf joined 02:53 Quom left 03:01 thilp_ left 03:02 rindolf left, xenoterracide left 03:12 rurban joined 03:14 WJB joined 03:15 thou left 03:26 kaare__ joined 03:27 adu joined 03:55 SamuraiJack joined
lue My disappearing \x10FFFB problem comes from *something's* .ast method in Pod.nqp's merge_twines (@twines[0] is fine, @twines.shift.ast disappears \x10FFFB and \x10FFFC). But because nqp isn't willing to print typenames, I have no clue where the actual problem is :/ 04:19
lue afk for a bit
04:25 [Sno] left 04:27 kaare__ left 04:32 rurban left
moritz good morning 04:41
JimmyZ morning
moritz nqp: my $x = 'foo'; say($x.HOW.name($x)); # print type names in NQP, for lue
camelia nqp-jvm: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " 'foo'; sa"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:396)␤ in infix:sym<=> (gen/jvm/stage2/NQP.nqp)␤ in !protoregex (gen/jvm/stage2/QRegex.nqp:791)␤ in infix (gen/jvm/stage2/NQPHLL.nqp)…»
..nqp-parrot: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " 'foo'; sa"␤current instr.: 'panic' pc 15634 (gen/parrot/stage2/NQPHLL.pir:5766) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
..nqp-moarvm: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " 'foo'; sa"␤ at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:panic:105)␤ from <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/n…»
moritz nqp: my $x := 'foo'; say($x.HOW.name($x)); # print type names in NQP, for lue
camelia nqp-moarvm, nqp-jvm: OUTPUT«BOOTStr␤»
..nqp-parrot: OUTPUT«Can only use get_how on a SixModelObject␤current instr.: '' pc 46 ((file unknown):63646681) (/tmp/tmpfile:1)␤»
moritz (just don't use parrot) 04:48
lue If I was compiling more than just perl6-m for this, it would be so much more unbearable to debug right now :) 04:49
I tried $thing.HOW(Mu).name before, and it didn't work. Looks like I got it wrong :)
04:49 kaleem joined
BenGoldberg nqp: say("foo".HOW.name("bar")) 04:50
camelia nqp-moarvm, nqp-jvm: OUTPUT«BOOTStr␤»
..nqp-parrot: OUTPUT«Can only use get_how on a SixModelObject␤current instr.: '' pc 43 ((file unknown):61911943) (/tmp/tmpfile:1)␤»
BenGoldberg nqp: say(42.HOW.name(53))
camelia nqp-parrot: OUTPUT«Can only use get_how on a SixModelObject␤current instr.: '' pc 43 ((file unknown):42015783) (/tmp/tmpfile:1)␤»
..nqp-moarvm, nqp-jvm: OUTPUT«BOOTInt␤»
BenGoldberg nqp: say(42.HOW.name("mismatch?"))
camelia nqp-moarvm, nqp-jvm: OUTPUT«BOOTInt␤» 04:51
..nqp-parrot: OUTPUT«Can only use get_how on a SixModelObject␤current instr.: '' pc 43 ((file unknown):45329095) (/tmp/tmpfile:1)␤»
04:55 aindilis joined 04:58 kaare__ joined 05:03 rurban joined 05:05 rurban1 joined 05:08 rurban left 05:10 rurban1 left 05:14 adu left 05:30 BenGoldberg left, adu joined 05:31 perigrin left, perigrin joined 05:33 aborazmeh joined 05:34 geekosaur joined 05:35 sftp_ is now known as sftp 05:43 kaleem left 05:48 araujo left 05:49 btyler left
TimToady hi guys, you're on screen at PerlChina 06:01
adu are you? 06:05
TimToady indeed
adu am I? 06:06
TimToady yes, you are :)
adu oh, then I better be quiet :)
TimToady type some Chinese if you know how!
adu 日本語だけわかります 06:07
lue ♘ #perl6, perhaps tomorrow I'll fix MoarVM's Unicode problems :) 06:08
TimToady 谢谢
signing off now 06:09
well, maybe not quite yet...they're all signing a book for me :) 06:11
adu lol
TimToady a dictionary
adu 頑張る is my favorite Japanese word, do the characters mean the same thing in Chinese? 06:12
06:14 dayangkun joined
sergot morning o/ 06:14
TimToady good morning, signing off now for reals :) 06:16
adu l8r
06:17 adu left 06:24 kaleem joined 06:25 dayangkun left 06:27 darutoko joined 06:34 raiph left 06:38 dayangkun joined 06:43 Alina-malina left, Alina-malina joined 07:00 zakharyas joined
jnthn morning, folks o/ 07:04
07:05 dmol joined
TimToady jnthn: o/ 07:06
07:06 eMBee joined
TimToady you're on screen in china 07:06
eMBee hello
07:07 rurban joined
jnthn m: say "Hi, folks in China!" # :) 07:08
camelia rakudo-moar eb8575: OUTPUT«Hi, folks in China!␤»
eMBee is in china too, watching the channel 07:11
if you have any questions for the audience, or larry, i can pass them on
you are on the screen now 07:12
07:12 rurban left 07:14 brrt joined
TimToady m: say (1,2,3) >>+<< (10,20,30) 07:15
camelia rakudo-moar eb8575: OUTPUT«11 22 33␤»
brrt hi #perl6 07:16
TimToady m: [*] 1..10
camelia ( no output )
TimToady m: say [*] 1..10
camelia rakudo-moar eb8575: OUTPUT«3628800␤»
TimToady m: sub postfix:<!>($x) { [*] 2..$xx }; say 10! 07:17
camelia rakudo-moar eb8575: OUTPUT«===SORRY!=== Error while compiling /tmp/wVBuKeFrkU␤Variable '$xx' is not declared␤at /tmp/wVBuKeFrkU:1␤------> sub postfix:<!>($x) { [*] 2..$xx⏏ }; say 10!␤ expecting any of:␤ postfix␤»
TimToady m: sub postfix:<!>($x) { [*] 2..$x }; say 10!
camelia rakudo-moar eb8575: OUTPUT«3628800␤» 07:18
TimToady m: sub postfix:<!>($x) { [*] 2..$x }; say 1!
camelia rakudo-moar eb8575: OUTPUT«1␤»
TimToady m: sub postfix:<!>($x) { [+] 2..$x }; say 1! 07:19
camelia rakudo-moar eb8575: OUTPUT«0␤»
JimmyZ 下午好 07:22
07:37 pdcawley joined
eMBee wonders if larry has any questions for the audience 07:44
07:48 ChexMing joined 07:55 salv0 left, salv0 joined
arnsholt o/ 08:00
TimToady \o talk is done, now just sitting and looking up characters I don't know, which is still a lot of 'em :) 08:03
eMBee it was a great talk. unfortunately my camera battery died halfway through recording it... 08:05
eMBee should have brought his webcam... *facepalm* 08:06
looks like someone else made a recording too. good! 08:07
08:07 AW3i joined 08:08 rurban joined 08:13 rurban left
arnsholt nqp: my grammar G { method s_m(*%n) { say(%n<a>, %n<b>, %n<c>) } token TOP { <s_m(|hash(:a<1>, :c<3>), :b<2>)> } } G.s_m(|hash(:a<1>, :c<3>), :b<2>); G.parse(''); 08:18
camelia nqp-parrot: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "method s_m"␤current instr.: 'panic' pc 15634 (gen/parrot/stage2/NQPHLL.pir:5766) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
..nqp-jvm: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "method s_m"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:396)␤ in FAILGOAL (gen/jvm/stage2/NQPHLL.nqp:403)␤ in blockoid (gen/jvm/stage2/NQP.nqp:989)␤ in package_def (gen/jvm/stage2/…»
..nqp-moarvm: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "method s_m"␤ at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQPHLL.nqp:376 (/home/p6eval/rakud…»
arnsholt nqp: my grammar G { method s_m(*%n) { say(%n<a>, %n<b>, %n<c>) }; token TOP { <s_m(|hash(:a<1>, :c<3>), :b<2>)> }; }; G.s_m(|hash(:a<1>, :c<3>), :b<2>); G.parse(''); 08:19
camelia nqp-parrot: OUTPUT«123␤too many positional arguments: 3 passed, 1 expected␤current instr.: 's_m' pc 126 ((file unknown):74) (/tmp/tmpfile:1)␤»
..nqp-moarvm: OUTPUT«This representation (VMHash) does not support positional access␤ at /tmp/tmpfile:1 (<ephemeral file>:s_m:0)␤ from /tmp/tmpfile:1 (<ephemeral file>::44)␤ from gen/moar/stage2/NQPHLL.nqp:1091 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:eva…»
..nqp-jvm: OUTPUT«VMHash representation does not implement at_pos_boxed␤ in s_m (/tmp/tmpfile)␤ in (/tmp/tmpfile:1)␤ in eval (gen/jvm/stage2/NQPHLL.nqp:1118)␤ in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1310)␤ in command_eval (gen/jvm/stage2/NQPHLL.nqp:1214)␤ in command…»
arnsholt nqp: my %hash := nqp::hash(:a<1>, :c<3>); my grammar G { method s_m(*%n) { say(%n<a>, %n<b>, %n<c>) }; token TOP { <s_m(|%hash> }; }; G.s_m(|%hash, :b<2>); G.parse(''); 08:20
camelia nqp-moarvm: OUTPUT«Unable to parse expression in metachar:sym<assert>; couldn't find final '>' at line 2, near "(|%hash> }"␤ at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQPHLL.nqp:376 (/home/…»
..nqp-jvm: OUTPUT«Unable to parse expression in metachar:sym<assert>; couldn't find final '>' at line 2, near "(|%hash> }"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:396)␤ in FAILGOAL (gen/jvm/stage2/NQPHLL.nqp:403)␤ in metachar:sym<assert> (gen/jvm/stage2/NQPP6QRegex.nqp)␤ in …»
..nqp-parrot: OUTPUT«Unable to parse expression in metachar:sym<assert>; couldn't find final '>' at line 2, near "(|%hash> }"␤current instr.: 'panic' pc 15634 (gen/parrot/stage2/NQPHLL.pir:5766) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
08:20 fhelmberger joined
arnsholt nqp: my %hash := nqp::hash(:a<1>, :c<3>); my grammar G { method s_m(*%n) { say(%n<a>, %n<b>, %n<c>) }; token TOP { <s_m(|%hash)> }; }; G.s_m(|%hash, :b<2>); G.parse(''); 08:21
camelia nqp-moarvm: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ at /tmp/tmpfile:1 (<ephemeral file>:s_m:0)␤ from <unknown>:1 (<ephemeral file>:TOP:61)␤ from gen/moar/stage2/QRegex.nqp:1302 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/QRegex.moarvm:parse:4…»
..nqp-parrot: OUTPUT«2␤too many positional arguments: 2 passed, 1 expected␤current instr.: 's_m' pc 125 ((file unknown):78) (/tmp/tmpfile:1)␤»
..nqp-jvm: OUTPUT«2␤␤P6int representation does not support natively typed attributes␤ in TOP (/tmp/tmpfile)␤ in parse (gen/jvm/stage2/QRegex.nqp:1302)␤ in (/tmp/tmpfile:1)␤ in eval (gen/jvm/stage2/NQPHLL.nqp:1118)␤ in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1310)␤ …»
08:22 AW3i left 08:23 virtualsue joined
arnsholt jnthn: I think part of the problem with O-refactor is the fact that hash flattening in rules is currently a bit wonky (NQP #46) 08:30
08:30 denis_boyun_ joined
arnsholt Not entirely sure why, though. Potentially something missing in the subrule QAST::Regex node stuff 08:34
08:42 dakkar joined 09:05 xinming_ left, camelia left 09:06 xinming_ joined 09:07 camelia joined
lizmat good *, #perl6! 09:08
09:08 ChanServ sets mode: +v camelia
nwc10 good #perl6, * 09:08
09:10 denis_boyun_ left 09:11 hummeleB1 joined
arnsholt o/ nwc10 09:16
09:19 lizmat left, ChexMing left 09:20 lizmat joined 09:30 kaare__ left, kaare_ joined 09:39 AW3i joined 09:44 rindolf joined
dalek kudo/nom: c575000 | (Elizabeth Mattijsen)++ | / (2 files):
Remove .winners for now

To prevent anybody from using it while the spec is still very much in flux.
09:46
lizmat jnthn, TimToady: to me the big question is now: do we want to have some kind of ".close" on a Promise 09:50
or do we need to change Promises into Channels, and use the .closed attribute on the Channel
to make winner {} and/or outcome {} sane 09:51
09:56 xinming_ left 09:57 xinming_ joined
lizmat fwiw, it doesn't make sense to turn Promises into Channels automatically, as that would just be moving the problem 09:59
10:00 aindilis left 10:05 denis_boyun joined 10:09 rurban joined 10:14 rurban left
nwc10 There's more than one way to do it: tech.dropbox.com/2014/04/introduci...mentation/ 10:19
oh, and git, not mercurial github.com/dropbox/pyston
"Currently, Pyston targets Python 2.7, only runs on x86_64 platforms, and only has been tested on Ubuntu" -- nothing wrong with any of those 3, but I assume that that's where the money is. 10:20
11 commits total, 10 from Kevin Modzelewski, 1 from Yetkin Öztürk 10:22
10:37 plobsing left 10:39 LLamaRider joined
jnthn arnsholt: It's entirely possible something is a bit off there 10:40
lizmat: A promise is implicitly closed once it is kept/broken. There's only ever one value. 10:41
LLamaRider r: Nil.WHAT.say 10:42
jnthn lizmat: I think TimToady is probably right: we should make winner just about channels.
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«Nil␤»
LLamaRider Nil types itself?
jnthn It's a distinct tyep
*type 10:43
lizmat jnthn: but .result can be called N times on a promise
maybe that's the problem?
jnthn lizmat: No, that's the nature of a promsie 10:44
lizmat: It *has* to be taht way otherwise "then" makes no sense.
lizmat ok 10:45
it still feels wrong to me though 10:46
jnthn I think lets just stop trying to make winner work on promises
Then you just have the wrong mental model of promises.
It's not like we're doing them somehow different to JS/.Net/Java. 10:47
lizmat well, fwiw, I want to be where the puck is going to be, not where it is 10:48
any feelings about the name "outcome" versus "winner" ? 10:49
jnthn lizmat: I think the nature of promises as a construct has largely reached the "where it's going to be" point now :) 10:50
Don't feel strongly on outcome vs winner 10:51
Neither feels "perfect"
I guess I'd prefer a verb... 10:52
lizmat why? I mean, we're looking a sorting operation on the time axis 10:54
the result of that, rarther
*rather
"outcome" feels to me like that covers it pretty much
10:55 aindilis joined
jnthn Yeah, it just doesn't quite convey the fact that yu're choosing one fo the avaialble options 10:58
"ready" or "available" or "able" feel righter-ish to me
hm, but don't go with the more/done so well 11:00
LLamaRider "present" would be a punny one 11:03
11:09 AW3i left 11:11 rurban joined 11:15 rurban left
lizmat how about using "whenever" instead of "more" ? 11:21
the hopefully conveys the timeliness of the thing, rather than just "when" or "more"
moritz still likes race 11:23
or "asap"
brrt i like 'present' 11:24
and… 'first' 11:25
brrt is a bit unhappy about brand new python implementations that target… python2.7 :-(
that is like building a brand new vm for.. perl5.8 11:26
moritz huh, which one? 11:27
brrt pyston, backlog of … . 12:19
(my time)
dalek ecs: 5027a94 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Let's revert back to before I got into this
11:29
ecs: 7136f93 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Make winner {} about Channel's only
11:37
11:41 colomon left 11:50 dmol left 11:52 telex left 11:54 araujo joined 11:58 telex joined 12:06 colomon joined 12:12 rurban joined 12:13 masak_ is now known as masak 12:15 kaleem left, benabik left
lizmat jnthn: wrt to levenshteining the method not found error 12:16
12:16 rurban left
lizmat it seems that method not found errors are thrown at the end of BOOTSTRAP (at least in moar) 12:17
I guess there is no way make it set up an exception at that stage, is there?
12:20 daniel-s_ joined 12:32 xenoterracide joined
cognominal what are the languages targetting QAST apart Perl 6 and nqp? 12:37
moritz uhm, none that I know of
cognominal should reread jonathan slides. I think he had a toy ruby 12:38
masak yes, and a toy PHP in the exercises :) 12:40
colomon wasn't there a snake project as well?
tadzik there is
12:41 colomon left
tadzik he couldn't stand it :D 12:42
moritz who? 12:49
12:50 xenoterracide left
masak snake! 12:50
:P
12:53 kaare_ left 13:01 colomon joined 13:08 kbaker_ joined 13:10 dayangkun left 13:12 rurban joined 13:17 rurban left 13:23 kaleem joined 13:25 BenGoldberg joined, virtualsue left 13:27 dayangkun joined
jnthn lizmat: The way to do that is put soemthing in P6EX 13:27
lizmat: See the multi-dispatcher, also in BOOTSTRAP, which throws typed exceptions 13:28
lizmat ack, will look
jnthn I want to find languages I can implement and call the implementations "badger" and "musrhroom", to go with snake :P
13:30 dakkar left 13:34 Bucciarati left, avar joined 13:36 Bucciarati joined, treehug88 joined
vendethiel :o. The -h autogeneration is soooo cool 13:40
13:43 dakkar joined, bluescreen10 joined
moritz jnthn: Debian's firefox clone is called iceweasel, and it implements XUL. It's not too far from weasel to badger :-) 13:47
13:47 benabik joined
frettled iceweasel, mudbadger 13:49
vendethiel Rosatta code is a great resource for building perl6 stuff.
13:50 virtualsue joined
jnthn m: sub product_name() { <ice fire snow tornado>.pick ~ <kangaroo goat manatee bear>.pick }; say product_name() for ^5 13:51
camelia rakudo-moar c57500: OUTPUT«tornadokangaroo␤icegoat␤snowbear␤firebear␤snowkangaroo␤»
TimToady I'm not sure which of those is scarier 13:52
13:52 SamuraiJack left
benabik fireferret 13:52
TimToady a tornadokangaroo will kill you before you can finish typing it 13:53
13:53 vendethiel left 13:54 vendethiel joined 13:55 kaare_ joined, pmurias joined, qiang joined
[Coke] just saw a firetornado this weekend. 13:56
13:56 virtualsue left 13:57 vendethiel left
pmurias jnthn: re badger and mushroom, it's already be decided QAST ruby will be called badger and php mushroom ;) 13:57
TimToady mushroom as in "what they were smoking"? 13:58
jnthn :D
Well, when I watch the badger/mushroom/snake video, you gotta wonder what they were smoking to come up with it... :)
wow, what a disagreeable sentence... 13:59
TimToady you sure it wasn't a tenuki?
13:59 jnap joined
jnthn had to look that up 13:59
m: sub product_name() { <ice fire snow tornado>.pick ~ 'tenuki' }; say product_name() 14:00
camelia rakudo-moar c57500: OUTPUT«firetenuki␤»
TimToady oops, I meant a tanuki, not a tenuki :) 14:01
14:03 btyler joined
Woodi hallo # today :) 14:03
14:04 vendethiel joined
Woodi m: my $c = Channel.new; 14:04
camelia ( no output )
Woodi hmm, perls6 on my machine says: Undeclared name: Channel used at line 1 same for promises and supplies... 14:05
14:07 vendethiel left
lizmat p: my $c = Channel.new; 14:11
camelia rakudo-parrot c57500: OUTPUT«===SORRY!=== Error while compiling /tmp/CIu9oT7Eyg␤Undeclared name:␤ Channel used at line 1␤␤»
lizmat are you sure you're using perl-m ?
14:12 thou joined
Woodi from reading S17: channels are blocking and shifty and supplies are non-blocking and tee-like. what about non-blocking and "checking" - like probe doing checks ocassionally ? 14:12
14:12 vendethiel joined
Woodi m: my $p = Promise.new; 14:12
camelia ( no output )
vendethiel what the fuck is my internet doing
lizmat cycling&
vendethiel my internet is cycling ? not fast enough though .. 14:13
Woodi on perl6-m on Promise I get: same as for parrot + "Cannot find method 'ast': no method cache and no..."
14:13 rurban joined
vendethiel finished his little "changelog.pl" script to generate a changelog from a Git history 14:13
Woodi one possibility is it's my local layout of compilers location is broken with many backends... 14:15
[Coke] Did you alter the default install? 14:17
Woodi umm, what mean default ?
prefix is /opt/../.. 14:18
14:18 rurban left
Woodi probably nqp was done for two backends and once and rakudo one by one 14:19
*at once
nwc10 reads blog.kevmod.com/2014/04/pyston-xrange-example/ and wonders about "n reality, the situation is more complicated and the results less nice, since there will often be speculations inside the for loop that can require a rematerialization of the iterator object" 14:24
oops, "In reality..."
the wondering being actually the next part "but personally I find this kind of result to be a very promising indicator that type feedback + static optimizations can produce code similar to what a tracing JIT may be able to achieve."
and how much are the correctness checks for rematerialising going to cost? 14:25
14:34 fhelmberger left
hoelzro moring #perl6 14:34
14:35 rindolf left 14:36 jnap1 joined 14:37 jnap left
vendethiel r: say (^4)[1..*] 14:38
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«1 2 3␤»
vendethiel r: say (^4)[0..*-1]
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«0 1 2 3␤»
14:41 hoverboard joined 14:47 rurban joined
vendethiel github.com/Nami-Doc/Changelog.pl6 14:48
14:49 hoverboard left
vendethiel It even seems to work ! 14:50
14:51 hoverboard joined 15:02 sftp left 15:03 jnap joined, virtualsue joined, jnap left 15:04 sftp joined 15:06 jnap1 left 15:09 jnap joined 15:11 denis_boyun left, LLamaRider left 15:14 dayangkun left
vendethiel r: say "salut".tr(" -_abcdefghijklmnopqrstuvwxyz1234567890", " -_ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz⇂ᄅƐㄣގ9ㄥ860") 15:14
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«No such method 'tr' for invocant of type 'Str'␤ in block at /tmp/tmpfile:1␤␤»
brrt jcatalogus.rug.nl/DB=1/SET=3/TTL=111/SHW?FRST=111 omg my library has a book called 'Perl 6 Essentials' 15:18
vendethiel "foutIk ben uw resultaten vergeten" 15:22
dalek ast: 5a1a50a | (Timo Paulssen)++ | S03-operators/orelse.t:
orelse isn't supposed to "try" its LHS
15:23
timotimo p6weekly.wordpress.com/?p=137&s...2c3962a069 - would like some feedback :) 15:26
(don't forget to put your name in the box on the left if you use that)
(i also accept feedback on irc)
vendethiel timotimo: you can remove the outer `try` in that case :-) 15:27
brrt excuse me : catalogus.rug.nl/DB=1/XMLPRS=Y/PPN?PPN=250239264
15:27 dayangkun joined
timotimo oh, yes i can 15:28
and probably also the CATCH, right?
15:28 dayangkun left
vendethiel yes 15:29
15:29 dayangkun joined
vendethiel No need to try `orelse` exception semantics if it has none :) 15:29
r: say { die "foo" } // 1;
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«Block.new()␤»
vendethiel r: say (try { die "foo" } // 1);
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«1␤»
vendethiel r: say (try { 5 } // 1); 15:30
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«5␤»
vendethiel is still unsure why orelse is needed
15:30 dayangkun left
vendethiel r: say (try { die "oh noes" } // ~$!); 15:30
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«oh noes␤»
dalek ast: 49c0367 | (Timo Paulssen)++ | S03-operators/orelse.t:
make the whole "exception semantics" situation clearer.
timotimo how do you feel about this?
15:31 dayangkun joined 15:32 zakharyas left
vendethiel looks good, though that could very well end the same way :) 15:32
timotimo aye, since try automatically sets $! anyway >_> 15:33
if you want to continue this ... wizard needs food, badly
15:34 brrt left
vendethiel this wizard will do some osu! then look back at the spec :) 15:36
vendethiel .oO( First time I'm in the p6weekly ... And it's a fail ! Ha ! :P ) 15:37
15:37 treehug88 left
timotimo it's *my* fail :) 15:38
i can also leave that point out if you'd rather not show up in that context
vendethiel I'm fine with leaving that point as-is, but I'd rather get us correct tests and brag about it in the p6weekly :P 15:39
15:39 LLamaRider joined
vendethiel //'s doc says that "orelse is low-precedence, similar but not identic" 15:39
also, it seems `try { die "a" } orelse try { die "b" }` will return `try { die "b" }`'s result 15:41
r: say (try { die "a" } // try { die "b" })
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«Nil␤»
jnthn back from teaching
timotimo: Worth noting that the work to take advantage of the onlystar proto thing is not merged yet 15:42
timotimo: The MoarVM bit is there but the NQP and Rakudo changes are in branches
or at least the NQP one is
uh
or at least the Rakudo one is
Also it's not a new cache, it's just bypassing invoking the onlystar proto at all.
timotimo oh 15:43
jnthn I have a bit more to do before it's mergeable
timotimo where did i see that? o_O
timotimo just drops that point 15:44
jnthn timotimo: Also note that getattr and box/unbox aren't spesh'd yet, but the infrastructure is there to do it
We'll have 'em soon
bindattr and create are though, so that's correct :) 15:45
timotimo: Also, last week said: 15:46
"However, the I/O subsystem has almost no locks in it, so doing I/O from multiple threads simultaneously is likely going to produce “interesting” results. "
That has been addressed by now :)
15:47 treehug88 joined
[Coke] that library link doesn't work without your session, it seems. that book is very out of date and has a lot about an old version of parrot, IIRC. 15:51
vendethiel r: lol (1, (2, (3, 4))) 15:53
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ lol used at line 1. Did you mean 'log'?␤␤»
vendethiel r: try fail "can't touch this"; 15:55
camelia rakudo-moar c57500: OUTPUT«Unhandled exception: can't touch this␤ at src/gen/m-CORE.setting:11047 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:129)␤ from src/gen/m-CORE.setting:12481 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.se…»
..rakudo-jvm c57500: OUTPUT«Unhandled exception: can't touch this␤ in throw (gen/jvm/CORE.setting:10988)␤ in sink (gen/jvm/CORE.setting:12424)␤ in MAIN (gen/jvm/main.nqp:47)␤ in (gen/jvm/main.nqp:41)␤ in (gen/jvm/main.nqp)␤␤»
..rakudo-parrot c57500: OUTPUT«can't touch this␤current instr.: 'throw' pc 418069 (src/gen/p-CORE.setting.pir:174958) (gen/parrot/CORE.setting:11008)␤called from Sub 'sink' pc 456250 (src/gen/p-CORE.setting.pir:189173) (gen/parrot/CORE.setting:12445)␤called from Sub 'MAIN' pc 37…»
vendethiel r: my $x; my $y ::= $x; $x = 5; say $y; $y = 5; say $x; 15:56
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«5␤5␤»
vendethiel r: my $x; my $y ::= $x; $x = 5; say $y; $y = 6; say $x; 15:57
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«5␤6␤»
vendethiel Shouldn't that fail because "::=" makes it readonly ?
15:58 LLamaRider left
vendethiel r: my $a ::= 5; { say $a; $a = 5; } say $a; 16:01
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> my $a ::= 5; { say $a; $a = 5; } ⏏say $a;␤ expecting any of:␤ p…»
vendethiel r: my $a ::= 5; { say $a; $a = 5; }; say $a;
camelia rakudo-moar c57500: OUTPUT«5␤No such method 'STORE' for invocant of type 'Int'␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot c57500, rakudo-jvm c57500: OUTPUT«5␤Cannot modify an immutable value␤ in block at /tmp/tmpfile:1␤␤»
vendethiel I'd say moar result is wrong ?
16:01 bfulgham_ joined
moritz vendethiel: yes; there's a ticket open for that (and failing tests) 16:02
jnthn Just sub-optimal error reporting 16:04
16:04 bluescreen10 left, bluescreen100 joined, daniel-s_ left 16:11 denis_boyun_ joined 16:15 benabik left 16:23 [particle] joined 16:24 kaleem left 16:38 treehug88 left, qiang left, treehug88 joined 16:39 spider-mario joined 16:42 guru joined 16:43 guru is now known as ajr_, benabik joined 16:47 Rotwang joined
vendethiel r: (my $x = 1) = 2; say $x; 16:54
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«2␤»
16:57 isBEKaml joined
vendethiel r: sub a is rw { state $x; }; $a() = 5; say $a; 16:57
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$a' is not declared␤at /tmp/tmpfile:1␤------> sub a is rw { state $x; }; $a()⏏ = 5; say $a;␤ expecting any …»
vendethiel r: sub a is rw { state $x; }; a() = 5; say a; 16:58
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«5␤»
jnthn Not sure I've seen that trick before :)
16:58 kivutar joined 16:59 dmol joined
vendethiel \o/ 17:00
vendethiel wonders ...
17:01 dakkar left
vendethiel r: sub a is rw { state $ }; a() = 5; say a; 17:01
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«5␤»
vendethiel p6++
retupmoca I just build a rakudo on moar/spesh - no new spectest fails that I see, and installing panda and a few modules works fine 17:03
from where I'm sitting, spesh Just Works \o/
s/build/built 17:04
17:04 virtualsue left
isBEKaml retupmoca: what's spesh? 17:04
retupmoca an optimization branch of moarvm 17:05
jnthn will have to try and get a blog post out about it soon 17:06
isBEKaml cool, what does spesh stand for? :-)
I guess this is another one of jnthn++'s too-short-for-a-name things. I still remember how he named a branch 'bs' for bounded serialization. 17:07
jnthn isBEKaml: "specialization" as in "type-driven bytecode specialization"
vendethiel -- is it bound ? bind ? bounded ? binded ? 17:08
17:09 rurban left, rurban joined
isBEKaml jnthn: what is it for? faster numeric computation? (now it's t.d.b.s) 17:09
jnthn isBEKaml: Well, it may help on that, but much more about optimizing dispatch, memory access, argument handling, etc. 17:11
cognominal I wish git would impose to declare what a branch is for. Or do I miss something?
PerlJam so ... spesh is faster/
cognominal: you can give a branch a short description with --edit-description 17:12
jnthn PerlJam: Typically, yes.
cognominal PelJam and how could I view it?
PerlJam cognominal: very annoyingly. :( I ended up writing a little script to do it. It'll show up in the config as branch.BRANCHNAME.description 17:13
isBEKaml jnthn: Ah, I see. But... do you always choose something with "b.s" in it? :P 17:14
cognominal I never understood what "bounded" stood for in bs 17:15
Perl 6, a language well speshified... with moar, at leat. 17:18
arnsholt cognominal: IIRC, it's bounded in the sense that you serialise a whole object graph, but stop once the graph reaches certain boundaries 17:19
PerlJam I thought it meant bounded as controlling the extent of serialization.
what arnsholt said
cognominal meaning the currently compiled compilation unit? 17:20
arnsholt Something like that. I'm not very clear on the detail, but some things like the base metaobject for sixmodel and such, we don't actually want to serialise is the way I grokked it 17:21
17:23 raiph joined
jnthn Well, consider a A.pm with class A { }, and a B.pm with use A; class B is A { } 17:24
When pre-compiling B.pm, we don't want to re-serialize the stuff in A.pm. 17:25
arnsholt Yeah, that makes sense. Bounded by the current compilation unit, I guess?
jnthn Yeah, it's about comp units 17:26
At least, until augment
arnsholt Oh, heh. Always the wrinkle, in this language, isn't there? =) 17:27
Anyways, bounded by compilation unit should make it easier to remember next time this topic comes up =)
cognominal bbcu does not sound like bs :) 17:28
17:30 kurahaupo joined
jnthn om nom bbcu :) 17:30
timotimo jnthn: i've incorporated your changes
jnthn timotimo: Which changes? 17:31
timotimo p6weekly.wordpress.com/?p=137&s...2e0e149db2
jnthn oh!
heh, forgot already :)
raiph questhub.io/realm/perl/quest/5342d...e03f000059 # quest to clarify (for me and P6 community) the relevance of Futamura projections to NQP and Rakudo (can we "easily" steal PyPy's "secret sauce" rather than use PyPy?) 17:32
arnsholt timotimo: s/publicised/published/
isBEKaml raiph: "Futamura" ??
jnthn timotimo: looks good 17:33
raiph isBEKaml: I've added a comment to the quest that introduces the topic
isBEKaml: I've only just come to understand how PyPy gets to be fast 17:35
isBEKaml raiph: a search for futamura gave me this: github.com/zombiecalypse/Futamura 17:36
but that's over 2 years old.
raiph I haven't yet figured if patrick/jnthn know all this stuff or have just "accidentally" built the right pieces to pull it off or if I'm off base 17:38
isBEKaml and then there's this: en.wikipedia.org/wiki/Partial_evalu...rojections and a blog by sigfpe: blog.sigfpe.com/2009/05/three-proje...amura.html 17:40
raiph isBEKaml: yeah, those last two links are in my intro comment
isBEKaml raiph: sorry, your comment is too-long for a comment that I didn't sit down at all. :-) 17:41
raiph if anyone here should know it's timotimo but he seems to have focused on NQP targeting pypy rather than nqp just doing its own equivalent of what pypy does 17:42
timotimo aye 17:43
isBEKaml yeah, I can understand that. target VMs/backends and you get free specialized optimizations.
raiph timotimo: am I right to think NQP really ought to (or already does) leverage (something akin to) the futamura projections approach? 17:45
dalek kudo-star-daily: 71df6cb | coke++ | log/ (5 files):
today (automated commit)
rl6-roast-data: 47692cd | coke++ | / (6 files):
today (automated commit)
17:47 benabik left
dalek kudo/nom: 2991f8e | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Naively add .object attribute to Method::NotFound

Part of work in progress
17:54
17:58 rindolf joined
moritz lizmat++ # though I'd prefer it if the attribute was called 'invocant', because nearly everything is an object, so 'object' is very generic 18:00
raiph isBEKaml: news.ycombinator.com/item?id=7061360#up_7061913 # I'm adding this to my quest comment as the best quick explanation I've yet found about Futamura projections and PyPy 18:03
18:06 xinming_ left
isBEKaml raiph: yeah, that helps - but I still don't understand why it is important to perl6. :-) 18:07
18:08 xinming_ joined
isBEKaml AFAICS, it's only pypy that's managed to fulfill some of the projections and it's something of an outlier. I remember being frustrated trying to build pypy. (too much computation power required and I have nothing :P) 18:09
vendethiel r: Enum o <foo bar baz>; say foo before bar 18:10
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> Enum ⏏o <foo bar baz>; say foo before bar␤ expecting any of:␤ p…»
vendethiel r: enum o <foo bar baz>; say foo before bar
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«True␤»
vendethiel r: enum o <foo bar baz>; enum z <baz bar foo>; say foo before bar 18:11
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«False␤»
vendethiel Well.
r: enum o <foo bar baz>; enum z <baz bar foo>; say o.foo before o.bar
camelia rakudo-parrot c57500, rakudo-jvm c57500, rakudo-moar c57500: OUTPUT«No such method 'foo' for invocant of type 'o'␤ in block at /tmp/tmpfile:1␤␤»
PerlJam vendethiel: you need :: instead of . 18:12
vendethiel PerlJam: got that already :)
Just decided to whisper camelia instead 18:13
raiph isBEKaml: afaict NQP is poised to be a better PyPy, including the third projection, and aiui this would be a good thing. I'm trying to figure out if that's true or not and if jnthn et al have already thought this through.
18:14 itz__ left
vendethiel wants to see a nqp better than pypy ! 18:15
18:15 itz_ joined
raiph vendethiel: do you know of anything, other than tuits, that blocks application of the Futamura projection principles to NQP? 18:17
isBEKaml would be happy just to build NQP when it fufills all of the projections. Not aiming all that high...
vendethiel raiph: no, I was just referring at the time factor 18:18
raiph Anyhoo, the penny has only just dropped for me on Futamura projections and they are by far the most interesting optimization technique I've encountered in my life (I'm 54 and I've been exploring the fundamentals of CS for about 30 years) 18:23
(though I'm not claiming I really understand much of it) 18:25
18:27 isBEKaml left 18:42 ajr joined, ajr_ left, ajr is now known as Guest97040, Guest97040 is now known as ajr_
BenGoldberg keeps reading Futamura as Futurama 18:43
tadzik oh, I was sure it's Futurama 18:44
heh
dalek kudo/nom: f524e97 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
s/object/invocant/ as per moritz++ suggestion
PerlJam lizmat++ moritz++ 18:45
18:52 bfulgham_ left 18:54 dwarring joined 18:56 bfulgham_ joined 19:04 benabik joined 19:05 ajr_ left
raiph m: sub a is rw { state $ }; a() = 5, 6; say a; # why does this work? vendethiel? 19:05
camelia rakudo-moar 2991f8: OUTPUT«5 6␤»
raiph m: sub a is rw { state $; }; a() = 5, 6; say a; # and why not this?
camelia rakudo-moar 2991f8: OUTPUT«===SORRY!=== Error while compiling /tmp/wNUdjKoF50␤Unsupported use of $; variable; in Perl 6 please use real multidimensional hashes␤at /tmp/wNUdjKoF50:1␤------> sub a is rw { state $;⏏ }; a() = 5, 6; say a; # and w…»
raiph m: sub a is rw { state $ ; }; a() = 5, 6; say a; # and why not this?
camelia rakudo-moar 2991f8: OUTPUT«5 6␤»
19:06 bluescreen100 left, denis_boyun___ joined
vendethiel raiph: not sure what the question is ? 19:06
19:06 bluescreen100 joined
vendethiel raiph: I mean -- your second snippet works 19:06
raiph vendethiel: yeah I was just a bit surprised "state $;" is being disallowed 19:07
19:07 denis_boyun_ left
vendethiel raiph: I think it sees "$;" as a single variable name :) 19:08
Probably a perl5 special variable ?
jnthn std: sub a is rw { state $; };
camelia std e347792: OUTPUT«===SORRY!===␤Unsupported use of $; variable; in Perl 6 please use real multidimensional hashes at /tmp/xfApfTiWy5 line 1:␤------> sub a is rw { state $;⏏ };␤Parse failed␤FAILED 00:01 124m␤»
jnthn It's one of the p5 special variables, yeah
vendethiel too bad this causes parse errors like that 19:09
BenGoldberg In perl5, the $; variable allows one to pretend a single dimensional hash is multidimensional. If, in perl5, you do $hash{$a, $b, $c} = 1, it will internally do: $hash{ join $;, $a, $b, $c } = 1
benabik std: sub a is rw { state $ ; } #? 19:10
camelia std e347792: OUTPUT«ok 00:01 124m␤»
raiph vendethiel: but I'm still intrigued at why your original snippet even works
vendethiel raiph: well, I can just get a nameless variable $. Then I decide it's a const, like C's static keyword : it won't change between invocation :
lizmat std: sub a is rw { state $ } # why bother with the semi-colon at all?
vendethiel r: sub inc { state $i = 0; ++$i }; say inc; say inc; say inc;
lizmat: that's my original snippet :-) 19:11
BenGoldberg It's probably storing a Parcel into the nameless state variable
camelia std e347792: OUTPUT«ok 00:01 124m␤»
rakudo-jvm 2991f8: OUTPUT«(timeout)»
..rakudo-parrot 2991f8, rakudo-moar 2991f8: OUTPUT«1␤2␤3␤»
vendethiel and since it `is rw`, it returns the parcel to that state
BenGoldberg r: sub a { ++( state $ = 0 ) }; say a, a, a
camelia rakudo-parrot 2991f8, rakudo-jvm 2991f8, rakudo-moar 2991f8: OUTPUT«123␤»
lizmat vendethiel: oops, you're right :-)
jnthn a() is not a scalar LHS, meaning it parses list prec on the RHS 19:13
19:17 darutoko left 19:18 pecastro left
lizmat r: my @a=^10; say (@a[*-1]:k).WHAT 19:20
camelia rakudo-parrot 2991f8, rakudo-jvm 2991f8, rakudo-moar 2991f8: OUTPUT«(Parcel)␤»
lizmat this should be fixed soon
dalek kudo/nom: be722dc | (Elizabeth Mattijsen)++ | src/core/array_slice.pm:
Fix Parcelness of @a[*-1] slices with adverbs

Before this, these would always return a Parcel, even when it was clear only one element was requested.
19:22
lizmat $ perl6 -e 'my @a=^10; say (@a[*-1]:v).WHAT'
(Int)
although I must admit I'm not at all happy about the way this was fixed. 19:23
19:23 guru joined, guru is now known as ajr_ 19:24 pecastro joined 19:26 aborazmeh left 19:28 aborazmeh joined 19:31 bluescreen__ joined 19:32 pecastro left
dalek kudo/nom: b428e8c | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Some Changelog fixes
19:33
19:35 bluescreen100 left, jnap left 19:40 BenGoldberg left
lizmat jnthn: even when we're limiting winner {} to channels only, then you're still going to see re-do of any code blocks associated with "done" :-( 19:41
hmm... perhaps not, lemme check
I just reallized I can refrain from adding an already closed channel to the "todo" list 19:43
19:44 jnap joined 19:45 Rotwang left 19:48 jnap1 joined, jnap left
nwc10 meanwhile, hippyvm.com/blog is curious (PHP atop PyPy. Code has moved from bitbucked to github and seemingly mislaid all mecurial history on the wawy) 19:54
geekosaur not unusual, sadly 19:56
if the branching is at all odd, it's not possible to preserve history on migration
vendethiel dislikes mercurial a lot
(also, bitbucket does github)
geekosaur prefers hg to git, tbh 19:57
timotimo has had a whole lot of frustration with hg so far 19:58
vendethiel this exactly. Lost around 2h trying to remote debug something before I realize hg corrupted the repo there. 19:59
timotimo i just experienced it working against my wishes and desires
"oh, no, you can't do that easily. just do a fresh clone and move the stuff over with unified diffs or something" 20:00
yeah, thanks
benabik uses `git clone hg::ssh://host/path/to/hg/repo` whenever he has to use hg.
Have to have installed git-remote-hg to do that. It’s in the contrib/ dir of git.git, don’t know if it’s commonly packaged. 20:01
20:02 nebuchad` joined
nwc10 hippyvm is touting more speedup than HHVM. Does HHVM use reference counting or a "real" GC? and either way, how much PHP code relies on the timely semantics of reference counting? 20:03
much like a chunk of Perl 5 code assumes that it knows when DESTROY fires
20:03 bonsaikitten joined
timotimo raiph: would you like to post my p6weekly to the reddits? 20:04
nwc10 they mention it here: morepypy.blogspot.co.at/2012/07/hel...ryone.html -- The project's biggest deviation from the PHP specification is probably that GC is no longer reference counting. That means that the object finalizer, when implemented, will not be called directly at the moment of object death, but at some later point.
raiph just reading it now with that as the plan :)
20:04 simcop2387_ joined
timotimo thank you kindly 20:05
20:05 jnthn_ joined, integral_ joined, cxreg2 joined, frettled_ joined 20:06 segomos_ joined, perlpilot joined 20:07 jlaire_ joined 20:09 ivan``_ joined, ribasushi_ joined, lestaway joined
lizmat timotimo++, raiph++ 20:10
20:10 woolfy1 left, jlaire left, simcop2387 left, PerlJam left, ribasushi left, nebuchadnezzar left, lestrrat left, ivan`` left, xiaomiao left, silug____ left, jnthn left, frettled left, go|dfish left, integral left, segomos left, simcop2387_ is now known as simcop2387, ribasushi_ is now known as ribasushi, jnthn_ is now known as jnthn, lestaway is now known as lestrrat
lizmat jnthn: nope, winner {} with only channels is also broken 20:11
unless you don't mind it calling "done" N times instead of 1
20:17 go|dfish joined 20:19 woolfy joined
jnthn lizmat: Thing is, winner is typically used when you're multiplexing a bunch of channels. 20:21
lizmat but how many times do you expect the "done" for a channel to be called ?
because the way it is now, thats 1..Inf times 20:22
jnthn I dunno. I don't tend to use channels like that elsewhere...
That is, my use cases where I've got channels that have an end point and get closed are typically useful when I plan to sit consuming a single one... 20:23
lizmat you mean, you don't tend to use winner {} ??
jnthn I mean, when I use winner-like constructs elsewhere I don't tend to have an endpoint
That is, a point when a channel closes
Tend to be more "infinite"
lizmat aha indeed
jnthn While SEDA-like situations tend to involve a single input channel 20:24
Thus for $channel.list { ... } is actually a perfectly fine way to consume.
lizmat but if you want to consume from multiple channels simultaneously
as long as they're infinite, it's ok 20:25
jnthn Yeah. I'm trying to recall a situation where I had that *and* finite...
Oh, I guess I can.
lizmat as soon as you start to depend on the "done" code being done once for a closed channel, you have a problem in the current implementation of winner {}
20:25 hoverboard left
jnthn But in that case I expected the same number of items on all channels so as soon as one thing was completed the lot would be. 20:25
Yeah, I see the issue. 20:26
lizmat how can you be sure the channels finish at the same time?
20:26 silug____ joined
jnthn Well, I "can't", except I know my program pushes the same number of things down them. 20:26
lizmat ok, fair enough
in the winner {} test, I have to do this hack to make it stop when all channels have closed: 20:27
done @c { %done{$:k}++; last if +%done == 2 }
jnthn *nod*
Yeah, it's...icky.
dalek kudo/nom: 3e72f70 | (Elizabeth Mattijsen)++ | src/core/asyncops.pm:
winner {} is only about channels and not promises
20:39
ast: f6d09ab | (Elizabeth Mattijsen)++ | S17-concurrency/winner.t:
winner {} is only about promises
lue Huh? 20:40
lizmat oops... channels :-) 20:41
grrr
jnthn o.O
:)
20:42 spider-mario left
lizmat hmmm... not sure how to fix an already pushed commit message remotely 20:42
jnthn you...don't. :)
vendethiel (you'd have to force-push -- don't !) 20:43
benabik Well, you can fix it locally and overwrite the remote version. But it’s considered a bit rude.
dalek ast: 8b9265f | (Elizabeth Mattijsen)++ | S17-concurrency/winner.t:
Elaborate on winner {} and multiple *channels* (only)
20:45
20:51 kaare_ left
colomon was going to read the S17 spec this week, but it's already changed about five times since he decided that. 20:51
vendethiel read the S17 spec, can't remember anything about it, and will probably have to re-read it later 20:52
dalek ast: e414443 | (David Warring [email@hidden.address] | integration/advent2013-day14.t:
remove commented code
20:55
ast: 2aa7b50 | (David Warring [email@hidden.address] | integration/advent2013-day21.t:
adding advent 2013 day 21
ast: 3ff5fbb | (David Warring [email@hidden.address] | S17-concurrency/winner.t:
Merge branch 'master' of github.com/perl6/roast
20:58 hoverboard joined 21:00 dayangkun left 21:05 lue left 21:07 Exodist joined 21:08 yves__ joined 21:09 lue joined
dalek ast: 792f7a8 | (Elizabeth Mattijsen)++ | S17-concurrency/lock.t:
Add diag message for thread running *after* join
21:09
21:10 Grimnir_ joined
dalek kudo/nom: 45863ee | jonathan++ | src/core/ (3 files):
Remove unused parameter names.
21:11
kudo/nom: caa39a8 | jonathan++ | src/Perl6/Actions.nqp:
Mark generated *%_ as having hash sigil.

This prevents it getting wrapped up in an extra scalar container.
kudo/nom: ebd3729 | jonathan++ | src/Perl6/Actions.nqp:
Simplify code-gen of slurpy things.
lizmat runs spectest, then pulls, then runs spectest again 21:12
21:14 kurahaupo left 21:17 dayangkun joined
lizmat unscientific testing shows spectest is using ~ 1% CPU less in about 1% less time 21:24
Files=801, Tests=31032, 205 wallclock secs ( 8.07 usr 3.68 sys + 1377.39 cusr 95.43 csys = 1484.57 CPU)
Files=801, Tests=31032, 203 wallclock secs ( 8.06 usr 3.67 sys + 1362.08 cusr 95.76 csys = 1469.57 CPU)
jnthn That's probably noise... 21:25
Nice you can spectest in 203s though :) 21:26
timotimo that's amazing
how many parallel tests is that? 21:27
21:27 kivutar left
lizmat 8 21:28
Files=801, Tests=31028, 206 wallclock secs ( 8.36 usr 3.70 sys + 1372.86 cusr 96.37 csys = 1481.29 CPU) 21:29
21:29 kbaker_ left
lizmat and a test failure on t/spec/S04-phasers/first.t 21:29
jnthn hm, odd... 21:30
didn't get that here.
lizmat $ perl6 t/spec/S04-phasers/first.t
1..4
ok 1 - FIRST only ran once
ok 2 - FIRST {} ran before the loop body
Segmentation fault: 11
not consistently though
many ok runs, but also this one: 21:31
$ perl6 t/spec/S04-phasers/first.t
1..4
Segmentation fault: 11
jnthn lizmat: That on Moar master, or spesh?
lizmat hmmm... seems to segfault after any test
master 21:32
$ perl6 -v
This is perl6 version 2014.03.01-83-gebd3729 built on MoarVM version 2014.03-63-g81d57d5
21:35 bluescreen__ left 21:37 BenGoldberg joined
lizmat jnthn: it's *not* the last commit 21:39
jnthn Hm, ok 21:42
jnthn wonders which it'll be... 21:43
None of them seem likely candidates.
lizmat caa39a8f6c6e8bfcdd514ed4f643f3a317ab62f7 breaks it
I would assume special blocks somehow need it? Or don't have *%_ set up at all ? 21:44
jnthn lizmat: It's not about special blocks at all; it only impacts method declarations... 21:46
21:47 bluescreen__ joined
jnthn lizmat: It's really odd. I can't at all see how it could lead to a SEGV... 21:50
21:50 rindolf left
lizmat checks again to make doubly sure it is caa39a8f6c6e8bfcdd514ed4f643f3a317ab62f7 who breaks things 21:50
segfault on the 4th run of t/spec/S04-phasers/first.t 21:53
going back one more commit
21:53 rurban left
lizmat 20 runs of t/spec/S04-phasers/first.t and not a single failure 21:56
jnthn: so I'm afraid caa39a8f6c6e8bfcdd514ed4f643f3a317ab62f7 is the one :-(
jnthn ugh
OK. I've no idea what it could be.
lizmat checking other special blocks 21:58
to see if it is only FIRST, or any other phaser 21:59
jnthn OK 22:00
It's the "only fails sometimes" that worries me...
lizmat yes, and that's even without threads :-( 22:03
FWIW, it only seems to happen with FIRST 22:04
22:04 rurban joined
lizmat seems a lot harder to get other tests in t/spec/S04-phasers to fail 22:04
some are failing, but they don't appear to be part of spectest.data
22:06 jnap1 left, colomon left 22:07 treehug88 left
lizmat phasers are stored in a hash, so maybe key order differences between runs could be an explanation? 22:07
jnthn maybe, but it still doesn't explain it too well... 22:08
BenGoldberg Silly question about hash ordering: While I realize that it's arbitrary, and cannot be depended on to be the same from one run to the next... how much effort goes into making the order *different* from one run to the next? 22:11
22:11 Alula left, rurban left, bluescreen__ left, colomon joined
dalek kudo/nom: 2b89776 | jonathan++ | src/Perl6/Actions.nqp:
Avoid parameter re-containering when possible.

In sub foo(Int $a) { ... }, we needn't wrap the incoming parameter up in a scalar container, and instead can decontainerize and bind it. It is safe since Int !~~ Iterable and Iterable !~~ Int, and thus we know it doesn't need the container to promise non-flattening.
22:11
22:12 Alula joined
lizmat pulls and tests 22:12
jnthn lizmat: Having trouble re-creating what you're seeing; I'll try some more tomorrow and also try to run it under the debugger.
lizmat ack, almost time for sleep for me anyway
jnthn lizmat: With the above I'm still at a non-regressed state.
Also, above avoids quite a few more container creations.
22:13 denis_boyun___ left
lizmat will run spectest and will report 22:13
jnthn also:
9 843 335 CORE.setting.moarvm # before my work this evening
9 727 828 CORE.setting.moarvm # after my work this evening
lizmat ~1% cool!
still seeing segfault in first.t 22:15
jnthn aww
tadzik not bad :)
jnthn Any chance of a gdb backtrace?
(tomorrow is fine, I'm gonna sleep now anyways)
lizmat running full spectest to see if there is other breakage
won't have much time tomorrow, mostly on the road to Zurich
appweb2.ethz.ch/kurswesen/evento/di...nlass=1458 22:17
from www.oetiker.ch/en/itservices/teachi...way-en-us/
jnthn cool 22:18
tadzik hah, r-m does forestfire significantly faster than r-j :) 22:22
lizmat no apparent other breakage in spectest with latest commit 22:23
22:24 rurban joined
jnthn ok 22:26
lizmat gets some shuteye 22:27
good night #perl6!
jnthn too
'night o/
tadzik o/
22:28 rurban left 22:38 hoverboard left 22:42 ivan``_ left 22:44 jnap joined 22:45 raiph left 22:48 ivan`` joined, ivan`` left, ivan`` joined 22:52 timo joined, timo is now known as timo` 22:53 dmol left, rurban joined 22:54 timo` left, timo` joined
timo` wow 23:00
time to replace all ssh keys
what a massive bother 23:01
colomon ?
timo` heartbleed.com
colomon :( 23:02
23:02 hoverboard joined
geekosaur what? 23:02
no
ssh keys are not affected by this
timo` host keys 23:03
geekosaur TLS keys are
ssh does not use TLS
timo` oh?
geekosaur in particular ssh implements its own heartbeat, it *cannot* use the TLS heartbeat. completely incompatible protocol
colomon oh, openSSL, not openSSH
timo` well, that is a relief
colomon one important letter different! \o/ 23:04
geekosaur openssh does use openssl for crypto but it cannot use the TLS protocol and it's (an extension to) the TLS protocol that has the bug
timo` thanks for clearing that up!
colomon geekosaur++
geekosaur it does mean that any server that uses https and uses openssl to implement it may have had its key stolen though 23:05
timo` aye
i'll have a rakudo-moar benchmark of latest spesh changes soon and i'm also going to run nqp again for good measure 23:08
then i'll build a diff between 2014.03 nqp and rakudo against current master/spesh
23:29 btyler left
timo` need to build rakudo-moar/2014.03 first 23:36
23:41 rurban left 23:42 hoverboard left 23:51 timo` left, timo joined 23:52 timo is now known as Guest20599 23:53 Guest20599 is now known as timotimo 23:58 bfulgham_ left 23:59 ajr_ left