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.
lizmat Files=1255, Tests=76372, 358 wallclock secs (15.86 usr 5.46 sys + 2524.06 cusr 235.99 csys = 2781.37 CPU) 09:52
this is significantly worse than a few days ago
I see a similar drop in my private test-t testing 09:53
masak lizmat: hm, do we have any continuous benchmarking on commits? 09:57
lizmat closest thing we have on that is test-t 10:01
and my irregular timing of spectest
afaik
Geth rakudo: 0bc72e0504 | (Elizabeth Mattijsen)++ | 4 files
Add a Hyper class

  - inactive for now, re-configure of Rakudo is needed
  - contains the initial version of the HYPER sub refactor
  - the basic gain is that operator/dwim info doesn't need to be passed
  - also fixes use of object hashes / QuantHashes in infix hypers
  - should allow for easier optimizations in the future
... (6 more lines)
10:44
lizmat is now working to plug this into the core 10:45
[Tux] Rakudo version 2018.10-91-gcbbe16edd - MoarVM version 2018.10-74-g2fdde4a21
csv-ip5xs0.948 - 1.034
csv-ip5xs-207.408 - 7.409
csv-parser23.139 - 23.516
csv-test-xs-200.435 - 0.440
test8.510 - 8.533
test-t1.881 - 1.898
test-t --race0.970 - 0.980
test-t-2031.512 - 33.648
test-t-20 --race12.527 - 12.777
11:22
lizmat yeah, most definitely slower :-( 11:30
nine A slow down of this magnitude ought to be easy to pin down 11:45
lizmat Type check failed in assignment to &!operator; expected Callable but got Sub+{is-nodal} (Sub+{is-nodal}.new)
isn't that, eh, weird ??? ^^^
timotimo we've had that a few times, yeah 11:46
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Add a Hyper class 11:46
travis-ci.org/rakudo/rakudo/builds/452321829 github.com/rakudo/rakudo/compare/c...c72e0504ad
lizmat m: sub a() is nodal {}; dd &a ~~ Callable 11:46
camelia Bool::True
lizmat m: sub a() is nodal {}; dd &a
camelia Sub+{is-nodal} a = sub a { #`(Sub+{is-nodal}|50924528) ... }
lizmat m: sub a() is nodal {}; say &a
camelia &a
lizmat m: sub a() is nodal {}; say &a.Str 11:47
camelia Sub+{is-nodal} object coerced to string (please use .gist or .perl to do that)
a
in block <unit> at <tmp> line 1
lizmat m: sub a() is nodal {}; say &a.^name
camelia Sub+{is-nodal}
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
timotimo # Expected: all(/<<"No such private method '!bar'" \W/, /<<'RT123078_2'>>/, /<<'bar'>>/, /<<'baz'>>/) 11:50
# Got: No such private method '!!bar' for invocant of type 'RT123078_2'. Did you mean any of these?
how did that happen
the extra ! in there
lizmat yeah, no idea: 11:59
m: class A { method foo { self!bar }; method bar { }; method baz { } }; A.new.foo
camelia 5===SORRY!5=== Error while compiling <tmp>
No such private method '!bar' for invocant of type 'A'. Did you mean any of these?
bar
baz

at <tmp>:1
------> 3class A { method foo { self!7⏏5bar }; method bar { }; method baz { …
lizmat is going to double check whether it was the Hyper addition 12:00
it does *not* appear to by my commit 12:03
(well, my last commit, that is)
wrt to slowdown, I'm adding 9457f7e540e2e959141f7 to the suspect list 12:06
and removes it again: that's compile time
Geth rakudo: 75c9456a8b | (Elizabeth Mattijsen)++ | src/core/Hyper.pm6
Small tweaks to Hyper.pm6

  - cannot coerce Any to native int, so de-int $.dwim-left/right
  - forgot to change to instances of .do into .infix
   - the idea behind that is that we could handle other ops in the future
   as well with a different method
12:29
lizmat so: with regards to the Travis breakage 12:36
the code in question is:
class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } }; RT123078_2.new.foo
m: class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } }; RT123078_2.new.foo
camelia 5===SORRY!5=== Error while compiling <tmp>
No such private method '!bar' for invocant of type 'RT123078_2'. Did you mean any of these?
bar
baz

at <tmp>:1
------> 3class RT123078_2 { method foo { self!7⏏5bar }; method bar …
lizmat now, the odd thing is that this dies during compilation 12:37
timotimo that's not odd
private methods are looked up during compilation
lizmat indeed...
now, if I remove the actual call to the method from the test 12:38
the test fails because the code *doesn't die*
so the error that gets reported, is somehow a *runtime* error
timotimo you mean not calling .new.foo will not make it break?
lizmat indeed
timotimo m: class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } }; 12:39
camelia 5===SORRY!5=== Error while compiling <tmp>
No such private method '!bar' for invocant of type 'RT123078_2'. Did you mean any of these?
bar
baz

at <tmp>:1
------> 3class RT123078_2 { method foo { self!7⏏5bar }; method bar …
timotimo not on camelia, apparently?
lizmat well, and not separately either 12:40
but once it is inside t/05-messages/01-errors.t it doesn't
m: use Test; throws-like q| class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } } |, X::Method::NotFound
camelia 1..2
ok 1 - ' class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } } ' died
ok 2 - right exception type (X::Method::NotFound)
ok 1 - did we throws-like X::Method::NotFound?
lizmat m: use Test; throws-like q| class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } } |, X::Method::NotFound, message => all(/<<"No such private method '!bar'" \W/, /<<'RT123078_2'>>/, /<<'bar'>>/, /<<'baz'>>/) 12:41
camelia 1..3
ok 1 - ' class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } } ' died
ok 2 - right exception type (X::Method::NotFound)
ok 3 - .message matches all(/<<"No such private method '!bar'" \W/, /<<'RT123078_…
lizmat grrr
dogbert11 c: 2018.10 use Test; throws-like q| class RT123078_2 { method foo { self!bar }; method bar { }; method baz { } } |, X::Method::NotFound, message => all(/<<"No such private method '!bar'" \W/, /<<'RT123078_2'>>/, /<<'bar'>>/, /<<'baz'>>/) 12:55
committable6 dogbert11, gist.github.com/af30b4003fd3ce14d9...7a9b70ffaa
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Small tweaks to Hyper.pm6 13:31
travis-ci.org/rakudo/rakudo/builds/452359841 github.com/rakudo/rakudo/compare/0...c9456a8b95
lizmat yeah, still bisecting ^^^ 13:32
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
lizmat looks like it is 8a6c38bfbcb66f6b6169bc that broke it 13:36
reproduced: 13:37
$ perl6 --optimize=0 -e 'class A { method foo { self!bar }; method bar { }; method baz { } }; A.new.foo'
No such private method '!!bar' for invocant of type 'A'. Did you mean any of these?
looks like that change is causing all code to be un-optimized 13:38
at least, not have a static optimization step
Geth rakudo: f04c6c34b8 | (Elizabeth Mattijsen)++ | src/core/ForeignCode.pm6
Revert "Make EVAL options when we didn't even read options from the command line"

This reverts commit 8a6c38bfbcb66f6b6169bc4f01285692880791b0.
It looks like this causes the static optimizer step to be ignored.
13:39
rakudo: 2eb43ab9e4 | (Elizabeth Mattijsen)++ | t/05-messages/01-errors.t
Error should be thrown at compile time

So remove the method call, which nearly caused a false negative if it hadn't been for an error in runtime lookup failure.
13:56
lucasb This Hyper thing is gonna be a big refactor? Do you think it's worth to develop it in a branch? 13:58
lizmat lucasb: there are two reasons I put in Hyper into master: 14:00
1. because add a new file needs a reconfigure, it made life easier for me while developing
2. unless the new functionality is called from the HYPER sub, there is no active code 14:01
3. It should allow me do some easier timing tests for the final commit message :-)
it should be done by tomorrow...
lizmat afk for some cycling in a lovely afternoon& 14:07
[Coke] have fun! my excercise today is walking through NYC 14:26
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Revert "Make EVAL options when we didn't even read options from the command line" 14:42
travis-ci.org/rakudo/rakudo/builds/452389785 github.com/rakudo/rakudo/compare/7...4c6c34b836
buggable [travis build above] ☠ Did not recognize some failures. Check results manually. 14:43
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Error should be thrown at compile time 15:43
travis-ci.org/rakudo/rakudo/builds/452398188 github.com/rakudo/rakudo/compare/f...b43ab9e4d4
buggable [travis build above] ☠ Did not recognize some failures. Check results manually. 15:43
Geth roast: 61138607ce | (Joelle Maslak)++ | S32-io/IO-Socket-Async.t
Tests listening on port 0 returns usable tap with whenever

This tests for regressions of:
   github.com/rakudo/rakudo/issues/2411
16:00
roast: 122e67e7ed | (Joelle Maslak)++ | S32-io/IO-Socket-Async.t
Test directly looks to see if a I:S:A.listen returns a usable Tap

This is an improved test for:
   github.com/rakudo/rakudo/issues/2411
roast: 2fc3fb6762 | (Joelle Maslak)++ (committed using GitHub Web editor) | S32-io/IO-Socket-Async.t
Merge pull request #496 from jmaslak/get-listening-port-number

Tests listening on port 0 returns usable tap with whenever
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Error should be thrown at compile time 18:15
travis-ci.org/rakudo/rakudo/builds/452398188 github.com/rakudo/rakudo/compare/f...b43ab9e4d4
lizmat it looks like we have a flapper ^^^ I simply re-ran travis on the one build that failed :-( 18:15
Geth rakudo: 547f28baf6 | (Joelle Maslak)++ | 2 files
Add type constraints to port numbers in IO::Socket::Async

Also remove todo to improve error message for invalid port numbers.
18:20
rakudo: b0a2ce7657 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 2 files
Merge pull request #2443 from jmaslak/Async-Port-Constraint

Add type constraints to port numbers in IO::Socket::Async
Geth rakudo: ec2848c43a | (Elizabeth Mattijsen)++ | src/core/Hyper.pm6
Final tweaks on the Hyper refactor

  - now spectests clean when activated
  - will run some timing tests tomorrow before activating in master
  - expect to see between 1.5x and 4x faster metaops
23:46
timotimo <3 23:51