AlexDaniel | buggable: tags | 05:26 | |
buggable | AlexDaniel, Total: 1647; 6.D: 1; 9999: 10; @LARRY: 24; ANNOYING: 7; BOOTSTRAP: 5; BUG: 602; BUILD: 12; CONC: 48; DOCS: 1; EXOTICTEST: 1; GLR: 3; IO: 23; JVM: 53; LTA: 177; MATH: 4; META: 1; MOAR: 1; NATIVECALL: 22; NYI: 55; OO: 13; OPTIMIZER: 8; OSX: 2; PARSER: 5; PERF: 28; POD: 19; PRECOMP: 15; REGEX: 48; REGRESSION: 37; REPL: 6; RFC: 63; RT: 1; | ||
AlexDaniel, SECURITY: 1; SEGV: 25; SINK: 1; SITE: 1; SPESH: 1; STAR: 7; TESTCOMMITTED: 10; TESTNEEDED: 46; TODO: 13; UNI: 26; UNTAGGED: 416; WEIRD: 2; WINDOWS: 3; See fail.rakudo.party/ for details | |||
AlexDaniel | buggable: tag EXOTICTEST | ||
buggable | AlexDaniel, There is 1 ticket tagged with EXOTICTEST; See fail.rakudo.party/t/EXOTICTEST for details | ||
AlexDaniel | buggable: tag PARSER | 05:27 | |
buggable | AlexDaniel, There are 5 tickets tagged with PARSER; See fail.rakudo.party/t/PARSER for details | ||
samcv | about to update for emoji v5 | 05:42 | |
after i make sure to automate being backward compatible with old emoji names | |||
Geth | roast: 2578606b60 | (Samantha McVey)++ | S32-io/open.t Make S32-io/open.t work in a folder other than t/spec |
05:59 | |
roast: b54c7d3fbe | (Samantha McVey)++ | S02-literals/quoting-unicode.t Remove ornate parenthesis from quoting-unicode.t These should never have been added as they are not considered brackets by Unicode. There are no modules in the ecosystem which use it and saving this for Perl 6.d would not be viable or needed. |
06:01 | ||
nine | I'm signing off now. Will be back from vacation in Thailand on October 17th. Remember to have fun while I'm gone :) | 06:14 | |
samcv | have fun! | 06:30 | |
moritz | nine: have a nice vacation! | 07:00 | |
and yes, Thailand sounds like more fun than central Europe right now :-) | |||
AlexDaniel marks a ticket as [6.d] because it says that it's a thing that has to be decided “before Christmas” | 07:12 | ||
(RT #126283) | |||
synopsebot | RT#126283 [new]: rt.perl.org/Ticket/Display.html?id=126283 [6.d][@LARRY] invocants default to :D ? | ||
|Tux| | This is Rakudo version 2017.09-183-g4ca1fc3c1 built on MoarVM version 2017.09.1-62-g89ca8eb0 | 07:29 | |
csv-ip5xs 1.198 - 1.205 | |||
test 9.613 - 9.657 | |||
test-t 3.258 - 3.298 | |||
csv-parser 12.715 - 12.716 | |||
lizmat | ok, now that we've determined that we need to keep Mu.BUILDALL around in its current shape, because classes created by mixing in a role at runtime with "but" | 09:00 | |
cannot have an auto-generated BUILDALL, because we do not have a compiler object ready at runtime | |||
how do we go about this then? | 09:01 | ||
my original plan was to eradicate the BUILDALLPLAN attribute completely | 09:02 | ||
but it is clear now that we at least need that around for those classes created at runtime | |||
jnthn | Ah, I hadn't expected we'd eliminate that :) | 09:30 | |
Geth | rakudo/nom: 92f239b557 | (Elizabeth Mattijsen)++ | src/core/Exception.pm Attributes set from nqp land wind up unhllized - circumvent the issue by making the attributes natives - fixes failures in S32-str/sprintf.t that occurred since BUILDALL refactor |
10:58 | |
rakudo/nom: 7fa707db73 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ClassHOW.nqp We shouldn't let BUILDALL installation fail silently We want to be able to remove the actual BUILDALLPLAN from memory once the method is installed. |
11:25 | ||
timotimo | huh, why? | ||
also, is the check for BUILDPLAN but complain about BUILDALL a typo? | 11:26 | ||
lizmat | which check? | ||
timotimo | if nqp::existskey($obj.HOW.method_table($obj),'BUILDPLAN') { | ||
nqp::say($obj.HOW.name($obj) ~ ' already has a BUILDALL'); | |||
lizmat | hmmm... | 11:27 | |
no, typo | |||
timotimo | OK, that at least prevents the crash when you have a BUILDALL method in your class | 11:28 | |
but it will now output to stdout at compile time when you do that | |||
m: say "what version?" | |||
camelia | Cannot allocate memory | ||
lizmat | perhaps I should make it a nqp::die() | ||
que? | 11:29 | ||
m: 42 | |||
camelia | WARNINGS for <tmp>: Useless use of constant integer 42 in sink context (line 1) |
||
timotimo | i want the commit after that :P | ||
c: 7fa707db73 say "hi" | |||
lizmat | m: say "que?" | ||
committable6 | timotimo, ¦7fa707d: «Cannot find this revision (did you mean “4f9fa6b”?)» | ||
camelia | que? | ||
lizmat | m: say "what version?" | ||
camelia | what version? | ||
timotimo | anyway, run this locally: | ||
lizmat | ok, transient issue | ||
timotimo | m: class Foo { has $.bar; submethod BUILDALL(|) { } } | 11:30 | |
camelia | ( no output ) | ||
lizmat | ah, I should check the submethod table | ||
timotimo | what if someone puts in a method BUILDALL instead? | 11:31 | |
m: class Foo { has $.bar; method BUILDALL(|) { } } | |||
lizmat | argh, I should probably check both | ||
camelia | ( no output ) | ||
lizmat | yeah | ||
timotimo | i wonder under what other circumstances add_method can fail | ||
lizmat | m: class A { method a() {}; submethod a() {} } | 11:32 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Package 'A' already has a submethod 'a' (did you mean to declare a multi-method?) at <tmp>:1 |
||
lizmat | error message LTA | ||
ilmari | class A { submethod a() {}; method a() {} } # ditto | 11:34 | |
m: class A { submethod a() {}; method a() {} } # ditto | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Package 'A' already has a method 'a' (did you mean to declare a multi-method?) at <tmp>:1 |
||
timotimo | hm. | 11:35 | |
ilmari | it's using the type of the new method, not the existing one | 11:36 | |
timotimo | if you have a submethod a and a method a, instances of that class would get your submethod and any class that derives from yours gets the method | ||
lizmat | yeah, looking at fixing that | 11:37 | |
Geth | rakudo/nom: d76af6aa45 | (Elizabeth Mattijsen)++ | src/core/Exception.pm Make the use-case a native str If we get one passed from NQP land, e.g. with "BEGIN die", we can handle it. This is another ad-hoc fix for an apparent change in behaviour between autogenerated BUILDALL and Mu.BUILDALL. |
12:01 | |
rakudo/nom: e513b857c0 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ClassHOW.nqp Should check both (sub)method tables for BUILDALL - because a class could have a custom method BUILDALL - also fix typo in name, spotted by timotimo++ |
12:16 | ||
lizmat | m: grammar A { token a { }; rule a { } } # ilmari similar but different | 12:48 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Package 'A' already has a regex 'a' (did you mean to declare a multi-method?) at <tmp>:1 |
||
lizmat | jnthn timotimo Zoffix: how about ^^^ giving this as the error: | 13:14 | |
Package 'A' already has a regex-like 'a' (did you mean to declare a multi regex?) | 13:15 | ||
hmmm... | |||
timotimo | m: grammar A { method a { }; rule a {} } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Package 'A' already has a regex 'a' (did you mean to declare a multi-method?) at <tmp>:1 |
||
lizmat | the problem is that token rule regex are all Regex en | 13:16 | |
and I didn't find a way to find out what they are exactly other than looking at the $!source | |||
Zoffix has no opinion | |||
lizmat | afk for a bit& | 13:17 | |
timotimo | m: grammar A { proto token test { }; multi regex test:sym<foo> { }; multi method test:sym<bar> { } } | 13:19 | |
camelia | 5===SORRY!5=== Null regex not allowed at <tmp>:1 ------> 3grammar A { proto token test { 7⏏5}; multi regex test:sym<foo> { }; multi Proto regex body must be {*} (or <*> or <...>, which are deprecated) at <tmp>:1 ------> 3grammar A… |
||
timotimo | m: grammar A { proto token test { }; multi regex test:sym<foo> { foo }; multi method test:sym<bar> { } } | ||
camelia | 5===SORRY!5=== Null regex not allowed at <tmp>:1 ------> 3grammar A { proto token test { 7⏏5}; multi regex test:sym<foo> { foo }; mu Proto regex body must be {*} (or <*> or <...>, which are deprecated) at <tmp>:1 ------> 3grammar A… |
||
timotimo | m: grammar A { proto token test {*}; multi regex test:sym<foo> { foo }; multi method test:sym<bar> { } } | ||
camelia | ( no output ) | ||
timotimo | interesting, i would have expected it to complain about the method not having an nfa or something | 13:20 | |
m: grammar A { proto token test {*}; multi regex test:sym<foo> { foo }; multi method test:sym<bar> { say "hello, i'm the method" } }; A.parse("bar") | |||
camelia | No such method 'TOP' for invocant of type 'A' in block <unit> at <tmp> line 1 |
||
timotimo | m: grammar A { rule TOP { test }; proto token test {*}; multi regex test:sym<foo> { foo }; multi method test:sym<bar> { say "hello, i'm the method" } }; A.parse("bar") | ||
camelia | ( no output ) | ||
timotimo | m: grammar A { rule TOP { <test> }; proto token test {*}; multi regex test:sym<foo> { foo }; multi method test:sym<bar> { say "hello, i'm the method" } }; A.parse("bar") | ||
camelia | hello, i'm the method P6opaque: no such attribute '$!pos' in type Match when trying to get a value in regex test at <tmp> line 1 in regex TOP at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
timotimo | huh, it Just Works, i assume it just treats it as if it didn't have a declarative prefix | ||
that's pretty cool | |||
Zoffix | ZOFFLOP: t/spec/S17-promise/nonblocking-await.t (flopped twice) | 13:26 | |
Second time via t/fudgeandrun, so I caught the full failure outpuit: gist.github.com/zoffixznet/150e79c...ba5c718e3a | 13:27 | ||
Geth | rakudo/nom: 4906a1de8a | (Zoffix Znet)++ | src/core/IO/Path.pm Fix &chdir failing to respect :CWD attribute The method simply uses Str() coercion, but .Str on IO::Paths ignores their :CWD attribute, which causes &chdir into such IO::Paths to chdir into the wrong dir. |
13:28 | |
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Make the use-case a native str | 13:29 | |
travis-ci.org/rakudo/rakudo/builds/282218756 github.com/rakudo/rakudo/compare/7...6af6aa4560 | |||
buggable | [travis build above] ☠ All failures are due to: failed make test (1 failure). Across all jobs, only t/04-nativecall/12-sizeof.t test file failed. | ||
Geth | roast: 07e934d274 | (Zoffix Znet)++ | 2 files Test &chdir/&*chdir to IO::Path respect :CWD Rakudo fix for &chdir: github.com/rakudo/rakudo/commit/4906a1de8a &*chdir was not affected by the bug; test just covers it |
||
jnthn | lizmat: But sticking multi on the regex won't help, so suggesting it won't help | 14:31 | |
lizmat: Probably better not to say anything | |||
(anything about multi, that is) | |||
On Rakudo HEAD I'm still seeing the missing static coderef thingy fwiw | 14:33 | ||
use Cro::HTTP::Client is enough to trigger it | 14:38 | ||
Of course, that has a long dep chain | |||
But seems it's something in that file itself | 14:44 | ||
aha | 14:45 | ||
Turns out that the changes have broken OO::Monitors | |||
Or at least, precompilation of anything that uses that module | |||
:/ | |||
lizmat | jnthn: if we're talking "static coderef", what should I be looking for ? | 14:49 | |
jnthn | A static coderef is something in the codes list of a serialization context | 14:50 | |
In this case apparently one is missing | 14:51 | ||
It's odd though because those things all get fixed up at the end of compilation, ordinarily | 14:52 | ||
We always call self.add_root_code_ref($stub, $code_past), which makes it odd how it'd ever be managing to go wrong | 14:53 | ||
lizmat | well, the error also mentions a closure, no ? | 14:54 | |
jnthn | Right | ||
It traces closures back to what they were originally a clone of | 14:55 | ||
And expects to find that in the root set of code objects | |||
lizmat is testing this fix: gist.github.com/lizmat/9c7c9697be9...50bdf91cda | |||
jnthn: could that be it ? ^^^ | |||
jnthn | Hmmm | ||
It'd be...a bit odd...if it is, but possible I guess | 14:56 | ||
lizmat | closing over $BUILDALLPLAN | ||
jnthn | Yeah, but what closes over it? | ||
lizmat | well, BUILDPLAN returns its @!BUILDALLPLAN | ||
hmmm... | 14:57 | ||
jnthn | ohhh | 14:58 | |
monitor adds its own BUILDALL | |||
lizmat | aahh | ||
jnthn | 'cus it wants to do the lock setup | ||
lizmat | isn't TWEAK better for that ?> | ||
jnthn | But it's added before the call to compose | ||
No, 'cus the user may have one of those too | |||
lizmat | are you on rakudo HEAD ? | 14:59 | |
jnthn | It looks like we shouldn't even try to create a BUILDALL if there already is one, though | ||
Yes | |||
lizmat | because the check for an existing BUILDALL was faulty | ||
and I fixed that earlier this afternoon | |||
jnthn | Yeah, I already have e513b857c0 | 15:00 | |
jnthn make install's again just in case | |||
Yeah, still broke | |||
lizmat | FWIW, any class can have its own BUILDALL | ||
it's documented | |||
jnthn | Sure | ||
It handles that mine | |||
*fine | |||
Just .wraps the existing one | |||
lizmat | sometimes I think we'e exposing too many knobs | ||
jnthn | Hmm | 15:02 | |
I expected perl6-m --target=mbc --output=foo.moarvm -e 'use OO::Monitors; monitor Foo { }' to blow up but it doesn't | 15:03 | ||
lizmat | jnthn: does your BUILDALL take an array as well ? | 15:04 | |
jnthn | wat | ||
It's fine if the monitor is at lexical/at the top level of the file, but not if it's in a nested package? o.O | 15:05 | ||
lizmat | ah, yes, that may be an issue that I worked around with in the setting | ||
jnthn | goodness | ||
$ perl6-m --target=mbc --output=foo.moarvm -e 'use OO::Monitors; class A { my monitor Foo { } }' | |||
lizmat | 31a03a41f0e3a609a9248 | ||
jnthn | That blows | ||
Remove class A and it doesn't | 15:06 | ||
I don't get that commit message | 15:07 | ||
It claims that we try to .new something that refers to the outer class, but Holder doesn't even mention Lock::Async anywhere in its body | 15:08 | ||
dogbert17 | lizmat: the htmlify problem a couple of days ago also involved OO::Monitors | ||
lizmat | jnthn: lemme try to revert that one | 15:09 | |
jnthn | dogbert17: Is it still a problem, or? | 15:10 | |
lizmat | jnthn: seems setting compiles fine now with that one reverted | 15:11 | |
jnthn | Hm, ok | ||
lizmat | so false alarm, sorry for the noise | ||
it was needed at the time to get the setting to build | |||
dogbert17 | nope, it disappeared when lizmat did something with $\ or somesuch | 15:12 | |
lizmat | yeah, the hack to get $/ into the generated BUILDALL method | ||
jnthn | Hm, I wonder if it only has monitors at the top-level scope | ||
Geth | rakudo/nom: f80a84617b | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ClassHOW.nqp Only fetch BUILDALLPLAN if we need it |
15:13 | |
dogbert17 | jnthn: this commit fixed htmlify: github.com/rakudo/rakudo/commit/49...ee3b3dadcc | ||
jnthn | yeah, its ones aren't nested: github.com/perl6/doc/blob/master/htmlify.p6#L42 | 15:14 | |
What's really odd is that afaict, since it's adding a BUILDALL sub, and only then calling .compose in Perl6::Metamodel:ClassHOW, none of the compiler services code should be even running or doing anything | 15:17 | ||
So effectively, nothing should have changed | 15:18 | ||
lizmat | well, it was way over my head when I started, and I still have a "wizard's apprentice" feeling about what I did :-) | 15:19 | |
jnthn | bisectable6: help | 15:20 | |
bisectable6 | jnthn, Like this: bisectable6: old=2015.12 new=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # See wiki for more examples: github.com/perl6/whateverable/wiki/Bisectable | ||
jnthn | m: say CORE::<&run> | ||
camelia | sub run (*@args where { ... }, :$in = "-", :$out = "-", :$err = "-", Bool :$bin, Bool :$chomp = Bool::True, Bool :$merge, Str :$enc, Str:D :$nl = "\n", :$cwd = { ... }, :$env) { #`(Sub|39221472) ... } | ||
jnthn | oh but I guess I can't use OO::Monitors on bisectable :( | 15:21 | |
lizmat | youtu.be/Rrm8usaH0sM?list=PLxTRyfC...&t=109 # :-) | 15:22 | |
Zoffix | you can | ||
jnthn | Oh, cool | ||
Zoffix | buggable: eco OO::Monitors | ||
buggable | Zoffix, OO::Monitors 'Objects with mutual exclusion and condition variables': github.com/jnthn/oo-monitors | ||
Zoffix | c: HEAD use lib <data/all-modules/jnthn/oo-monitors/lib>; use OO::Monitors; | ||
committable6 | Zoffix, ¦HEAD(f80a846): «» | ||
jnthn | bisectable6: CORE::<&run>('./perl6-m', '--target=mbc', '--output=foo.moarvm', '-e', 'use lib <data/all-modules/jnthn/oo-monitors/lib>; use OO::Monitors; class A { monitor Foo { } }') | 15:23 | |
bisectable6 | jnthn, Bisecting by output (old=2015.12 new=f80a846) because on both starting points the exit code is 1 | ||
jnthn, bisect log: gist.github.com/47b841ca5916c91a40...b5099b2723 | |||
jnthn, (2016-09-17) github.com/rakudo/rakudo/commit/c4...608041eb9b | |||
Zoffix | oh, but &run is restricted :} | 15:24 | |
Or is it | |||
jnthn | bisectable6: CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=foo.moarvm', '-e', 'use lib <data/all-modules/jnthn/oo-monitors/lib>; use OO::Monitors; class A { monitor Foo { } }') | ||
bisectable6 | jnthn, Bisecting by output (old=2015.12 new=f80a846) because on both starting points the exit code is 1 | ||
Zoffix | m: say CORE::<&run>('ls') | ||
camelia | Inline-Perl5 Perlito bin dalek-queue evalbot evalbot.log hs_err_pid10366.log hs_err_pid10555.log hs_err_pid1132.log hs_err_pid12340.log hs_err_pid13296.log hs_err_pid1587.log hs_err_pid17303.log hs_err_pid18415.log hs_err_pid1… |
||
bisectable6 | jnthn, bisect log: gist.github.com/3ccd92d6186249d6c1...fed2fd14ee | ||
jnthn, (2016-09-17) github.com/rakudo/rakudo/commit/c4...608041eb9b | |||
jnthn | Zoffix: Not if you know how to cheat :) | ||
Zoffix | :D | ||
jnthn | oh darn | ||
'use lib may not be precompiled' | |||
bisectable6: CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=foo.moarvm', '-e', 'use data::all-modules::jnthn::oo-monitors::lib::OO::Monitors; class A { monitor Foo { } }') | 15:25 | ||
bisectable6 | jnthn, Bisecting by output (old=2015.12 new=f80a846) because on both starting points the exit code is 1 | ||
jnthn, bisect log: gist.github.com/a2edd152115becdca4...86d3c0dce4 | |||
jnthn, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053 | |||
jnthn, The result looks a bit unrealistic, doesn't it? Most probably the output is different on every commit (e.g. 「bisect: say rand」) | |||
jnthn | oh, of course, . isn't in the search paht either | 15:26 | |
bisectable6: CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = 'data/all-modules/jnthn/oo-monitors/lib'; use OO::Monitors; class A { monitor Foo { } }') | 15:27 | ||
bisectable6 | jnthn, Bisecting by output (old=2015.12 new=f80a846) because on both starting points the exit code is 1 | ||
jnthn | :( | ||
bisectable6 | jnthn, bisect log: gist.github.com/3ae15e0a91efa17853...6509764201 | ||
jnthn, (2017-08-31) github.com/rakudo/rakudo/commit/ed...6efd70a4b2 | |||
jnthn | Running out of ways to cheat this :/ | ||
bisectable6: CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | |||
bisectable6 | jnthn, Bisecting by output (old=2015.12 new=f80a846) because on both starting points the exit code is 1 | 15:28 | |
jnthn | messed up quotes... | ||
bisectable6 | jnthn, bisect log: gist.github.com/d50df7d301d28c4820...0e1dab8131 | ||
jnthn, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053 | |||
jnthn, The result looks a bit unrealistic, doesn't it? Most probably the output is different on every commit (e.g. 「bisect: say rand」) | |||
jnthn | ah, closer | ||
bisectable6: 2017.09 HEAD CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | 15:29 | ||
bisectable6 | jnthn, On both starting points (old=2015.12 new=f80a846) the exit code is 1 and the output is identical as well | ||
jnthn, gist.github.com/14d808081b1aac96e5...f7d40650bd | |||
Zoffix | bisectable6: old=2017.09,new=HEAD CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | ||
bisectable6 | Zoffix, Bisecting by output (old=2017.09 new=f80a846) because on both starting points the exit code is 1 | ||
Zoffix, bisect log: gist.github.com/01c6be1fa2c160694a...bec58abfcc | |||
Zoffix, (2017-09-18) github.com/rakudo/rakudo/commit/5a...d4b897ae90 | |||
Zoffix | c: 5a19dffa075e,5a19dffa075e~1 CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | 15:30 | |
timotimo | oh, does bisectable run as a systemd service with read-only filesystem? | ||
committable6 | Zoffix, gist.github.com/0954adac5d3469b9cd...2fe744cd36 | ||
jnthn | Yeah, looks like it :( | ||
Zoffix | Unable to write bytecode to 'foo.moarvm' | ||
jnthn | dammit | ||
MasterDuke | yeah, that's a relatively new change | ||
i think there still are some writable locations | |||
timotimo | disable it if the user's host is @jnthn.net :) | ||
jnthn | :P | ||
timotimo | oh, it's no longer that, though | ||
your linode is showing, jnthn | |||
jnthn | Didn't try to hide it ;) | 15:31 | |
timotimo | jnthn is also not registered with services :) | ||
Zoffix | bisectable6: old=2017.09,new=HEAD CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=/tmp/foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | ||
bisectable6 | Zoffix, Bisecting by exit code (old=2017.09 new=f80a846). Old exit code: 0 | ||
Zoffix, bisect log: gist.github.com/6facd594ef3a570829...478f50dda9 | |||
Zoffix, (2017-09-28) github.com/rakudo/rakudo/commit/eb...2993455dec | |||
jnthn | oh, nice :) | ||
Oh, except it found the other commit (adding $/ to CompilerServices) | 15:32 | ||
MasterDuke | oh right, they should have private /tmp's now | ||
timotimo | aye, we'd have to throw out the $/ so we can find the *real* culprit | ||
jnthn | Well, guess I can run it with c here and manually find it | 15:33 | |
Zoffix | bisect: old=eb9c3d4dd7791ad1,new=HEAD CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=/tmp/foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | ||
bisectable6 | Zoffix, Bisecting by output (old=eb9c3d4 new=f80a846) because on both starting points the exit code is 1 | ||
Zoffix, bisect log: gist.github.com/88e8434feb8aebacfd...195540715b | 15:34 | ||
Zoffix, (2017-09-28) github.com/rakudo/rakudo/commit/14...3b82d10ae9 | |||
Zoffix | c: 145e3156ca4377845db96,145e3156ca4377845db96~1 CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=/tmp/foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | ||
committable6 | Zoffix, gist.github.com/980a3d447b5157ed9b...541f961431 | ||
jnthn | c: 31a03a41f0e3a CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | ||
committable6 | jnthn, gist.github.com/f5396336b7bb72b593...b92af61072 | ||
jnthn | c: 31a03a41f0e3a CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=/tmp/foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | 15:35 | |
committable6 | jnthn, gist.github.com/88a8eed99393bf3d8f...ce5ad679eb | ||
jnthn | c: d3c481854ec346 CORE::<&run>($*EXECUTABLE, '--target=mbc', '--output=/tmp/foo.moarvm', '-e', 'BEGIN %*ENV<PERL6LIB> = "data/all-modules/jnthn/oo-monitors/lib"; use OO::Monitors; class A { monitor Foo { } }') | ||
committable6 | jnthn, gist.github.com/98088e7f9ab5274c70...3c691fb8d9 | ||
jnthn | Darn, so it happened while the $/ thing was in the way of the real error | 15:36 | |
lizmat | but narrows it down quite a bit | 15:37 | |
I'd say 5cd9197fe3707d513671af6f or 6824e19282e19a0953fc or 7363f898f67ee7d8117ff9 | 15:38 | ||
jnthn | None of the changes look obviously to blame, reading the diffs | 15:40 | |
lizmat | well, all of the other commits have nothing to do with BUILDALL | 15:42 | |
between $/ being added and removed | |||
timotimo | it doesn't have to be buildall | ||
lizmat | well, chances are it *is* buildall | 15:43 | |
I mean, how often have we autogenerated methods before ? | |||
that need to be precompilable | |||
timotimo | well, yeah | ||
lizmat | anyways I still cannot revert 5cd9197fe3707d513 | 15:44 | |
===SORRY!=== | |||
Cannot perform this operation on an uninstantiated definite type | |||
on make install | |||
timotimo | ===SORRY!=== Error while compiling /home/timo/.zef/store/DBIish.git/aad9a964651e16cd8c87a75d411580007d5894de/lib/DBDish/Pg/Native.pm6 (DBDish::Pg::Native) | 15:48 | |
Can't use unknown trait 'is native' in a sub+{callable[uint32]} declaration. | |||
how did i break this? wow | 15:49 | ||
lizmat | or did I ? | ||
:-( | 15:50 | ||
timotimo | that would surprise me | ||
if "make test" still passes; that has nativecall stuff, doesn't it? | |||
jnthn | Trying various commits with the $/ removal patch (not quite a cherry-pick of it, since that doesn't quite apply, but close enough) | 15:51 | |
jnthn notices his time for fixing something else has all vanished trying to hunt this down :( | 15:55 | ||
timotimo | :\ | 15:56 | |
it looks like DBIish just didn't put "use NativeCall" into their files? | |||
how'd they get away with that | |||
lizmat | perhaps we should put a dummy "is native" trait in core setting, telling you to load it ? | 15:57 | |
brb | 15:58 | ||
jnthn | So far as I can tell all the way back to a89add0bf8bd9e8b164b48f24908f4603d4c0b87 is busted | ||
That doesn't leave many commits | |||
lizmat | brb | 16:00 | |
timotimo | bisectable6: sub foo is native { } | ||
bisectable6 | timotimo, On both starting points (old=2015.12 new=f80a846) the exit code is 1 and the output is identical as well | ||
timotimo, gist.github.com/920102b9cb4739942c...9eae822101 | |||
jnthn | huh, that gets me right to the commit that added the $/ stuff | 16:01 | |
timotimo | well, what the heck is even going on | 16:05 | |
ugexe | timotimo: maybe related? github.com/rakudo/rakudo/commit/80...d0668893bc | 16:06 | |
timotimo | that would surprise me | 16:08 | |
ugexe | it moves the is native trait into an EXPORT sub, and also doesn't export with the tags :DEFAULT or :traits fwiw | 16:09 | |
timotimo | oh, huh | ||
my PR to dbiish got merged already | 16:10 | ||
ugexe | ah i see, looking at your PR the export was somehow leaking in before. | 16:14 | |
timotimo | one of the Native mods already had "use NativeCall" in it | 16:17 | |
lizmat | afk for ~2 hours, and then P6W work | ||
jnthn | Think I've found the problem | 16:19 | |
Yeah, seems so | 16:20 | ||
stresstest | |||
Geth | rakudo/nom: fcbd8adbe5 | (Jonathan Worthington)++ | src/Perl6/World.nqp Make only one CompilerServices instance per World We have to clean it up at the end of compilation; failing to do so can break precompilation. |
16:25 | |
timotimo | ohdang | 16:26 | |
jnthn | And now I need to go and make dinner | ||
timotimo | gutes gelingen! | ||
jnthn | o/ | ||
timotimo | not sure why the travis for dbiish still fails so violently | 16:37 | |
The command "eval git fetch origin +refs/pull/103/merge: " failed. Retrying, 2 of 3. | 16:38 | ||
this i can understand somewhat | |||
but somehow in lots of test files it gets "too many positionals passed" | |||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Only fetch BUILDALLPLAN if we need it' | 17:14 | |
travis-ci.org/rakudo/rakudo/builds/282291893 github.com/rakudo/rakudo/compare/4...0a84617b4a | |||
AlexDaniel | “oh, does bisectable run as a systemd service with read-only filesystem?” | 17:44 | |
both /tmp and ./sandbox should be writable | 17:45 | ||
e: spurt ‘/tmp/foo’, 42; say slurp ‘/tmp/foo’ | |||
evalable6 | 42 | ||
AlexDaniel | e: spurt ‘sandbox/blah’, 42; say slurp ‘sandbox/blah’ | ||
evalable6 | 42 | ||
AlexDaniel | e: spurt ‘blah’, 42; say slurp ‘blah’ | ||
evalable6 | (exit code 1) Failed to open file /home/bisectable/git/whateverable/blah: Read-only file system in block <unit> at /tmp/Le0siP1vPA line 1 |
||
AlexDaniel | I'm working on making it start in ./sandbox by default, just not there yet | 17:46 | |
“oh, but &run is restricted :}” | |||
not anymore | |||
m: say run(:out, ‘ls’, ‘sandbox’).out.slurp; | 17:47 | ||
camelia | run is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting line 1 in sub run at src/RESTRICTED.setting line 14 in block <unit> at <tmp> line 1 |
||
AlexDaniel | e: say run(:out, ‘ls’, ‘sandbox’).out.slurp; | ||
evalable6 | answer blah |
||
AlexDaniel | note that if you do rm -rf or whatever, you'll probably wipe out all precomp files and some other stuff… don't do that please :) | 17:48 | |
Zoffix | m: await IO::Socket::Async.connect('irc.freenode.net', 6667 ).then({given .result {.print("NICK Camelia_\nUSER NotCamelia localhost irc.freenode.net :notCamelia\nJOIN #perl6-dev\nPRIVMSG #perl6-dev :No body run rm -fr!!!\n"); react {whenever .Supply {}}}}) | 18:18 | |
c: await IO::Socket::Async.connect('irc.freenode.net', 6667 ).then({given .result {.print("NICK Camelia_\nUSER NotCamelia localhost irc.freenode.net :notCamelia\nJOIN #perl6-dev\nPRIVMSG #perl6-dev :No body run rm -fr!!!\n"); react {whenever .Supply {}}}}) | |||
committable6 | Zoffix, ¦await: «Cannot find this revision (did you mean “Sofia”?)» | ||
Camelia_ | No body run rm -fr!!! | ||
Zoffix | c: HEAD await IO::Socket::Async.connect('irc.freenode.net', 6667 ).then({given .result {.print("NICK Camelia_\nUSER NotCamelia localhost irc.freenode.net :notCamelia\nJOIN #perl6-dev\nPRIVMSG #perl6-dev :No body run rm -fr!!!\n"); react {whenever .Supply {}}}}) | ||
camelia | (timeout) | ||
committable6 | Zoffix, ¦HEAD(fcbd8ad): ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» | ||
Zoffix | c: HEAD await IO::Socket::Async.connect('irc.freenode.net', 6667 ).then({given .result {.print("NICK Camelia_\nUSER NotCamelia localhost irc.freenode.net :notCamelia\nJOIN #perl6-dev\nPRIVMSG #perl6-dev :No body run rm -fr!!!\n"); react {whenever .Supply {}}}}) | ||
Camelia_ | No body run rm -fr!!! | ||
committable6 | Zoffix, ¦HEAD(fcbd8ad): ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» | ||
Zoffix | This was a good 30 seconds of fun :) | ||
jnthn | hah :) | 18:38 | |
bartolin | FWIW, commit 7fa707db73 fixed the build on jvm (error was 'Serialization Error: could not locate static code ref for closure' during stage jast (introduced with 9837687d93) | 18:39 | |
lizmat++ :-) | |||
lizmat | jnthn: re fcbd8adbe586e21c8bc wow! | 18:51 | |
jnthn: but I don't get the "we have to clean it up part" of the comment on the commit :-( | |||
jnthn | grep | 18:55 | |
for $!compiler-services | 18:56 | ||
And the reason we have to null that thing out is because the wrapper can end up getting closed over | 18:58 | ||
and if it tries to serialize $*W or so things will go pretty bad | |||
lizmat | $!compiler_services :-) ok | 18:59 | |
jnthn | ah, _ :) | 19:00 | |
But yeah, we only kept track of one of them | 19:01 | ||
I wonder if the $/ thing went rotten 'cus we needed to null that field out also | |||
lizmat | will try that tomorrow | 19:02 | |
meanwhile, I was wondering, now that we know that Mu.BUILDALL will need to stay around in its current form | |||
would it make sense to create a generic 'method BUILDALL(@,%) {Any:D: self }' | 19:03 | ||
that would be used by all classes with an empty BUILDALLPLAN ? | |||
jnthn | Why aren't we generating an empty BUILDALL for an empty BUILDPLAN? | ||
Oh, that's what you're suggesting, except caching it? | 19:04 | ||
lizmat | well, seemed kinda wasteful to be generating methods that are identical otherwise | ||
jnthn | But that'd get a tad odd in that the invocant type in the sig will be inconsistent | ||
lizmat | well, Any:D: works :-) | ||
jnthn | If anyone went introspecting | ||
It does | |||
Maybe we'll get awy[Da with it | 19:05 | ||
wat | |||
*away | |||
lizmat | apart from getting away with it, do you think it makes sense ? | ||
jnthn | But yeah, do it one way or the other...it'll be a heck of a lot cheaper than actually looking up the build plan and seeing it's empty | ||
lizmat | right | ||
timotimo | except not ":D", right? | ||
lizmat | no, :D | 19:06 | |
jnthn | I've largely learned not to cheat on "users will never notice" because they always darn well do :P | ||
lizmat | well, there's the thing: all these methods would share the same body (I think) | ||
timotimo | i don't get it :) | ||
jnthn | That is true | ||
lizmat | or are things getting copied when you do add_method ? | ||
jnthn | No, that doesn't copy | 19:07 | |
timotimo: BUILDALL is for initializing an instance that was already created by .CREATE | |||
So it'd never be called on a type object | |||
timotimo | oooh | 19:08 | |
i see it now, oops. bless is the one that calls nqp::create | |||
jnthn | walk, then code review :) & | 19:11 | |
AlexDaniel | lizmat: fwiw irclog.perlgeek.de/moarvm/2017-09-29#i_15236012 irclog.perlgeek.de/moarvm/2017-09-29#i_15236999 irclog.perlgeek.de/moarvm/2017-09-29#i_15237114 – maybe that's old, but for occasional readers this stuff is awesome | 20:03 | |
lizmat | AlexDaniel: did I miss timotimo's explanation on what that svg depicts ? | 20:08 | |
AlexDaniel | lizmat: I have not seen any explanation :( | ||
timotimo: ping? :) | |||
timotimo | whan svg did i show? | 20:09 | |
AlexDaniel | t.h8.lv/nqp_loop_graph.svg | ||
timotimo | ah, that's a piece of spesh log output turned into a graph using graphviz | ||
it still has some issues | 20:10 | ||
lizmat | buggable: speed 50 | 20:13 | |
buggable | lizmat, ▇▇▆▆▅▅▆▆▅▆▅▅▆▅▅█▅▆▄▅▅▅▅▅▇▇▅▇▅▃█↑↑█▃▂▁▁▂▁▂▁▂▂▄▇▃▄▂▃ dates: 2017-09-16–2017-10-02; range: 3.183s–4.010s; speed: 7% faster | ||
lizmat | buggable: speed 5 | ||
buggable | lizmat, ▇▁▃▁▂ dates: 2017-10-01–2017-10-02; range: 3.258s–3.527s; speed: 7% faster | ||
lizmat | buggable: speed 7 | ||
buggable | lizmat, ▁▄▇▂▃▂▂ dates: 2017-10-01–2017-10-02; range: 3.234s–3.527s; speed: 2% slower | 20:14 | |
lizmat | Zoffix: could you elaborate about the work you've done on supporting multiple roast versions ? | 21:28 | |
gfldex | lizmat: I think Zoffix called it a night already. | 21:34 | |
lizmat | could you elaborate ? | 21:35 | |
Zoffix | Yeah, I can | ||
lizmat | Whee! :-) | 21:36 | |
Zoffix | lizmat: "called it a night" <-- I said I was gone, but I still checked the chat to get my Weekly fix :) "roast versions" <-- Rakudo has a file with a list of roast files it runs. We used to use a single file for all language versions, which sucked because: (a) new files get added to roast master and roast runner complains they're missing when running older language versions; (b) files in master get | 21:38 | |
restructured, but deleted files still have to live as dummy files, so they same files in another language version get run. So now we made a separate list of files rakudo runs for each language version that solves those problems. Roast runner just looks at VERSION file in roast to figure out which version of the file list to load (the file list is now in t/spectest.data and t/spectest.data.6.c; with future | |||
release to add t/spectest.data.6.d file) | |||
lizmat | Zoffix++ | 21:39 | |
Zoffix | \o/ | ||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/10/02/...e-granted/ | 22:30 | |
and with that I wish #perl6-dev a good night! | 22:33 | ||
jnthn | lizmat++ # weekly | 23:25 | |
timotimo | how was your food, jnthn? :) | 23:26 | |
AlexDaniel | releasable6: next | 23:27 | |
releasable6 | AlexDaniel, Next release in 18 days and ≈19 hours. No blockers. Changelog for this release was not started yet | ||
AlexDaniel, Details: gist.github.com/b97ee2a58f311a5d21...72e242833d | |||
jnthn | timotimo: Healthy and fairly spicy :) | 23:32 | |
(Aloo gobi with raita :)) | |||
timotimo | i knew one of these words | 23:35 | |
jnthn | Potato and cauliflower curry, served with yogurt/mint/cucumber | ||
timotimo | i just read up on it :) | 23:36 | |
sounds good, except i'm not trained to enjoy spicy food | |||
AlexDaniel | timotimo: it's the training process that is enjoyable! | 23:42 | |
timotimo | just uploaded json fast to cpan | 23:52 | |
Zoffix hopes buggable will work and announce it | 23:54 | ||
timotimo | me, too | 23:55 | |
the ecosystem and what zef internally uses are the only places perl6 dists will appear? | 23:56 | ||
buggable | New CPAN upload: JSON-Fast-0.9.5.tar.gz by TIMOTIMO www.cpan.org/authors/id/T/TI/TIMOT...9.5.tar.gz | ||
timotimo | neat | 23:57 | |
in other news, json::fast is only 4x as fast as json::tiny | |||
not sure if i made json::fast slower or if json::tiny just naturally caught up, for example from the cursor-match-unification? | |||
jnthn | The race is on :) | 23:58 | |
jnthn wanders off to bed o/ | |||
Zoffix | \o/ | 23:59 |