»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:01
tgt_ left
00:03
xenoterracide left
00:07
virtualsue left
00:27
zwut00 joined
00:28
zwut00 left
00:35
berekuk_ left
00:41
go|dfish left,
clsn joined
00:45
go|dfish joined
00:52
ty joined,
ty is now known as Guest69589
01:01
jnap left
01:03
fridim__ joined
01:08
hoverboard left
01:25
stevan_ joined
02:02
jnap joined
02:03
xenoterracide joined
02:06
jnap left
02:09
hoverboard joined
02:21
bowtie joined
02:29
stevan_ left
02:30
stevan_ joined
02:32
FROGGS_ joined
02:36
FROGGS left
02:45
jnap joined
02:46
klapperl_ joined
02:49
klapperl left,
jnap left
03:07
FROGGS_ left
03:31
fridim__ left
03:34
jnap joined
03:37
rhe joined
03:38
rhe left
03:51
xenoterracide left
04:02
__thou left
04:03
araujo left
04:08
jnap left
04:12
xenoterracide joined
04:17
xinming_ left,
xinming joined
04:47
xinming_ joined
04:50
xinming left
05:05
BenGoldberg left
05:08
wooden joined,
wooden left,
wooden joined
05:44
xinming_ left
05:45
xinming joined
05:47
wooden left
|
|||
lue | r: sub foo($a) { say $a.perl }; foo; foo(one(1,2,3)); # I would expect this to fail, because Junction !~~ Any . Is this just a WAT on my part? | 05:51 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileCalling 'foo' requires arguments Expected: :(Any $a)at /tmp/tmpfile:1------> sub foo($a) { say $a.perl }; ⏏foo; foo(on…» | ||
lue | r: sub foo($a?) { say $a.perl }; foo; foo(one(1,2,3)); # I would expect this to fail, because Junction !~~ Any . Is this just a WAT on my part? | 05:53 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«Any123» | ||
lue | Unlike normal declaration (my $a = Junction vs. my Any $a = Junction), this will work with sub foo(Any $a?) | 05:59 | |
Does seem to be a WAT on my part in any case. | 06:00 | ||
TimToady | r: sub foo($a?) { say $a }; foo; say foo(one(1,2,3)).perl; | 06:03 | |
yoleaux | 28 Feb 2014 23:18Z <lue> TimToady: if I read the last section of S08 correctly (and correctly understand that \foo operates on a Parcel basis), does that mean \foo is considerable as a replacement for ¢foo ? | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«(Any)123one(Bool::True, Bool::True, Bool::True)» | ||
TimToady | it's just autothreading like it's supposed to | ||
lue gets the idea the Junctions both are and aren't suitable to be specified as a type, as opposed to a more generic construct, which is strangely appropriate :P | 06:04 | ||
TimToady: is there a way to say that you want to treat the junction as one object, instead of something to be autothreaded? The only thing I've found is "Junction $a", which sorta ruins the point of the example I was trying to construct. | 06:06 | ||
TimToady | well, you'd have to construct an object with a Junction attribute in order to treat one as an object | 06:08 | |
Junction is outside Any because it's a concept, not an object | |||
06:10
hoverboard left
|
|||
Timbus | r: sub foo($a?) { say $a.perl }; foo; foo(\one(1,2,3)); | 06:10 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«AnyCapture.new( list => (one(1, 2, 3),).list, hash => EnumMap.new())» | ||
lue | OK then. Guess that means my example will have to contend with a boring Mu type to demonstrate that parameters types are Any by default :/ | 06:11 | |
06:35
Guest14435 joined
|
|||
Guest14435 | perl6: say [+] 1,2,3,4 | 06:37 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279, niecza v24-109-g48a8de3: OUTPUT«10» | 06:38 | |
Guest14435 | perl6: say [*] 1,2,3,4 | 06:39 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279, niecza v24-109-g48a8de3: OUTPUT«24» | ||
Guest14435 | niecza: say (1,2,3,4) xC2xC2xBB+«(6,7,8,9) | 06:42 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Two terms in a row at /tmp/y_2Qdm_F26 line 1:------> say (1,2,3,4) ⏏»+«(6,7,8,9)Parse failed» | ||
06:46
Guest14435 left
06:48
vincent22 joined
|
|||
vincent22 | perl6: (1,2,3) »+« (4,5,6) | 06:50 | |
camelia | ( no output ) | ||
vincent22 | per6: (1,3,4) «+» (5,6,7) | 06:51 | |
TimToady | you need a "say" | ||
vincent22 | perl6: say (1,2,3) »+« (4,5,6) | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279, niecza v24-109-g48a8de3: OUTPUT«5 7 9» | ||
vincent22 | per6: say (1,3,4) «+» (5,6,7) | ||
TimToady: thank you! | 06:52 | ||
per6: say (1,3,4) «+» (5,6,7) | 06:53 | ||
TimToady | yu need an 'l' | ||
I need an 'o' :) | |||
vincent22 | perl6: say (1,2,3,4) »+« (4,5,6,1) | 06:56 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279, niecza v24-109-g48a8de3: OUTPUT«5 7 9 5» | ||
vincent22 | perl6: say (1,2,3,4,5,6,7,8,9) »+« (4,5,6,1) | ||
camelia | rakudo-jvm c62279: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same lengthleft: 9 elements, right: 4 elements in sub hyper at gen/jvm/CORE.setting:16736 in sub hyper at gen/jvm/CORE.setting:16727 in block at gen/jvm/CORE.setting:16716…» | ||
..rakudo-parrot c62279: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same lengthleft: 9 elements, right: 4 elements in sub hyper at gen/parrot/CORE.setting:16987 in sub hyper at gen/parrot/CORE.setting:16975 in block at gen/parrot/CORE.se…» | |||
..rakudo-moar c62279: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same lengthleft: 9 elements, right: 4 elements in sub hyper at src/gen/m-CORE.setting:16733 in sub hyper at src/gen/m-CORE.setting:16724 in block at src/gen/m-CORE.setting…» | |||
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Ran off end of non-dwimmy right at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 3347 (ANON @ 34)  at /home/p6eval/niecza/lib/CORE.setting line 3353 (_hyper_posi…» | 06:57 | ||
07:00
vincent22 left
07:33
darutoko joined
07:51
pragma- joined
|
|||
pragma- | whoever drew that Camelia thing should be taken out back and shot. | 07:51 | |
that is all. | |||
07:51
pragma- left
08:03
darutoko- joined
08:05
darutoko left,
darutoko joined
08:07
darutoko- left
08:09
berekuk joined
08:19
berekuk left
08:24
bjz joined
08:27
bjz_ left
08:35
bjz left,
bjz_ joined
08:43
xinming left
08:49
dmol joined
09:03
pippo joined
09:09
colomon left
09:10
colomon joined,
rindolf joined
09:21
molaf joined
09:24
zaydon joined
09:25
zaydon left,
xinming joined
|
|||
timotimo | that doesn't sound like fun | 09:27 | |
09:39
molaf left
09:42
bjz_ left
09:45
bjz joined
|
|||
masak | unless you shoot them with squeaky mice. | 09:51 | |
09:52
spider-mario joined
|
|||
moritz | \o | 09:54 | |
pippo | j: say 3,3,1...4; | 09:55 | |
camelia | rakudo-jvm c62279: OUTPUT«Unable to deduce sequence in method sink at gen/jvm/CORE.setting:12252 in block at gen/jvm/CORE.setting:16285 in block at gen/jvm/CORE.setting:7503 in block at gen/jvm/CORE.setting:7505 in method reify at gen/jvm/CORE.setting:7531 …» | ||
pippo | m: say 3,3,1...4; | ||
camelia | rakudo-moar c62279: OUTPUT«===SORRY!===Unable to deduce sequence» | ||
09:55
tgt joined
|
|||
pippo | m: say (3,3,1...4) <<+>> 1; | 09:57 | |
camelia | rakudo-moar c62279: OUTPUT«===SORRY!===Unable to deduce sequence» | ||
pippo | m: say 1; | 09:58 | |
camelia | rakudo-moar c62279: OUTPUT«1» | ||
10:11
Rotwang joined
10:12
pippo left
10:13
pippo joined,
pippo left,
pippo joined
10:17
xenoterracide left,
xenoterracide_ joined
10:19
pippo left
10:20
pippo joined
10:21
Alula joined
10:23
pippo left
10:25
pippo joined
10:31
xenoterracide_ left
|
|||
timotimo | how is 3,3,1...4 supposed to work? o_O | 10:36 | |
10:38
denis_boyun joined
|
|||
moritz | not at all | 10:41 | |
10:46
berekuk joined
|
|||
colomon | I tried running emmentaler on Moar overnight, it looks like it crashed (after quite a few tests) with the message "Invalid opcode executed (corrupt bytecode stream?) opcode 3584" | 10:48 | |
masak | o.O | 10:49 | |
colomon | hmmm, wonder if the crash is deterministic. | 11:00 | |
./smoker projects.json | |||
===SORRY!=== | |||
Missing or wrong version of dependency 'lib/File/Find.pm' | |||
:\ | |||
11:01
berekuk left
11:05
berekuk joined
11:15
kurahaupo_mobile joined
11:23
berekuk left
11:25
xinming_ joined
11:28
xinming left
11:32
pdcawley left
11:42
pdcawley joined
11:52
berekuk joined
|
|||
colomon | so, pandabrew/bin/pandabrew rebootstrap fixed the "Missing or wrong…" problem above. | 11:55 | |
jnthn | 3584 is not a valid opcode number, I'm fairly sure of that :) | ||
colomon | as nearly as I can figure, this means emmentaler somehow broke the p6 module library | ||
ooo, it is repeatable, and the File::Find thing is partially explained. | 12:00 | ||
==> Successfully installed File::Find | |||
Invalid opcode executed (corrupt bytecode stream?) opcode 3584 | |||
jnthn | colomon: Hmm. Can you reduce it to a smaller test case? | 12:08 | |
colomon | hmmm | ||
timotimo | jnthn: what does today's tuit supply look like? :) | 12:12 | |
jnthn | timotimo: Empty, 'fraid... | 12:14 | |
timotimo | 'tis okay | ||
jnthn | I got done with my course writing workload, but have somebody here to visit for the weekend. | ||
timotimo | mi e seems somewhat shallow as well | ||
jnthn | So figure I should show them around rather than sit hacking all day :) | 12:15 | |
Just ran a spectest to enjoy seeing less S05 fail on r-m though :) | |||
TimToady++ | |||
colomon | jnthn: shorter way of duplicating the bug: try installing File::Find using panda (on MoarVM) | 12:19 | |
12:22
mj41 joined
|
|||
jnthn | colomon: I gotta head out soon, but try gist.github.com/jnthn/9289075 which could tell us the previus op, which may give a hint. | 12:26 | |
12:29
kaare_ left
|
|||
timotimo | set a breakpoint to that line and find out when it happens, then time-traveling-debug it? | 12:31 | |
could set a breakpoint to whatever the previous opcode is, count how often it gets hit, then "c" over that breakpoint the known number of times - 1 and then turn on recording? | |||
jnthn | Sometimes printf is just less work :P | 12:32 | |
timotimo | :) | ||
colomon | hurm, how do I get rakudo to rebuild with that change installed? | 12:33 | |
timotimo | make m-clean | ||
make -j4 m-install | |||
but you don't need to rebuild | |||
jnthn | You don't | ||
Just build a latest Moar and make install it to the same place and run | |||
No need to rebuild nqp or Rakudo for most Moar changes | |||
colomon | ah, I did make but not make install | 12:34 | |
timotimo | that's right (and makes me happy) | ||
12:34
xinming_ left
12:36
xinming joined
|
|||
colomon | ==> Successfully installed File::Find | 12:37 | |
12:37
FROGGS joined
|
|||
colomon | Invalid opcode executed (corrupt bytecode stream?) opcode 3584, prev 139 | 12:37 | |
timotimo | invoke_o? | 12:43 | |
12:44
Rotwang left
|
|||
timotimo | colomon: can you make panda output the command it invokes? | 12:47 | |
and then invoke "moar --dump" with whatever .moarvm file it tries to run? | |||
12:48
treehug88 joined
|
|||
jnthn | Hm, I wonder what it's invoking... | 12:48 | |
Gotta head out now, anyways... | 12:49 | ||
12:50
tgt left
|
|||
colomon is completely lost in the panda source | 12:51 | ||
oooo, maybe.... | 12:53 | ||
"rm_rf" | 12:56 | ||
so… unlink? | |||
oh, hold on | 12:57 | ||
12:57
rindolf left
|
|||
colomon | I'll bet it's actually find (from File::Find) | 12:57 | |
12:58
Rotwang joined
|
|||
timotimo | if you're in gdb, you can print a traceback with a helper function of moarvm | 12:59 | |
colomon | not in gdb | ||
I'm just adding "say" all over the panda / shell::command code | |||
timotimo | hah :) | 13:00 | |
colomon | okay, hypothetically it could be map, sort, or reverse, but I'm betting it is find. | 13:02 | |
this is the line: for find(dir => $path).map({ .Str }).sort.reverse | |||
and it never gets to the first iteration of the for loop | |||
13:04
xinming_ joined
13:06
xinming left
|
|||
colomon | this sounds kind of weird, but my impression is what is happening is the new File::Find panda compiles (incorrectly?) somehow overrides the File::Find which panda is already using. | 13:16 | |
don't really know how to prove that, and I've got $work to do and a five-year-old badgering me to play Lego Star Wars. | 13:17 | ||
timotimo | :D | ||
13:18
rindolf joined
13:23
Rotwang left
13:50
hellwolf joined,
hellwolf left
|
|||
FROGGS | dalek is still not here :/ | 14:05 | |
14:07
pippo left,
pippo joined
|
|||
FROGGS | this is the point where I need to think about open issues left todo in the "eleven" branches | 14:12 | |
I guess doing wrapper for installed scripts for windows would be nice to have | 14:13 | ||
s/doing/doing the/ | |||
14:14
xragnar_ joined,
xragnar is now known as Guest98635,
Guest98635 left,
xragnar_ is now known as xragnar
14:29
mtk0 left
14:31
hoverboard joined
14:32
mtk joined
14:43
raydiak__ is now known as raydiak
14:45
kivutar joined
14:56
fridim__ joined
|
|||
Mouq | Shouldn't this be <&test()> or something? github.com/perl6/roast/blob/master...kets.t#L46 | 15:06 | |
p6: my $pass = 0; my sub test (Int $a = 1) {$pass += $a}; '3.14' ~~ /3 <&test()>/; say $pass | 15:07 | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUnable to parse expression in metachar:sym<assert>; couldn't find final '>' at /tmp/tmpfile:1------> = 1) {$pass += $a}; '3.14' ~~ /3 <…» | ||
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Nominal type check failed in binding '$a' in 'test'; got Cursor, needed Int at /tmp/tmpfile line 0 (test @ 1)  at /tmp/tmpfile line 1 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3119 (Regex.ACCEPTS @ 10) …» | |||
Mouq | p6: my $pass = 0; my sub test (Cursor $c, Int $a = 1) {$pass += $a; $c}; '3.14' ~~ /3 <&test()>/; say $pass | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«1» | ||
..rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUnable to parse expression in metachar:sym<assert>; couldn't find final '>' at /tmp/tmpfile:1------> ) {$pass += $a; $c}; '3.14' ~~ /3 <…» | |||
Mouq | p6: my $pass = 0; my sub test (Cursor $c, Int $a = 1) {$pass += $a; $c}; '3.14' ~~ /3 <&test>/; say $pass | 15:08 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«1» | ||
..rakudo-moar c62279: OUTPUT«P6opaque: no such attribute '$!pos' in method ACCEPTS at src/gen/m-CORE.setting:12593 in method ACCEPTS at src/gen/m-CORE.setting:784 in block at /tmp/tmpfile:1» | |||
..rakudo-parrot c62279: OUTPUT«maximum recursion depth exceededcurrent instr.: 'print_exception' pc 139569 (src/gen/p-CORE.setting.pir:59493) (gen/parrot/CORE.setting:10965)called from Sub 'Bool' pc 451655 (src/gen/p-CORE.setting.pir:187711) (gen/parrot/CORE.setting:12300)cal…» | |||
..rakudo-jvm c62279: OUTPUT«java.lang.RuntimeException: No such attribute '$!pos' for this object in method ACCEPTS at gen/jvm/CORE.setting:12595 in method ACCEPTS at gen/jvm/CORE.setting:784 in block at /tmp/tmpfile:1» | |||
Mouq | o.O | ||
Well, good job niecza. I'm pretty sure those are faulty tests | |||
15:10
segomos joined
|
|||
Mouq | (Though I'm not certain enough to change them. Someone who feels more confident that they are definitely wrong may) | 15:10 | |
r: my $name = 'alpha'; say 'abcdef' ~~ /<::($name)>/ | 15:11 | ||
camelia | rakudo-jvm c62279: OUTPUT«===SORRY!===Cannot stringify this» | ||
..rakudo-moar c62279: OUTPUT«===SORRY!===cannot stringify this» | |||
..rakudo-parrot c62279: OUTPUT«No such method 'QAST::Var<-3372209812372949685>' for invocant of type 'Cursor' in regex at /tmp/tmpfile:1 in method ACCEPTS at gen/parrot/CORE.setting:12616 in method ACCEPTS at gen/parrot/CORE.setting:780 in block at /tmp/tmpfile:1» | |||
15:24
kurahaupo_mobile left
15:25
benabik left,
benabik joined
|
|||
FROGGS | The first character after the identifier determines the treatment of the rest of the text before the closing angle. The underlying semantics is that of a function or method call, so if the first character is a left parenthesis, it really is a call to either a method or function: | 15:30 | |
<foo('bar')> | |||
Mouq: ^^ | |||
but I'd propose to use the & sigil when a sub is meant... calling are sub or method with the same statement feels a bit weird | 15:31 | ||
hmmm, but it is supposed to take locally delared regexes into account... | 15:36 | ||
15:36
araujo joined
15:39
pragma- joined
15:42
fridim__ left
|
|||
Mouq | FROGGS: Yeah, I don't know how that works | 15:47 | |
r: my regex foo { abcd }; /<foo>/ | |||
camelia | ( no output ) | ||
Mouq | r: my regex foo { abcd }; /<&foo>/ | 15:48 | |
camelia | ( no output ) | ||
Mouq | r: my regex foo { abcd }; 'abcd' ~~ /<foo>/ | ||
camelia | ( no output ) | ||
Mouq | r: my regex foo { abcd }; 'abcd' ~~ /<&foo>/ | 15:49 | |
camelia | ( no output ) | ||
15:56
LLamaRider joined
16:01
araujo left
16:02
araujo joined,
araujo left,
araujo joined
|
|||
masak | cool tip: put an action class inside a method, and use closure semantics to refer to variables in the method outside of the action class. | 16:10 | |
jnthn | pro tip: the methods are *not* cloned, they live in the method table ot he class. So never, ever do this if you plan to write multi-threaded code :P | 16:11 | |
*of the | |||
(put another way: you ain't getting closure semantics there.) | |||
masak | hrm. | 16:14 | |
r: class C { method foo { my $x = 0; my class D { method bar { $x++ } }; D.new.bar; say $x } }; C.new.foo for ^2 | 16:15 | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«11» | ||
masak | jnthn: I fail to see the bit in the above that would blow up with multi-threading. | ||
could you spell it out for me? | |||
(but no, realistically, I don't ever expect to multi-thread this parsing code) | 16:16 | ||
jnthn | masak: Sure. Thread A enters foo. The class block is captured, and so the methods also are. You call D.new.bar. While it's running, thread B enters. It captures the class and methods. Now your action methods will all be seeing thread B's $x. | 16:17 | |
There's only one method table. The code objects in it can't point to two outers. | |||
masak | the second invocation of foo overwrites the OUTER of the lexpad of the first? | 16:18 | |
is there any way to demo that with camelia? maybe with reentrancy instead of multi-threadiness? | 16:19 | ||
jnthn | Well, you can create it with our too I suspect. | ||
16:20
stevan_ left
16:21
arnsholt joined
|
|||
arnsholt | o/ | 16:21 | |
jnthn | perl6: sub foo($n) { my $y = $n; class A { method m() { say $y } }; foo($n - 1) if $n; A.m }; foo(1) | 16:22 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«(Any)(Any)» | ||
..rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«00» | |||
jnthn | masak: There's a reentrancy based appraoch | ||
o/ arnsholt | |||
masak | perl6: sub foo($n) { my $y = $n; my class A { method m() { say $y } }; foo($n - 1) if $n; A.m }; foo(1) | 16:25 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«(Any)(Any)» | ||
..rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«00» | |||
jnthn | The "my" there is just talking about where the symbol A gets installed. | 16:26 | |
masak | jnthn++ | ||
yes, I see it now. | |||
for reentrancy, at least ;) | |||
jnthn | You don't get this in JavaScript 'cus you are building a new method table every time in the constructor. ;-) | ||
Of course, that just gives you other issues. :) | |||
masak | r: sub foo($n) { my $y = $n; my class A { method m() { say "inside $y" } }; foo($n - 1) if $n; A.m; say "outside $y" }; foo(1) | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«inside 0outside 0inside 0outside 1» | ||
masak | jnthn: indeed. | 16:27 | |
moritz | today I used Perl 6 to educate a die-hard OO programmer about closures | ||
masak | \o/ | ||
arnsholt | Cool! | ||
jnthn | Today I used Perl 6 to educate a die-hard closures programmer about OO :D | ||
arnsholt | Did he see the light, in the end? | ||
moritz | gist.github.com/moritz/9292385 is the example I used | 16:29 | |
turns out the combination of dir() and IO::Path makes it *very* convenient to write file-recursing code | |||
masak | 's a nice example. moritz++ | 16:30 | |
moritz | it worked on the very first try, without having to worry about concatenating paths, exluding . and .. etc. | ||
masak | it's nice because $counter "threads into" the execution of &walk, coroutine-style. | ||
16:33
rindolf left
16:39
dmol left
16:41
pecastro joined
16:46
stevan_ joined
|
|||
LLamaRider | \o/ MoarVM with Panda works great, even my crummy P6 module works well on it | 16:47 | |
tadzik++ | |||
16:48
mtk left
|
|||
tadzik | :) | 16:48 | |
glad to hear that | |||
16:53
xinming_ left
|
|||
LLamaRider | moritz: nice speedup upgrade would be to recurse all subdirs in parallel (if you don't care about the counter that is) | 16:53 | |
moritz | LLamaRider: that was totally not the purpose :-) | 16:54 | |
16:57
treehug88 left
|
|||
LLamaRider | moritz: I just randomly thought of what else would be nice to add in there :) Looks cool in any case. | 16:58 | |
16:59
pecastro left
|
|||
moritz | so, what primitives would one use? a supply into which several async blocks feed? | 16:59 | |
timotimo | you can just put a whole bunch of start { } blocks and awaits | 17:00 | |
start each sub directory, await the result of them all | |||
moritz | but I want to call the callback as soon as a result is available | 17:01 | |
timotimo | oh | ||
good point i guess | |||
the supply doesn't do any synchronisation, so you'd probably want to use a channel instead | 17:02 | ||
LLamaRider | you can just not wait for them to return, just let each subdir do its own thing and print from the callback. If you don't care about getting the list back, that's most efficient. | ||
moritz | timotimo: but the channel blocks on read, no? | ||
LLamaRider: but I use an unsafe operation ($counter++) in the callback | |||
LLamaRider: so I need some form of synchronization | |||
timotimo | since the channel would cause the stuff to get serialised | ||
17:03
pecastro joined
|
|||
moritz | first I should rewrite it as non-recursive | 17:03 | |
because then I use an arrays as queue | 17:05 | ||
timotimo | ah | ||
17:05
xinming joined
|
|||
timotimo | so that's what you mean, yeah | 17:05 | |
now i get it :) | |||
17:06
skids joined
|
|||
timotimo | well, supplies call the subscribed methods immediately after .more-ing a value | 17:07 | |
so that may indeed be a good target for a callback; though it could run multiple at the same time if you have multiple threads traversing the directories | 17:08 | ||
jnthn | If you have many threads producing results that a single consumer should nom, then a Channel is the right thing. | 17:09 | |
timotimo | yay, i said a right! :) | ||
jnthn | Or even one thread producing and another consuming concurrently. | ||
timotimo | if the callback is very cheap, it may not even be worth it | 17:10 | |
moritz | I don't want to parellize the callback, but the directory reading | ||
timotimo | rakudo is kind of still far away from getting I/O bottlenecked when traversing directory trees :) | 17:11 | |
17:14
zakharyas joined
|
|||
LLamaRider | Hm, was just invited to give a Perl talk to a bunch of undergrads in the Computer Science club at my uni. They have a series of talks on languages they've used in internships and such. Thinking if I present something it should be Perl 6. | 17:16 | |
Any recommendations for punch-packed materials that would grab the short attention spans of hipster undergrads? :> | 17:17 | ||
moritz | \o/ it seems to work | 17:20 | |
timotimo | moritz: soon on moar, too :3 | 17:23 | |
17:23
mtk joined
|
|||
moritz | gist.github.com/moritz/9293475 that's the parallel version | 17:24 | |
and it seems to run quite fast, though when it's done it seems to hang forever | 17:25 | ||
maybe when it awaits all those promises | 17:26 | ||
LLamaRider | moritz++ thanks for indulging me :> Which backend are you using? | ||
arnsholt | Does Panda working on Moar mean that NativeCall on Moar is close to the to the top of the list of blockers for a Moar star? | ||
timotimo | it's quite cool that you can for $dirs.list outside and $dirs.send inside | ||
moritz | LLamaRider: I developed the serial version on moar, but parallel stuff only works on the JVM atm | ||
timotimo | moritz: i think you want to close the $files | ||
otherwise the $reader won't finish, will it? | 17:27 | ||
moritz | oh | ||
and I have to close $dirs too | |||
but when? | 17:28 | ||
OH NOEZ | 17:29 | ||
timotimo | after @file-readers perhaps? | 17:30 | |
oh, hm. | |||
yeah, that's not really that easy :P | 17:31 | ||
17:31
bowtie left
|
|||
moritz | I fear the whole thing must be written differently | 17:32 | |
timotimo | there's not really a way to signalize it's all finished, aye. | 17:33 | |
jnthn | Channels do have a "completed" mechanism. | ||
If you are doing it that way. | |||
dinner & | |||
timotimo | yes, but the code the way it is right now isn't really easily changable for a single point to signalize the channel is finished | 17:34 | |
LLamaRider | question: isn't having to end blocks with " 1; }; " a code smell ? | 17:35 | |
I'm used to doing this in P5's eval{} blocks, but always thought it's a potential sign of bad design. | 17:36 | ||
moritz | LLamaRider: it probably is; I'm simply not yet used to the new sink context rules | 17:38 | |
17:38
mtk left
|
|||
moritz | oh, I think I know what I can do | 17:40 | |
17:40
rindolf joined
|
|||
moritz | I can .poll the $dirs channel | 17:40 | |
17:40
zakharyas left
17:41
mhasch joined
|
|||
moritz | and if .poll doesn't return anything, I can check if all the @file-readers are done, and if yes, call $dirs.close | 17:44 | |
mhasch | hi #perl6! Quick question: | ||
How do I tell the Configure.pl script in rakudo-star where my icu-config is located ? | |||
17:45
__thou joined
|
|||
moritz | mhasch: you extend PATH to make icu-config available in it | 17:45 | |
17:45
kurahaupo_mobile joined
17:47
mtk joined
17:49
kurahaupo_mobile left
|
|||
moritz | gist.github.com/moritz/9293475 # this one seems to work | 17:50 | |
186s in serial, 130s in parallel | 17:51 | ||
17:51
kurahaupo_mobile joined,
pippo left
|
|||
moritz | for a full rakudo git repo, including a checkout of roast, nqp, moar and parrot | 17:52 | |
18805 files | |||
17:53
kurahaupo__ joined
|
|||
moritz | .poll often doesn't return any elements; doing something more sensible than 'next;' in there would be beneficial | 17:54 | |
moritz feels he's doing something RONG | |||
17:55
kurahaupo__ left
17:56
kurahaupo_mobile left,
kurahaupo_mobile joined
17:58
kivutar left
17:59
Guest69589 left
|
|||
moritz | I have a list of promises, and want to wait until at least one of them is done | 18:00 | |
how do I do that? | |||
winner seems to be the way to do it | |||
but I can't seem to make heads nor tails out of it | |||
vendethiel wants to change that name | |||
(I don't think it really make sense) | 18:01 | ||
moritz | winner * { ... } what does that do? | 18:02 | |
vendethiel | > nk | 18:06 | |
> so any(@files X~ '.' X~ @extensions) Xeqv @best | @good | |||
does | flatten ? | |||
let's find out! | 18:13 | ||
r: say 1 == (1, 2) | (3, 4) | |||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«any(False, False)» | ||
vendethiel | not that way! | ||
moritz | r: say ((1, 2)| (3, 4)).perl | 18:14 | |
vendethiel | r: say 1 == [|] (1, 2) (3, 4) | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«any($(1, 2), $(3, 4))» | ||
rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> say 1 == [|] (1, 2) ⏏(3, 4) expecting any of: postfix …» | |||
vendethiel | r: say 1 == [|] (1, 2), (3, 4) | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«any(True, False, False, False)» | ||
18:14
kurahaupo__ joined
|
|||
vendethiel | r: say so 1 == [|] (1, 2), (3, 4) | 18:14 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«True» | ||
vendethiel | isn't it kinda inefficient, though :( | ||
moritz | seems it does flatten | ||
vendethiel | not really | ||
well, not as I meant it, it doesn't generate junctions inside the lists | 18:15 | ||
18:16
kurahaupo_mobile left,
kurahaupo_mobile joined
18:18
kurahaupo__ left
18:22
rindolf left
18:23
fridim__ joined,
dmol joined
|
|||
colomon | vendethiel: did you want to get something like (1 | 2) | (3 | 4) out? | 18:25 | |
vendethiel | colomon: yep. [|] did the job though :) | 18:26 | |
mhasch | *sigh* miniparrot segfaults the first time it is called in a rakudo-star-2014.01 bootstrap. Are ther known issues I should be aware of? | 18:28 | |
18:32
rindolf joined
|
|||
arnsholt | masak: I think you linked a page with an algorithm to efficiently select from a set according to a non-uniform distribution at some point. Do you happen to remember what page? | 18:32 | |
colomon | arnsholt: isn't that what Bag.pick does? | ||
arnsholt | Hmm, probably | 18:33 | |
18:33
hoverboard left
|
|||
colomon | I mean, I'm not sure it's the best algo, but it's somewhat functional | 18:33 | |
arnsholt | Hmm, not the algorithm I'm looking for | 18:34 | |
colomon | m: my $bag = ('red' => 1000000, 'blue' => 3).Bag; say $bag.pick(20) | ||
camelia | rakudo-moar c62279: OUTPUT«red red red red red red red red red red red red red red red red red red red red» | ||
arnsholt | I'm looking for the algorithm, though, not the Perl 6 implementation | 18:35 | |
If what I'm thinking of happens, I'll probably end up doing it in Python | 18:37 | ||
18:38
telex left
18:40
telex joined
|
|||
Mouq | r: multi a (Int $, |everything) { [+] everything.list }; multi a (Num $, |everything) { [*] everything.list }; say a(1,2,3,4,0); say a(1e1,2,3,4,0) | 18:42 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«90» | ||
Mouq | n: multi a (Int $, |everything) { [+] everything.list }; multi a (Num $, |everything) { [*] everything.list }; say a(1,2,3,4,0); say a(1e1,2,3,4,0) | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«90» | ||
Mouq | Hm. I had the impression |everything would get the first argument too | 18:43 | |
TimToady | no, it's just a snapshot of the current remaining binding | 18:45 | |
maybe you want callsame | 18:46 | ||
if we have the method form | |||
r: sub foo(|) { &infix:[*].callsame }; say foo 3,4 | 18:48 | ||
Mouq | TimToady: The set operators use the type of the first element to deterimine if they should act in a Setty or Baggy way. I was wondering if there was a way to check the type of the first argument of (**@p) while still putting everything in @p | ||
camelia | rakudo-moar c62279: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared name: &infix:<Whatever<139646339443584>> used at line 1» | ||
..rakudo-jvm c62279: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared name: &infix:<Whatever<1362387953>> used at line 1» | |||
..rakudo-parrot c62279: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared name: &infix:<Whatever<6306859678214230833>> used at line 1» | |||
TimToady | r: sub foo(|) { &infix:<*>.callsame }; say foo 3,4 | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«No such method 'callsame' for invocant of type 'Sub+{<anon>}+{Precedence}' in sub foo at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | ||
TimToady | nope | ||
nor do we understand &prefix:<[*]> yet, I think | 18:49 | ||
Mouq | We definitely don't understand &prefix:<[*]> yet | ||
TimToady | just woke up after sleeping 11 hours, obviously it was my antibiotics that were giving me insomnia | ||
why do I feel like I've been taken out and shot? | 18:50 | ||
r: multi a (|everything, Int $) { [+] everything.list }; multi a (|everything, Num $) { [*] everything.list }; say a(1,2,3,4,0); say a(1e1,2,3,4,0) | 18:52 | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileCannot put required parameter after variadic parametersat /tmp/tmpfile:1------> multi a (|everything, Int $⏏) { [+] everyth…» | ||
TimToady | that's supposed to be possible | ||
18:52
xinming_ joined
|
|||
TimToady | since | is supposed to snapshot the curent binding | 18:52 | |
S06:1238 | 18:53 | ||
synopsebot | Link: perlcabal.org/syn/S06.html#line_1238 | ||
18:54
xinming left
|
|||
Mouq | n: multi a (|everything, Int $) { [+] everything.list }; multi a (|everything, Num $) { [*] everything.list }; say a(1,2,3,4,0); say a(1e1,2,3,4,0) | 18:54 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Cannot call &a; none of these signatures match: Int, *@_, *%_ Num, *@_, *%_ at /tmp/2gBzLGWHtR line 1 (mainline @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3)  at /home/p6eval/niecza/lib…» | ||
TimToady | | is not, in that sense, a variadic parameter, because from the standpoint of the binding, it's supposed to consume 0 args, not all of them. | 18:55 | |
From an implementation standpoint, of course, this is problematic, because you don't want to clone the rest of the capture for | | |||
| needs to be fast when it's the final thing | |||
Mouq | n: multi a (|everything, |also_everything) { say everything; say also_everything }; a(1,2,3,:abcd) | 18:56 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«\(1, 2, 3, |{"abcd" => Bool::True})\()» | ||
Mouq | r: multi a (|everything, |also_everything) { say everything; say also_everything }; a(1,2,3,:abcd) | ||
camelia | rakudo-parrot c62279: OUTPUT«1 2 3 "abcd" => Bool::True1 2 3 "abcd" => Bool::True» | ||
..rakudo-jvm c62279: OUTPUT«This representation can not unbox to a native str in block at gen/jvm/CORE.setting:6741 in method gist at gen/jvm/CORE.setting:6737 in method gist at gen/jvm/CORE.setting:1039 in sub say at gen/jvm/CORE.setting:13126 in sub a at /tmp/tm…» | |||
..rakudo-moar c62279: OUTPUT«This representation (VMIter) cannot unbox to a native string in block at src/gen/m-CORE.setting:6741 in method gist at src/gen/m-CORE.setting:6737 in method gist at src/gen/m-CORE.setting:1039 in sub say at src/gen/m-CORE.setting:13124 …» | |||
Mouq | :O parrot++ | ||
18:57
pippo joined
|
|||
FROGGS | arnsholt: yes, I think NativeCall and at least one precomp bug are the blockers of r-m* | 18:59 | |
TimToady | is the binder treating the capture as mutable when it binds args? that is, is | assuming that it can eat all the remaining args? | ||
Mouq has no clue how the binder works | 19:00 | ||
TimToady too | |||
TimToady should, given his role of designer | 19:01 | ||
TimToady actually decided to start to delve into the guts last year some time, not just a week ago :) | 19:02 | ||
19:02
pippo left
|
|||
TimToady | languages designers often spec things that are impossible to implement efficiently :) | 19:02 | |
FROGGS | TimToady: well, you know both sides :o) | 19:03 | |
mhasch | impossible is a strong word | ||
19:04
pippo joined
|
|||
TimToady | I was told 14 years ago that I was to stay away from the implementation because they already knew how I implement things, and wanted to do it differently :) | 19:04 | |
moritz | some of the requirements of p6 are also strong words :-) | ||
TimToady | I've been thinking it was time to relax my mostly self-imposed exile there :) | ||
colomon | +1 | ||
;) | |||
moritz | TimToady: when I have a list of promises, how can I wait for the first to finish? | 19:05 | |
TimToady | it wasn't really so much that they didn't want me to introduce Joe Code to their implementation, but also I didn't want to show favoritism to one effort | ||
await @promises[0] | |||
moritz | I meant "first" in the temporal sense, not in the array-index sense | 19:06 | |
TimToady | ah | ||
you want, like, the "winner" :) | |||
moritz | TimToady: that's what I thought too, but I couldn't figure out the correct 'winner' invocation | 19:07 | |
19:07
d^_^b joined,
d^_^b left,
d^_^b joined
|
|||
TimToady | that's why I respecced it to take a list in the opening clause, rather than relying on the cases to enumerate them | 19:08 | |
so winner @promises {...} is supposedd to do what you want | |||
moritz | what's the '...'? | ||
FROGGS | IIRC "winner" is like "given" | 19:10 | |
TimToady | done * {...} | ||
moritz | I tried leaving the block empty, but that gave me a Nominal type check failed for parameter '&block' from somewhere within the 'winner' impl | ||
FROGGS | so it is winner/done like given/when? | ||
TimToady | though you should also be able to do winner * { done @promises {...}}, by spec | ||
I see the arg after winner isn't specced well | |||
moritz | wouldn't that wait for all @promises | ||
TimToady | "winner" | 19:11 | |
this isn't a marathon where you wait for everyone to finish | |||
with this race, you shoot everyone who didn't come in first | |||
or are you really interested in a marathon? | 19:12 | ||
moritz | no, the Channel handles the marathon for me :-) | ||
TimToady | winner is for when you really are interested only in the first result | ||
moritz | I'm trying to improve gist.github.com/moritz/9293475/#fi...nd-pl6-L29 | 19:13 | |
19:13
darutoko left,
d^_^b left
|
|||
moritz | though it feels the whole thing is rather hacky, and there should be a much simpler solution | 19:13 | |
TimToady | I try to stay out of implementation... :P | 19:14 | |
moritz | ftr, the "the whole thing" I meant my script, not the rakudo-j implementations :-) | ||
s/the/with/ | |||
TimToady | a walker would seem to want all the results, not the first one | 19:15 | |
moritz | well, I get all of them by calling .poll until the channel is empty | 19:17 | |
TimToady | yeah, that algo seems a bit introspecty, which is a smell | ||
moritz | the problem is, I can't use $dirs.list, because then I don't know when to .close $dirs | ||
TimToady | but my brane is not awake enough to supply a replement algo yet | ||
*place | |||
19:18
treehug88 joined
|
|||
TimToady | ok, let's just implement timely destuction...oh wait... | 19:18 | |
19:19
treehug88 left
|
|||
TimToady | well, where timely means DESTROY called from the GC, but we don't have that either | 19:20 | |
seems we need a way to tell a lazy list "I'm done reading from you" | 19:21 | ||
so throw away all your gathers and such | 19:22 | ||
19:23
tgt joined
|
|||
TimToady | we have shutdown semantics on channels, but not lazy lists | 19:24 | |
perigrin | .oO(lazy lists are channels from beyond!) |
||
TimToady | I wonder how inefficiently I can spec shutdown on lists | 19:25 | |
19:26
hoverboard joined
|
|||
TimToady | and whether we've just invented a new scope, list generator scope | 19:26 | |
perigrin prefers mint scope. | |||
TimToady too | 19:27 | ||
19:27
Sqirrel joined
|
|||
perigrin | list generator scope tastes too much like listerine for me. | 19:27 | |
TimToady | they've got mint listerine now though :) | ||
I'm running on Listerinux Mint right now | |||
19:27
pmurias joined
|
|||
TimToady | ah, don't get me started free associating when I've just woke up! | 19:28 | |
perigrin | hehe | ||
I'll charge for the associations then. | |||
problem solved. | |||
TimToady | otoh, that's how I just saw the major hole in our lists | 19:29 | |
which might be what the Haskellers call a "space leak" | |||
perigrin | I'm pretty sure a space leak is what happens when I try to read expositions on Haskell | 19:30 | |
pmurias | rurban_: do you plan to resume development of parrot (I have noticed that you have recently started committing to it's repo and you want to encourage a parroty GSoC project) | ||
TimToady | Now how am I supposed to backlog when you folks keep frontlogging? | 19:32 | |
FROGGS | TimToady: you just have to wait for the night in europe :o) | 19:33 | |
lue | irclog.perlgeek.de should do, unless you hit refresh a bunch :) | ||
TimToady | but then it's Too Late!!! | ||
and there's no one to enjoy all my witty remarks, as well as the ones I just think are witty | 19:34 | ||
FROGGS | we just keep quiet for a few minutes then :o) | ||
TimToady | just don't say anything interesting :) | 19:35 | |
FROGGS | ohh, I can do that :o) | ||
TimToady | ETOOINTERESTING | 19:36 | |
"Unable to deduce sequence" is LTA | |||
mhasch is still fighting Configure.pl. Why would a script with that name touch the hierarchy given as --prefix ? | 19:37 | ||
TimToady | because, alas, it's using the stuff there to calculate dependencies instead of having make do it | ||
feel free to fix our build system :) | 19:38 | ||
19:39
d^_^b joined,
d^_^b left,
d^_^b joined
19:40
hoverboard left
19:42
xenoterracide_ joined
|
|||
mhasch | Hm. I am still trying to understand the build process and will happily suggest improvements after. | 19:45 | |
TimToady | I'm not sure who is most cognizant of build design at this point... | 19:46 | |
mhasch | Seems best to not specify a prefix. Which means, the binaries will get installed in /path/where/i/unwrapped/the/tarball/install . | 19:47 | |
Mouq | mhasch: If it means anything, I always use --prefix=/usr/local | ||
19:47
kurahaupo_mobile left
|
|||
mhasch | Mouq: /opt/perl6 for me, but same general idea. | 19:48 | |
lue | Haven't done a parrot-only build in a while, but when I used to do that it defaulted to /usr/local all the way up to rakudo. I'm still not entirely happy that I have to specify /usr/local for moar (and thus nqp and rakudo too) | 19:52 | |
mhasch | What beats me is that make test complains about NQP being too old, which should have been built only minutes before. | 19:53 | |
19:54
kurahaupo_mobile joined
|
|||
lue | did Configure complain about it being too old? | 19:54 | |
mhasch | Configure was happy (and populated the prefixed hierarchy with all sorts of stuff | 19:56 | |
Mouq | mhasch: What exactly is your Configure line? | ||
mhasch | perl Configure.pl --gen-nqp --gen-parrot --parrot-option=--icuheaders=/usr/include/x86_64-linux-gnu --parrot-option="--icushared=`icu-config --ldflags`" --prefix=/opt/perl6 | 19:57 | |
lue | mhasch: by the way, I've never experienced the "Configure populates the prefix" thing you're talking about (or else I'd have to do sudo Configure.pl) | ||
TimToady | I think we're taling about --gen things here, which do put stuff into the prefix dir | 19:59 | |
*talking | |||
mhasch | lue, TimToady: that's what I figured | ||
lue | Good thing I don't use the --gen stuff then :) | 20:00 | |
TimToady | so if you regen those things by hand, you really need to be careful to say 'make install' rather than just make | ||
20:01
Alula left
|
|||
TimToady | there should be some top-level make option that make installs all those things underneath, but I don't think we're there yet | 20:01 | |
20:02
__thou left
|
|||
mhasch | I think I'll wipe everything clean and start over. While experimenting with icu flags there might have been leftovers from a previous run somewhere. | 20:02 | |
TimToady | if you want your gen things to track HEAD, you have to do that all by hand currently, or re-Configure at the top | ||
Mouq | --gen-nqp=master | 20:03 | |
lue | or just maintain distinct repos, which is what I do :) | ||
TimToady | the current build system assume you are just a user of the -gen things, not a developer | ||
lue: which is another way of doing it by hand :P | |||
Mouq | lue: But maintaining distinct repos is mostly useful if you do lots of development | ||
TimToady | it's still sitting outside the purview of 'make' | 20:04 | |
Mouq | lue: Actually, redact my last statement as being non-helpful here | ||
TimToady | .oO(good thing these guys aren't talking about anything interesting... :) |
20:05 | |
Mouq | r: 'a | b' ~~ /([<.before \S | \h <![\h|]> > $<pod_string_char>=\N]+) +% [ \h\h+ | \h+ '|' \h+ ]/;say $/; | 20:06 | |
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«「a | b」 0 => 「a」 pod_string_char => 「a」 0 => 「| b」 pod_string_char => 「|」 pod_string_char => 「 」 pod_string_char => 「b」» | ||
Mouq | Ohhh | 20:07 | |
Debugging is so much harder in NQP ;_; | |||
r: 'a | b' ~~ /([<.before \S | \h <![\h|]> > $<pod_string_char>=\N]+) +% [ \h+ ['|' \h+]? ]/;say $/; | 20:09 | ||
camelia | rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: OUTPUT«「a | b」 0 => 「a」 pod_string_char => 「a」 0 => 「b」 pod_string_char => 「b」» | ||
Mouq | \o/ | ||
TimToady | mind you, I distracted myownself by deLTAifying the Unable to deduce sequence | ||
ESTILLNODALEK | 20:16 | ||
20:18
kurahaupo_mobile left
|
|||
TimToady | Don't you just hate it when there's just enough lag that the page doesn't update immediately, and then it updates while you're blinking, and it takes you far too long to realize that it did, in fact, update the screen? | 20:19 | |
mhasch | must be a pretty dull page then | 20:20 | |
TimToady | oh for the days when a screen update took longer than a blink :) | ||
well, irc varies in that respect | 20:21 | ||
mhasch | \o/ finally, it worked. /me did manage to install perl6 | 20:23 | |
TimToady | \o/ too | 20:25 | |
20:26
tgt left
|
|||
colomon | \/ | 20:27 | |
\o/ | |||
colomon needs to repair or replace his MBP keyboard before he loses his head permanently. | |||
TimToady can only imagine that failure mode... | 20:29 | ||
mhasch | Next time, I will not run Configure.pl a second time without cleaning up first. | ||
TimToady | yeah, that's a gotcha | ||
Configure and make are having a few marital difficulties | 20:30 | ||
20:30
rindolf left
20:31
benabik left
20:32
tgt joined,
pippo left
|
|||
mhasch | I wonder what Stuart Feldman would make of this... :-) | 20:33 | |
20:35
benabik joined
|
|||
TimToady | I think Stu would either say "Why aren't you using make for that?" or "Why *are* you using make for that?" | 20:37 | |
Using the right tool for the job can go wrong two different ways. :) | 20:38 | ||
20:42
kivutar joined
20:44
myfree joined
|
|||
TimToady | did someone tweak SET_CAPS lately? I'm getting a cannot find method | 20:45 | |
nevermind, it helps to keep track of your closing curlies when working in the setting | 20:57 | ||
for anyone searching for this, I left out a curly, so the definition of my exception tried to eat the rest of the setting | 20:59 | ||
timotimo | that's the problem when you allow classes to be declared inside other classes :P | 21:00 | |
21:03
xenoterracide_ is now known as xenoterracide
|
|||
TimToady | "Welcome to my Parlor class," said the Spider class to the Fly class. | 21:04 | |
geekosaur | clever spider: augment class Spider... | 21:08 | |
er, clever fly | |||
21:12
kbaker joined
|
|||
timotimo is unsure what to do next | 21:15 | ||
21:17
myfree left
|
|||
TimToady is unsure what I did last | 21:20 | ||
s/I/he/ | |||
Mouq | Heh: | 21:21 | |
perl6 -e'=begin tablethis makes | mevery | sad=end tablesay $=pod[0].contents | 21:22 | ||
"sad this makes me" | |||
But that's much better than before | 21:23 | ||
(pod-table branch, haven't pushed) | |||
vendethiel | yeah, yoda-style is better than no style :-) | ||
Mouq | s/contents/content | ||
timotimo | Mouq: i have no idea how you come up with these interesting failure cases :) | 21:26 | |
but anyway, i'm very glad that you're pushing this forward | |||
especially since i've been letting it rot for so long ;) | |||
21:38
tgt left
21:39
tgt joined
|
|||
timotimo | i'm also glad that TimToady++ is working on hyper nodality and stuff | 21:42 | |
21:45
tgt left
|
|||
TimToady is working on stuff today | 21:52 | ||
21:52
mj41 left
21:54
perigrin joined
21:55
perigrin left
21:56
perigrin joined
22:05
pmurias left
|
|||
timotimo | that's fine | 22:05 | |
timotimo has been working on nothing today | 22:07 | ||
TimToady just awsomized Unable to deduce sequence | |||
instead of backlogging :) | |||
> ./perl6 -e 'say 3,3,1 ... *' | 22:08 | ||
===SORRY!=== | |||
Unable to deduce arithmetic or geometric sequence from 3,3,1 (or did you really mean '..'?) | |||
timotimo | maybe the person meant 3, 3, (1 ... *) :P | 22:09 | |
TimToady | maybe they did at that :) | 22:10 | |
timotimo | but it's a very good idea to put the actual numbers there | ||
i have to do some thinking soon to get "code model" things into qt creator | 22:11 | ||
i'd love to embed a moarvm into the creator to do analysis, or maybe have an analysis tool that can be long-running and you feed it chunks of files that have recently changed | 22:12 | ||
i think it'll probably really be necessary to keep info on the currently open files cached so that we can refresh parts of the code rather than all of it | |||
that seems pretty tricky | |||
if i could build a very coarse segmentation of "the whole file" and have dependencies between them and quick methods to offset things around and resize them easily, maybe that'd be something | 22:15 | ||
like "lines one through 50 is a class, in that class the first 10, second 10 and the rest are methods" | |||
"this method refers to these symbols from outside" | |||
raydiak | anyone have a clue why my account is useless when logged in to RT? I don't seem to have permission for...anything (viewing bugs, accessing the homepage, etc) | 22:17 | |
I can't even get to my own bugs, or bugs I can view when not logged in | |||
timotimo | i think you have to be given a few permissions, for example by [Coke] | 22:18 | |
raydiak | seems terribly unfriendly to have new accounts have lesser permissions than anonyumous guest | ||
22:21
perigrin left
|
|||
raydiak | FROGGS: re RT #121319 until I get my rt account fixed so I can put this info in the right place, heres the repo you requested: github.com/raydiak/precomp-export-fail | 22:21 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121319 | ||
22:24
mtk left
22:31
wooden joined,
wooden left,
wooden joined
|
|||
raydiak | FROGGS: also just FYI I downloaded the tarball from RT and double-checked that it works fine with gnu tar on linux (same thing I used to create it) and with 7zip on windows...mayhaps theres a problem on your end? | 22:32 | |
timotimo | full hard drive? :P | 22:34 | |
raydiak | heh | ||
22:35
ingy1 is now known as ingy
|
|||
raydiak | FTP in ascii mode? random line noise? NSA packet tampering? we may never know :) | 22:37 | |
22:38
perigrin joined
22:39
perigrin left,
perigrin joined
|
|||
timotimo | sun storms | 22:41 | |
TimToady | son sturms | ||
22:41
perigrin left
|
|||
Mouq | r: [].shift | 22:43 | |
camelia | rakudo-jvm 2209b7: OUTPUT«Unhandled exception: Element shifted from empty list in throw (gen/jvm/CORE.setting:10834) in sink (gen/jvm/CORE.setting:12256) in MAIN (gen/jvm/main.nqp:47) in (gen/jvm/main.nqp:41) in (gen/jvm/main.nqp)» | 22:44 | |
..rakudo-moar 2209b7: OUTPUT«Unhandled exception: Element shifted from empty list at src/gen/m-CORE.setting:10834 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:129) from src/gen/m-CORE.setting:12254 (/home/p6eval/rakudo-inst-1/languages/perl6/…» | |||
..rakudo-parrot 2209b7: OUTPUT«Element shifted from empty listcurrent instr.: 'throw' pc 414452 (src/gen/p-CORE.setting.pir:173722) (gen/parrot/CORE.setting:10854)called from Sub 'sink' pc 451607 (src/gen/p-CORE.setting.pir:187637) (gen/parrot/CORE.setting:12277)called from S…» | |||
TimToady | would be nice if we could consolidate those | 22:45 | |
timotimo | you mean figure out it's the same exception and collapse them? | 22:48 | |
22:49
perigrin joined
22:50
perigrin left
|
|||
TimToady | I mean (I think) make the tracebacks look more like each other | 22:51 | |
22:51
perigrin joined
|
|||
TimToady | unless the user somehow indicates interest in vm-dependent details | 22:51 | |
of course, #if throws the line numbers off | 22:52 | ||
or does it? | |||
timotimo | also the file names :) | ||
TimToady | those we can s/parrot/VM/ or some such | 22:53 | |
much like we did with the top-level with -e tmpfile | |||
timotimo | ah, hm. | ||
lue | except jvm puts its gen'd stuff in a different place than parrot or MVM | ||
timotimo | yeah, we'll have to consolidate those exact paths | 22:54 | |
otherwise p6: say $*VM is going to look funny :) | |||
22:54
perigrin left,
perigrin joined,
rurban joined
|
|||
TimToady | just sayin' | 22:54 | |
22:55
hoverboard joined
|
|||
TimToady | r: say 3,3,1...4 | 22:55 | |
camelia | rakudo-moar 2209b7: OUTPUT«===SORRY!===Unable to deduce arithmetic or geometric sequence from 3,3,1 (or did you really mean '..'?)» | ||
..rakudo-jvm 2209b7: OUTPUT«Unable to deduce arithmetic or geometric sequence from 3,3,1 (or did you really mean '..'?) in method sink at gen/jvm/CORE.setting:12256 in block at gen/jvm/CORE.setting:16289 in block at gen/jvm/CORE.setting:7503 in block at gen/jvm/CORE…» | |||
..rakudo-parrot 2209b7: OUTPUT«Unable to deduce arithmetic or geometric sequence from 3,3,1 (or did you really mean '..'?) in method sink at gen/parrot/CORE.setting:12277 in block at gen/parrot/CORE.setting:16537 in any coro at gen/parrot/CORE.setting:7543 in method r…» | |||
TimToady | .tell pippo see irclog.perlgeek.de/perl6/2014-03-01#i_8370406 which is for you :) | 22:56 | |
yoleaux | TimToady: I'll pass your message to pippo. | ||
TimToady | maybe it should just replace those with <TRACEBACK> | 22:57 | |
23:00
perigrin left
23:01
perigrin joined
|
|||
lue | .oO( <camelia> rakudo-parrot c62279, rakudo-jvm c62279, rakudo-moar c62279: ERROR (use r!: if you really want to see error output ) |
23:02 | |
timotimo | timo for bed | ||
lue | ♞ timotimo o/ | ||
timotimo | o/ | ||
TimToady | Mouq: the & in <&test()> should not be necessary; it looks for a lexical of that name before it looks for a method | ||
Mouq | TimToady: So grammar Foo { method push { ... }; method TOP { <push()> } }; should call sub push? | 23:04 | |
TimToady | but yes, it violates the need to return a cursor | ||
if there is a sub push, or a 'my regex' or such | 23:05 | ||
has to be a lexically scoped override, and has to return a cursor | |||
'my regex' automatically does that | |||
your method push there would also have to return a cursor | 23:06 | ||
23:06
arnsholt left
23:07
rurban left,
hoverboard is now known as sportsbra
23:08
sportsbra is now known as hoverboard
|
|||
TimToady is still backlogging... | 23:08 | ||
23:09
hoverboard is now known as moistcherry
23:12
pippo joined
|
|||
pippo | TimToady: thank you very much for irclog.perlgeek.de/perl6/2014-03-01#i_8370406 | 23:13 | |
yoleaux | 22:56Z <TimToady> pippo: see irclog.perlgeek.de/perl6/2014-03-01#i_8370406 which is for you :) | ||
pippo | :-) | ||
23:14
kaare_ joined
|
|||
TimToady | vendethiel: note that in irclog.perlgeek.de/perl6/2014-03-01#i_8369338 it's the [op] reduce that's doing the flattening, not the | | 23:15 | |
vendethiel | TimToady: I know, that's why I swapped to [] ;) | ||
TimToady | only list infix reducuctions refrain from flattening (well, and chain ops) | ||
vendethiel | is `so any` optimized ? or is it really just checking if any member is true and doing all the work for nothing ? | 23:16 | |
(like, is it a special case ?) | |||
pippo | I meant what timotimo said. I.e. 3,3,(1...10). But on my perl6-m I had a segfault trying to do "say (3,3,1...4) <<+>> 1;" | 23:17 | |
vendethiel | because I know if it itsn't optimized I'll have to go with a loop; until then :( | ||
TimToady | some simple ones are optimized in 'if', but not sure if the so function does that | ||
pippo | so I tested Camelia to see if it had the same behaviour. | 23:18 | |
vendethiel | when I check `so any(@a) ...` I really want it to stop at the first one that's True | ||
no need to calculate all the following values | |||
TimToady | it only optmizes literals, I think | ||
Mouq | r: say so any True xx * | ||
camelia | rakudo-parrot 2209b7, rakudo-jvm 2209b7, rakudo-moar 2209b7: OUTPUT«True» | ||
TimToady | it probably only works right there because of the * | 23:19 | |
Mouq | r: say so (any {rand.round} xx *)() | ||
r: say so (any rand.round xx *) | |||
vendethiel | camelia ded :( | ||
23:19
moistcherry is now known as hoversosmooth
|
|||
camelia | rakudo-parrot 2209b7, rakudo-jvm 2209b7, rakudo-moar 2209b7: OUTPUT«(timeout)» | 23:19 | |
rakudo-parrot 2209b7, rakudo-jvm 2209b7, rakudo-moar 2209b7: OUTPUT«True» | |||
TimToady | r: say so any 1..10000 | 23:20 | |
camelia | rakudo-parrot 2209b7, rakudo-jvm 2209b7, rakudo-moar 2209b7: OUTPUT«True» | ||
TimToady | r: say so any 1..10000000 | ||
camelia | rakudo-parrot 2209b7, rakudo-jvm 2209b7, rakudo-moar 2209b7: OUTPUT«(timeout)» | 23:21 | |
TimToady | looks like it's only lazy on known infinites | ||
which I would consider a bug | |||
vendethiel | isperl6fastyet.com | ||
maybe in 5 years people will be saying "perl6doesntscale" instead of, err, "railsdoesntscale" | 23:22 | ||
TimToady | well, the design is, er, designed to scale in many ways | ||
P6, that is | |||
23:22
denis_boyun left
|
|||
vendethiel | good design is hard to get efficiently, though, I believe. | 23:22 | |
TimToady | well, most languages become efficient by making the users worry about it :) | 23:23 | |
vendethiel | languages aren't efficient, implementations are :p | ||
TimToady | well, most implementations become efficient by making the users worry about it :) | 23:24 | |
insofar as they only provide efficient primitives, and sweep the complexity under the carpet of the user | |||
vendethiel | (when is somebody coming to link SufficientlySmartCompiler ?) | 23:25 | |
TimToady | right before we invoke Godwin's Law | 23:26 | |
.oO(Every day, in every way, we're getting better and better. --Hitler) |
23:27 | ||
vendethiel | (intelligent people saying intelligent things don't make them good people, though) | 23:28 | |
(and :; c2.com/cgi/wiki?SufficientlySmartCompiler - a bit late, though) | |||
23:32
kivutar left
23:35
kbaker left
23:38
spider-mario left
23:59
berekuk left,
berekuk joined
|