Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-09-29

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:04 gfldex 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 geekosaur (...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
00:16 MasterDuke https://github.com/perl6/whateverable/blob/master/build.p6
00:17 gfldex known problem but I failed to golf it so far.
00:17 gfldex your example is not exacly short either. :(
00:19 MasterDuke yeah, i'm trying to golf it
00:36 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 Zoffix a fudge.
01:46 [Coke] Zoffix: are you familiar with autounfudge?
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
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 Zoffix neat
02:39 MasterDuke 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
03:47 Zoffix__ joined #perl6-dev
04:04 tony-o joined #perl6-dev
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
06:38 [Tux] joined #perl6-dev
06:58 RabidGravy joined #perl6-dev
07:32 arnsholt MasterDuke: IIRC ~~ will call ACCEPTS, while the istype op checks the type directly
07:34 jsimonet joined #perl6-dev
07:41 Zoffix__ joined #perl6-dev
07:42 lizmat Files=1143, Tests=53180, 229 wallclock secs (12.87 usr  4.00 sys + 1399.79 cusr 131.40 csys = 1548.06 CPU)
07:51 btyler joined #perl6-dev
12:16 dalek rakudo/nom: 5a3df86 | (Zoffix Znet)++ | t/spectest.data:
12:16 dalek rakudo/nom: Add S32-basics/pairup.t to test file list
12:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5a3df86303
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. https://github.com/perl6/roast/commit/ca2b03d63c4
12:16 yoleaux2 hackedNODE: I'll pass your message to MasterDuke.
12:21 hackedNODE weird
12:21 hackedNODE m: .signature.say for Array.^lookup("splice").candidates
12:21 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, …»
12:21 hackedNODE Works, right...
12:21 hackedNODE m: .signature.say for Buf.^lookup("splice").candidates
12:21 camelia rakudo-moar ed0ced: OUTPUT«No such method 'candidates' for invocant of type 'Mu'␤  in block <unit> at <tmp> line 1␤␤»
12:21 hackedNODE Doesn't
12:21 hackedNODE m: .signature.say for Buf.new(<1 2 3>).^lookup("splice").candidates
12:21 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, *%_)…»
12:21 hackedNODE But this does :/
12:22 hackedNODE 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, *%_)…»
12:22 hackedNODE I see...
12:22 jnthn .^lookup on a role will only give you things declared in that role
12:23 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')
12:24 camelia rakudo-moar ed0ced: OUTPUT«m␤»
12:24 hackedNODE :S
12:25 jnthn m: say Buf.WHO
12:25 camelia rakudo-moar ed0ced: OUTPUT«Buf␤»
12:25 hackedNODE m: role R[::T = uint8] does Blob[T] is repr('VMArray') is array_type(T) { method m() { } }; say R.^lookup('m')
12:25 camelia rakudo-moar ed0ced: OUTPUT«m␤»
12:25 jnthn m: say Buf.HOW.^name
12:25 camelia rakudo-moar ed0ced: OUTPUT«Perl6::Metamodel::ParametricRoleGroupHOW␤»
12:25 jnthn Curious
12:26 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␤␤»
12:26 hackedNODE m: role R { multi method m() { } }; say R.^lookup('m')
12:26 camelia rakudo-moar ed0ced: OUTPUT«(Mu)␤»
12:27 jnthn Ah
12:27 hackedNODE ^ making it a multi makes a difference
12:27 jnthn Yeah
12:27 jnthn I dunno quite what we can/should do about that.
12:27 jnthn We'd have to create a fictional proto
12:28 jnthn Which feels a bit odd
12:28 jnthn Given lookup is meant to just give you stuff that exists
12:28 hackedNODE .oO( proto proto... )
12:29 hackedNODE oh god, that even compiles
12:29 hackedNODE m: proto proto (|) {}
12:29 camelia rakudo-moar ed0ced: ( no output )
12:29 hackedNODE m: proto proto proto proto (|) {}
12:29 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␤»
12:29 lizmat m: sub sub() { say "sub" }; sub()
12:29 camelia rakudo-moar ed0ced: OUTPUT«sub␤»
12:30 gfldex it's recursion all the way down :)
12:33 DrForr Poor turtles.
12:48 masak DrForr: "structural integrity challenges in transfinite-cardinality turtle-stack architectures"
12:49 DrForr Cheloid axial compression...
12:51 [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␤»
12:53 DrForr Oo, Chaitin-Kolmogorov chitin compression
12:53 RabidGravy joined #perl6-dev
12:56 masak finding the omega in your tortoise chain
12:58 buggable joined #perl6-dev
12:59 NeuralAnomaly joined #perl6-dev
13:23 dalek nqp: a6425aa | coke++ | docs/ops.markdown:
13:23 dalek nqp: jnthn++'s notes about sha1
13:23 dalek nqp: review: https://github.com/perl6/nqp/commit/a6425aad4d
13:34 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:35 timotimo not all sequences can tell you how many elements it'll have
13:35 timotimo that could make it problematic :)
13:36 jnthn Asking how many elements a Seq has consumes the Seq
13:36 jnthn And then you can't get the elements
13:36 timotimo oh, that'll be a problem, too! :)
13:46 dalek nqp: ec03b35 | coke++ | t/docs/opcodes.t:
13:46 dalek nqp: allow for js-specific doc'd opcodes
13:46 dalek nqp: review: https://github.com/perl6/nqp/commit/ec03b35c8a
15:53 |Tux| joined #perl6-dev
16:28 dalek rakudo/nom: 84b7ebd | (Zoffix Znet)++ | src/core/Numeric.pm:
16:28 dalek rakudo/nom: Fix failure to smartmatch Numeric:U against Numeric:D
16:28 dalek rakudo/nom:
16:28 dalek rakudo/nom: The candidate is too wide and when Numeric:U is given, throwage occurs
16:28 dalek rakudo/nom: when it's used with the `==` operator inside the method's body.
16:28 dalek rakudo/nom:
16:28 dalek rakudo/nom: Restrict the candidate to :D types only and let Any's candidates take
16:28 dalek rakudo/nom: care of the :U types.
16:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/84b7ebdf42
16:29 dalek roast: 8a8bd60 | (Zoffix Znet)++ | S32-num/int.t:
16:29 dalek roast: smartmathing :U numeric against :D numeric does not throw
16:29 dalek roast:
16:29 dalek roast: Tests for issue fixed by https://github.com/rakudo/rakudo/commit/84b7ebdf42
16:29 dalek roast: review: https://github.com/perl6/roast/commit/8a8bd603f7
16:30 moritz smartmathing. Nice! :-)
16:31 moritz I've always tried to smartmath my way through math class, without ever learning formulas or techniques by heart
16:31 hackedNODE :)
16:32 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:37 dalek rakudo/nom: 58cf9d8 | (Zoffix Znet)++ | src/core/Str.pm:
16:37 dalek rakudo/nom: Throw away useless ACCEPTS candidate
16:37 dalek rakudo/nom:
16:37 dalek rakudo/nom: The :U case is already handled by Any's candidates[^1]
16:37 dalek rakudo/nom:
16:37 dalek rakudo/nom: [1] https://github.com/rakudo/rakudo/blob/5a3df86/src/core/Any.pm#L21
16:37 dalek 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 timotimo i think there's something naughty you can construct with "decont"
16:41 timotimo not based on that it sounds like "cunt", mind you
16:41 jnthn Now being indecont, please :P
16:43 * timotimo prefers clean jokes
16:44 timotimo make clean jokes
16:45 hackedNODE make: *** No rule to make target 'jokes'.  Stop.
16:48 dalek roast: afd609e | (Zoffix Znet)++ | S32-num/int.t:
16:48 dalek roast: Fix typo in test description
16:48 dalek roast: review: https://github.com/perl6/roast/commit/afd609e183
16:53 hackedNODE m: enum Foo <bar ber>; say Foo ~~ bar
16:53 camelia rakudo-moar 58cf9d: OUTPUT«True␤»
16:54 hackedNODE That's wrong, isn't it?
16:54 hackedNODE m: say Str ~~ "x"
16:54 camelia rakudo-moar 58cf9d: OUTPUT«False␤»
16:54 hackedNODE ^ that's an equivalent for Str, I think and that returns false
16:55 timotimo right, if you have a defined value on the right, i don't think it should be type-check-esque
16:56 hackedNODE 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 timotimo ho-hum
16:58 hackedNODE No idea how signatures work, so I'll leave it as is, until I'm smarter :)
16:58 hackedNODE star: enum Options(<Foo Bar>); (sub f(Foo $o?){ ... })()
16:58 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␤␤»
16:58 hackedNODE m: enum Options(<Foo Bar>); (sub f(Foo $o?){ ... })()
16:58 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␤␤»
16:59 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␤␤»
17:00 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
17:02 hackedNODE 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␤␤»
17:04 hackedNODE I'd argue that's bug.
17:04 hackedNODE star: enum Options(<Foo Bar>); (sub f(Options $o where Foo){ ... })(Foo)
17:04 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␤␤»
17:04 hackedNODE star: enum Options(<Foo Bar>); (sub f(Options $o where Foo){ ... })(Bar)
17:04 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␤␤»
17:04 timotimo well if you put a question mark there ... you're allowing undefined, too?
17:04 hackedNODE This is how the original should've been written, and the commit basically introduced a shortcut for that
17:05 timotimo i see
17:05 * hackedNODE leaves it until there are any issues with this behaviour :)
17:25 hackedNODE 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␤␤»
17:25 hackedNODE m: say Bag ~~ Bag.new
17:25 camelia rakudo-moar 58cf9d: OUTPUT«True␤»
17:25 hackedNODE m: say Bag ~~ Bag.new: <a b c>
17:25 camelia rakudo-moar 58cf9d: OUTPUT«Use of uninitialized value of type Any in numeric context␤  in block <unit> at <tmp> line 1␤False␤»
17:26 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…»
17:27 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
17:44 FROGGS joined #perl6-dev
18:37 perlpilot_ joined #perl6-dev
19:10 Ven_ joined #perl6-dev
19:15 perlpilot joined #perl6-dev
19:46 Hotkeys_ joined #perl6-dev
19:49 hackedNO1 joined #perl6-dev
20:25 Ven_ joined #perl6-dev
20:46 Ven_ joined #perl6-dev
21:01 Ven_ joined #perl6-dev
21:56 AlexDaniel joined #perl6-dev
22:25 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. https://github.com/perl6/roast/commit/ca2b03d63c4

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary