»ö« 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«50␤51␤»
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/vudgZ0y5rC␤Undeclared 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/YYEMGcyC09␤Undeclared 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/TOuNq2xeAL␤Undeclared 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/VSVFvLXMVO␤Undeclared 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/d10opABprk␤Variable $!x used where no 'self' is available␤at /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/TwJJYbW5MS␤Missing block␤at /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/Ig3mOFbngK␤Can'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/UHuLb8FWk3␤Unexpected 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/gbPPJn1rgy␤Missing block␤at /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«a␤b␤c␤»
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«a␤b␤c␤»
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/LoCU26COXh␤Alphanumeric character is not allowed as a delimiter␤at /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«7692␤775␤»
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«68␤803␤775␤»
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«1␤hehe␤2␤hehe␤3␤hehe␤»
timotimo m: my $foo := (1, 2, 3); given $foo { .say; say "hehe" }
camelia rakudo-moar ca8232: OUTPUT«1 2 3␤hehe␤»
timotimo ^- weak argument 13:42
m: my $foo := (1, 2, 3); for $$foo { .say; say "hehe" }
camelia rakudo-moar ca8232: OUTPUT«1 2 3␤hehe␤»
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«1␤2␤3␤1␤2␤3␤»
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«2␤2␤»
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:1661␤␤Use 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_V6vOc␤Undeclared 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/dnemqM7u7u␤Variable '$n' is not declared␤at /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/6w1DgpZOZU␤Unexpected 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«1␤2␤3␤and 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/tQE7bIvU1o␤Undeclared 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/2bV4l4P0lY␤Unexpected closing bracket␤at /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