[00:04] i rakudobugged this issue just in case [00:15] * 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:16] (...or maybe it's still true and more work needs to be done) [00:16] 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 [00:16] https://github.com/perl6/whateverable/blob/master/build.p6 [00:17] known problem but I failed to golf it so far. [00:17] your example is not exacly short either. :( [00:19] yeah, i'm trying to golf it [00:36] 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. [01:46] <[Coke]> Zoffix: are you familiar with autounfudge? [01:51] <[Coke]> it will try to unfudge things, one at a time, and create a patch file with all the functioning unfudges. [01:52] <[Coke]> tools/autounfudge.pl [01:57] neat [02:39] is there any difference between 'nqp::istype($elem, QAST::Op)' and '$elem ~~ QAST::Op' in NQP? [03:10] <[Coke]> t/spec/S32-basics/pairup.t appears to pass its one test, but isn't in t/spectest.data [05:54] <[TuxCM]> This is Rakudo version 2016.09-85-ged0ced2 built on MoarVM version 2016.09-3-g9b39aa5 [05:54] <[TuxCM]> csv-ip5xs 4.599 [05:54] <[TuxCM]> test 16.940 [05:54] <[TuxCM]> test-t 7.071 [05:54] <[TuxCM]> csv-parser 18.033 [07:32] MasterDuke: IIRC ~~ will call ACCEPTS, while the istype op checks the type directly [07:42] Files=1143, Tests=53180, 229 wallclock secs (12.87 usr 4.00 sys + 1399.79 cusr 131.40 csys = 1548.06 CPU) [12:16] rakudo/nom: 5a3df86 | (Zoffix Znet)++ | t/spectest.data: [12:16] rakudo/nom: Add S32-basics/pairup.t to test file list [12:16] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5a3df86303 [12:16] .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. https://github.com/perl6/roast/commit/ca2b03d63c4 [12:16] hackedNODE: I'll pass your message to MasterDuke. [12:21] weird [12:21] m: .signature.say for Array.^lookup("splice").candidates [12:21] 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, …» [12:21] Works, right... [12:21] m: .signature.say for Buf.^lookup("splice").candidates [12:21] rakudo-moar ed0ced: OUTPUT«No such method 'candidates' for invocant of type 'Mu'␤ in block at line 1␤␤» [12:21] Doesn't [12:21] m: .signature.say for Buf.new(<1 2 3>).^lookup("splice").candidates [12:21] 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, *%_)…» [12:21] But this does :/ [12:22] m: .signature.say for Buf.^pun.^lookup("splice").candidates [12:22] 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, *%_)…» [12:22] I see... [12:22] .^lookup on a role will only give you things declared in that role [12:23] But it has to be punned, it seems. splice is in that role [12:23] m: role R { method m() { } }; say R.^lookup('m') [12:24] rakudo-moar ed0ced: OUTPUT«m␤» [12:24] :S [12:25] m: say Buf.WHO [12:25] rakudo-moar ed0ced: OUTPUT«Buf␤» [12:25] m: role R[::T = uint8] does Blob[T] is repr('VMArray') is array_type(T) { method m() { } }; say R.^lookup('m') [12:25] rakudo-moar ed0ced: OUTPUT«m␤» [12:25] m: say Buf.HOW.^name [12:25] rakudo-moar ed0ced: OUTPUT«Perl6::Metamodel::ParametricRoleGroupHOW␤» [12:25] Curious [12:26] m: role R { multio method m() { } }; say R.^lookup('m') [12:26] rakudo-moar ed0ced: OUTPUT«===SORRY!=== Error while compiling ␤Undeclared routine:␤ multio used at line 1␤␤» [12:26] m: role R { multi method m() { } }; say R.^lookup('m') [12:26] rakudo-moar ed0ced: OUTPUT«(Mu)␤» [12:27] Ah [12:27] ^ making it a multi makes a difference [12:27] Yeah [12:27] I dunno quite what we can/should do about that. [12:27] We'd have to create a fictional proto [12:28] Which feels a bit odd [12:28] Given lookup is meant to just give you stuff that exists [12:28] .oO( proto proto... ) [12:29] oh god, that even compiles [12:29] m: proto proto (|) {} [12:29] rakudo-moar ed0ced: ( no output ) [12:29] m: proto proto proto proto (|) {} [12:29] rakudo-moar ed0ced: OUTPUT«===SORRY!=== Error while compiling ␤Missing block␤at :1␤------> proto proto⏏ proto proto (|) {}␤ expecting any of:␤ new name to be defined␤» [12:29] m: sub sub() { say "sub" }; sub() [12:29] rakudo-moar ed0ced: OUTPUT«sub␤» [12:30] it's recursion all the way down :) [12:33] Poor turtles. [12:48] DrForr: "structural integrity challenges in transfinite-cardinality turtle-stack architectures" [12:49] Cheloid axial compression... [12:51] <[Coke]> m: multi proto anon sub eek {...} [12:51] rakudo-moar 5a3df8: OUTPUT«===SORRY!=== Error while compiling ␤Missing block␤at :1␤------> multi proto⏏ anon sub eek {...}␤ expecting any of:␤ new name to be defined␤» [12:53] Oo, Chaitin-Kolmogorov chitin compression [12:56] finding the omega in your tortoise chain [13:23] nqp: a6425aa | coke++ | docs/ops.markdown: [13:23] nqp: jnthn++'s notes about sha1 [13:23] nqp: review: https://github.com/perl6/nqp/commit/a6425aad4d [13:34] lizmat: lookin at multi sub infix:(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:35] not all sequences can tell you how many elements it'll have [13:35] that could make it problematic :) [13:36] Asking how many elements a Seq has consumes the Seq [13:36] And then you can't get the elements [13:36] oh, that'll be a problem, too! :) [13:46] nqp: ec03b35 | coke++ | t/docs/opcodes.t: [13:46] nqp: allow for js-specific doc'd opcodes [13:46] nqp: review: https://github.com/perl6/nqp/commit/ec03b35c8a [16:28] rakudo/nom: 84b7ebd | (Zoffix Znet)++ | src/core/Numeric.pm: [16:28] rakudo/nom: Fix failure to smartmatch Numeric:U against Numeric:D [16:28] rakudo/nom: [16:28] rakudo/nom: The candidate is too wide and when Numeric:U is given, throwage occurs [16:28] rakudo/nom: when it's used with the `==` operator inside the method's body. [16:28] rakudo/nom: [16:28] rakudo/nom: Restrict the candidate to :D types only and let Any's candidates take [16:28] rakudo/nom: care of the :U types. [16:28] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/84b7ebdf42 [16:29] roast: 8a8bd60 | (Zoffix Znet)++ | S32-num/int.t: [16:29] roast: smartmathing :U numeric against :D numeric does not throw [16:29] roast: [16:29] roast: Tests for issue fixed by https://github.com/rakudo/rakudo/commit/84b7ebdf42 [16:29] roast: review: https://github.com/perl6/roast/commit/8a8bd603f7 [16:30] smartmathing. Nice! :-) [16:31] I've always tried to smartmath my way through math class, without ever learning formulas or techniques by heart [16:31] :) [16:32] 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:37] rakudo/nom: 58cf9d8 | (Zoffix Znet)++ | src/core/Str.pm: [16:37] rakudo/nom: Throw away useless ACCEPTS candidate [16:37] rakudo/nom: [16:37] rakudo/nom: The :U case is already handled by Any's candidates[^1] [16:37] rakudo/nom: [16:37] rakudo/nom: [1] https://github.com/rakudo/rakudo/blob/5a3df86/src/core/Any.pm#L21 [16:37] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/58cf9d85cb [16:39] * hackedNODE thinks up dirty Perl 6 pick up lines involving :U and :D ... [16:41] i think there's something naughty you can construct with "decont" [16:41] not based on that it sounds like "cunt", mind you [16:41] Now being indecont, please :P [16:43] * timotimo prefers clean jokes [16:44] make clean jokes [16:45] make: *** No rule to make target 'jokes'. Stop. [16:48] roast: afd609e | (Zoffix Znet)++ | S32-num/int.t: [16:48] roast: Fix typo in test description [16:48] roast: review: https://github.com/perl6/roast/commit/afd609e183 [16:53] m: enum Foo ; say Foo ~~ bar [16:53] rakudo-moar 58cf9d: OUTPUT«True␤» [16:54] That's wrong, isn't it? [16:54] m: say Str ~~ "x" [16:54] rakudo-moar 58cf9d: OUTPUT«False␤» [16:54] ^ that's an equivalent for Str, I think and that returns false [16:55] right, if you have a defined value on the right, i don't think it should be type-check-esque [16:56] I see it was made that way on purpose, in this commit: https://github.com/rakudo/rakudo/commit/490cf728e6396dd99e10ab633f33e4df8cb35a52 [16:56] * hackedNODE investigates that [16:56] ho-hum [16:58] No idea how signatures work, so I'll leave it as is, until I'm smarter :) [16:58] star: enum Options(); (sub f(Foo $o?){ ... })() [16:58] 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 line 1␤ in block at line 1␤␤» [16:58] m: enum Options(); (sub f(Foo $o?){ ... })() [16:58] rakudo-moar 58cf9d: OUTPUT«Stub code executed␤ in sub f at line 1␤ in block at line 1␤␤Actually thrown at:␤ in block at line 1␤␤» [16:59] m: enum Options(); (sub f(Foo $o?){ ... })(Bar) [16:59] rakudo-moar 58cf9d: OUTPUT«Constraint type check failed for parameter '$o'␤ in sub f at line 1␤ in block at line 1␤␤» [17:00] well, that's about Foo and Bar, not Options and Bar [17:00] 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 [17:02] m: enum Options(); (sub f(Foo $o?){ ... })(Options) [17:02] rakudo-moar 58cf9d: OUTPUT«Stub code executed␤ in sub f at line 1␤ in block at line 1␤␤Actually thrown at:␤ in block at line 1␤␤» [17:04] I'd argue that's bug. [17:04] star: enum Options(); (sub f(Options $o where Foo){ ... })(Foo) [17:04] star-m 2016.04: OUTPUT«Stub code executed␤ in sub f at line 1␤ in block at line 1␤␤Actually thrown at:␤ in block at line 1␤␤» [17:04] star: enum Options(); (sub f(Options $o where Foo){ ... })(Bar) [17:04] star-m 2016.04: OUTPUT«Constraint type check failed for parameter '$o'␤ in sub f at line 1␤ in block at line 1␤␤» [17:04] well if you put a question mark there ... you're allowing undefined, too? [17:04] This is how the original should've been written, and the commit basically introduced a shortcut for that [17:05] i see [17:05] * hackedNODE leaves it until there are any issues with this behaviour :) [17:25] m: say Set ~~ ∅ [17:25] rakudo-moar 58cf9d: OUTPUT«Invocant requires an instance of type Setty, but a type object was passed. Did you forget a .new?␤ in block at line 1␤␤» [17:25] m: say Bag ~~ Bag.new [17:25] rakudo-moar 58cf9d: OUTPUT«True␤» [17:25] m: say Bag ~~ Bag.new: [17:25] rakudo-moar 58cf9d: OUTPUT«Use of uninitialized value of type Any in numeric context␤ in block at line 1␤False␤» [17:26] m: say Int ~~ 'x'.IO [17:26] 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 at line 1␤Use of uninitialized value of type Int in string context.␤Methods…» [17:27] 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 [22:25] hackedNO1: thanks [22:25] 12:16Z 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. https://github.com/perl6/roast/commit/ca2b03d63c4