gfldex i rakudobugged this issue just in case 00:04
geekosaur wonders if this is a holdover from when the setting couldn't bootstrap properly, so things like CALL-ME had to be implied and defined NQP-side 00:15
(...or maybe it's still true and more work needs to be done) 00:16
MasterDuke gfldex: not sure. i have code that is stable when run serially and not when parallelized. haven't been able to figure out where exactly the problem is, and wanted to check my assumptions
github.com/perl6/whateverable/blob...r/build.p6
gfldex known problem but I failed to golf it so far. 00:17
your example is not exacly short either. :(
MasterDuke yeah, i'm trying to golf it 00:19
Zoffix dogbert17, I'd say adding test's before the bug is fixed is perfectly fine (as long as you're sure it is a bug and what the correct behaviour should be). The tests fudged as `todo` are still run and if the harness sees them passing it'll alert about it. The more blunt fudge is the `skip` fudge that comments the test out entirely; these are for tests that crash the test suite or hang. Seeing if they pass is done by running the test suite without 00:36
a fudge.
[Coke] Zoffix: are you familiar with autounfudge? 01:46
it will try to unfudge things, one at a time, and create a patch file with all the functioning unfudges. 01:51
tools/autounfudge.pl 01:52
Zoffix neat 01:57
MasterDuke is there any difference between 'nqp::istype($elem, QAST::Op)' and '$elem ~~ QAST::Op' in NQP? 02:39
[Coke] t/spec/S32-basics/pairup.t appears to pass its one test, but isn't in t/spectest.data 03:10
[TuxCM] This is Rakudo version 2016.09-85-ged0ced2 built on MoarVM version 2016.09-3-g9b39aa5 05:54
csv-ip5xs 4.599
test 16.940
test-t 7.071
csv-parser 18.033
arnsholt MasterDuke: IIRC ~~ will call ACCEPTS, while the istype op checks the type directly 07:32
lizmat Files=1143, Tests=53180, 229 wallclock secs (12.87 usr 4.00 sys + 1399.79 cusr 131.40 csys = 1548.06 CPU) 07:42
dalek kudo/nom: 5a3df86 | (Zoffix Znet)++ | t/spectest.data:
Add S32-basics/pairup.t to test file list
12:16
hackedNODE .tell MasterDuke Just an FYI: adding new files to roast doesn't make the test suite use them automatically. You also need to list them in Rakudo's t/spectest.data file. github.com/perl6/roast/commit/ca2b03d63c4
yoleaux2 hackedNODE: I'll pass your message to MasterDuke.
hackedNODE weird 12:21
m: .signature.say for Array.^lookup("splice").candidates
camelia rakudo-moar ed0ced: OUTPUT«(Array:D \SELF: *%_)␤(Array:D $: Whatever, *%_)␤(Array:D $: Callable:D $offset, *%_)␤(Array:D $: Int:D $offset, *%_)␤(Array:D $: Whatever, Whatever, *%_)␤(Array:D $: Whatever, Int:D $size, *%_)␤(Array:D $: Callable:D $offset, Callable:D $size, …»
hackedNODE Works, right...
m: .signature.say for Buf.^lookup("splice").candidates
camelia rakudo-moar ed0ced: OUTPUT«No such method 'candidates' for invocant of type 'Mu'␤ in block <unit> at <tmp> line 1␤␤»
hackedNODE Doesn't
m: .signature.say for Buf.new(<1 2 3>).^lookup("splice").candidates
camelia rakudo-moar ed0ced: OUTPUT«(Buf:D \SELF: *%_)␤(Buf:D $: Int $offset, $size = Whatever, *%_)␤(Buf:D $: Int $offset, $size, int $got, *%_)␤(Buf:D $: Int $offset, $size, Int $got, *%_)␤(Buf:D $: Int $offset, $size, Mu $got, *%_)␤(Buf:D $: Int $offset, $size, Buf:D $buf, *%_)…»
hackedNODE But this does :/
m: .signature.say for Buf.^pun.^lookup("splice").candidates 12:22
camelia rakudo-moar ed0ced: OUTPUT«(Buf:D \SELF: *%_)␤(Buf:D $: Int $offset, $size = Whatever, *%_)␤(Buf:D $: Int $offset, $size, int $got, *%_)␤(Buf:D $: Int $offset, $size, Int $got, *%_)␤(Buf:D $: Int $offset, $size, Mu $got, *%_)␤(Buf:D $: Int $offset, $size, Buf:D $buf, *%_)…»
hackedNODE I see...
jnthn .^lookup on a role will only give you things declared in that role
hackedNODE But it has to be punned, it seems. splice is in that role 12:23
jnthn m: role R { method m() { } }; say R.^lookup('m')
camelia rakudo-moar ed0ced: OUTPUT«m␤» 12:24
hackedNODE :S
jnthn m: say Buf.WHO 12:25
camelia rakudo-moar ed0ced: OUTPUT«Buf␤»
hackedNODE m: role R[::T = uint8] does Blob[T] is repr('VMArray') is array_type(T) { method m() { } }; say R.^lookup('m')
camelia rakudo-moar ed0ced: OUTPUT«m␤»
jnthn m: say Buf.HOW.^name
camelia rakudo-moar ed0ced: OUTPUT«Perl6::Metamodel::ParametricRoleGroupHOW␤»
jnthn Curious
hackedNODE m: role R { multio method m() { } }; say R.^lookup('m') 12:26
camelia rakudo-moar ed0ced: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared routine:␤ multio used at line 1␤␤»
hackedNODE m: role R { multi method m() { } }; say R.^lookup('m')
camelia rakudo-moar ed0ced: OUTPUT«(Mu)␤»
jnthn Ah 12:27
hackedNODE ^ making it a multi makes a difference
jnthn Yeah
I dunno quite what we can/should do about that.
We'd have to create a fictional proto
Which feels a bit odd 12:28
Given lookup is meant to just give you stuff that exists
hackedNODE
.oO( proto proto... )
oh god, that even compiles 12:29
m: proto proto (|) {}
camelia ( no output )
hackedNODE m: proto proto proto proto (|) {}
camelia rakudo-moar ed0ced: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> proto proto⏏ proto proto (|) {}␤ expecting any of:␤ new name to be defined␤»
lizmat m: sub sub() { say "sub" }; sub()
camelia rakudo-moar ed0ced: OUTPUT«sub␤»
gfldex it's recursion all the way down :) 12:30
DrForr Poor turtles. 12:33
masak DrForr: "structural integrity challenges in transfinite-cardinality turtle-stack architectures" 12:48
DrForr Cheloid axial compression... 12:49
[Coke] m: multi proto anon sub eek {...} 12:51
camelia rakudo-moar 5a3df8: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> multi proto⏏ anon sub eek {...}␤ expecting any of:␤ new name to be defined␤»
DrForr Oo, Chaitin-Kolmogorov chitin compression 12:53
masak finding the omega in your tortoise chain 12:56
dalek p: a6425aa | coke++ | docs/ops.markdown:
jnthn++'s notes about sha1
13:23
gfldex lizmat: lookin at multi sub infix:<eqv>(Seq:D \a, Seq:D \b) in src/core/Seq.pm, wouldn't it make sense to check for a.elems == b.elems before iterating All The Elements? 13:34
timotimo not all sequences can tell you how many elements it'll have 13:35
that could make it problematic :)
jnthn Asking how many elements a Seq has consumes the Seq 13:36
And then you can't get the elements
timotimo oh, that'll be a problem, too! :)
dalek p: ec03b35 | coke++ | t/docs/opcodes.t:
allow for js-specific doc'd opcodes
13:46
kudo/nom: 84b7ebd | (Zoffix Znet)++ | src/core/Numeric.pm:
Fix failure to smartmatch Numeric:U against Numeric:D

The candidate is too wide and when Numeric:U is given, throwage occurs when it's used with the `==` operator inside the method's body.
Restrict the candidate to :D types only and let Any's candidates take care of the :U types.
16:28
ast: 8a8bd60 | (Zoffix Znet)++ | S32-num/int.t:
smartmathing :U numeric against :D numeric does not throw

Tests for issue fixed by github.com/rakudo/rakudo/commit/84b7ebdf42
16:29
moritz smartmathing. Nice! :-) 16:30
I've always tried to smartmath my way through math class, without ever learning formulas or techniques by heart 16:31
hackedNODE :)
timotimo at some point, deriving all of linear algebra, calculus, and trigonometry from just five or six axioms gets really time consuming in front of the exam ... 16:32
dalek kudo/nom: 58cf9d8 | (Zoffix Znet)++ | src/core/Str.pm:
Throw away useless ACCEPTS candidate

The :U case is already handled by Any's candidates[^1]
  [1] github.com/rakudo/rakudo/blob/5a3d...Any.pm#L21
16:37
hackedNODE thinks up dirty Perl 6 pick up lines involving :U and :D ... 16:39
timotimo i think there's something naughty you can construct with "decont" 16:41
not based on that it sounds like "cunt", mind you
jnthn Now being indecont, please :P
timotimo prefers clean jokes 16:43
make clean jokes 16:44
hackedNODE make: *** No rule to make target 'jokes'. Stop. 16:45
dalek ast: afd609e | (Zoffix Znet)++ | S32-num/int.t:
Fix typo in test description
16:48
hackedNODE m: enum Foo <bar ber>; say Foo ~~ bar 16:53
camelia rakudo-moar 58cf9d: OUTPUT«True␤»
hackedNODE That's wrong, isn't it? 16:54
m: say Str ~~ "x"
camelia rakudo-moar 58cf9d: OUTPUT«False␤»
hackedNODE ^ that's an equivalent for Str, I think and that returns false
timotimo right, if you have a defined value on the right, i don't think it should be type-check-esque 16:55
hackedNODE I see it was made that way on purpose, in this commit: github.com/rakudo/rakudo/commit/49...df8cb35a52 16:56
hackedNODE investigates that
timotimo ho-hum
hackedNODE No idea how signatures work, so I'll leave it as is, until I'm smarter :) 16:58
star: enum Options(<Foo Bar>); (sub f(Foo $o?){ ... })()
camelia star-m 2016.04: OUTPUT«Invocant requires an instance of type Options, but a type object was passed. Did you forget a .new?␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
hackedNODE m: enum Options(<Foo Bar>); (sub f(Foo $o?){ ... })()
camelia rakudo-moar 58cf9d: OUTPUT«Stub code executed␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
hackedNODE m: enum Options(<Foo Bar>); (sub f(Foo $o?){ ... })(Bar) 16:59
camelia rakudo-moar 58cf9d: OUTPUT«Constraint type check failed for parameter '$o'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
timotimo well, that's about Foo and Bar, not Options and Bar 17:00
hackedNODE I guess this is basically due to trying to use a :D Enumeration as a type constraint type... It's like having sub f("42" $o?) {} there
m: enum Options(<Foo Bar>); (sub f(Foo $o?){ ... })(Options) 17:02
camelia rakudo-moar 58cf9d: OUTPUT«Stub code executed␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
hackedNODE I'd argue that's bug. 17:04
star: enum Options(<Foo Bar>); (sub f(Options $o where Foo){ ... })(Foo)
camelia star-m 2016.04: OUTPUT«Stub code executed␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
hackedNODE star: enum Options(<Foo Bar>); (sub f(Options $o where Foo){ ... })(Bar)
camelia star-m 2016.04: OUTPUT«Constraint type check failed for parameter '$o'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
timotimo well if you put a question mark there ... you're allowing undefined, too?
hackedNODE This is how the original should've been written, and the commit basically introduced a shortcut for that
timotimo i see 17:05
hackedNODE leaves it until there are any issues with this behaviour :)
m: say Set ~~ ∅ 17:25
camelia rakudo-moar 58cf9d: OUTPUT«Invocant requires an instance of type Setty, but a type object was passed. Did you forget a .new?␤ in block <unit> at <tmp> line 1␤␤»
hackedNODE m: say Bag ~~ Bag.new
camelia rakudo-moar 58cf9d: OUTPUT«True␤»
hackedNODE m: say Bag ~~ Bag.new: <a b c>
camelia rakudo-moar 58cf9d: OUTPUT«Use of uninitialized value of type Any in numeric context␤ in block <unit> at <tmp> line 1␤False␤»
hackedNODE m: say Int ~~ 'x'.IO 17:26
camelia rakudo-moar 58cf9d: OUTPUT«Use of uninitialized value of type Int in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤ in block <unit> at <tmp> line 1␤Use of uninitialized value of type Int in string context.␤Methods…»
hackedNODE Same issue as the Int ~~ 42. And the Baggy/Setty is a bug due to it coercing things, which catches too many of them. 17:27
hackedNODE will fix it tomorrow
MasterDuke hackedNO1: thanks 22:25
yoleaux2 12:16Z <hackedNODE> MasterDuke: Just an FYI: adding new files to roast doesn't make the test suite use them automatically. You also need to list them in Rakudo's t/spectest.data file. github.com/perl6/roast/commit/ca2b03d63c4