»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
TimToady | but it should really support coercive keys, since the default is essentially Str() | 00:00 | |
that is, coerce to Str | |||
and uint8() should surely allow coercion from Int | 00:01 | ||
but coercion types are still fairly recent | |||
and largely faked at the moment | |||
tony-o_ | m: my %hash{Mu}; | 00:03 | |
camelia | ( no output ) | ||
TimToady | m: my %hash{Mu}; say %hash.WHAT | ||
camelia | rakudo-moar 8e8936: OUTPUT«(Hash[Any,Mu])» | ||
tony-o_ | m: class A { method r { "r".say; }; }; my %hash{Mu}; my $a = A.new; my $b = A.new; %hash{$a} = 50; %hash{$b} = 51; %hash.perl.say; | 00:04 | |
camelia | rakudo-moar 8e8936: OUTPUT«Cannot call infix:<===>(Mu, Any); none of these signatures match: (Any $?) (Any $a, Any $b) (Int:D \a, Int:D \b) (int $a, int $b) (Num:D \a, Num:D \b) (Num $ where { ... }, Num $ where { ... }) (num $a, num $b --> …» | ||
tony-o_ | m: class A { method r { "r".say; }; }; my %hash{A}; my $a = A.new; my $b = A.new; %hash{$a} = 50; %hash{$b} = 51; %hash.perl.say; | ||
camelia | rakudo-moar 8e8936: OUTPUT«Hash[Any,A].new(A.new => 50, A.new => 51)» | ||
tony-o_ | m: class A { method r { "r".say; }; }; my %hash{A}; my $a = A.new; my $b = A.new; %hash{$a} = 50; %hash{$b} = 51; %hash{$a}.say; %hash{$b}.say; | ||
camelia | rakudo-moar 8e8936: OUTPUT«5051» | ||
tony-o_ | sweet | 00:05 | |
m: class A { method r { "r".say; }; }; my %hash{A}; my $a = A.new; my $b = A.new; %hash{$a} = 50; %hash{$b} = 51; .WHAT.say for %hash.keys; | |||
camelia | rakudo-moar 8e8936: OUTPUT«(A)(A)» | ||
tony-o_ | m: class æ { method r { "r".say; }; }; my %hash{æ}; my $a = æ.new; my $b = æ.new; %hash{$a} = 50; %hash{$b} = 51; .WHAT.say for %hash.keys; | 00:06 | |
camelia | rakudo-moar 8e8936: OUTPUT«(æ)(æ)» | ||
TimToady | yes, === is not well defined on Mu, otherwise you could use === with junctions | ||
*couldn't | |||
jdv79 | S11 says import "is primarily useful for modules declared inline, which do not automatically get imported into their surrounding scope" | ||
what would be an example of such a thing? | |||
TimToady | m: class A { sub ptui () is export { say "I spit." } }; ptui | 00:08 | |
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vudgZ0y5rCUndeclared routine: ptui used at line 1» | ||
TimToady | m: class A { sub ptui () is export { say "I spit." } }; import A; ptui | ||
camelia | rakudo-moar 8e8936: OUTPUT«I spit.» | ||
TimToady | import is implied by 'use' | ||
m: need Test; is 1,2,3; | 00:09 | ||
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YYEMGcyC09Undeclared routine: is used at line 1» | ||
TimToady | m: need Test; import Test; is 1,2,3; | ||
camelia | rakudo-moar 8e8936: OUTPUT«not ok 1 - 3# Failed test '3'# at /tmp/HTXbU8wc0H line 1# expected: '2'# got: '1'» | ||
TimToady | 'use' just basically 'need' + 'import' | ||
00:09
gfldex left
|
|||
jdv79 | hmm, i think i just read that part wrong. i read it as implying there is a case where a module could be declared inline and be automatically imported. | 00:09 | |
rjbs | Hm. I need to do complex validation of new objects. For example, $.x + $.y must be odd. I thought I could do this in BUILD, as one does in Moose. Not so: can't call the readers on a partially constructed object. | 00:10 | |
What's a human to do? | |||
tony-o_ | m: my $r = (module { sub a is export { "a".say; }; }); need $r; | ||
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TOuNq2xeALUndeclared routine: need used at line 1» | ||
tony-o_ | m: my $r = (module { sub a is export { "a".say; }; }); import $r | ||
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VSVFvLXMVOUndeclared routine: import used at line 1» | ||
tony-o_ | rjbs: you can | ||
TimToady | you can cheat with self.x + self.y | 00:11 | |
rjbs | Okay. | ||
Thanks, that helped. | |||
TimToady | or you can write your own BUILDALL that calls the builtin and then tests | ||
which is cleaner if you want to allow derivation | |||
or you can write your own constructor that tests after the .bless | 00:12 | ||
tony-o_ | m: class A { has $.x; has $.y; submethod BUILD (Int :$!x, Int :$!y) { die 'dead' if ($!x + $!y) % 2 != 0; }; }; A.new(x => 1, y => 1); A.new(x => 2, y => 1); | ||
camelia | rakudo-moar 8e8936: OUTPUT«dead in submethod BUILD at /tmp/tDicHu31ii:1 in block <unit> at /tmp/tDicHu31ii:1» | ||
tony-o_ | m: class A { has $.x; has $.y; submethod BUILD (Int :$!x, Int :$!y) { die 'dead' if ($!x + $!y) % 2 != 0; }; }; A.new(x => 1, y => 2); A.new(x => 2, y => 2); | ||
00:12
telex left
|
|||
camelia | rakudo-moar 8e8936: OUTPUT«dead in submethod BUILD at /tmp/cQTgujUxGu:1 in block <unit> at /tmp/cQTgujUxGu:1» | 00:12 | |
rjbs | waah, args to BUILD? | 00:13 | |
TimToady | there's a couple of things going on there | ||
:$!x is short for :x($!x) | 00:14 | ||
00:14
telex joined
|
|||
TimToady | and if you mention an attribute, it just writes it for you directly without you have to do the assignment | 00:14 | |
tony-o_ | m: class A { has $.x; has $.y; has $.z; submethod BUILD (Int :$!x, Int :$!y) { 'odd'.say if ($!x + $!y) % 2 != 0; }; }; A.new(x => 1, y => 2, z => 8).z.say; | 00:15 | |
camelia | rakudo-moar 8e8936: OUTPUT«odd(Any)» | ||
tony-o_ | gotta mention them all the 'has' in the signature though | ||
rjbs | I'm gonna stick with self. for now. | 00:16 | |
TimToady | m: class A { has $.x; has $.y; method new(|c) { POST { ($!x + $!y) % 2 }; self.bless(|c); } }; A.new(:x(1), :y(1)) | 00:17 | |
camelia | rakudo-moar 8e8936: OUTPUT«Cannot look up attributes in a type object in method new at /tmp/gGClIvlarD:1 in block <unit> at /tmp/gGClIvlarD:1» | ||
TimToady | m: class A { has $.x; has $.y; method BUILDALL(|c) { POST { ($!x + $!y) % 2 }; callsame; } }; A.new(:x(1), :y(1)) | 00:18 | |
camelia | rakudo-moar 8e8936: OUTPUT«Postcondition '{ ($!x + $!y) % 2 }' failed in method BUILDALL at /tmp/OikmUkioA8:1 in block <unit> at /tmp/OikmUkioA8:1» | ||
TimToady | there's another way | ||
00:18
atta joined
|
|||
TimToady | more of the DBC way | 00:18 | |
m: class A { has $.x; has $.y; method BUILDALL(|c) { POST { ($!x + $!y) % 2 }; callsame; } }; A.new(:x(1), :y(2)) | 00:19 | ||
camelia | ( no output ) | ||
dalek | Iish: d071875 | hoelzro++ | lib/DBDish.pm6: Fix up destructuring signature for for loop + Z |
||
TimToady | m: class A { has $.x; has $.y; POST { ($!x + $!y) % 2 } }; A.new(:x(1), :y(1)) | 00:20 | |
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/d10opABprkVariable $!x used where no 'self' is availableat /tmp/d10opABprk:1------> 3class A { has $.x; has $.y; POST { ($!x7⏏5 + $!y) % 2 } }; A.new(:x(1), :y(1))» | ||
TimToady | I don't think we've implemented class-level constraints yet | ||
tony-o_ | m: class A { has $.x; has $.y; | 00:21 | |
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TwJJYbW5MSMissing blockat /tmp/TwJJYbW5MS:1------> 3class A { has $.x; has $.y;7⏏5<EOL>» | ||
TimToady | presumably it'd have to attach the same POST constraint to every method in the class | ||
m: class A { has $.x; has $.y; method new(|c) { my $r = self.bless(|c); POST { ($r.x + $r.y) % 2 }; $r; } }; A.new(:x(1), :y(1)) | 00:23 | ||
camelia | rakudo-moar 8e8936: OUTPUT«Postcondition '{ ($r.x + $r.y) % 2 }' failed in method new at /tmp/XIB9HBkcfT:1 in block <unit> at /tmp/XIB9HBkcfT:1» | ||
tony-o_ | ethod BUILDALL(|c) { POST { die "dead" if ($!x + $!y) % 2 != 0; }; callsame; };}; A.new(:x(1), :y(2)); | ||
TimToady | m: class A { has $.x; has $.y; method new(|c) { my $r is post { (.x + .y) % 2 } = self.bless(|c); } }; A.new(:x(1), :y(1)) | ||
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ig3mOFbngKCan't use unknown trait 'is post' in a variable declaration.at /tmp/Ig3mOFbngK:1------> 3 has $.y; method new(|c) { my $r is post7⏏5 { (.x + .y) % 2 } = self.bless(|c); } } expect…» | ||
TimToady | I guess we only have 'is leave' and friends so far | ||
oh, duh | |||
m: class A { has $.x; has $.y; method new(|c) { my $r will post { (.x + .y) % 2 } = self.bless(|c); } }; A.new(:x(1), :y(1)) | 00:24 | ||
camelia | ( no output ) | ||
tony-o_ | m: class A { has $.x; has $.y; ethod BUILDALL(|c) { POST { die "dead" if ($!x + $!y) % 2 != 0; }; callsame; };}; A.new(:x(1), :y(2)); | ||
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UHuLb8FWk3Unexpected block in infix position (missing statement control word before the expression?)at /tmp/UHuLb8FWk3:1------> 3A { has $.x; has $.y; ethod BUILDALL(|c)7⏏5 { POST { die "dead" if …» | ||
tony-o_ | m: class A { has $.x; has $.y; method BUILDALL(|c) { POST { die "dead" if ($!x + $!y) % 2 != 0; }; callsame; };}; A.new(:x(1), :y(2)); | ||
camelia | rakudo-moar 8e8936: OUTPUT«dead in method BUILDALL at /tmp/O9ufiAydAf:1 in block <unit> at /tmp/O9ufiAydAf:1» | ||
TimToady | looks like 'will post' doesn't work yet, though it parses | ||
tony-o_ | m: class A { has $.x; has $.y; method BUILDALL(|c) { POST { die "dead" if ($!x + $!y) % 2 != 0; }; callsame; };}; A.new(:x(1), :y(1)); | ||
camelia | rakudo-moar 8e8936: OUTPUT«Postcondition '{ die "dead" if ($!x + $!y) % 2 != 0; }' failed in method BUILDALL at /tmp/rbgEXwVyTU:1 in block <unit> at /tmp/rbgEXwVyTU:1» | ||
tony-o_ | cool | 00:25 | |
TimToady | rjbs: anyway, lots of ways to do these things already, which is why we don't always follow the exact Moosey mechanism | ||
rjbs | For sure, I don't mind if it's different, as long as it's not much harder! | 00:26 | |
TimToady | we also have lots of ways to add sugar | 00:31 | |
00:35
colomon joined
00:36
eli-se left
|
|||
jdv79 | the README in t/spec/packages seems deletable since its wrong - idk | 00:42 | |
i don't get it: paste.scsys.co.uk/478839 | 01:02 | ||
timotimo | the code generated for "my int $ord = nqp::ordat($text, $pos); $pos = $pos + 1;" is pretty damn shoddy | ||
jdv79 | i thought that's what eqv likes | ||
timotimo | it gets the $pos lexical three times, for example | ||
01:04
laouji joined
|
|||
jdv79 | what is the correct way to test 2 objs for equivalence insofaras type and contents? which is what i though eqv was for. | 01:10 | |
m: class A{has $a};say A.new(:a(5)) eqv A.new(:a(5)) | 01:11 | ||
camelia | rakudo-moar 8e8936: OUTPUT«False» | ||
timotimo | eqv doesn't automatically work with classes that don't provide a WHICH with value-type semantics | ||
jdv79 | ok, how does one do that then on such classes? | ||
as an aside - it would be nice if all classes worked with eqv without this wrinkle... what's the reason that is not the case? | 01:13 | ||
timotimo | m: class A{has $.a; method WHICH { "A|" ~ $.a.WHICH } };say A.new(:a(5)) eqv A.new(:a(5)) | 01:14 | |
camelia | rakudo-moar 8e8936: OUTPUT«True» | ||
timotimo | m: class A{has $.a; };say A.new(:a(5)) eqv A.new(:a(5)) | ||
camelia | rakudo-moar 8e8936: OUTPUT«False» | ||
timotimo | m: class A{has $.a; method WHICH { "A|" ~ $.a.WHICH } };say A.new(:a(5)) eqv A.new(:a(6)) | ||
camelia | rakudo-moar 8e8936: OUTPUT«False» | ||
raydiak | m: class A{has $.a; method WHICH { "A|" ~ $.a.WHICH } };say A.new(:a(5)) === A.new(:a(5)) | 01:17 | |
camelia | rakudo-moar 8e8936: OUTPUT«True» | ||
01:17
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
raydiak | not sure if that's what you want :) | 01:18 | |
timotimo | hum? | ||
raydiak | it makes them === too | 01:19 | |
timotimo | oh | ||
raydiak | it's just eqv falling back to identity comparison which is overloaded here, not true deep value comparison | 01:20 | |
raydiak might use ACCEPTS and ~~...then it even works with given/when etc too | |||
timotimo | mhm | ||
raydiak | but how are we supposed to make our classes work with eqv? it would be nice to know too :) | 01:21 | |
export overloaded &infix:<eqv> maybe | |||
jdv79 | doc.perl6.org/routine/eqv is misleading methinks | 01:22 | |
at least by omission if not outright incorrect | 01:23 | ||
timotimo | ah | ||
raydiak | m: class A { has $.a; sub infix:<eqv> (::?CLASS:D $a, ::?CLASS:D $b) { $a.a eqv $b.a }; }; import A; say A.new(:a(5)) eqv A.new(:a(5)) | ||
camelia | rakudo-moar 8e8936: OUTPUT«False» | ||
raydiak | m: class A { has $.a; sub infix:<eqv> is export (::?CLASS:D $a, ::?CLASS:D $b) { $a.a eqv $b.a }; }; import A; say A.new(:a(5)) eqv A.new(:a(5)) | 01:24 | |
camelia | rakudo-moar 8e8936: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gbPPJn1rgyMissing blockat /tmp/gbPPJn1rgy:1------> 3s A { has $.a; sub infix:<eqv> is export7⏏5 (::?CLASS:D $a, ::?CLASS:D $b) { $a.a e expecting any of: new name to be defined» | ||
timotimo | subs are already "is export" in that way? | ||
raydiak | m: class A { has $.a; sub infix:<eqv> (::?CLASS:D $a, ::?CLASS:D $b) is export { $a.a eqv $b.a }; }; import A; say A.new(:a(5)) eqv A.new(:a(5)) | ||
camelia | rakudo-moar 8e8936: OUTPUT«Type check failed in binding $a; expected 'A' but got 'Int' in sub infix:<eqv> at /tmp/dIuVuW2wor:1 in sub infix:<eqv> at /tmp/dIuVuW2wor:1 in block <unit> at /tmp/dIuVuW2wor:1» | ||
timotimo | and you don't have to make that a multi sub? | ||
raydiak | m: class A { has $.a; multi sub infix:<eqv> (::?CLASS:D $a, ::?CLASS:D $b) is export { $a.a eqv $b.a }; }; import A; say A.new(:a(5)) eqv A.new(:a(5)) | ||
camelia | rakudo-moar 8e8936: OUTPUT«True» | ||
raydiak | m: class A { has $.a; multi sub infix:<eqv> (::?CLASS:D $a, ::?CLASS:D $b) is export { $a.a eqv $b.a }; }; import A; say A.new(:a(5)) eqv A.new(:a(6)) | ||
camelia | rakudo-moar 8e8936: OUTPUT«False» | ||
raydiak | m: class A { has $.a; multi sub infix:<eqv> (::?CLASS:D $a, ::?CLASS:D $b) is export { $a.a eqv $b.a }; }; say A.new(:a(5)) eqv A.new(:a(6)) | ||
camelia | rakudo-moar 8e8936: OUTPUT«False» | ||
raydiak | there :P :) | ||
raydiak doesn't have his head in this space much atm, just finished getting the car drivable again | 01:25 | ||
dalek | ast: 0695520 | (Justin DeVuyst)++ | / (3 files): Add tests for RT83354. |
01:26 | |
01:28
Sqirrel left
|
|||
jdv79 | how come .gist and .perl don't delve deep on a class? this seems like pretty decent default behavior on boring classes to me. | 01:34 | |
m: class A{has $a};say A.new(:a(5)).perl # :( | 01:35 | ||
camelia | rakudo-moar 8e8936: OUTPUT«A.new» | ||
01:36
Sqirrel joined,
laouji_ joined
|
|||
TimToady | m: class A {has $.a};say A.new(:a(5)).perl | 01:39 | |
camelia | rakudo-moar 8e8936: OUTPUT«A.new(a => 5)» | ||
TimToady | only does public attributes | ||
because they're, like, public... | |||
raydiak | and b/c passing them to .new wouldn't work by default? | 01:40 | |
TimToady | we really gotta get a warning for that | ||
01:40
ponbiki joined
|
|||
TimToady | people keep running into it over and over | 01:41 | |
raydiak | always complaints about unrecognized nameds slipping through everywhere | ||
01:41
laouji_ left
|
|||
raydiak | oh, you meant the has $a thing | 01:42 | |
TimToady | well, that's just equivalent to $!a | 01:43 | |
rjbs wonders how to most easily convert from a buf16 to buf8. map? :) | |||
TimToady | but the same result | ||
but I meant the general warning on unused nameds | |||
TimToady wonders what rjbs intends to do with the high bits? | |||
rjbs | FFEF becomes FF EF | 01:44 | |
so I could map by doing that split myself, of course | |||
jdv79 | ah. forgot default is private on attrs. | ||
rjbs | It may be that I should use a buf8 to begin with, given that the probably use case here is to print into a bytestream. | 01:45 | |
TimToady | likely, and then you don't have to consider endian-ness | ||
rjbs | Yeah, it's just more sensible. The packed form it packed word by word, but I don't really care about that beyond the algorithm. | 01:46 | |
TimToady | m: say "\x2424".encode('ucs2').WHAT | ||
camelia | rakudo-moar 8e8936: OUTPUT«Unknown string encoding: 'ucs2' in block <unit> at /tmp/WAqjRpNw63:1» | ||
TimToady | aww | 01:47 | |
01:47
ycaymanbo joined
|
|||
TimToady | might eventually be some pack/unpack magic for it, but unlikely to work yet | 01:47 | |
raydiak | some of that does, I even fixed one thing myself that I was actually using | 01:48 | |
rjbs | I'd make more progress on this tonight if I had some paper down here! | ||
01:48
dayangkun joined
|
|||
TimToady | progress requires paper? | 01:49 | |
use sand like Archimedes | |||
but avoid Romans... | |||
rjbs | I think I'd get in trouble with Gloria if I brought sand into the living room. | ||
TimToady failed to understand the [@a] race, other than to note that it's probably down in .eager/.gimme(*) somewhere | 01:51 | ||
02:06
noganex_ joined
02:08
aborazmeh left
02:09
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
noganex left
02:15
xinming joined
02:19
petercom1and left,
petercom1and joined
02:20
petercom1and is now known as petercommand
02:27
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
02:28
colomon_ joined,
colomon left,
colomon_ is now known as colomon
02:31
chenryn joined
02:32
colomon_ joined,
colomon left,
colomon_ is now known as colomon
|
|||
jdv79 | m: class A { has Hash @.a = [{foo=>2},{bar=>3}] };say A.new.a[0] # should this work? | 02:42 | |
camelia | rakudo-moar 8e8936: OUTPUT«Type check failed in assignment to '@!a'; expected 'Hash' but got 'Array' in block <unit> at /tmp/ZaUoH7AMav:1» | ||
jdv79 | m: class A { has Hash @.a = ({foo=>2},{bar=>3}) };say A.new.a[0] # this seems to | ||
camelia | rakudo-moar 8e8936: OUTPUT«foo => 2» | ||
jdv79 | looking at #109880 | 02:43 | |
02:45
Sqirrel left
02:49
raiph left
02:51
Sqirrel joined
02:55
raiph joined
02:56
bjz left
03:11
raiph left
03:13
egrep left
|
|||
skids | .tell FROGGS reprs/NFA.c lines 567 and 568 looked wrong to me on a cursory read: 1) should be if act == on both lines and the second should have an && (g != ...). Or I totally don't get the code, which is possible. | 03:14 | |
yoleaux | skids: I'll pass your message to FROGGS. | ||
jdv79 | [Coke]: i can't repro the last issue you raised on #113078 | ||
03:19
egrep joined
03:25
laouji_ joined
03:30
laouji_ left
03:45
FROGGS_ joined
|
|||
dalek | kudo/nom: 6ce90d5 | TimToady++ | src/ (2 files): skip onlystar on CALLER (Also, add &?ROUTINE entry on proto autogen so we can actually find the routine we need to check for onlystar...) |
03:46 | |
TimToady | .tell jnthn it occurs to me that explicit onlystars are getting optimized away before first call, but autogenned ones aren't (or I wouldn't have needed this CALLER patch), which seems a bit odd | ||
yoleaux | TimToady: I'll pass your message to jnthn. | ||
03:46
Sqirrel left
03:49
FROGGS left
03:50
cognominal left
03:55
Sqirrel joined
|
|||
raydiak | TimToady++ | 03:57 | |
04:07
kurahaupo left
04:13
jack_rabbit joined
04:17
Sqirrel left
04:18
bjz joined
04:25
Sqirrel joined
04:32
skids left
04:43
aborazmeh left
04:47
molaf joined
|
|||
dalek | ecs: 13b4c60 | TimToady++ | S02-bits.pod: CALLER skips empty protos |
04:59 | |
05:13
jepeway joined
05:20
Foxcool joined
|
|||
moritz_ | m: say [1, 2] eqv [1, 2] | 05:27 | |
camelia | rakudo-moar 6ce90d: OUTPUT«True» | ||
moritz_ | that's rather inconsistent, since arrays are value types, no? | ||
jdv79 | i am a bit unclear on how eqv should work | 05:28 | |
i was hoping it was just me | |||
;) | |||
TimToady | eqv is snapshot equivalence, so doesn't matter whether they're values or containers | ||
"would these serialize to the same thing" | |||
it's === that distinguishes container objects | |||
moritz_ | m: class A { }; say A.new eqv A.new | ||
camelia | rakudo-moar 6ce90d: OUTPUT«False» | ||
moritz_ | so that's wrong? | 05:29 | |
TimToady | well, no .WHICH defoined | ||
*fined | |||
should probably work anyway somehow | |||
jdv79 | could there be a simple default and croaks on non-simpleness though? | 05:30 | |
05:30
mr-foobar joined
|
|||
TimToady | eqv shouldn't really depend on .WHICH anyway, that's === semantics | 05:30 | |
jdv79 | s/and/that/ maybe | ||
TimToady | so I think that's just a bug | 05:31 | |
I wonder where it's getting falsified... | |||
jdv79 | would "serialize" include private attrs here? | 05:32 | |
05:32
bjz left
|
|||
jdv79 | nm | 05:33 | |
05:36
mr-foobar left
05:40
mr-foobar joined
05:45
Psyche^ joined
|
|||
TimToady | well, for serialization there's basically nothing but private attrs, since that's where the data is | 05:46 | |
dalek | ecs: 01f263b | TimToady++ | S02-bits.pod: define the CLIENT pseudopackage |
05:48 | |
kudo/nom: 65d90fd | TimToady++ | src/ (2 files): implement CLIENT:: |
05:49 | ||
05:49
Patterner left
|
|||
TimToady | ^^ basically "carp" semantics | 05:49 | |
writing tests for CLIENT would be lhf for someone | 05:53 | ||
timotimo | "let's have fun!" | 05:55 | |
raydiak | I wonder why CALLERS didn't work in the original CALLER/proto problem | 05:56 | |
TimToady | probably because the autogen proto has a $_ | 05:59 | |
raydiak | of course | ||
raydiak is having such a good streak making changes without breaking things, he intentinoally broke something to make sure it still works and wasn't loading an out-of-date blib or something :) | 06:02 | ||
so I guess Perl 6 is doing it's job pretty well | 06:03 | ||
06:04
diana_olhovik joined
06:05
domidumont joined,
cognominal joined
06:09
kaare_ joined,
domidumont left
06:10
domidumont joined
06:26
cognominal left,
chenryn left
06:28
chenryn joined
|
|||
raydiak | is there a way to specify different git commits or tag for different versions of your module? eg if someone does use Foo:ver<1>, and installed Foo from the ecosystem is now at ver 2, great it gives a better error than just running until it breaks, but how can you tell it where to get ver 1 from? | 06:32 | |
I guess I'm wondering if there is a way to support something along the lines of panda install Foo:ver<1> or --ver=1 or so from a single module on the ecosystem, instead of distinct modules like FooV1, FooV2 etc which kinda defeats the purpose of all our nice versioning stuffs | 06:37 | ||
06:40
Sqirrel left
|
|||
raydiak | the real thought which led to this was "I kinda wanna put this thing on the ecosystem, but I might want to keep radiacally changing the api/syntax for a while", so if anyone has a different answer to that dillema besides more useful versioning...cool :) | 06:41 | |
06:45
RabidGravy joined
06:47
Sqirrel joined
07:00
laouji_ joined
07:02
zakharyas joined
07:04
laouji_ left
|
|||
ugexe | me and tony-o have been working on that ourselves | 07:05 | |
raydiak | oh neat, how so? | 07:08 | |
ugexe | other solutions just tag releases with a format vXX.XX | ||
raydiak | doesn't sound unreasonable | ||
ugexe | a combination of meta.info analysis, maintaining clones of authorities, package management integration crap to make it easy to do it a specific way | 07:10 | |
raydiak | sounds like two changes to panda: to make --ver pull a specific git tag, and to allow it to install multiple versions in parallel instead of overwriting existing | 07:12 | |
then you can leave meta.info out entirely | |||
though I guess it'd be better to declare what versions are valid and available or not in the meta.info, without fetching and grepping a list of all the git tags | 07:14 | ||
ugexe | not doing it in panda. and the meta stuff lets us do thing like flatten the dependency tree out as much as possible without having to serve out the meta of all packages | ||
raydiak | well ultimately the goal, at least my thought was, to allow users to install the proper version of the module to satisfy the dependency...how not doing it in panda? | 07:16 | |
ugexe | yes, but how do you know what dependencies your dependencies have? you dont know until you download it. no reason that list couldnt be squashed into a de-duped tree so you can go right into paralell downloading/testing | 07:20 | |
07:20
rindolf joined
|
|||
ugexe | we wrote a different package manager | 07:20 | |
07:21
virtualsue joined
|
|||
raydiak | ah, now it makes more sense | 07:21 | |
and exciting :) | 07:22 | ||
TimToady | m: class A { method foo { self.bar }; method bar { say CLIENT::<$_> } }; my $obj = A.new; $obj.foo for <a b c> | 07:24 | |
camelia | rakudo-moar 65d90f: OUTPUT«abc» | ||
07:25
achauvin left
|
|||
TimToady | m: class A { method foo { Bool.pick ?? self.bar !! self.foo }; method bar { say CLIENT::<$_> } }; my $obj = A.new; $obj.foo for <a b c> | 07:25 | |
camelia | rakudo-moar 65d90f: OUTPUT«abc» | ||
raydiak | very nice disambiguation to have handy :) | 07:28 | |
07:30
darutoko joined
07:33
xfix joined
07:37
FROGGS_ is now known as FROGGS
|
|||
FROGGS | skids: you are right | 07:37 | |
yoleaux | 03:14Z <skids> FROGGS: reprs/NFA.c lines 567 and 568 looked wrong to me on a cursory read: 1) should be if act == on both lines and the second should have an && (g != ...). Or I totally don't get the code, which is possible. | ||
07:38
pdcawley joined
07:42
mohij joined
07:46
jepeway left
07:47
berekuk joined
07:48
jepeway joined
|
|||
masak | morning, #perl6 | 07:55 | |
DrForr | Morning. | 07:56 | |
RabidGravy | erp | ||
jnthn | o/ | 07:59 | |
yoleaux | 13 May 2015 22:51Z <japhb> jnthn: I got test failures attempting to panda install OO::Monitors, as of a fresh build Wednesday morning US/Pacific time. Known breakage? | ||
03:46Z <TimToady> jnthn: it occurs to me that explicit onlystars are getting optimized away before first call, but autogenned ones aren't (or I wouldn't have needed this CALLER patch), which seems a bit odd | |||
07:59
_thou left
08:01
mohij left,
mohij joined
|
|||
FROGGS | morning @all | 08:02 | |
masak | \o | 08:03 | |
08:04
chenryn left
08:05
vendethiel joined
08:14
cygx joined
|
|||
cygx | o/ | 08:14 | |
I need some bikeshedding done | |||
the question at hand: what parameters should &open take | |||
my current thinking: github.com/rakudo/rakudo/pull/426#...-101916227 | |||
08:14
chenryn joined
08:15
virtualsue left
08:23
Alina-malina left,
Alina-malina joined
08:27
brrt joined
|
|||
FROGGS | TimToady: is it possible that S24-testing/line-numbers.t fails due to changes to CALLER or callframe? | 08:31 | |
08:33
brrt left
|
|||
jnthn | .ask TimToady do you have a succinct example of the explicit/implicit onlystar issue? | 08:33 | |
yoleaux | jnthn: I'll pass your message to TimToady. | ||
dalek | kudo/nom: 2ea0087 | FROGGS++ | / (4 files): make REPL strict by default, leave only '-e' lines lax |
08:35 | |
FROGGS | rjbs and others^^ | ||
RabidGravy | is there any ongoing work to introduce support for Unix domain sockets? My reading of the source would suggest it's entirely not possible at present. | ||
FROGGS | RabidGravy: I think timotimo++ started to work on this at some point | 08:36 | |
jnthn | FROGGS: ooh, I was gonna look at that...nice :) | ||
cygx: The latest design looks cleaner than the last one | 08:37 | ||
FROGGS | jnthn: :o) | ||
RabidGravy | cool, I'll back burner the Docker client for the time being then ;-) | ||
jnthn | cygx: About the VM interface, we do have the option of nqp::const:: to do flags | ||
FROGGS | jnthn: but we use nqp::open in nqp, no? we can't just change the signature of that op me thinks | 08:38 | |
08:38
laouji left
|
|||
jnthn | FROGGS: True that... | 08:38 | |
08:39
laouji joined
|
|||
jnthn | So it'd be some "fun" | 08:40 | |
FROGGS | via a temp op? | ||
cygx | also, '+ct' is far less typing that nqp::const::O_RDWR +| nqp::const::O_CREAT +| ... | 08:41 | |
*than | |||
FROGGS | cygx: though, you don't type that anyway | ||
jnthn: about what you asked TimToady: | 08:42 | ||
git revert --no-commit 6ce90d529a7da1024a8d5d622ff6b239788254f2 | |||
perl6 -e '$_= 42; multi foo { say CALLER::<$_> }; proto bar { * }; multi bar { say CALLER::<$_> }; foo; bar' | |||
(Any) | |||
42 | |||
cygx | FROGGS: regarding your comment, the problem is that :w implies :truncate, whereas :rw and :wx don't (thought it shouldn't hurt with the latter) | 08:43 | |
so combinations don't fall out for free | |||
I think the situation improves after renaming :wx to :x | |||
that should give something nicely uniform | |||
FROGGS | I don't mind if it doesnt fall out for free... it is more that someone might want to do: open(:rw, :x($condition)) | 08:44 | |
cygx | mskes sense | 08:45 | |
jnthn | FROGGS: Thanks. | 08:47 | |
08:49
laouji_ joined
|
|||
cygx | I updated the comment with s/wx/x/ | 08:49 | |
08:49
andreoss joined
|
|||
cygx | I do think that looks pretty good | 08:49 | |
FROGGS | cygx++ | 08:50 | |
cygx | it would be even more uniform if :rw implied :truncate, but that seems just the tiniest bit hostile ;) | 08:51 | |
FROGGS | yes, that sounds reasonable | 08:52 | |
08:53
laouji_ left
|
|||
raydiak | g'night #perl6 \o | 09:07 | |
09:09
diana_olhovik left,
eli-se joined
09:11
brrt joined
09:12
diana_olhovik joined
09:14
FROGGS[mobile] joined,
FROGGS[mobile] left
09:18
telex left
09:19
Woodi joined
09:20
telex joined
|
|||
cygx | support for new open flags pushed to the pr | 09:36 | |
09:41
pecastro joined
09:43
chenryn left
|
|||
moritz_ | cygx++ | 09:47 | |
09:47
gfldex joined
|
|||
FROGGS | TimToady / jnthn: just confirmed, 6ce90d529a7da1024a8d5d622ff6b239788254f2 breaks S24-testing/line-numbers.t | 09:48 | |
09:51
chenryn joined
09:53
domidumont left
|
|||
cygx | later o/ | 09:56 | |
09:57
cygx left,
vendethiel left
|
|||
arnsholt | jnthn: Is there a particular reason :reducecheck in HLL::Grammar.EXPR only works for infix operators? Having it for other ops (postfixes) would make my life simpler in Snake | 09:59 | |
jnthn | arnsholt: Not that I'm aware of. | 10:00 | |
10:01
chenryn left
|
|||
arnsholt | Or maybe it only makes sense for infixes, on second thought. I may be confused | 10:03 | |
FROGGS | arnsholt: if this is about tranforming '[a] b c d' to 'b a c a d', then it only makes sense for infixes | 10:04 | |
though I don't understand what the code does there | |||
I had expected if captures the result of the call to do something with it | |||
arnsholt | Yeah, I think it only makes sense for infixes | 10:05 | |
10:06
broquaint joined
|
|||
arnsholt | My problem is that HLL::Actions.EXPR unshifts the argument onto the operator AST, where I want it to push | 10:06 | |
masak | reduce as an operation only makes sense for infixes. | 10:07 | |
jnthn | masak: I think this is in the context of "shift reduce" in OPP | 10:08 | |
arnsholt | Yeah, I was confused | 10:09 | |
DrForr | m: q hello world | 10:10 | |
camelia | rakudo-moar 2ea008: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LoCU26COXhAlphanumeric character is not allowed as a delimiterat /tmp/LoCU26COXh:1------> 3q7⏏5 hello world» | ||
DrForr | Bummah. | 10:12 | |
10:18
vendethiel joined
|
|||
masak | jnthn: oh. | 10:20 | |
in that case, all the ops do some kind of reduce. | |||
10:26
grondilu joined,
brrt left
10:34
laouji_ joined
10:39
chenryn joined,
laouji_ left
10:40
dayangkun left
10:51
gfldex left
10:56
jdurand joined
10:57
eli-se left
11:02
mr-foobar left
|
|||
rjbs | FROGGS++ cool, re repl strict | 11:10 | |
timotimo | yes! repl strictness! | 11:15 | |
11:17
lichtkind joined
11:25
brrt joined
11:27
brrt left,
andreoss left
|
|||
lichtkind | reini uses rurban? | 11:28 | |
as irc handle | |||
timotimo | yes | ||
lichtkind | thank you | 11:29 | |
rjbs | Say I read a UTF-8 bytestream from a file, then decode it. Is there a way to get back the exact characters that were encoded in the bytestream, if they were not normalized? | 11:31 | |
timotimo | if you first read it, then decode it, you still have the original ;) | ||
FROGGS | no | ||
when we normalize, we lose information | 11:32 | ||
timotimo | i've claimed before that this is dangerous for filenames | ||
rjbs | And is there a way to decode a string without NFGing it? | ||
decode to a string | |||
jnthn | rjbs: You'll be able to get it as a Uni | ||
Not as a Str | |||
Str means NFG | |||
Uni will give you an array of Unicode "as they were" | |||
FROGGS | like if the bytestream contained a ö as o + marks, then it won't end up being that | 11:33 | |
rjbs | jnthn: but it's nyi? | ||
timotimo | NFG and Uni are very much I, jnthn++ | ||
jnthn | rjbs: Uni is, reading one directly from a file isn't | ||
Or Buf -> Uni | |||
rjbs | jnthn: That's cool, how does one get a Uni? (I don't see it on doc.perl6.org) | ||
jnthn | They're not *hard*, I just didn't do it yet | ||
Yeah, Uni is quite newly I | |||
Uni.new(...codepoints here...) | |||
rjbs | Cool. And will Str coerce to Uni via NFC or something? | 11:34 | |
or must it be explicit? | |||
jnthn | Str.NFC gets you a Uni | ||
And Str.NFD and so on | |||
rjbs | Right, but then I need to detect that what I got was Str and not Uni. Which is fine... | ||
jnthn | But by then you've doen the NFG round-trip | 11:35 | |
Note that NFG is entirely internal | |||
So output is NFC | |||
rjbs | I can just write a multi, I suppose, where the Str form calls the Uni form with str.NFC. | ||
sure | |||
jnthn | You're going to have to go out of your way if you want to work with normal string data and not have it be normalized on input. | ||
rjbs | Okay, all very helpful! | ||
jnthn++ | 11:36 | ||
jnthn | For one because it's almost certainly never what you want in normal use cases. :) | ||
rjbs | jnthn: What do you mean when you say "with normal string data"? | ||
jnthn | rjbs: Uh, I mean, if you want to do text processing and not be under NFG semantics. | ||
rjbs | Okay. That word "normal"... :) | ||
jnthn | Yes, that was unfortunate :P | 11:37 | |
rjbs | $buf.decode($encoding, :Uni) ? :) | ||
I'm afraid it's something I'm likely to need, but I know it's not the common case, and don't mind some hoops to jump through. | |||
jnthn | Well, one reason it's NYI yet also that when I mentioned something like that, TimToady wasnt' sure .decode with a named arg was the right way to expose it. | ||
Though it's mostly just that I didn't get around to it. | 11:38 | ||
rjbs | I *definitely* am not sure, as I'm still flailing about and speaking p6 with a weird outworlder accent. | ||
11:38
jdurand left
|
|||
jnthn | I'd be surprised if there are that many cases where it's an issue for anyone. | 11:38 | |
rjbs | Da, el buf sui very suggoi! | 11:39 | |
timotimo | SUGOOOOIIII desu ne | ||
jnthn | For one, within ASCII and Latin-1 then the NFG round-trip is a total no-op | ||
FROGGS | not so for e.g. utf8 | ||
rjbs | In this case, it is a potential issue for people in my very very niche market doing very very niche-again things. So I'm not worried, as long as it's somehow possible eventually. | ||
11:40
laouji left
|
|||
FROGGS | so utf8 -> nfg -> utf8 results in input ne output | 11:40 | |
that's also the reason why we need buf/utf8 to become more Stringy | |||
rjbs | ...at least sometimes. Right, that was quite clear. | ||
jnthn | FROGGS: Correct, though what I said above was more "if you're using codepoints within the latin-1 range", which still applies even if you encoded them as UTF-8 | 11:41 | |
rjbs | btw, is the best way to iterate over codepoints with $str.split('') ? | ||
jnthn | The best way to go over codepoints is to do .NFC.list or .NFD.list | ||
timotimo | that's outworlder accent for $str.comb :) | ||
jnthn | .comb is grapheme level | ||
FROGGS | isnt there supposed to be a .codes or .codepoints method? dunno if this repr is still valid | 11:42 | |
jnthn | m: .say for "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]".NFC.list | ||
camelia | rakudo-moar 2ea008: OUTPUT«7692775» | ||
rjbs | codes gives you a count | ||
timotimo | .codes is a counter method, like .chars or so | ||
jnthn | m: .say for "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]".NFD.list | ||
camelia | rakudo-moar 2ea008: OUTPUT«68803775» | ||
jnthn | FROGGS: .codepoints is underspecified, really... | ||
rjbs | Great, thanks. | 11:43 | |
jnthn | FROGGS: If you know you want to work at that level, you probably also know enough to know if you want NFC or NFD. :) | ||
FROGGS | jnthn: yes, that's what I meant by 'valid'... I assumed that we need to adjust roast+syn to latest reality | 11:44 | |
jnthn | FROGGS: Yeah, I'll take a pass through the syn in a few places wrt NFG soonish | 11:45 | |
For now, really lunch... :) & | |||
FROGGS | good lunch | ||
jnthn | kthxnom | 11:46 | |
11:46
laouji joined
11:52
laouji_ joined
11:57
laouji_ left
12:00
eli-se joined
12:17
chenryn left
|
|||
timotimo | yay, another hip vulnerability with a kick-ass logo and name | 12:21 | |
FROGGS | hmm? | 12:22 | |
timotimo | "VENOM", it attacks the "virtual floppy disk driver" in qemu (which is vulnerable even if you switch support for it off) and gives users access to the host system | 12:23 | |
FROGGS | ohh, nice :o) | ||
rjbs | Woah: QAST::Block with cuid cuid_12_1431606476.52319 has not appeared | 12:28 | |
timotimo | yeah, that's the reason why we generate blocks that just die with "internal error!" for blocks the optimizer eliminates, rather than just kicking them out | 12:29 | |
12:31
andreoss joined
|
|||
rjbs | How does one diagnose this problem? | 12:32 | |
Hm, found it.. | 12:33 | ||
Aha, it was a syntax error,because I am a bad reader. | |||
m: my constant ZSCII-Char = subset uint16 where * < 2 ** 10; | |||
camelia | rakudo-moar 2ea008: OUTPUT«===SORRY!===QAST::Block with cuid cuid_1_1431606829.91609 has not appeared» | ||
bartolin | j: "a" ~~ /"$0"/ | 12:34 | |
camelia | ( no output ) | ||
bartolin | j: say "a" ~~ /"$0"/ | 12:35 | |
camelia | rakudo-jvm 2ea008: OUTPUT«Cannot unbox a type object» | ||
bartolin | that one is behind the spectest failure in S05-mass/rx.t on JVM | 12:36 | |
it fails strangly with --ll-exception: gist.github.com/usev6/bcdf2ada8cd523d37810 | |||
I create a PR for rakudo which fixes the "Cannot unbox a type object" (PR 427) | |||
FROGGS | rjbs: we need to catch that of course | 12:38 | |
12:39
Alina-malina left
|
|||
dalek | kudo/nom: b9362d3 | usev6++ | src/core/control.pm: unbust warning for Nil in strings in regexes for JVM |
12:39 | |
kudo/nom: ca8232e | FROGGS++ | src/core/control.pm: Merge pull request #427 from usev6/warnings_jvm_nil unbust warning for Nil in strings in regexes for JVM |
|||
bartolin | but I think that (PR 427) is just a workaround for another problem within "sub warn" in src/core/control.pm. | ||
FROGGS | no, that looks pretty correct | ||
12:40
Alina-malina joined
|
|||
bartolin | FROGGS: if I add a "say %anno.perl" after line 192 in src/core/control.pm and run the above evaluation the output looks weird to me | 12:41 | |
github.com/rakudo/rakudo/blob/nom/...ol.pm#L192 | |||
FROGGS | weird in what way? | ||
bartolin | wait a moment, have to recompile | 12:42 | |
12:44
pippo joined
|
|||
dalek | kudo-star-daily: e9888c4 | coke++ | log/ (2 files): today (automated commit) |
12:45 | |
pippo | j: say "I am back"; | ||
camelia | rakudo-jvm 2ea008: OUTPUT«I am back» | ||
pippo | r: say "a" ~~ /<:alpha>/; | ||
bartolin | FROGGS: ohh, that weirdness went away with my patch :-) | ||
camelia | rakudo-moar 2ea008: OUTPUT«「a」» | ||
..rakudo-jvm 2ea008: OUTPUT«java.util.regex.PatternSyntaxException: Unknown character property name {alpha} near index 8\p{alpha} ^ in block <unit> at /tmp/tmpfile:1» | |||
pippo | ^^ rakudo-j bug? | 12:46 | |
FROGGS | pippo: yes | ||
bartolin: so all is good :o) | |||
12:47
spider-mario joined
|
|||
pippo | FROGGS: thanks. | 12:47 | |
bartolin | FROGGS: indeed! | ||
FROGGS: that's what I meant: gist.github.com/usev6/602ad169eb6e3bcdf27e | 12:49 | ||
FROGGS: probably the "sub warn" was entered more than once? | |||
FROGGS | hmmm, no idea | 12:50 | |
pippo | FROGGS: should I submit that to | 12:51 | |
FROGGS: should I submit that to [email@hidden.address] | |||
FROGGS | pippo: yes please | ||
pippo | FROGGS: OK. | ||
FROGGS | might be easy to fix though, we just need to translate that to Java's understanding of alpha | 12:52 | |
pippo | FROGGS: done submitting. | 12:54 | |
FROGGS | pippo++ | 12:55 | |
pippo | :-) | ||
lizmat | good *, #perl6! | 13:01 | |
backlogging | |||
fwiw, I see an increase in parse time from ~ 32 to ~35 seconds, aka about a 10% increase | 13:02 | ||
13:02
brrt joined
|
|||
dalek | p: 8a1edab | FROGGS++ | / (2 files): handle LTM for ignorecase+ignoremark |
13:02 | |
jnthn | lizmat: Hm, not anything local? It's about the same here as I remember it being from a week or so ago when I was last on this machine... | 13:03 | |
lizmat | pretty sure it's not something local | ||
feels to me it happend sometime between Monday and now | 13:04 | ||
pippo | o/ lizmat | ||
lizmat | pippo o/ | 13:06 | |
hmmm.... all but one tests fail of t/spec/S24-testing/line-numbers.t ? | 13:07 | ||
jnthn | lizmat: Yeah, something TimToady did, though it may have been to work around something I can fix another way | 13:09 | |
13:09
airdisa joined
|
|||
lizmat | ok, I'll drop it off of my "attention" plate :-) | 13:09 | |
13:10
muraiki left
13:14
muraiki joined
|
|||
dalek | p: 90e361b | FROGGS++ | / (3 files): update NFA_EGDE_* constants |
13:22 | |
p: bff4a2b | FROGGS++ | src/QRegex/NFA.nqp: fix endpoints of fates for :m and :i:m |
|||
timotimo | lizmat \o/ | ||
13:22
laouji left
|
|||
dalek | kudo/nom: 4d74d79 | FROGGS++ | tools/build/NQP_REVISION: bump nqp for NFA segfault fix |
13:23 | |
lizmat | timotimo o/ | 13:26 | |
afk again& | |||
colomon | OO::Monitors seems to be hanging my smoke tester | 13:27 | |
dalek | ast: 1ec7a2d | FROGGS++ | S05-metasyntax/longest-alternative.t: add LTM tests for /:i/ and /:i:m/ |
13:29 | |
ast: 6dc7114 | jnthn++ | S02-literals/quoting.t: Fix two tests to work on Windows also. |
13:31 | ||
masak | colomon: how ironic :/ | ||
dalek | kudo/nom: 32e57e5 | jnthn++ | src/core/IO/Spec.pm: Use a cheaper indirect lookup in IO::Spec.select. Now it accounts for only 0.4% of startup time, not 5%. |
13:32 | |
kudo/nom: 12eac61 | jnthn++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp: Simplify and remove race in role handling. Since this code was written, it seems we (for other reasons) changed the order things happen when setting up parametric roles and groups of them. Therefore, simplify it. This also removes a race condition if two threads tried to specialize the role at the same time, which led to candidates maybe being added twice. |
|||
masak | wow, threads and roles. didn't think of that. | 13:33 | |
timotimo | throles? | 13:34 | |
jnthn | We'll declare "I did declarative MOP operations from multiple threads at once on the same meta-object" as "your fault". | ||
But stuff that you might do in normal use of an object should of course work out fine. | 13:35 | ||
This is a case where it didn't, though thankfully the solution was removing a workaround for an earlier problem... :) | |||
13:35
vytas` left
|
|||
masak | :) | 13:36 | |
vendethiel | .oO( game of throles ) |
||
13:36
vytas joined
|
|||
masak | "in the game of throles, you do declarative MOP operations... or you die" | 13:37 | |
timotimo | i like the sound of that | ||
rjbs | Hm. I'm hitting a surprising error... | 13:38 | |
I have this error: | |||
Method 'unicode-to-zscii' not found for invocant of class 'Any' | |||
The line in question is: my $zscii = .unicode-to-zscii($string) | |||
I said {self} just before that and got an object of the class in which the method is defined, ZMachine::ZSCII. | 13:39 | ||
so I'm not sure why the invocant is "Any" | |||
moritz_ | rjbs: .unicode-to-zscii calls a method on $_ | ||
rjbs: you can $.unicode-to-zscii | |||
or self. | |||
rjbs | Oh, well, that's me being a newb, isn't it? :) | ||
Juerd | Or topicalise: for ($self) { my $zscii = .unicode-... } # :P | ||
rjbs | Thanks, time to go fix up a zillion never-tested lines of code. | ||
timotimo | Juerd: or "... given self" or "method foobar($_:) { ... }" or ... :) | 13:40 | |
moritz_ | Juerd: in Perl 6 one would use 'given' instead of 'for', more idiomatic | ||
timotimo | hmm | 13:41 | |
Juerd | I don't really understand why given and for both exist. | ||
timotimo | could we get the name of the callee when a method is not found? | ||
m: my $foo := (1, 2, 3); for $foo { .say; say "hehe" } | |||
camelia | rakudo-moar ca8232: OUTPUT«1hehe2hehe3hehe» | ||
timotimo | m: my $foo := (1, 2, 3); given $foo { .say; say "hehe" } | ||
camelia | rakudo-moar ca8232: OUTPUT«1 2 3hehe» | ||
timotimo | ^- weak argument | 13:42 | |
m: my $foo := (1, 2, 3); for $$foo { .say; say "hehe" } | |||
camelia | rakudo-moar ca8232: OUTPUT«1 2 3hehe» | ||
moritz_ | timotimo: re name of the callee, the backtrace should provide that | ||
vendethiel | (you could see any kind of method being called in stead of $foo here) | ||
andreoss | is rakudo aware of JAVA_HOME variable at any point? | ||
moritz_ | if not, we need to improve backtraces | ||
timotimo | moritz_: what i meant to say was: "can we get the error message to say "couldn't call unicode-to-zscii on $_ (of type Any)"? | 13:43 | |
plus another " | |||
rjbs | Oh, this is quite close to working! -- no ZSCII character available for Unicode U+00037 <LATIN CAPITAL LETTER G> | ||
13:44
xfix left,
brrt left
13:50
laouji joined
|
|||
moritz_ | timotimo: no idea | 13:51 | |
timotimo | does that seem helpful? | ||
colomon | woah, major fail in smoker | ||
timotimo | especially if you end up calling a method on something you didn't expect like in rjbs's case it'd be nice | ||
colomon | “Trying to unwind over wrong handler” | 13:52 | |
[Coke] | jdv79++ Thanks, me either; closed ticket. | 13:53 | |
13:55
domidumont joined,
laouji left
|
|||
hoelzro | morning #perl6 | 13:57 | |
timotimo | sup rob :) | ||
hoelzro | hey timo! | 13:58 | |
masak | hoelzro: \o | ||
hoelzro | o/ masak | ||
[Coke] catches up to realtime. Hio, everyone. | 14:01 | ||
moritz_ | \Coke/ | ||
14:01
danaj joined
|
|||
RabidGravy | Been getting "Method 'name' not found for invocant of class 'Any' in method revdeps at lib/Panda/Ecosystem.pm:148" from panda the last couple of days | 14:01 | |
timotimo | RabidGravy: aye, i already suggested a fix for tadzik | ||
masak | TimToady++ # CLIENT:: | 14:02 | |
14:02
berekuk left
|
|||
RabidGravy | timotimo, coolio - I won't worry about it too much | 14:02 | |
timotimo | can you try turning the "return unless something something" into "return Empty unless something something" in the method it called just a few lines up there? | ||
masak | TimToady: a neat solution to some problems Carp.pm had, and also solved but less elegantly. | ||
[Coke] | moritz_: I feel like that looks like this: faustus70.deviantart.com/art/THE-HE...-294308219 | ||
timotimo | that's pretty cool | 14:03 | |
14:05
_thou joined
|
|||
moritz_ | [Coke]: :-) | 14:06 | |
14:11
bjz joined
|
|||
timotimo | [Cake] | 14:15 | |
tony-o_ | [Coke]: that's pretty metal | ||
dalek | ake: 06196ce | arnsholt++ | snake: Update runner to use new installed NQP lib path. |
14:21 | |
ake: 2d95a5a | arnsholt++ | src/Snake/Metamodel/ClassHOW.nqp: Add name method to ClassHOW |
|||
ake: 9c6cf56 | arnsholt++ | src/Snake/Metamodel/ClassHOW.nqp: Set simple type cache on classes. Now instances of a type will be recognized as such, but no handling of subtypes yet. |
|||
ake: 9435e30 | arnsholt++ | src/Snake/ (2 files): Compute C3 method resolution order of classes. Code snarfed from NQP. |
|||
ake: 464d463 | arnsholt++ | src/Snake/Metamodel/ClassHOW.nqp: Use the MRO to find attributes in superclasses. |
|||
jnthn wonders if OSDC.no badgered arnsholt enough to work on Snake :) | 14:24 | ||
14:24
brrt joined
|
|||
arnsholt | Not so much badgered as reminded me that it's a fun project =) | 14:24 | |
masak | arnsholt: "badgered" was a pun, fwiw. :) | 14:25 | |
jnthn | I'm sure there's mushroom for improvement... :) | ||
masak | www.badgerbadgerbadger.com/ | ||
arnsholt | Durr. Me so clever =D | ||
masak | didn't want you to miss that one :P | ||
masak .oO( "reminded me that it's a pun project" ) | 14:26 | ||
14:26
dakkar joined
14:28
skids joined,
wtw joined
|
|||
[Coke] | perl6up, the pun cola? # I tried too hard and ruined it. ;) | 14:30 | |
FROGGS | :P | ||
14:35
espadrine joined
|
|||
[Coke] | anyone have a panda setup for local dev installs? kind of a pain to install panda into my ./install so I can install linenoise, wondering if anyone else is doing this for local dev. | 14:37 | |
FROGGS | m: say "a" ~~ /<:alpha>/; | ||
14:37
eli-se left
|
|||
camelia | rakudo-moar 12eac6: OUTPUT«「a」» | 14:37 | |
FROGGS | j: say "a" ~~ /<:Alpha>/; | 14:38 | |
camelia | rakudo-jvm 12eac6: OUTPUT«「a」» | ||
14:38
go|dfish left,
gtodd joined
|
|||
[Coke] | /bin/sh: ../install/bin/perl6: No such file or directory | 14:38 | |
panda doesn't like relative paths, I guess. | 14:39 | ||
gtodd | the text smiley for camelia »ö« needs bigger wings | 14:40 | |
14:40
muraiki left
|
|||
[Coke] | ok. Ran panda bootstrap, but now the panda in the install dir doesn't work. "...../bin/panda install Linenoise dies with: | 14:42 | |
Unhandled exception: Bytecode stream version too high | |||
14:43
muraiki joined
14:46
_thou left
|
|||
brrt | huh, i had an interesting idea... | 14:56 | |
[Tux] | m: use Test;like("Foo",rx{^ <["A".."Z"]> <["a".."z"]>+ $},"like");done; | 14:57 | |
camelia | rakudo-moar 12eac6: OUTPUT«Potential difficulties: Repeated character (") unexpectedly found in character class at /tmp/QEScmrK3B5:1 ------> 3use Test;like("Foo",rx{^ <7⏏5["A".."Z"]> <["a".."z"]>+ $},"like");don Repeated character (") unexpectedly found…» | ||
brrt | you know how one of the differences between components and primitives is that primitives is that primitives are always predictable (don't depend on unknown internal state) | ||
well, functional programming then is the desire to program using only primitives | 14:58 | ||
15:00
brrt left
15:05
laouji joined,
FROGGS[mobile] joined
|
|||
FROGGS | [Tux]: strip the quotes | 15:06 | |
[Tux] | yeah, I was more aiming at an overly verbose and unclear error message | ||
FROGGS | it might be verbose but it is not unclear IMO | 15:07 | |
m: /<[aa]>/ | |||
camelia | rakudo-moar 12eac6: OUTPUT«Potential difficulties: Repeated character (a) unexpectedly found in character class at /tmp/J84qnLlpdd:1 ------> 3/<7⏏5[aa]>/» | ||
[Tux] | it was to me :) | ||
FROGGS | bbl | ||
masak | hrm, brrt is always gone when I want to say thing to him :) | ||
brrt: you should get screen. ;) | |||
15:09
gfldex joined
15:11
atta left
15:12
estrabd joined
15:13
molaf_ joined,
go|dfish joined
15:14
airdisa left
15:15
molaf left
15:16
Erendis42d joined
|
|||
Erendis42d | carrier has arrived | 15:16 | |
masak | Erendis42d: but is it a European carrier, or an African carrier? | 15:17 | |
Erendis42d | :D | ||
colomon | hmmm, for isn’t flattening anymore. is there a cleaner upgrade that for (whatever).flat ? | 15:19 | |
hoelzro | FROGGS: is your NativeC++all work more of a POC, or do you forsee that being merged in someday? | ||
masak | colomon: maybe `for @(whatever)` ? | 15:20 | |
masak is not sure | |||
jnthn | colomon: for flat whatever { ... } | ||
colomon: Though guess that's a matter of taste :) | |||
colomon | jnthn++ | 15:21 | |
masak++ | |||
masak | ...but check whether I'm right! :P | ||
colomon | masak: I was just being nice because you tried to help. :p | 15:22 | |
masak | haha | ||
colomon | for flat works nicely, and makes my brain happy | ||
masak | m: sub f { 1, 2, 3 }; for f(), f() { say .perl } | 15:24 | |
camelia | rakudo-moar 12eac6: OUTPUT«(1, 2, 3)(1, 2, 3)» | ||
masak | m: sub f { 1, 2, 3 }; for flat f(), f() { say .perl } | 15:25 | |
camelia | rakudo-moar 12eac6: OUTPUT«123123» | ||
masak | m: sub f { 1, 2, 3 }; for @(f(), f()) { say .perl } | ||
15:25
FROGGS[mobile]2 joined
|
|||
camelia | rakudo-moar 12eac6: OUTPUT«(1, 2, 3)(1, 2, 3)» | 15:25 | |
masak | ok, I'm wrong. :) masak-- | ||
colomon | masak++ # for checking | 15:26 | |
masak | can't get rid of that bloody karma... :P | ||
15:28
FROGGS[mobile] left
|
|||
vendethiel | Erendis42d: not enough minerals! | 15:28 | |
masak: @() should only remove one level of itemization, right? | 15:30 | ||
TimToady | and the inside lists aren't, in fact, itemized | ||
yoleaux | 08:33Z <jnthn> TimToady: do you have a succinct example of the explicit/implicit onlystar issue? | ||
jnthn | TimToady: Ignore ^^, somebody gave me one | 15:31 | |
TimToady: I've just been juggling enough other problems so far today that I didn't get to it. | |||
masak | TimToady: so you're saying I was right but Rakudo is wrong? | ||
vendethiel | TimToady: sorry, wasn't clear, I meant I expected that behavior from @() seemed expected from me | ||
TimToady | masak: no, I wouldn't expect @() to flatten anything inside | 15:32 | |
jnthn | masak: No, I think the point was that Rakudo is right because we removed some places things flatten | ||
(intentionally) | |||
masak | okioki | ||
15:32
airdisa joined
|
|||
masak | in times like this I still feel that I don't speak native containerese. | 15:33 | |
dalek | p: 72c717e | jnthn++ | / (2 files): Map nqp::neverrepossess op on MoarVM. |
15:34 | |
TimToady | jnthn: well, gee, maybe you should deprioritize all this other thread robustness work and fix the piddly little thing I'm complaining about first... :) | 15:35 | |
jnthn | TimToady: I switched to pre-comp robustness work by now :P | ||
TimToady | you need to find fewer important problems to fix :P | 15:36 | |
jnthn tries to forget what RT is... | 15:37 | ||
moritz_ | RT is Radio Transmitter, right? :-) | ||
15:38
pippo left
|
|||
jnthn | Uh...I thought it was Random Teleporter? | 15:38 | |
geekosaur | rotten tomatoes | 15:39 | |
15:39
zakharyas left
|
|||
TimToady | as a datapoint, removing the frame cache did not fix the start { [@a] } race, so there's still something wrong down in .gimme somewhere | 15:41 | |
maybe GLR will pave it over though | |||
jnthn | Maybe. I've been working on the stuff exposed by hitting up an IO::Socket::Async server with a bunch of requests. | 15:43 | |
But nothing I found/fixed so far was specified to that. | |||
So other things might behave rather less like magic 8-balls now too :) | |||
(But I'm aware there's still more to hunt down and fix.) | 15:44 | ||
TimToady | this one does look like a nursery issue, insofar as it always happens earlyish in the sequence, never later | ||
jnthn | Hm, interesting. | ||
Well, there's GC diags I can turn on to see if they also fit the hypothesis. | 15:45 | ||
jnthn is almost all the way to a RT #125090 fix | |||
But gotta be attentive to something else for a little while. Back later. :) | |||
15:47
synbot6 joined
15:48
[Sno] left,
[Sno] joined
|
|||
TimToady wonders how much user code depends on Parcel being named Parcel rather than, say, Tuple... | 15:49 | ||
dalek | rl6-roast-data: a0d2875 | coke++ | / (9 files): today (automated commit) |
15:52 | |
Erendis42d | :)~ | 15:53 | |
[Coke] | build bug: after configuring for moar only, then doing "make -j install", I do not have a ./perl6 | 15:54 | |
TimToady | that's the make m-runner-default target's job | 15:56 | |
but yeah, for that reason I depend more on aliases and PATH than on ./perl6 | 15:57 | ||
15:57
raiph joined
|
|||
lichtkind | greetings, my perl 6 talk in dreden went well i only said bs twice and FROGGS cought me imediately | 15:58 | |
[Coke] | I can see where install might not have to depend on that. | ||
lichtkind | the version in granada will have new bugs | ||
TimToady | sounds like what we do around here all the time :) | 15:59 | |
moritz_ | [Coke]: but you do have a ./perl6-m, right? | 16:01 | |
colomon | Getting this error in the Testing module — “concatenate requires a concrete string, but got null” — looks like it might be new in the last day or two? | ||
bartolin | colomon: for what code do you get that error? | 16:03 | |
moritz_ | [Coke]: I'm testing a fix right now | ||
colomon | bartolin: | ||
my $caller = callframe(2); | |||
$diagnostics ~= sprintf($TEMPLATE, '#') ~ " at $caller.file() line $caller.line()\n" | |||
~ "# have: $have.perl()\n"; | |||
oh wow, just got a seg fault trying to debug this | 16:05 | ||
TimToady | and you're not even on a segmented architecture! | ||
colomon | my $caller = callframe(2); | ||
say :$caller.perl; # /Users/colomon/.rakudobrew/bin/perl6: line 2: 30251 Segmentation fault: 11 | |||
16:08
diana_olhovik left
|
|||
[Coke] | moritz_: yes, had ./perl6-m | 16:08 | |
bartolin | colomon: hmm, 'sub proclaim' in Test.pm uses a similiar construct and tests in S24-testing/line-numbers.t started to fail after commit 6ce90d52 (see irclog.perlgeek.de/perl6/2015-05-14#i_10600999) | 16:09 | |
colomon: maybe that's related | |||
TimToady | having looked recently at the implementation of callframe, I'm not terribly surprised...throwing a fake exception in order to collect a backtrace from which we fake up objects that pretend to be frames seems a bit roundabout... | 16:10 | |
colomon | bartolin++ | ||
TimToady: what does “skip onlystar on CALLER” mean? | 16:11 | ||
TimToady | if you have a proto whose body is defined as {*}, it's not counted as the caller of the multi | ||
it's as if the caller of the proto called the multi directly | 16:12 | ||
colomon | and that’s the default proto? | ||
lichtkind | TimToady thanks man looking foreward to see you again in granada | ||
TimToady | colomon: yes | ||
colomon | bet that’s exactly it | ||
TimToady | I didn't change callframe | ||
callframe actually has nothing to do with CALLER currently | |||
CALLER and other PseudoStashes are implemented with low-level nqp ops that access the frames directly | 16:13 | ||
colomon | TimToady: you say that, but it’s in a multi sub with a default proto and changing it to callframe(1) fixes the seg fault | ||
TimToady | the default proto is often optimized away anyway, so it could be a similar trigger, yes | 16:14 | |
the bug I was working on was that an implicit (autogenerated) proto was not optimized away till after the first call | |||
so you had to say CALLER::CALLER:: on the first call, but CALLER:: on subsequent calls | 16:15 | ||
callframe could easily suffer the same issue, I suppose | |||
an explicit proto is a workaround | |||
colomon | and that fixed things | ||
TimToady | but I didn't change how things actually get optimized, just compensated for the inconsistency | 16:16 | |
16:16
kaare_ left
|
|||
TimToady | callframe probably needs the same compensation, unless the optimizer is made more consistent | 16:16 | |
Erendis42d | bbl<3 | 16:17 | |
TimToady | unless, maybe, the fix I did to the autogen also fixed callframe, maybe it already skips onlystars, but didn't have the info because the autogen didn't install a &?ROUTINE symbol | 16:18 | |
Erendis42d | ¦* | ||
16:18
Erendis42d left
|
|||
raydiak | m: multi sub foo { say callframe.level }; proto sub bar (|) {*}; multi sub bar { say callframe.level }; foo; bar; | 16:18 | |
camelia | rakudo-moar 12eac6: OUTPUT«22» | ||
TimToady | that would be consistent with what you saw | ||
raydiak | I can confirm that ^^ is the same before the CALLER change as well, oddly | 16:19 | |
16:19
sunnavy joined
|
|||
tony-o_ | m: my $r = start { sleep .25; say $*E; }; my $*E = 5; await $r; | 16:23 | |
camelia | rakudo-moar 12eac6: OUTPUT«===SORRY!===Dynamic variable $*E not found» | ||
tony-o_ | TimToady: is there any way to make that start block refresh its cache if that is the issue? | ||
16:25
sunnavy left
|
|||
[Coke] | weird. perl tools/auto<tab> gives me perl tools/autounfudge.pl/ | 16:25 | |
16:26
sunnavy joined
|
|||
[Coke] | (yes, I realize this probably has nothing to do with rakudo) | 16:26 | |
TimToady | tony-o_: I can't think of a way, offhand | 16:27 | |
16:28
jdurand_ joined
|
|||
TimToady | m: my $*E; my $r = start { sleep .25; say $*E; }; $*E = 5; await $r; | 16:29 | |
camelia | rakudo-moar 12eac6: OUTPUT«===SORRY!===Dynamic variable $*E not found» | ||
lizmat | while backlogging and thinking about CLIENT:: I can't help but wonder whether CLIENT:: is not a special case of STASH[selector]:: | ||
TimToady | m: my $*E = 5; my $r = start { sleep .25; say $*E; }; await $r; | ||
camelia | rakudo-moar 12eac6: OUTPUT«===SORRY!===Dynamic variable $*E not found» | ||
TimToady | I don't think the problem is cacheing here | ||
looks more like a visibility problem | 16:30 | ||
lizmat | pretty sure that CALLER:: inside the start is something entirely different | ||
m: my $E = 5; my $r = start { sleep .25; say $E; }; await $r; | |||
camelia | rakudo-moar 12eac6: OUTPUT«5» | ||
lizmat | hmmm.... | ||
TimToady | that's outers, not callers | ||
lizmat | Ah, yeah, duh | 16:31 | |
lizmat gets some invigorating tea after a long cycle trip | |||
TimToady | m: my $r = start { sleep .25; say %*ENV<HOME>; }; await $r; | ||
camelia | rakudo-moar 12eac6: OUTPUT«/home/camelia» | ||
jdv79 | lizmat: how long? | ||
16:31
jdurand_ left
|
|||
lizmat | all in all only 100 minutes :-) | 16:31 | |
26.5 km at an average of 20 km/hour | 16:32 | ||
andreoss | m: say hyper 1..10 | ||
m: say 1 | |||
camelia | rakudo-moar 12eac6: OUTPUT«Use of Nil in string context at /home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm line 1 in any multi_sig_list at src/gen/m-Perl6-Optimizer.nqp:1661Use of Nil in string context at src/gen/m-Perl6-Optimizer.nqp line 1661 in any rep…» | ||
rakudo-moar 12eac6: OUTPUT«1» | |||
16:32
andreoss left,
andreoss joined
16:33
jdurand_ joined
|
|||
jdv79 should probably ride today - been a few days... | 16:33 | ||
TimToady | that hyper is a poorly named internal routine | 16:34 | |
16:34
airdisa left
|
|||
TimToady | it's not the specced hyper | 16:34 | |
16:34
jdurand_ left
|
|||
lizmat | s/hyper/HYPER ? | 16:34 | |
TimToady | at least | 16:35 | |
lizmat | there appears to be a method dispatch:<hyper> in Mu | ||
and a proto sub hyper(|) { * } in metaops | |||
will change the latter and see what breaks | |||
16:38
dakkar left
16:40
vendethiel left
|
|||
[Coke] | lizmat: can we run S17-procasync/kill.t again? | 16:44 | |
Not sure why you removed it in 456d8f0d48ee37240deb7a52a589795f2025200e | 16:45 | ||
16:45
vendethiel joined
|
|||
[Coke] | It seems to be fudged ok. | 16:45 | |
lizmat | sure... the most important test still fails, however... :-( | 16:46 | |
TimToady | restart-concurrent still fails in pretty much the same way(s) | ||
16:47
achauvin joined
16:49
coffee` left,
coffee` joined
|
|||
dalek | kudo/nom: 49666f3 | coke++ | t/spectest.data: Run this (fudged) test again. |
16:50 | |
[Coke] | t/spec/S16-filehandles/connect.t - this is testing 'connect', which doesn't seem to be a thing anymore. Kill it? | 16:52 | |
16:54
Possum left
16:56
yqt joined
16:57
Possum joined,
spider-mario left
|
|||
dalek | p: 2fbfb3d | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: map <:alpha> etc to proper lookup on jvm, RT #125190 |
16:58 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125190 | ||
16:59
spider-mario joined,
eli-se joined
|
|||
[Coke] | m: connect | 17:00 | |
camelia | rakudo-moar 12eac6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KMYC_V6vOcUndeclared routine: connect used at line 1» | ||
17:01
telex left
17:02
telex joined
17:07
vendethiel left
17:09
coffee` left
|
|||
dalek | ast: f403822 | coke++ | S16-filehandles/connect.t: remove old test - connect not mentioned in SYN |
17:09 | |
17:09
coffee` joined
|
|||
dalek | kudo/nom: 9c6e709 | coke++ | t/spectest.data: Remove reference to deleted test |
17:10 | |
[Coke] | the specs say: | 17:12 | |
The following functions can now be found in or replaced by something in the Temporal | |||
modules. | |||
gmtime, localtime, time | |||
17:13
spider-mario left
|
|||
[Coke] | but t/spec/S32-temporal/time.t seems to indicate we should have those, not replacements. Direction? | 17:13 | |
17:15
vendethiel joined
17:16
kaare_ joined
17:17
spider-mario joined
17:18
yqt left
17:19
andreoss left
17:20
andreoss joined
|
|||
jnthn | About this one: | 17:20 | |
my $r = start { sleep .25; say $*E; }; my $*E = 5; await $r; | |||
We currently look up $*FOO down the caller chain (only). | |||
And the caller chain of the thread that runs the start block is unrelated to that of the thing that does "start" | 17:21 | ||
I dunno if we're *meant* to do something else, but we've been getting away with doing it the current way for...ages. :) | 17:22 | ||
jnthn is gonna eat, then will get back to fixing stuffs :) | |||
TimToady | so it's really getting the worker thread's caller, eh? that seems not very...useful... | 17:24 | |
jnthn | Not even that | 17:26 | |
Every thread's call chain bottoms out at the start of the thread. | |||
The call stacks are independent. | |||
TimToady | I get more than that when I list callframes though | ||
seems | 17:27 | ||
but anyway, how hard would it be to fake caller back to the start? | |||
jnthn | Well, you'll be able to see the infrastructure that is pulling tasks out of the todo list | ||
Hmm | |||
17:27
andreoss left
|
|||
jnthn | It may not be too terrible | 17:27 | |
I mean, we already do various kinds of fallback | |||
TimToady | seems like it's just poking an appropriate pointer somewhere | ||
jnthn | It's just another of those perhaps. | ||
FROGGS | m: say "\t" ~~ /<.space>/; say "\t" ~~ /<:space>/ # shouldn't that be the same? | 17:28 | |
camelia | rakudo-moar 49666f: OUTPUT«「 」Nil» | ||
jnthn | It should be do-able. | ||
really food :) & | |||
timotimo | i can't make out what piece of rakudo generates that extra decont in my mastref branch :( | ||
17:29
diana_olhovik_ joined
|
|||
TimToady | tony-o_: feel free to RT the start caller thing if you haven't already | 17:30 | |
17:38
vendethiel left
17:41
vendethiel joined,
pecastro left
|
|||
lizmat will take Madness to the Max on a Fury Road for a bit & | 17:41 | ||
DrForr | I'm going tomorrow night, all indications are it's fun. | 17:42 | |
jnthn back | 18:00 | ||
18:00
estrabd left
|
|||
dalek | p: d4e1ae0 | TimToady++ | src/QRegex/P6Regex/Grammar.nqp: Alert user to thinko on quotes in cclasses |
18:06 | |
rjbs | jnthn: Any sort of p6 events going on around YAPC::Asia? | ||
rjbs needs to plan and book his travel, wonders where to pad. :) | |||
18:07
vendethiel left
|
|||
TimToady is fortunate to be married to his travel agent :) | 18:07 | ||
jnthn | rjbs: Not that I know of. | ||
rjbs: I suspect I'll be there not that much longer than the conf | 18:08 | ||
For one 'cus I've gotta get back for the Swiss workshop. :) | |||
rjbs | I'll definitely get in a day or two early so I can adjust to the clock. | ||
TimToady | heading straight to Sw...yeah that | ||
jnthn | I'll be heading there via home | 18:09 | |
TimToady | cheapest fare from .jp to .ch turned out to be Turkish Air | ||
jnthn has used Turkish plenty of late | 18:10 | ||
TimToady | though we might have snapped up the last couple seats give or take | ||
rjbs | Every seat in first class has its own samovar? | ||
18:10
cognominal joined
|
|||
jnthn | Not the most punctual of airlines, but the food beats the average :) | 18:10 | |
TimToady | what is the first class of which you speak? | ||
rjbs | TimToady: It's the weird corridor full of enormous chairs that leads to the cabin. | 18:11 | |
18:11
Sqirrel left
|
|||
TimToady | ah, I always wondered what those were for | 18:11 | |
rjbs | I wonder whether I'll ever have enough prestige to get an upgrade to first... | ||
TimToady: It's where they seat the samovar maintenance crews. | |||
dalek | p: 1022bca | jnthn++ | src/vm/jvm/ (3 files): Implement nqp::neverrepossess on JVM. |
||
TimToady | as far as I know, prestige has little to do with it, compared to money | 18:12 | |
rjbs | Oh, I just mean frequently flyer miles. | ||
(Why did I adverb that?) | |||
18:12
vendethiel joined
|
|||
DrForr | Thinko for 'frequently flying'? | 18:15 | |
dalek | kudo/nom: 161bc58 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for nqp::neverrepossess. And also a MoarVM pre-comp regression fix. |
||
kudo/nom: 928c9a9 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Opt PROCESS out of serialization repossession. Prevents us screwing up $*OUT and friends when we happen to put stuff in PROCESS during a module's compile time. |
|||
DrForr | . o ( neverrepossess - Someone trying to break the record for doubled letters? ) | 18:16 | |
jnthn | .oO( Dammit, caught again ) |
||
dalek | ast: 5fcb855 | jnthn++ | S10-packages/precompilation.t: Tests covering RT #125090. |
18:17 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125090 | ||
TimToady | lunch & | ||
18:19
naptastic joined
|
|||
naptastic | Do I understand correctly that the distinctions between hashes / hashrefs, and arrays / arrayrefs, have been basically done away with in Perl 6? | 18:19 | |
18:20
cognominal left
|
|||
vendethiel | naptastic: yes | 18:20 | |
naptastic | :) | ||
vendethiel | we have itemization instead of references | ||
m: for 1, 2, 3 -> { say $n.perl }; say 'and now...' for (1, 2, 3).item -> $n { say $n.perl }; | 18:21 | ||
camelia | rakudo-moar 9c6e70: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dnemqM7u7uVariable '$n' is not declaredat /tmp/dnemqM7u7u:1------> 3for 1, 2, 3 -> { say 7⏏5$n.perl }; say 'and now...' for (1, 2, 3» | ||
naptastic | Is there a good place to read about itemization? | ||
vendethiel | m: for 1, 2, 3 -> $n { say $n.perl }; say 'and now...' for (1, 2, 3).item -> $n { say $n.perl }; | ||
camelia | rakudo-moar 9c6e70: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6w1DgpZOZUUnexpected block in infix position (missing statement control word before the expression?)at /tmp/6w1DgpZOZU:1------> 3l }; say 'and now...' for (1, 2, 3).item7⏏5 -> $n { say $n.perl };…» | ||
vendethiel | m: for 1, 2, 3 -> $n { say $n.perl }; say 'and now...'; for (1, 2, 3).item -> $n { say $n.perl }; # grr, semicolons! | 18:22 | |
camelia | rakudo-moar 9c6e70: OUTPUT«123and now...$(1, 2, 3)» | ||
tony-o_ | how do i do an RT? | ||
vendethiel | the first loop iterates 3 times, the second one only once | ||
gfldex | naptastic: you want to look at traits in signatures (is rw, is ro, is copy) and binding (the fancy := operator) | ||
vendethiel | tony-o_: I guess an email to perlbug? | ||
jnthn | tony-o_: Submit one? | ||
vendethiel | gfldex: I don't think so | ||
tony-o_ | ive never used nor do i know what rt is | 18:23 | |
vendethiel | naptastic: It's a bit moving these days, but I have a part ready for my tutorial that explains how it goes (the perl6 learnxinyminutes, if you've seen it) | ||
tony-o_ | other than a bug tracker | ||
jnthn | tony-o_: It's the bug tracker we use for Rakudo | ||
tony-o_: You add a ticket by mailing [email@hidden.address] | |||
tony-o_: Preferably showing code you ran, what it did, and what you expected it to do. | |||
naptastic | I haven't... my job is Perl 5, and I'm finding Perl 6 to be very different and, in many ways, inaccessible, so I'm not spending a ton of time on it. | 18:24 | |
tony-o_ | ah cool ty | ||
18:30
berekuk joined
|
|||
timotimo | naptastic: it'd be nice if you could tell us what things you stumble over when trying to approach it | 18:30 | |
18:30
rindolf left
|
|||
naptastic | timotimo, There doesn't appear to be a direct, "here is what's different from Perl 5" that's also up-to-date. | 18:31 | |
That's a problem that will solve itself, in time, so I've taken the attitude that I should just wait. | |||
timotimo | the one on perlgeek.de has just been revisited a few months back | 18:32 | |
doc.perl6.org/language/5to6 - this should be fine, too | |||
naptastic | Oh cool... I probably haven't seen the updated version then. | ||
m: open( my $fh, ">", "/dev/null" ); say ref $fh; | 18:36 | ||
camelia | rakudo-moar 9c6e70: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tQE7bIvU1oUndeclared routine: ref used at line 1» | ||
naptastic | m: open( my $fh, ">", "/dev/null" ); say $fh; | 18:37 | |
camelia | rakudo-moar 9c6e70: OUTPUT«open is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub open at src/RESTRICTED.setting:9 in block <unit> at /tmp/dga8XXlXKs:1» | ||
naptastic nods | |||
timotimo | can't do that with the evalbot | ||
naptastic | Very well, then. | ||
Makes sense. | |||
After all, securitah :) | |||
Would be nice to be able to open into a scalar, at least; though I'm sure that's not a super common need. | |||
timotimo | please explain what "open into a scalar" means? | 18:38 | |
i never perl5'd, you see | |||
masak | timotimo: think it means just "store the file handle in a variable". :) | 18:39 | |
timotimo | oh, that's cute | ||
is that what the barewords thing is with perl5? | |||
no, not barewords. what was the term? | |||
something glob? | |||
naptastic | no, I mean | ||
open (my $fh, ">", \$scalar); | |||
and if you print {$fh}, the output goes into the scalar. | 18:40 | ||
I use it in testing, if some subroutine wants to read a file and I can't guarantee the file exists. "Here's an example of what such a file might look like," I say, handing the subroutine a scalar-ref instead of a filename... | 18:41 | ||
dalek | kudo/nom: 0960004 | jnthn++ | src/core/Inc.pm: Remove workaround we (hopefully) don't need. The earlier fixes to $*DISTRO and friends in pre-comp mean we should not need this any more. The various pre-comp spectests continue to work. |
18:54 | |
ugexe | grammar foo { rule TOP { $<some-token-name>=<alpha>+ ":" <<$some-token-name>> }; token bar { <digit>+ }; }; foo.parse("bar:42").say; foo.parse("bar:xx") # Can I somehow use a stringified match result to use a token/rule of the same name without actions? (so my made up <$<some-token-name>>, if $<some-token-name> was bar, would be parsed as <bar>) | 18:58 | |
raiph | naptistic: stackoverflow.com/questions/2870285...-in-perl-6 | 18:59 | |
er, naptastic ^^ | 19:00 | ||
masak | naptastic: I think in Perl 6 one'd... what raiph linked. | ||
well, my suggestion isn't really in that page, so here goes anyway. | |||
19:01
Sqirrel joined
|
|||
masak | it's easy to create a class which acts just like an IO::Handle, but which closes over a scalar. so when you print/say things to the object, they end up in the scalar. | 19:01 | |
let me see if I can produce a small example. | |||
dalek | ast: 7a30e35 | FROGGS++ | S05-mass/properties-general.t: add tests for RT #125190 |
19:06 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125190 | ||
dalek | p: d5b3a73 | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: bring ischarclass in line with moar |
||
kudo/nom: 4f69ba1 | jnthn++ | src/core/Inc.pm: Avoid full init of $*VM at startup. We tried this before, but it ran into pre-comp issues. Those are now hopefully resolved, so let's try it another time. Verified we do not regress any spectests and that Panda still rebootstraps fine. |
|||
kudo/nom: 7ae5a85 | FROGGS++ | tools/build/NQP_REVISION: bump nqp/jvm for ischarclass fixes |
19:07 | ||
masak | m: my $scalar; my $fh = IO::Handle.new but role { method print(*@stuff) { $scalar ~= $_ for @stuff }; method print-nl { self.print("\n") } }; $fh.say("OH HAI"); $fh.say("bai bai"); say $scalar | 19:08 | |
camelia | rakudo-moar 928c9a: OUTPUT«IO::Handle is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in method new at src/RESTRICTED.setting:32 in block <unit> at /tmp/cFN1Y8JZnh:1» | ||
masak | oh well. | ||
works locally :) | |||
naptastic: ^^^ | |||
FROGGS | hoelzro: I expect that the C++ will be merged in at some point | 19:10 | |
hoelzro | FROGGS: is the work just on MoarVM at this point? | 19:11 | |
or are there nqp/Rakudo branches as well? | |||
FROGGS | there is stuff in moarvm and rakudo | 19:12 | |
bartolin | FROGGS: you looked at the failing tests in S24-testing/line-numbers.t this morning. I opened a (trivial) PR (428) for rakudo, which fixes these failures. | ||
j: say 1..Any # would be fixed with PR 429 | |||
camelia | rakudo-jvm 928c9a: OUTPUT«Cannot unbox a type object» | ||
FROGGS | bartolin: hmmm, I dunno if jnthn is working on that too | 19:13 | |
dalek | kudo/nom: c9c8faf | usev6++ | src/core/control.pm: unbust warning for Any as Range endpoint for JVM |
||
kudo/nom: e63369d | FROGGS++ | src/core/control.pm: Merge pull request #429 from usev6/warnings_jvm_any unbust warning for type objects as Range endpoint for JVM |
|||
19:14
zoosha left
|
|||
bartolin | FROGGS: no problem, it can wait. just wanted to mention it, so that you or someone else don't have to spend time on that | 19:16 | |
FROGGS | bartolin: yes, also there is a chance that your patch is the right fix :o) | 19:17 | |
19:17
sunnavy left
|
|||
bartolin | *g* | 19:17 | |
hoelzro | FROGGS: ok ,thanks | ||
I want to do something with a C++ library (Xapian), so I figured I could start playing with it | 19:18 | ||
FROGGS | hoelzro: I'd be happy if union would go in this week... the C++ stuff needs more work to be mergeable | ||
hoelzro | FROGGS: the cpp branch can be ignored, right? it's cpp2 that matters? | ||
jnthn | FROGGS, bartolin: Currently spectesting what I think was the right fix for the thing that I believe busted line number reproting | ||
FROGGS | hoelzro: correct | 19:19 | |
19:19
sunnavy joined
|
|||
bartolin | jnthn++ | 19:19 | |
hoelzro | FROGGS: well, if I play with it, I can help find issues, or maybe even submit fixes if I'm capable =) | ||
jnthn | But it doesn't fix the line numbers. Hm. | ||
DrForr | hoelzro: I'm headed to bed here, but github.com/drforr/perl6-readline is documented and reasonably ready to roll. There's a bunch of stuff inside that's untested, and I need to figure out how to bind the rl_input_fh and output_fh to perl6 before I can write proper tests, but feel free to look it over. | 19:20 | |
FROGGS | hoelzro: I removed MoarVM/cpp btw | ||
hoelzro: would be nice if you'd play with it :o) | |||
hoelzro | DrForr: cool, I'll try to look at it! | ||
FROGGS | hoelzro: there are cpp tests in rakudo/t/04-nativecall/ | ||
jnthn: maybe PR 428 is sensible after all? | 19:21 | ||
DrForr | The script in examples/ does everything I've been able to do with it so far, but I haven't extensively written up testing stuff, and no callbacks yet. | ||
hoelzro | FROGGS: I'll give it a shot, thanks! | ||
DrForr: we'll need the callbacky stuff for REPL integration | 19:22 | ||
well, that's a lie | |||
jnthn | FROGGS: Looking. My fix does deal with the actual goal | ||
hoelzro | we can use it without enabling the tab completion stuff | ||
jnthn | FROGGS: That is, it fixes the thing you gave me this morning. | ||
FROGGS | hoelzro: I'd be happy to implement stuff for you if you need something | ||
DrForr | hoelzro: Yeah, I need to look at that next, just to have a wider variety in the testing suites. I'l look at it this weekend probably. | 19:23 | |
hoelzro | FROGGS: I'll try it out and let you know | ||
DrForr: I'll try it out and see how hard it would be to tie into the REPL | |||
jnthn | FROGGS, bartolin: I think the pull request actually is needed in addition to my fix | ||
TimToady's got righter semantics but in a less-than-ideal way | |||
FROGGS | that's why he pinged you | 19:24 | |
jnthn | The PR brings Test.pm in line with the correct semantics, which I'm maintaining. | ||
DrForr | Cool. I'm usually around from 10am-6pm UTC+2, then break or supper, and popping up bak at home. | ||
FROGGS | jnthn: that's proper collab :o) | ||
dalek | kudo/nom: 8e65a32 | usev6++ | lib/Test.pm: Fix reported line numbers for failing tests |
||
kudo/nom: 965237f | jnthn++ | lib/Test.pm: Merge pull request #428 from usev6/line_numbers Fix reported line numbers for failing tests |
|||
[Coke] | repeat question: is anyone using panda in a ./install directory? I keep getting errors. | 19:25 | |
now getting Missing or wrong version of dependency 'src/gen/m-CORE.setting' trying to use 'panda install Linenoise' | |||
FROGGS | I've not used/installed panda since two weeks or so | 19:26 | |
dalek | kudo/nom: e8fdad7 | jnthn++ | src/ (2 files): Make CALLER ignore gen'd protos a better way. This avoids the need for extra code in the CALLER:: implementation by using the same mechanism that makes explicit onlystar protos be skipped over. |
||
19:27
spider-mario left
|
|||
jnthn wonders if any tests got added for the CALLER/proto thing he just fixed... | 19:29 | ||
19:30
spider-mario joined
|
|||
jnthn | Well, fixed the fix for :) | 19:30 | |
FROGGS | jnthn: btw, I'd be ready for serialization stuff when you are :o) | 19:31 | |
jnthn | FROGGS: OK, I'll make a cup of tea and then I'm ready :) | 19:32 | |
FROGGS | \o/ | 19:33 | |
FROGGS asked $wife for tee via irc - life is good | |||
tea* | |||
1) checkout jsoff in MoarVM, nqp and rakudo, and rebuild all the things | 19:34 | ||
19:35
domidumont left
|
|||
timotimo | 0.07user 0.01system 0:00.09elapsed 100%CPU (0avgtext+0avgdata 60544maxresident)k | 19:37 | |
^- perl6 -e 'say 1' | |||
FROGGS | timotimo: is that good or bad? | ||
timotimo | i think it's rather good | ||
FROGGS | okay :o) | ||
I don't monitor that | |||
hoelzro | FROGGS: I'm probably going to merge nom/master into cpp/cpp2; is it alright for me to push those merges? | 19:38 | |
FROGGS | hoelzro: sure | ||
19:38
pdcawley left
|
|||
timotimo | used to be 0.13 elapsed and 68.3mb | 19:41 | |
FROGGS | ohh nice | ||
that's quite an improvement | |||
jnthn | FROGGS: Building the jsoff branches at the moment | 19:42 | |
FROGGS | k | ||
JimmyZ | ./perl6-m -e0 0.12s user 0.02s system 99% cpu 0.147 total | 19:45 | |
was 0.2 | |||
jnthn | FROGGS: All built. Next? :) | 19:46 | |
FROGGS | jnthn: go to you rakudo dir, and run: perl6 ser.pl | ||
jnthn: [] is the object to be serialized, after that is the string heap | |||
jnthn | ===SORRY!=== | 19:47 | |
Bytecode stream version too high | |||
FROGGS | O.o | ||
jnthn | ah | ||
it's better after "make install" :) | |||
FROGGS | jnthn: do you have a TEST_FILE in there by... ahh! | ||
:D | |||
so, you see the string heap? | |||
(the stuff after the word "serialize") | 19:49 | ||
jnthn | ah, that's what it is | ||
FROGGS | yeah | ||
run ser.pl one more time | |||
you'll see the string heap again (after "dersialize") | |||
19:49
zoosha joined
|
|||
FROGGS | then the objects of the sc and then the modified object | 19:50 | |
and then you see a truncated string heap after "serialize" | |||
jnthn | yes, and then a bunch of nuke lines | ||
And then a [42] | |||
FROGGS | and the truncated string heap is the problem | ||
[42] is the desialized object we pushed to | |||
look at ser.pl | |||
jnthn | Looking, but I don't get an explosion... | 19:51 | |
oh, I do the third time | |||
FROGGS | I'll explain | ||
right | |||
jnthn | ("Probable version skew in Ser.pm) | ||
FROGGS | since we now serialized a truncated string heap, we cannot serialize it this time | ||
deserialize* | |||
jnthn: when you change $a.push to $a.unshift it works | 19:52 | ||
because push_o in interp.c has a WB check and unshift does not | |||
jnthn: but, you need to delete TEST_FILE after such a "crash" | 19:53 | ||
jnthn | *nod* | ||
pmichaud_ | good morning, #perl6 | ||
FROGGS | so, what does that mean that hitting such a WB makes this kind of trouble? | ||
pmichaud_ | er, good afternoon | ||
19:53
pmichaud_ is now known as pmichaud
|
|||
FROGGS | hi pmichaud_ | 19:53 | |
hi pmichaud* :o) | |||
jnthn | FROGGS: Hm, why can I not find scdisclaim in the Moar source tree? | 19:54 | |
oh, 'cus you didn't call it that yet :) | |||
vendethiel | \o pmichaud | ||
jnthn | o/ pmichaud | ||
Hope the journey home was easy | |||
FROGGS | jnthn: because the op is (wrongly) called nukescidx | 19:55 | |
pmichaud | yes, no problems with the journey home. Mainly I've just needed to catch up on sleep since then. :) | ||
FROGGS | it will get the correct name when I reapply the code to moar/master | ||
19:56
cognominal joined
|
|||
FROGGS | what I don't understand with the WB in push_o is that the condition in the check in MVM_SC_WB_OBJ for the sc_idx should not become true | 19:58 | |
jnthn | FROGGS: Yeah, exploring what's going on... | 20:02 | |
FROGGS | MVM_get_idx_of_sc is 0 for all 5 objects in my SC, just added debug output for that | ||
20:06
raiph left
|
|||
raydiak thinks we should stop living in big cities and break back up into communal villages and nomadic hunter-gatherer tribes so he doesn't have to fight this fu^Wcar any more :) | 20:07 | ||
FROGGS | raydiak: I don't even have a car :o) | ||
bartolin | m: my $str = "abc"; my $re = { $str ~~ s:Perl5/^(.)/{ state $svar; ++$svar; }/; }; $re(); $re(); say $str | 20:08 | |
camelia | rakudo-moar e8fdad: OUTPUT«2bc» | ||
raydiak | FROGGS: then you likely pay a lot more for your transportation than the rest of us, or Gernamy is very different from where I am :) | ||
*Germany | |||
vendethiel | bartolin: `state $++` :P | ||
FROGGS | raydiak: I walk 1000m to $work :P | ||
bartolin | ^^ "2bc" is the correct result, isn't it? | ||
[Coke] | FROGGS: "that's a lot of miles, pardner" </clueless american> | 20:09 | |
bartolin | vendethiel: yes. I copied the code from S04-declarations/state.t | ||
raydiak | FROGGS: that's quite commendable and a direction I may head. :) carried a car battery more than a mile over the last two days just to have it die on me again :P | ||
(car battery with no carrying handle) | 20:10 | ||
raydiak thought about using rope but decided to build up the shoulder muscles instead | |||
FROGGS | raydiak: either way that thing does not want to be carried :o) | ||
[Coke] | (I drive 14.7mi. I should really think about biking now that the weather's decent.) | ||
pmichaud | I currently walk 20m to work. | ||
20:10
darutoko left,
lichtkind_ joined
|
|||
FROGGS | pmichaud: and you don't check the weather report before dressing up for $work? | 20:11 | |
raydiak | FROGGS: I see now why physicists call it "work" :) | ||
FROGGS | heh | ||
20:11
andreoss joined
|
|||
pmichaud | FROGGS: correct, I don't check the weather report for that. | 20:12 | |
20:13
lichtkind left
|
|||
FROGGS | I work from home only every once in a while | 20:15 | |
and I am usually more productive that way, but for that the kids have to cope | |||
which is what they do now because they sleep :o) | 20:16 | ||
pesky little things :o) | |||
jnthn | FROGGS: Patches pushed to MoarVM/jsoff that resolve the issue. | 20:19 | |
20:19
raiph joined
|
|||
FROGGS | O.O | 20:19 | |
jnthn | FROGGS: Well, one resolving it, another is to push you in the right direction on something else that'll need fixing. | 20:20 | |
raydiak | FROGGS: I know you have been involved with S22 implementation...have you seen my versioning question in the backlog? irclog.perlgeek.de/perl6/2015-05-14#i_10600513 | ||
FROGGS | jnthn: awesome! | 20:21 | |
dalek | ast: de2e5ea | usev6++ | S04-declarations/state.t: Fix and unfudge test for state() inside regex |
||
andreoss | m: say [-] -1 | ||
camelia | rakudo-moar e8fdad: OUTPUT«-1» | ||
jnthn | FROGGS: Please give it a spin and see if it helps :) | ||
FROGGS: I've got a lot of 42s now though :) | |||
20:21
naptastic left
|
|||
FROGGS | it seems to help!!! | 20:22 | |
*g* | |||
jnthn | \o/ | ||
FROGGS is happy | |||
jnthn | Does that sufficiently unblock you for now? | ||
FROGGS | jnthn: I did know about the overflow index stuff, but I guess I would have forgotten to do that when cleaning it up | 20:23 | |
20:23
airdisa joined
|
|||
FROGGS | jnthn: I guess so | 20:23 | |
need to check that with panda | |||
doing that atm | 20:24 | ||
20:24
virtualsue joined
|
|||
FROGGS | uhh, panda is still upset | 20:24 | |
jnthn | .oO( sadpanda ) |
20:25 | |
20:26
virtualsue_ joined
|
|||
FROGGS | the behaviour with panda is identical to before... | 20:26 | |
the third MANIFEST file is truncated | |||
or rather the second... | |||
jnthn | :( | 20:27 | |
andreoss | examples.perl6.org seems to be stuck | ||
FROGGS | jnthn: I try to debug it | 20:28 | |
20:28
virtualsue left,
virtualsue_ is now known as virtualsue
|
|||
FROGGS | raydiak: I'll look into that later | 20:29 | |
jnthn | FROGGS: OK, thanks. | ||
raydiak | FROGGS: thanks :) was just a thought, even thought maybe there was already some way I didn't know about, but if it's a new idea.../me thinks this one is worth considering | 20:33 | |
lizmat is back | 20:34 | ||
a better title would have been "there and back again" | |||
FROGGS | raydiak: the goal is to support that, that's why I put to versions of Foo in the ecosystem... for testing and implementing that | 20:35 | |
li lizmat | |||
hi* | |||
lizmat | FROGGS o/ | ||
jnthn | wb lizmat | ||
lizmat | if you're in for mindless spectacle, a lot of fire and dust, Fury Road is the place to be | 20:36 | |
raydiak | FROGGS: cool...then you and the rest of #perl6 is more than one step ahead of me as usual, and all is right with the world ha ha :) | 20:37 | |
FROGGS | raydiak: not quite... it still needs doing :o) | ||
raydiak | FROGGS: is there anything not tremendously complex that I might not mess up relative to a sane person's expectations, that I could help with? | 20:39 | |
20:39
yqt joined
|
|||
andreoss | m: my @array := [ for ^3 { [ for ^5 { '@' } ] } ]; say @array[1][1].perl; | 20:39 | |
camelia | rakudo-moar e8fdad: OUTPUT«"\@"» | 20:40 | |
raydiak | a lot of what I write is "experimental" so I have this mental conundrum all the time | ||
about versioning, I mean | |||
FROGGS | raydiak: try to make 'panda search Foo' list both | ||
andreoss | m: my @array := [ for ^3 { [ for ^5 { '@' } ] } ]; say @array[(^3).pick(1)][(^5).pick(1)].perl; | ||
camelia | rakudo-moar e8fdad: OUTPUT«(Nil,)» | ||
raydiak | FROGGS: by pulling a list of the git tags? | 20:41 | |
20:41
Pauekn_ is now known as Pauekn
|
|||
FROGGS | raydiak: no, both Foo's have a version in their META.info | 20:42 | |
raydiak | FROGGS: so we'd put a separate ecosystem entry for each version we want to provide? | ||
ecosystem entry as in META.list | 20:43 | ||
FROGGS | raydiak: no, but handing two Foo's from distinct URLs is the first (and easier) step | ||
raydiak | that makes sense | ||
20:44
grondilu left
|
|||
FROGGS | if that works you can split a repo into several releases, if the repo has tags | 20:44 | |
andreoss | should .pick(1) return a List? | 20:45 | |
raydiak is giving himself a day off after mechanical hell and not doing really anything now, but writes that at top of his list to at least look at and see if he comes up with an implementation strategy | |||
masak | andreoss: I think "no", because .pick() defaults to .pick(1), which shouldn't return a List in general | 20:46 | |
raydiak | FROGGS: also, it'll break all kinds of other things like cpandatesters but I guess we worry about that later | ||
andreoss | m: say (^10).pick.WHAT | ||
camelia | rakudo-moar e8fdad: OUTPUT«(Int)» | ||
andreoss | m: say (^10).pick(1).WHAT | ||
camelia | rakudo-moar e8fdad: OUTPUT«(List)» | ||
FROGGS | raydiak: why should it? | ||
raydiak | oh, I guess they're all broken down by author too already, aren't they? | 20:47 | |
jnthn | m: say (^10).pick.WHAT | ||
camelia | rakudo-moar e8fdad: OUTPUT«(Int)» | ||
FROGGS | raydiak: correct :o) | ||
jnthn | .pick and .pick(n) are different candidates | ||
yoleaux | jnthn: You must provide at least two options. | ||
jnthn | .pick shutting up or getting kicked | 20:48 | |
yoleaux | jnthn: You must provide at least two options. | ||
FROGGS | :P | ||
.pick: be nice | |||
jnthn | .pick($n) should return a List even if it's 1, 'cus otherwise you're an odd discountinuity | ||
raydiak | FROGGS: I mean, I think a lot of the things we have in place might not consider this yet...also, idk about you, but I do plan to be the same author for different versions of my module :) | ||
FROGGS | hmmm | 20:49 | |
jnthn | uh, *you've | ||
raydiak | but I'm sure I'm getting way ahead of myself, won't even think further about it for now | ||
jnthn | I think this was discussed recently. | ||
timotimo | i'm very glad jsoff got unblocked \o/ | ||
FROGGS | raydiak: correct... though testers.perl6.org can handle all that | ||
andreoss | jnthn: Int could be autovivified into List if need | 20:50 | |
raydiak | FROGGS: neat :) | ||
andreoss | *needed | ||
masak | m: my @ints = -3, -4, -5; say @ints.pick.abs | 20:51 | |
andreoss | or not? | ||
camelia | rakudo-moar e8fdad: OUTPUT«4» | ||
masak | jnthn: I expect the above to behave like it does, though | ||
timotimo | eew, don't pick my abs | ||
jnthn | andreoss: Not really. What if you're passing it to something that wants to bind it to an @foo arg? | 20:52 | |
andreoss: Worse, what if you had a list of lists, and did .pick? Suddenly your one item case gives you one of the inner lists and you can't tell the difference. | 20:53 | ||
tony-o_ | m: my Int @r = 1,2,3; @r.pick(1).join(',').say; | ||
camelia | rakudo-moar e8fdad: OUTPUT«1» | ||
tony-o_ | m: my Int @r = 1,2,3; @r.pick(2).join(',').say; | ||
camelia | rakudo-moar e8fdad: OUTPUT«3,2» | ||
tony-o_ | m: my Int @r = 1,2,3; @r.pick(1).map({ die $_; }).say; | 20:54 | |
camelia | rakudo-moar e8fdad: OUTPUT«1 in block <unit> at /tmp/sy0n83BE8M:1» | ||
tony-o_ | m: my Int @r = 1,2,3; @r.pick(1).map({ die $_; }).say; | ||
camelia | rakudo-moar e8fdad: OUTPUT«1 in block <unit> at /tmp/o3eBTRV_Dg:1» | ||
masak | just pointing out that I've occasionally been bitten by very surprising behavior introduced by thinking like "it should return a List even if it's 1" | 20:55 | |
as far as I can tell, Perl 6 doesn't run on that particular kind of consistency. | |||
instead, it tries to make non-Lists look very much like 1-element Lists. | |||
m: say 42[0] | |||
camelia | rakudo-moar e8fdad: OUTPUT«42» | ||
tony-o_ | that kind of consistency isn't common in spoken language anyway | ||
masak | m: say "OH HAI".elems | 20:56 | |
camelia | rakudo-moar e8fdad: OUTPUT«1» | ||
tony-o_ | how many data is that | ||
jnthn | masak: You just used two cases of item promoting to a single-item list, but the topic at hand is in the opposite direction, so they're not really relevant. | 20:57 | |
pmichaud | lizmat++ asked me this question in Oslo, and I came down pretty strongly on the side of pick($n) should always return a List. | 20:58 | |
the fact that some scalar values autopromote to List doesn't resolve the problem, because we also have to worry about the (user-defined) types that might not. | |||
masak | let me see if I understand you correctly. | 20:59 | |
pmichaud | and, the bigger problem is when picking from a list of lists, or a list of mixed scalars-and-lists | ||
jnthn | We long ago decided not to keep the thing where a one-item Parcel dissolved into that item, as I remember it. | ||
masak | you're proposing breaking the current behavior of .pick() for consistency | ||
vendethiel thinks .pick should return an item, and .pick($n) a list as well | |||
tony-o_ | vendethiel++ | ||
masak | so that all current code that relies on .pick not being a list will have to be rewritten to .pick[0] | 21:00 | |
pmichaud | I don't know that that's what I'm proposing. I don't know where it's been established that .pick() should be the same as .pick(1). | ||
I'm okay with .pick() returning a single element, while .pick($n) returns a list. | |||
jnthn | masak: .pick returns a single elemnt, as we just saw | ||
masak: And .pick($n) a list | |||
masak | ok, so .pick() just becomes distinct from .pick(1) -- ok | ||
I'm less against that. :) | |||
FROGGS | jnthn: seems I can serialize the data from with CUR::Installation when I push it through to-json/from-json first... | 21:01 | |
pmichaud | I do know that having .pick($n) do different things depending on the value of $n is a Bad Idea. | ||
FROGGS | jnthn: so I might have some object in the structure that do not like serializing | ||
21:01
muraiki left
|
|||
pmichaud | I also know that Bool.pick probably doesn't want to return a List | 21:01 | |
jnthn | FROGGS: Maybe, yeah...guess that can be golfed | 21:03 | |
TimToady | goodness, I go away to lunch and buy groceries, and a Backlog happens! | ||
dalek | kudo/nom: d4cf248 | lizmat++ | src/core/ (2 files): Hide internal sub "hyper" by uppercasing it |
||
21:03
espadrine left
|
|||
raydiak | welcome back o/ | 21:05 | |
masak | we baked you some backlog <3 | 21:06 | |
TimToady | looks more like backlava | 21:07 | |
tony-o_ | nice | ||
21:10
mohij left
|
|||
raydiak | welll...good enough to trigger my hunger reflex...lunch & | 21:10 | |
dalek | ast: f6fb6ab | usev6++ | S02-magicals/dollar-underscore.t: Fix and unfudge test for implicit param in pointy block |
21:11 | |
pan style="color: #395be5">perl6-examples: 98bb438 | (Andrei Osipov)++ | categories/best-of-rosettacode/create-a-two-dimensional-array-at-runtime.pl: .pick(1) returns a List now. Change to .pick |
21:12 | ||
pan style="color: #395be5">perl6-examples: 8ce3b7a | (Andrei Osipov)++ | t/categories/best-of-rosettacode.t: Nil was passed to qqx{} |
|||
21:13
skids left
21:15
pippo joined
|
|||
pippo | r: say "a" ~~ /<:alpha>/; | 21:15 | |
camelia | rakudo-{moar,jvm} e8fdad: OUTPUT«「a」» | ||
21:17
eli-se left
|
|||
FROGGS | :o) | 21:18 | |
pippo | :-)) | ||
timotimo | what exactly had been the problem with rakudo-j on the evalbot? | 21:20 | |
vendethiel | ooh, that's how the pick() sub shuld be called? hehe | ||
FROGGS | timotimo: <:alpha> did not work | ||
vendethiel | timotimo: OOM? | ||
ah | |||
timotimo | didn't the -j always immediately error out just a few days ago? | ||
pippo | timotimo: yes I remember it was not working at all. | 21:22 | |
21:22
zacts joined
|
|||
zacts | hello | 21:22 | |
I'm going to be studying some programming language design | 21:23 | ||
and some basic linguistics for fun | |||
I got some books | |||
but they are mostly lisp books | |||
I wonder which resources may be helpful for eventually hacking on rakudo | |||
(or even an alternate implementation) | |||
jercos | probably all of them | ||
zacts | I do know of appel too | ||
ok | |||
andreoss | m: use warnings; | ||
camelia | rakudo-moar d4cf24: OUTPUT«===SORRY!===Could not find warnings in any of: file#/home/camelia/.perl6/2015.04-260-gd4cf248/lib inst#/home/camelia/.perl6/2015.04-260-gd4cf248 file#/home/camelia/rakudo-inst-2/share/perl6/lib file#/home/camelia/rakudo-inst-2/share/perl…» | ||
FROGGS | jnthn: I was able to bootstrap panda :S | ||
jercos | I mean, that's just my opinion, a great amount of general programming knowledge can come from specific teachings about unrelated languages. | 21:24 | |
zacts | I don't mean to just read books too, I just didn't know if any stood out as great compiler / interpreter design and implementation books | ||
jercos: I'm reading a bunch of lispy MIT Press language design books first | |||
as lisp is so easy to parse, and I can implement language semantics without a ton of parsing | 21:25 | ||
jnthn | FROGGS: Why is success so ":S"? :) | ||
FROGGS | jnthn: I had to also scdisclaim the sc I create in serialize, because otherwise it would refer to that SC when we serialize again in the same process | ||
jnthn: because I can't believe it :o) | |||
zacts | but I'm really interested in the practicality of perl5 and perl6 (I'm afraid of perl5 src, but perl6 seems more well designed for newbies to get involved with core rakudo hacking) | ||
FROGGS | I've got mixed feeling, is all :o) | ||
zacts | I just love perl and regex, and the way it maps to my brain | ||
jnthn | FROGGS: :) | ||
cognominal | what is the appropriate way to augment par of the setting without getting an "is closed". In other words, I want in some places an augmented setting. | 21:26 | |
*augment part of the setting | |||
jercos | zacts: I agree with your observation, perl 5 is difficult to get into the source of, perl 6 is much more transparent. | ||
jnthn | zacts: There is an NQP and Rakudo internals tutorial | ||
zacts | oh neat | ||
FROGGS | next up is making the string heap sane, cleaning up moar and implementing the json fallback (for when we recompile rakudo) | ||
but that happens tomorrow | |||
jnthn: thanks a lot btw | |||
zacts | is the tutorial the github one? | ||
jnthn | zacts: github.com/edumentab/rakudo-and-nq...ls-course/ | ||
There's PDFs | 21:27 | ||
zacts | yeah | ||
cool | |||
thanks man! | |||
jnthn | (linked in the README) | ||
21:27
Erendis42d joined
|
|||
Erendis42d | re! | 21:27 | |
jnthn | There's even a set of exercises with sample solutions. :) | ||
21:27
FROGGS[mobile]2 left
|
|||
jnthn | FROGGS: Welcome...rest well :) | 21:27 | |
cognominal | jnthn++ # I am rereading it. It's great. | ||
zacts | I'm also working through a few MIT opencourseware linguistics courses and books | 21:28 | |
anyway, I may try to make a Perl6 minikanren module | |||
minikanren.org | |||
^ minikanren is a DSL for logic programming | |||
although, indeed this would be at the level of Perl6 and not the interpreter | 21:29 | ||
cognominal | btw, as a sequitur to my question? is there a tutorial about this setting business. The stuff in S02 about all theses pseudo packages makes me dizzy. | ||
zacts | anyway, heading to a music lesson. laters | ||
21:29
moritz_ is now known as moritz
|
|||
zacts | and thanx | 21:29 | |
jnthn | cognominal: RESTRICTED.setting is one example in the Rakudo repo | 21:30 | |
cognominal | jnthn, thx | 21:31 | |
japhb | jnthn: Did you happen to look at the OO::Monitors problem? (I see a lot of MoarVM commits today, so I figure you're probably deep on that, but just in case ....) | 21:33 | |
jnthn | japhb: Didn't get to it today, though have been fixing other conc related issues | 21:34 | |
japhb: Doing Perl 6 things tomorrow | |||
andreoss | jnthn: is there a doc like that about Slangs? | ||
jnthn | japhb: So will get to it then | ||
andreoss: Not that I'm aware of. | 21:35 | ||
japhb | jnthn: Oh, cool! | ||
21:35
aindilis joined
21:39
colomon left,
colomon_ joined,
kaare_ left
|
|||
TimToady | m: /<["a".."z"]>/ | 21:40 | |
camelia | rakudo-moar d4cf24: OUTPUT«Potential difficulties: Quotes are not metacharacters in character classes at /tmp/hBmAireBVd:1 ------> 3/<7⏏5["a".."z"]>/ Repeated character (") unexpectedly found in character class at /tmp/hBmAireBVd:1 ------> …» | ||
timotimo | m: /<-[ ]>/ | 21:42 | |
camelia | rakudo-moar d4cf24: OUTPUT«===SORRY!===Iteration past end of iterator» | ||
timotimo | TimToady: fix this? :) | ||
i seem to recall you worked on this kind of thing recently? | |||
21:42
colomon_ left
|
|||
TimToady | well, that's a poorly worded syntax error :) | 21:43 | |
21:43
colomon joined
|
|||
TimToady | m: /<-[ ]>/ ]> / | 21:43 | |
camelia | rakudo-moar d4cf24: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2bV4l4P0lYUnexpected closing bracketat /tmp/2bV4l4P0lY:1------> 3/<-[ ]>/ 7⏏5]> /» | ||
TimToady | hmm, maybe not | 21:44 | |
masak | std: /<-[ ]>/ | ||
camelia | std 28329a7: OUTPUT«ok 00:00 137m» | ||
masak | why should it be a syntax error, ooc? | ||
TimToady | was thinking it was doing the ignore ] and - if first char thing | ||
std: /<-[-]>/ | 21:45 | ||
camelia | std 28329a7: OUTPUT«ok 00:00 137m» | ||
TimToady | m: /<-[-]>/ | ||
camelia | ( no output ) | ||
TimToady | I guess it does with - | ||
m: /<-[]]>/ | |||
camelia | rakudo-moar d4cf24: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mtE75fr66_Unable to parse expression in metachar:sym<assert>; couldn't find final '>' at /tmp/mtE75fr66_:1------> 3/<-[]7⏏5]>/ expecting any of: term» | ||
TimToady | but not with ] | ||
timotimo | OK, sorry :) | ||
TimToady | I was just working on the error message when it notices duplicate chars | 21:46 | |
since |Tux| wanted it to guess what he was thinking | 21:47 | ||
21:47
cognominal left,
cognominal joined
|
|||
TimToady | m: /<['a'..'z']>/ | 21:48 | |
camelia | rakudo-moar d4cf24: OUTPUT«Potential difficulties: Quotes are not metacharacters in character classes at /tmp/fPxWQbL1GK:1 ------> 3/<7⏏5['a'..'z']>/ Repeated character (') unexpectedly found in character class at /tmp/fPxWQbL1GK:1 ------> …» | ||
21:48
bayprogrammer left
|
|||
masak | nice. | 21:48 | |
TimToady | wish I could move the eject over one, but it's a low-level nqp error really | 21:49 | |
Erendis42d | aaaw | ||
vendethiel | is there a difference between "at the moment" and "at this moment" in english? | ||
masak | I like how Perl 6 often turns user confusion into informative error messages. | ||
TimToady | a slight difference | ||
vendethiel | masak: rust also does a really good job! | 21:50 | |
only think I regret in rust error messages is that it's often a bit *too* wordy when explaining, say, how some code was macro-generated, including all the innerworking parts | |||
masak | vendethiel: I can imagine. gotta try Rust. | ||
TimToady | "at the moment" is vanilla for 'currently' or 'in constrast to some other time' | 21:51 | |
"at this moment" would be a marked form emphasizing this moment to the exclusion of any other moment | |||
[Tux] | TimToady++; # clear error messages! | 21:52 | |
vendethiel | TimToady++ # teaching me proper use | ||
21:52
FROGGS left
21:56
colomon left
|
|||
masak | 'night, #perl6 | 21:58 | |
Erendis42d | <3 | ||
timotimo | so ... did anybody try the Proc::Async workload again with newest rakudo? | 22:02 | |
TimToady | I tried it this morning and it failed, lemme try now | ||
jnthn | Some of the exceptions you ended up with are ones I managed to make go away, but I've still got crashes in the IO::Socket::Async under load. | 22:03 | |
And the next issue looked like a parallel GC issue. "Fun!" | 22:04 | ||
TimToady | restart-concurrent still has about 5 failure modes | 22:05 | |
jnthn | Well, that's down from 8 or so :) | ||
TimToady | P6opaque: no such attribute '$!tappers_lock' is the most common | ||
jnthn | ooh | ||
Is the latest restart-concurrent somewhere somewhere? | |||
uh, one somewhere :) | |||
...damn, now I have data races too :P | 22:06 | ||
TimToady | there's a github of it, though you have to remove a spurious return | ||
timotimo | a gist* | ||
TimToady | raw.githubusercontent.com/kgoess/r...restart.p6 is the original | 22:07 | |
my copy is identical except for s/'return %result'/%result/ | 22:08 | ||
it also does: *** Error in `/home/larry/nom/install/bin/moar': double free or corruption (fasttop): 0x00000000021ae9a0 *** | 22:09 | ||
and sometimes Cannot invoke this object (REPR: Null) | 22:10 | ||
and occasionally just hangs | |||
oh, and once I got This representation (Null) does not support elems | 22:11 | ||
jnthn | Ugh | ||
But yeah, reproduced here | |||
TimToady | it's a really good test case, for some definition of good that ain't :) | 22:12 | |
looks slightly *nix centric, I guess | |||
but I suspect it doesn't much matter what commands are run | 22:13 | ||
jnthn | Yeah, I tweaked them all to Windows equivs | ||
TimToady | I think once in the last 100 times I've run it, I got the actual desired output, which is something... | 22:14 | |
22:14
diana_olhovik_ left
22:16
rhr joined,
airdisa left,
dolmen joined
|
|||
TimToady hopes he didn't hang the jnthn process... | 22:17 | ||
22:17
jepeway left
22:18
jepeway joined
|
|||
zacts | ok /me installs rakudo Perl6 on debian jessie | 22:18 | |
lizmat | and /me goes to bed, so good night, #perl6! | 22:20 | |
andreoss | [ptc]: how often are perl6-examples web pages updated? | 22:21 | |
22:21
LordV joined
|
|||
jnthn | TimToady: No, though I think I may synchronously spawn a sleep process for some hours... :) | 22:22 | |
22:22
Erendis42d left
|
|||
andreoss | the (some) tests pass, but the content was updated a week ago | 22:23 | |
22:27
berekuk left,
bjz left,
Erendis42d joined
|
|||
Erendis42d | <3 | 22:32 | |
22:35
dolmen left
22:38
virtualsue left
|
|||
Erendis42d | brb | 22:39 | |
22:39
Erendis42d left
22:46
lichtkind_ left
22:52
Erendis42d joined
|
|||
rjbs | On doc.perl6.org/language/variables#The_!_Twigil the link to "objects" is broken | 22:52 | |
links to /routine/objects but should be /language/objets | 22:53 | ||
*objects | |||
22:53
Ulti joined
22:56
pippo left
|
|||
tony-o_ | m: my Buf $a .=new(1,2,3); my Buf $b .=new(2); say $a ~~ / $b /; | 22:59 | |
camelia | rakudo-moar d4cf24: OUTPUT«Cannot use a Buf as a string, but you called the Str method on it in block <unit> at /tmp/pSCNylN1ut:1» | ||
23:02
andreoss left
23:04
vendethiel left
23:09
airdisa joined
23:11
airdisa left
23:12
airdisa joined
23:14
andreoss joined
23:19
telex left
23:20
telex joined,
skids joined
|
|||
rjbs | It's not a big deal, but: is there a way to get a hashlike where the keys come out as ints? Or a sparse array? | 23:42 | |
23:45
itz_ joined
23:47
itz left
23:53
vendethiel joined
|
|||
rjbs | "bindpos expected object register" ?? | 23:54 | |
23:55
RabidGravy left
|
|||
rjbs | m: subset ZSCII-Char of uint16 where * < 2 ** 10; constant ZSCII-Buf = Buf[ZSCII-Char]; my $b = ZSCII-Buf.new; $b[ +* ] = 0 | 23:57 | |
camelia | rakudo-moar d4cf24: OUTPUT«MVMArray: bindpos expected object register in block <unit> at /tmp/C03O6YdWXx:1» | ||
rjbs | IDGI. | ||
23:58
andreoss left
23:59
itz joined
|