Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:05 j3nnn1 left 00:10 cognominal-p6 left
timotimo I had hoped to look into problems with the heap snapshot profiler, but I just basically killed my pc 00:55
MasterDuke timotimo: do you know what code was being used to generate the problem profile? 01:00
timotimo no 01:02
01:32 cognominal-p6 joined, p6bannerbot sets mode: +v cognominal-p6 01:48 cognominal-p6 left 01:49 cognominal-p6 joined, p6bannerbot sets mode: +v cognominal-p6 02:05 leont left
AlexDaniel greppable6: throws-like\s+['"q「] 03:22
greppable6 AlexDaniel, 4 lines, 3 modules: gist.github.com/b4117c92ca26fd96b2...6a6cea2dca
03:48 MasterDuke left 07:20 ufobat joined, p6bannerbot sets mode: +v ufobat 07:38 dct joined, p6bannerbot sets mode: +v dct 07:49 dct left 08:25 robertle joined 08:26 p6bannerbot sets mode: +v robertle 09:06 ufobat left 09:13 ilmari_ left, tyil[m] left, CIAvash left, AlexDaniel` left 09:24 AlexDaniel` joined, p6bannerbot sets mode: +v AlexDaniel` 09:44 tyil[m] joined, ilmari_ joined, p6bannerbot sets mode: +v tyil[m], p6bannerbot sets mode: +v ilmari_, CIAvash joined, p6bannerbot sets mode: +v CIAvash 11:17 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix Perl 6 Advent Calendar 2018 Call for Authors: perl6.party/post/Perl-6-Advent-Cal...or-Authors 11:21
11:24 |Tux| left
lizmat m: class Point { has $.x; has $.y; method new($x,$y) { self.bless(:$x,:$y) } }; say Point.new(42,66).perl 11:26
camelia Point.new(x => 42, y => 66)
lizmat that seems LTA to me...
Zoffix heh :) 11:27
lizmat R#2448 11:30
synopsebot R#2448 [open]: github.com/rakudo/rakudo/issues/2448 Custom .new method is not reflected in standard .perl
lizmat m: class Point { has $.x; has $.y; method new($x,$y) { self.bless(:$x,:$y) } }; say Point.new(42,66)
camelia Point.new(x => 42, y => 66)
lizmat I guess .gist just falls back to .perl
ah, yes it does 11:31
11:32 |Tux| joined 11:33 p6bannerbot sets mode: +v |Tux|
Geth rakudo: lizmat self-assigned Nested Coercers? github.com/rakudo/rakudo/issues/2427
lizmat self-unassigned Nested Coercers? github.com/rakudo/rakudo/issues/2427

  lizmat self-unassigned CompUnit...load($key, :since($instant)) not working github.com/rakudo/rakudo/issues/2428
  lizmat self-assigned Custom .new method is not reflected in standard .perl github.com/rakudo/rakudo/issues/2448
adc9683773 | (Elizabeth Mattijsen)++ | src/core/Mu.pm6 Don't return standard .perl for classes with custom .new
  - also make code more idiomatic Perl 6
  - return "Class.new(...)" for now with custom new
  - step 1 in fixing R#2448
11:36
lizmat oops
lizmat ./me should learn how to click
lizmat Files=1255, Tests=76391, 337 wallclock secs (15.83 usr 5.25 sys + 2370.09 cusr 228.58 csys = 2619.75 CPU) 12:03
12:12 Zoffix left
synopsebot R#2448 [open]: github.com/rakudo/rakudo/issues/2448 Custom .new method is not reflected in standard .perl
12:36 Tux__ joined, |Tux| left 12:37 p6bannerbot sets mode: +v Tux__ 12:43 leont joined 12:44 p6bannerbot sets mode: +v leont 12:49 Tux__ is now known as |Tux| 13:03 j3nnn1 joined, p6bannerbot sets mode: +v j3nnn1 13:10 lizmat left 13:16 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Don't return standard .perl for classes with custom .new 13:16
travis-ci.org/rakudo/rakudo/builds/448817396 github.com/rakudo/rakudo/compare/0...c9683773ff
13:16 travis-ci left
buggable [travis build above] ☠ Did not recognize some failures. Check results manually. 13:17
geekosaur some tests were aparently relying on the stock .perl on Failure 13:21
t/02-rakudo/dd.t (Wstat: 256 Tests: 2 Failed: 1) 13:22
13:24 lizmat joined, p6bannerbot sets mode: +v lizmat 13:32 ufobat joined 13:33 p6bannerbot sets mode: +v ufobat
SqrtNegInf Like Xliff, I'm seeing a segfault (in a previously reliable program). Hard to golf, but does go away with MVM_SPESH_OSR_DISABLE=1 13:54
Here's a gist with possibly useful info: gist.github.com/SqrtNegInf/2b0ccf9...5c74ece006 13:55
13:57 dogbert17 joined, p6bannerbot sets mode: +v dogbert17 14:27 SourceBaby joined, ChanServ sets mode: +v SourceBaby, Zoffix joined, p6bannerbot sets mode: +v Zoffix 14:28 p6bannerbot sets mode: +v SourceBaby
Zoffix c: HEAD,HEAD~1 class Foo { has $.a = 1; has $.b = 2; has $.c = 3; has $.d = 4; method new { self.bless } }; dd Foo.new; say Foo.new 14:37
committable6 Zoffix, ¦HEAD(adc9683): «Foo.new(...)␤Foo.new(...)␤» ¦HEAD~1: «Foo.new(a => 1, b => 2, c => 3, d => 4)␤Foo.new(a => 1, b => 2, c => 3, d => 4)␤»
Zoffix That gonna piss people right off if they're forced to implement custom .gist/.perl just to dump the guts of an object with custom .new 14:38
14:43 Zoffix left 14:46 |Tux| left 14:50 AlexDaniel left 14:54 |Tux| joined, p6bannerbot sets mode: +v |Tux|
dogbert17 ZOFFLOP: t/spec/MISC/bug-coverage-stress-6.d.t - Unhandled exception in code scheduled on thread 4 - continuationinvoke expects an MVMContinuation 14:59
timotimo i'm not happy about that either ... i'd hope .perl is a "best effort" at giving you something you can eval to get the object back
15:00 buggable left 15:01 buggable joined, ChanServ sets mode: +v buggable
timotimo how about we dump it like do { $_ = Foo.new; .a = 1; .b = 2; .c = 3; .d = 4; .self } 15:01
15:01 p6bannerbot sets mode: +v buggable 15:05 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix timotimo: that's just a more convoluted way to dump a .new, which still doesn't work because in my example attributes aren't `is rw` 15:06
15:06 brrt joined
Zoffix Maybe dump all attributes like before, but stick a stub before them if there is a custom .new 15:06
So it'd be `Foo.new(…, a => 1, b => 2, c => 3, d => 4)
`
15:06 p6bannerbot sets mode: +v brrt
Zoffix m: 'Foo.new(…, a => 1, b => 2, c => 3, d => 4)'.EVAL 15:07
camelia 5===SORRY!5=== Error while compiling /home/camelia/EVAL_0
Undeclared name:
Foo used at line 1
timotimo damn, you're right
Zoffix e: 'class Foo {}; Foo.new(…, a => 1, b => 2, c => 3, d => 4)'.EVAL
evalable6 (exit code 1) Stub code executed
in block <unit> at EVAL_0 line 1
in block <unit> at /tmp/GhtJ7igJNq line 1
timotimo about the "rw" attributes
Zoffix So it still dies on .EVAL, because we've no idea how the custom `.new` works, but it still shows all the info for debugging aid
and keeps `infix:<eqv>` working
timotimo that sounds like a good compromise at first glance 15:08
can we somehow get a better error message than just "stub code executed"? … would take an argument, so a word or two there could be nice 15:09
Zoffix e: 'class Foo {}; Foo.new((… "CAN HAS CUSTOM .PERL TO GO WITH CUSTOM .new?"), a => 1, b => 2, c => 3, d => 4)'.EVAL 15:11
evalable6 (exit code 1) CAN HAS CUSTOM .PERL TO GO WITH CUSTOM .new?
in block <unit> at EVAL_0 line 1
in block <unit> at /tmp/bHVJvJrlhE line 1
Zoffix ehehe
15:20 fake_space_whale joined 15:21 p6bannerbot sets mode: +v fake_space_whale 15:22 Zoffix left
|Tux| Rakudo version 2018.10-30-gadc968377 - MoarVM version 2018.10-26-g318e1ec55
csv-ip5xs0.894 - 0.959
csv-ip5xs-207.124 - 7.412
csv-parser20.582 - 21.061
csv-test-xs-200.424 - 0.425
test7.970 - 8.403
test-t1.671 - 1.699
test-t --race0.788 - 0.850
test-t-2029.168 - 29.870
test-t-20 --race9.870 - 10.129
15:22
back to normal 15:23
dogbert17 1.671, now we're talking :-) 15:54
jnthn I think the default `.perl` for objects should assume the default construction interface, and if you make a custom `new` and you care about round-tripping then it's on you to write a custom `method perl` to go with it 16:03
Alternatively, dump with `.bless` instead of `.new` :)
16:17 robertle left 16:18 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
Geth roast: 4ae2c6a940 | (Zoffix Znet)++ | 2 files
SAP role multi dispatch test

The test relies on side-effects from `where` clauses which is an unsupported feature that works in Rakudo by accident.
I don't immediatelly see a way to rewrite that test to not use side effects from `where`, so shoving it to SAP.
Closes github.com/perl6/6.d-prep/issues/1
16:28
16:29 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix .tell AlexDaniel was the async sock native descriptor reverted? There's S#490 . Wondering if it needs to be closed now. 16:30
yoleaux Zoffix: I'll pass your message to AlexDaniel.
synopsebot S#490 [open]: github.com/perl6/roast/issues/490 Need spec of .native-descriptor for async sockets
AlexDaniel .
yoleaux 16:30Z <Zoffix> AlexDaniel: was the async sock native descriptor reverted? There's S#490 . Wondering if it needs to be closed now.
AlexDaniel it was reverted
rakudo ticket: github.com/rakudo/rakudo/issues/2437
Zoffix thanks. 16:32
16:32 Zoffix left, brrt left
Geth 6.d-prep: 59c255e672 | (Zoffix Znet)++ | 2 files
All planed features have been implemented

The remaining items are a better impl of sunk `start`, which
  jnthn++ promised to do this week as well as de-dynamification
of `$_` variable, which isn't making it to 6.d on language-level, but we cleaned up 6.d spec to allow for its preview implementation in Rakudo under 6.d language.
16:42
6.d-prep: 273a2465bc | (Zoffix Znet)++ | TODO/README.md
missing plans in subtests has been fixed
[Coke] Zoffix++ again for all the 6.d work 16:51
yoleaux 30 Oct 2018 01:24Z <tbrowder___> [Coke]: are the dates for TPC::NA 2019 decided yet?
30 Oct 2018 10:11Z <tbrowder___> [Coke]: do you know dates for TPC::NA 2019?
[Coke] Yes. Let me find the blog post.
.tell tbrowder___ perlconference.us/tpc-2019-pit/ 16:52
yoleaux [Coke]: I'll pass your message to tbrowder___.
[Coke] this was announced during the last yapc before it ended.
jnthn Yup, I'll work on those two tomorrow :) 16:54
I don't really know what lexical $_ would look like in the spec. Maybe a test that CALLER::<$_> doesn't find anything.
16:57 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix .tell lizmat a friendly reminder about changelogging set ops for 6.d release, if you have the time: github.com/perl6/6.d-prep/blob/mas...-behaviors 16:57
yoleaux Zoffix: I'll pass your message to lizmat.
16:58 Zoffix left
japhb [Coke]: Oooh, a TPC location I might be able to attend. That would be a nice change. 17:01
[Coke] I am currently planning on driving. 17:13
AlexDaniel buggable: 6.d 17:29
buggable AlexDaniel, Diwali is in 6 days, which is 5 days, 6 hours, 30 minutes, and 23 seconds. Need to changelog 999 commits per day (6997/week). Need release brochure. Still have 2 TODO features costing 8 hours. Still have 0.3 policies to write.
AlexDaniel buggable: d
buggable AlexDaniel, Diwali is in 6 days, which is 5 days, 6 hours, 30 minutes, and 19 seconds. Need to changelog 999 commits per day (6997/week). Need release brochure. Still have 2 TODO features costing 8 hours. Still have 0.3 policies to write.
AlexDaniel huggable:: d
huggable AlexDaniel, nothing found
AlexDaniel huggable: d
huggable AlexDaniel, gist.github.com/AlexDaniel/3296f8c...e-bisected
AlexDaniel Zoffix: I filed this ticket: github.com/rakudo/rakudo/issues/2451 17:35
all these are LHF in my opinion, so others can help easily
Geth star/2018.10: 806c78abcd | (Steve Mynott)++ | docs/perl6intro.pdf
new version of perl6intro.pdf
17:47
17:56 cognominal-p6 left
AlexDaniel Zoffix: github.com/perl6/whateverable/issues/345 17:56
Geth star/2018.10: 9966bcb60b | (Steve Mynott)++ | docs/announce/2018.10.md
mention JS backend and 6pad
17:57
AlexDaniel stmuk_++ 17:58
stmuk_: consider linking to 6pad: perl6.github.io/6pad/
stmuk_ Good Idea! 17:59
Geth star/2018.10: 2b673d6a6a | (Steve Mynott)++ | docs/announce/2018.10.md
AlexDaniel++ 6pad link
18:01
stmuk_ is "stage parse" slower now than a few releases back? is it my imagination? 18:10
timotimo maybe we should add a tiny module to Rakudo::Star that just launches a tiny web server that hosts a 6pad - or does it also work off of file:// ? 18:11
stmuk_ that's not a bad idea 18:13
18:23 cognominal-p6 joined 18:24 p6bannerbot sets mode: +v cognominal-p6 18:38 cognominal-p6 left, cognominal-p6 joined 18:39 p6bannerbot sets mode: +v cognominal-p6 19:01 fake_space_whale left 19:16 patrickb joined, p6bannerbot sets mode: +v patrickb
Geth rakudo: 20d50e071d | (Elizabeth Mattijsen)++ | src/core/Mu.pm6
Adjust default .perl for custom .new

  - instead of trying to be smart, be really stupid
  - if a class has a .new, it won't most likely not have a custom .bless
  - so just change the name of the method being called to "bless"
  - fixes R#2448 and R@2449
19:34
synopsebot R#2448 [open]: github.com/rakudo/rakudo/issues/2448 Custom .new method is not reflected in standard .perl
lizmat hmmm double negatives 19:35
yoleaux 16:57Z <Zoffix> lizmat: a friendly reminder about changelogging set ops for 6.d release, if you have the time: github.com/perl6/6.d-prep/blob/mas...-behaviors
lizmat Zoffix: noted
Geth roast: c13551e549 | (Elizabeth Mattijsen)++ | S06-advanced/callframe.t
Fix overeager test for R#2448 / R#2449
19:36
synopsebot R#2448 [open]: github.com/rakudo/rakudo/issues/2448 Custom .new method is not reflected in standard .perl
R#2449 [open]: github.com/rakudo/rakudo/issues/2449 [⚠ blocker ⚠] `eqv` with classes that have custom `.new` and no `.perl` is now always True
Geth roast/6.c-errata: 5218a83d3b | (Elizabeth Mattijsen)++ | S06-advanced/callframe.t
Fix overeager test for R#2448 / R#2449
19:38
synopsebot R#2448 [open]: github.com/rakudo/rakudo/issues/2448 Custom .new method is not reflected in standard .perl
R#2449 [open]: github.com/rakudo/rakudo/issues/2449 [⚠ blocker ⚠] `eqv` with classes that have custom `.new` and no `.perl` is now always True
lizmat Zoffix: re github.com/perl6/6.d-prep/blob/mas...-behaviors , it looks to me we should drop the word "now" from all descriptions 19:42
tbrowder___ [Coke]: nowhere can i find exact dates, just “june”—
19:43 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix lizmat: +1 19:43
Geth 6.d-prep: aaef945536 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | ChangeLog.md
Fix spello
19:44
lizmat Zoffix: ok, will do
Zoffix is slightly worried about that .perl -> .bless thing causing tough-to-notice bugs
lizmat Zoffix: it's .new -> .bless 19:45
the point of .perl is that it should roundtrip
there has never been any guarantee about readability
now, maybe we would need to make a more custom default .gist 19:46
Zoffix lizmat: yeah, but by using .bless you're making an assumption `.new` doesn't do too much of useful stuff. So it'll work for cases where you're just using `.new` to take positionals instead of nameds, but will be a tough-to-spot bug if you do any sort of set up. For example Failure.new does some sort of setup
e: dd Failure.new: 'moews'
evalable6 Failure.bless(exception => X::AdHoc.new(payload => "moews"), backtrace => Backtrace.bless)
Zoffix m: say Failure.bless(exception => X::AdHoc.new(payload => "moews"), backtrace => Backtrace.bless)
camelia No exception handler located for catch
at SETTING::src/core/Exception.pm6:412 (/home/camelia/rakudo-m-inst-2/share/perl6/runtime/CORE.setting.moarvm:print_exception)
from SETTING::src/core/Exception.pm6:469 (/home/camelia/rakudo-m-inst-2/sha…
Zoffix lizmat: ^ and now there is this weird error and would people even realize that they're getting .bless from .perl? 19:47
The point of .perl is that it should roundtrip, but it still doesn't roundtrip here. 19:48
lizmat well, that example wouldn't even work with .perl, on account of Backtrace.perl
Zoffix The stub approach was the bestest one IMO. It just died and told you you had to provide a .perl 19:49
Well, stub + still listing attribute values, so you could still use it as debuging aid
lizmat so: just add '...' if there's something weird going on ?
still, using it as a debugging aid, why would it matter that it was .bless instead of .new ? 19:50
Zoffix Yeah, like `Foo.new(…, attr1 => 42, attr2 => 100)` and timotimo pointed out that it could use a better error message than the default, so it'd prolly look like`Foo.new((… "custom method new requires implementation of custom .perl"), attr1 => 42, attr2 => 100)` or something
lizmat: it doesn't matter. The .bless is bad because it solves half the problem, while requiring user to notice they're getting a different .perl when they define a custom .new method 19:51
vs. just dying 19:52
lizmat ok, lemme look at that again after I'm done with the 6.d Changelog stuff
Zoffix e: class NuclearPowerPlant { has $!uranium; method new ($q) { self.bless: uranium => ($q > 1000 ?? 1000 !! $q) }; method power { say 42/$!uranium } }; NuclearPowerPlant.new(10000000000).perl.EVAL.power 19:54
evalable6 (exit code 1) Use of uninitialized value of type Any in numeric context
in method power …
Zoffix, Full output: gist.github.com/bd39208fb15106ccbc...9fb9e338b5
Zoffix that vs. dying with "need custom .perl, bruh"
Zoffix & 19:57
19:58 Zoffix left 19:59 brrt joined 20:00 p6bannerbot sets mode: +v brrt
Geth 6.d-prep: b010f82a12 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | ChangeLog.md
Remove "now" where it was felt to be superfluous
20:05
6.d-prep: 7dff0fcf8b | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | ChangeLog.md
Put all QuantHash stuff together
20:19
lizmat hmmm... I changed something in a src/core.d/... file 20:45
and now even the "normal" setting is getting recompiled. should it ? feels to me that it shouldn't have to ?
20:46 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Adjust default .perl for custom .new 20:46
travis-ci.org/rakudo/rakudo/builds/449026572 github.com/rakudo/rakudo/compare/a...d50e071d40
20:46 travis-ci left
buggable [travis build above] ☠ Did not recognize some failures. Check results manually. 20:47
lizmat we still don't have a way to remove a sub from the 6.c setting in 6.d, right ? 21:08
Geth rakudo: 4af55fb611 | (Elizabeth Mattijsen)++ | t/02-rakudo/dd.t
Make Travis happy for now

Working on making this work more generally
21:12
21:45 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix lizmat: it's even worse. You can't override, say, a single existing multi, because then it'd conflict with the one in 6.c. Also, overriding stuff in 6.d doesn't actually override it inside 6.c code. I think it basically works out to something like: { multi six-c-stuff { ... }; { multi six-d-stuff { ... }; { user's-code } } }, so it's layered and you can only add-on. Here's how I deprecated the 21:49
`undefined`: github.com/rakudo/rakudo/blob/mast...rators.pm6 but I couldn't override `infix:</>` for Nums to do IEEE stuff right, because I'd have to override ALL the `infix:</>` and anything that uses `/` inside 6.c core would not get the 6.d version still 21:50
lizmat perhaps we need an "unproto" :-) 21:51
Zoffix :) 21:54
lizmat m: class A { has $.a; method TWEAK() { $!a = !$!a } }; dd A.new(:a) # not roundtripping 22:06
camelia A.new(a => Bool::False)
Geth rakudo: 8561d0ae56 | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm6
Make sure the :up of DEPRECATED gets handled correctly

There seems to be a scoping issue with $_ in the case of:
   foo = $_ with bar for ^10;
22:10
rakudo: 951303f9aa | (Elizabeth Mattijsen)++ | src/core.d/operators.pm6
"Remove" (<+), ≼, (>+), ≽ from 6.d

Well, not really, actually. But it won't work anymore and it will tell you what to use instead if you *do* try to use it.
roast: a5a3969588 | (Elizabeth Mattijsen)++ | S03-operators/set_precedes.t
set_precedes tests only work in 6.c

And 'use v6' implies the most current, but that won't work anymore since
  github.com/rakudo/rakudo/commit/951303f9aa
22:13
22:14 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make Travis happy for now 22:14
travis-ci.org/rakudo/rakudo/builds/449068866 github.com/rakudo/rakudo/compare/2...f55fb61150
22:14 travis-ci left
Geth rakudo: c04d5b7780 | (Elizabeth Mattijsen)++ | src/core/Mu.pm6
Return to the status quo wrt to Mu.perl

This turns out to be a hornet's nest. Sorry to have stirred it.
This reverts adc96837 and 20d50e07
22:16
Zoffix Oh yeah. Totally forgot about TWEAK and other of those methods. 22:25
Geth rakudo: 4c05a0b13e | (Elizabeth Mattijsen)++ | t/02-rakudo/dd.t
Revert "Make Travis happy for now"

This reverts commit 4af55fb61150e23c7ce15718cb5d103e8ccab6cd.
No longer needed.
22:29
22:38 brrt left
lizmat Zoffix: will continue with ChangeLog tomorrow 22:41
sleep&
23:05 ufobat left, ggoebel left 23:17 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build passed. Elizabeth Mattijsen '"Remove" (<+), ≼, (>+), ≽ from 6.d 23:17
travis-ci.org/rakudo/rakudo/builds/449092719 github.com/rakudo/rakudo/compare/4...1303f9aaec
23:17 travis-ci left 23:27 cognominal-p6 left 23:52 cognominal-p6 joined, MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 23:53 p6bannerbot sets mode: +v cognominal-p6, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke