»ö« 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 SixModelObjectcurrent 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 SixModelObjectcurrent 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 SixModelObjectcurrent 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 SixModelObjectcurrent 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/wVBuKeFrkUVariable '$xx' is not declaredat /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«123too many positional arguments: 3 passed, 1 expectedcurrent 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«2too many positional arguments: 2 passed, 1 expectedcurrent instr.: 's_m' pc 125 ((file unknown):78) (/tmp/tmpfile:1)» | |||
..nqp-jvm: OUTPUT«2P6int 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«tornadokangarooicegoatsnowbearfirebearsnowkangaroo» | ||
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/CIu9oT7EygUndeclared 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/tmpfileUndeclared 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 thiscurrent 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«55» | ||
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«56» | ||
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/tmpfileTwo terms in a rowat /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«5No such method 'STORE' for invocant of type 'Int' in block at /tmp/tmpfile:1» | ||
..rakudo-parrot c57500, rakudo-jvm c57500: OUTPUT«5Cannot 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/tmpfileVariable '$a' is not declaredat /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/tmpfileTwo terms in a rowat /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/wNUdjKoF50Unsupported use of $; variable; in Perl 6 please use real multidimensional hashesat /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 failedFAILED 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«123» | |||
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
|