Perl 6 - the future is here, just unevenly distributed

IRC log for #p6dev, 2016-04-17

| Channels | #p6dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:14 dalek rakudo/nom: 5cee2ee | leont++ | src/core/Proc/Async.pm:
01:14 dalek rakudo/nom: Call :done/:quit on Supplies from Proc::Async
01:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5cee2eed6a
01:14 dalek rakudo/nom: c4f04dc | timo++ | src/core/Proc/Async.pm:
01:14 dalek rakudo/nom: Merge pull request #745 from Leont/async-done
01:14 dalek rakudo/nom:
01:14 dalek rakudo/nom: Call :done/:quit on Supplies from Proc::Async
01:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c4f04dc704
03:34 hankache joined #p6dev
04:07 bros joined #p6dev
05:02 geekosaur joined #p6dev
07:55 MadcapJake_ joined #p6dev
07:57 b2gills joined #p6dev
08:06 masak_ joined #p6dev
08:07 lucs_ joined #p6dev
08:07 perlpilot joined #p6dev
08:08 nine_ joined #p6dev
08:14 Woodi joined #p6dev
08:20 b2gills joined #p6dev
08:33 vendethiel joined #p6dev
10:30 RabidGravy joined #p6dev
11:18 psch i find myself trying to get R-J at least compiling, if not passing roast, for the release
11:18 psch that's not particularly misguided, is it..? :)
11:19 jnthn joined #p6dev
11:19 timotimo depends; the release notes will probably still recommend against using r-j
11:20 psch right, but having it at least work would be nice, i'd think
11:20 psch 'cause right now it seems to NPE somewhere during install-core-dist.pl
11:21 timotimo i think it really depends on what you'd otherwise do with the time until the release :)
11:21 psch well, and when nqp::create()ing CompilerServices, but that's caught and probably fine
11:21 psch general bug triage, probably
11:22 psch which, mostly, means poking at things a little and putting into RT what little i find out...
11:22 timotimo and it depends on what you feel like doing :)
11:24 psch "Stage parse      : 798.985" heh
11:25 timotimo build r-m on a raspberry pi 1? :D
11:26 psch no, hit a break point somewhere underlying Perl6::World
11:26 timotimo ah
11:26 psch the CompilerServices thing mentioned above
11:26 psch not sure how exactly that works out as an NPE, though
11:27 psch apparently st.RERPData.instance is null
11:27 timotimo ".instance" doesn't ring a bell to me; must be something -j specific
11:30 psch well, nqp::create() calls Ops.create, which calls obj.st.REPR.allocate(tc, obj.st)
11:30 psch and allocate calls st.REPRData.instance.instClone()
11:30 psch so i'd guess .instance is where we stash an instance of every object..?
11:31 timotimo REPRData is repr-specific, at least, so it'd depend strongly on what that is implemented like
11:32 timotimo so, looking at the p6opaque repr in java-land is interesting?
11:32 timotimo it's been so long since i last looked at the jvm implementation
11:33 psch the only thing that stands out is that Rakudo::Internals::CompilerServices is our-scoped
11:35 timotimo :\
11:37 psch well, and the REPRData is full of meaningless data
11:38 psch every object field is null, all the slot hints are -1, the multiple inheritance hint is false
11:38 psch ...the last one probably isn't "meaningless", but...
11:38 timotimo meaningless, perhaps even corrupted?
11:38 psch but yeah, it's not a build-stopper in any case
11:39 psch hm, no idea how that could've happened...
11:39 psch i mean, corruption
11:40 timotimo right, it'd be unlikely
11:41 timotimo the slot hints being -1 seems unproblematic
11:41 psch yeah
11:41 timotimo dunno what the other fields are about without looking closely
11:41 psch but we should definitely have a jvmClass in the REPRData
11:41 timotimo perhaps some of them being null is bad?
11:42 timotimo but the compilation of CompilerServices is long done, right?
11:42 timotimo i mean, you can get by without having the compiler services; it's mostly an optimization and if it's unset, it'll just not be used
11:42 psch yeah, i get that
11:43 psch hm, might be that it doesn't get composed in time
11:43 psch that's one of the things that sets .instance
11:43 psch the others are .changeType and .deserialize_repr_data
11:43 psch well, not composed in time seems unlikely, except if r-j parses and compiles in a different order
11:45 timotimo right, that could be strange
11:46 psch in any case, we don't have CompilerServices for r-j, so it just tries to instantiate, fails, and carries on without them
11:46 psch which is probably the right call for now anyway
11:46 timotimo oh, right, you said that that gets caught properly
11:46 psch yeah.  it's definitely weird, but it's not what i was looking for :)
11:51 RabidGravy Something that I can't seem to work out and is quite annoying, if I have something like:
11:52 RabidGravy role Foo[::Bap = Int] { my class Bop { has Bap $.bap; } has Bop $.bop; }; my $c = class :: does Foo[Str] { };
11:53 RabidGravy then the "Bap" on the inner class doesn't get "de-genericized" in the same way that it would if it was in the main role
11:53 psch m: role Foo[::Bap = Int] { my class Bop { has Bap $.bap; } has Bop $.bop; }; my $c = class :: does Foo[Str] { }; $c.bop.WHAT.say
11:53 camelia rakudo-moar c4f04d: OUTPUT«===SORRY!=== Error while compiling /tmp/Q1vhK41h2k␤Strange text after block (missing semicolon or comma?)␤at /tmp/Q1vhK41h2k:1␤------> = Int] { my class Bop { has Bap $.bap; }⏏ has Bop $.bop; }; my $c = class :: does␤    expecting an…»
11:53 psch m: role Foo[::Bap = Int] { my class Bop { has Bap $.bap; }; has Bop $.bop; }; my $c = class :: does Foo[Str] { }; $c.bop.WHAT.say
11:53 camelia rakudo-moar c4f04d: OUTPUT«Cannot look up attributes in a type object␤  in block <unit> at /tmp/pmhf7Hhq8a line 1␤␤»
11:54 psch m: role Foo[::Bap = Int] { my class Bop { has Bap $.bap; }; has Bop $.bop; }; my $c = class :: does Foo[Str] { }; $c.new.bop.WHAT.say
11:54 camelia rakudo-moar c4f04d: OUTPUT«(Bop)␤»
11:54 psch m: role Foo[::Bap = Int] { my class Bop { has Bap $.bap; }; has Bop $.bop; }; my $c = class :: does Foo[Str] { }; $c.new.bop.bap.WHAT.say
11:54 camelia rakudo-moar c4f04d: OUTPUT«Cannot look up attributes in a type object␤  in block <unit> at /tmp/8vJgiQ6mJ7 line 1␤␤»
11:54 psch m: role Foo[::Bap = Int] { my class Bop { has Bap $.bap; }; has Bop $.bop; }; my $c = class :: does Foo[Str] { }; $c.new.bop.new.bap.WHAT.say
11:54 camelia rakudo-moar c4f04d: OUTPUT«Method 'say' not found for invocant of class 'Bap'␤  in block <unit> at /tmp/fDZqfOmKAw line 1␤␤»
11:54 * psch confirms :P
11:55 RabidGravy yeah, this because it is still a GenericHOW
11:58 RabidGravy it's quite upsetting as I can't see a way round it without creating the type completely on the fly
12:05 psch hrm, install-core-dist.pl under jdb is *really* slow...
12:06 psch ...actually, that's not really true i suppose
12:06 psch as in, it clocks in at 0.0% cpu in top..?
12:07 timotimo install-core-dist.pl also takes a while on rakudo itself ... but yours seems like it's deadlocked or something?
12:09 psch i guess
12:09 * psch times it without jdb
12:10 psch it did get somewhere before, that's why i found the NPE there after all... :)
12:11 timotimo http://hack.p6c.org/~timo/  -  the "current path" thing has been soooo flat over the last days :(
12:13 psch hmm, 33 seconds until the NPE when ran without jdb
12:14 psch well, real
12:19 pmurias joined #p6dev
12:21 dalek nqp: d953b19 | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js:
12:21 dalek nqp: [js] Improve NativeRef stub.
12:21 dalek nqp: review: https://github.com/perl6/nqp/commit/d953b19ebf
12:21 dalek nqp: a09685d | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
12:21 dalek nqp: [js] Make some NIY error temporarly less deadly.
12:21 dalek nqp: review: https://github.com/perl6/nqp/commit/a09685d586
12:21 dalek nqp: 26bf331 | (Pawel Murias)++ | src/vm/js/ (2 files):
12:21 dalek nqp: [js] Add a prefix when mangling names to avoid collision with say a builtin Array
12:21 dalek nqp: review: https://github.com/perl6/nqp/commit/26bf331038
12:21 dalek nqp: af84c5e | (Pawel Murias)++ | src/vm/js/RegexCompiler.nqp:
12:21 dalek nqp: [js] Implement the fail regex anchor.
12:21 dalek nqp: review: https://github.com/perl6/nqp/commit/af84c5e3c1
12:21 * psch liberally sprinkles CUR::Installation.install with 'say $line'
12:23 timotimo i've been known to do that kind of thing, too
12:24 psch well, with jdb somehow locking up i have no idea what else to do...
12:25 psch https://gist.github.com/peschwa/8d0409b114209b8283d6dab3074bc5a7 this is the --ll-exception
12:25 psch i can't really make sense of that, fwiw vOv
12:27 timotimo hm, it dies inside precompile?
12:28 psch i'm not sure.  i don't think i ever saw two backtraces from --ll-exception
12:29 timotimo right. dunno what's up with that
13:05 pmurias joined #p6dev
13:06 psch ah, apparently boils down to NativeCall being broken on r-j
13:07 psch which is a bit unfortunate, as i already looked at that for quite a while and didn't get anywhere...
13:11 psch "binding of the $!call attribute for role Native" is apparently what doesn't work, if i dug around correctly about 3 weeks ago
13:15 psch it's a bit weird though how the normal NC failure is about native/ref attr mismatch, while precomp dies with an NPE...
13:25 awwaiid joined #p6dev
13:27 * awwaiid watches over [Coke]'s shoulder IRL
13:43 dalek rakudo/nom: 617bb41 | coke++ | docs/announce/2016.04.md:
13:43 dalek rakudo/nom: Add provisional 2016.04 release announcement
13:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/617bb419c4
13:52 psch well, the NC code is beyond me vOv
13:52 * [Coke] guesses he'll hack on RT stuff instead.
13:56 RabidGravy [Coke]++
13:58 psch ...okay what
13:59 psch get_attribute_boxed for field_16 is what calls badReference
13:59 psch badReference is a convenience function in P6Opaque to throw "Cannot access native attribute as reference attribute"
13:59 psch but, field_16 is a reprs.NativeCallBody
14:00 psch now i'm no jvm expert, just dabbling, really
14:00 psch but i *think* that that's not a native attribute
14:04 psch so either it's wrongfully assumed to be inlineable, or it doesn't properly declare how it wants to be inline and as what kind of native
14:14 psch oh.  but in the end it comes down to nqp::getattr supporting *only* ref attrs, and nqp::getattr_{i,n,s} supporting *only* natives on nqp-j
14:17 [Coke] failing test on roast/master: t/spec/S03-operators/assign.rakudo.moar
14:31 stmuk aren't releases tested against 6.c roast?
14:42 [Coke] they still have to pass all the master tests.
14:42 [Coke] releases are tested against both.
14:44 stmuk ah
14:48 dalek roast: 3ba8006 | coke++ | S03-operators/arith.t:
14:48 dalek roast: fix typo in test desc.
14:48 dalek roast: review: https://github.com/perl6/roast/commit/3ba8006fd2
14:53 stmuk grrr I should try make -j n for spectests
14:53 stmuk oh actually there was an env var
14:54 [Coke] TEST_JOBS=<num cores> make stresstest
14:57 stmuk on linux I see t/spec/S03-operators/assign.rakudo.moar and t/spec/S32-num/power.rakudo.moar fail
15:00 psch hrm, do we have anything in REPR or REPRData that might clue me in what kind of attribute any given attribute is..?
15:26 Skarsnik joined #p6dev
15:35 timotimo joined #p6dev
16:55 jnthn_ joined #p6dev
17:07 pmurias joined #p6dev
17:13 geekosaur joined #p6dev
17:18 nine_ psch: on MoarVM there's obj->st->debug_name
17:21 dalek nqp: cbdf5bb | (Stefan Seifert)++ | src/ (4 files):
17:21 dalek nqp: Support for nested compilation
17:21 dalek nqp:
17:21 dalek nqp: EVALed code is considered an independent compilation unit that gets compiled
17:21 dalek nqp: using a new World which contains an independent serialization context. It also
17:21 dalek nqp: gets its own QAST compiler.
17:21 dalek nqp:
17:21 dalek nqp: When a BEGIN time EVAL is run during precompilation of a module, the
17:21 dalek nqp: independent SC would not be written into any file but would still be referenced
17:21 dalek nqp: from the outer compilation unit. We therefor use the outer world's SC. We also
17:21 dalek nqp: need to share a couple of other attributes that keep track of the compilation's
17:21 dalek nqp: state.
17:21 nine_ [Coke]: oh, I hope the nqp release is already done?
17:23 awwaiid I think [Coke] is now traveling
17:24 awwaiid I got the impression that he paused on all releases
17:26 stmuk I think the test failures are probably blockers
17:47 psch nine_: how does obj.st.debug_name tell me (at runtime) which attributes of obj are native or ref?
17:47 psch nine_: for context, i'm trying to teach nqp-j to emulate the "autoboxing" behavior for retrieving native attrs with nqp::getattr that nqp-m does
17:48 psch add: debug_name is around on nqp-j, but it just tells me which class (plus mixins) the STable belongs to, which doesn't help me decide which of getattr_{i,s,n} to call
17:50 * psch thought [Coke] blocked on the release for the moar release
17:51 psch cf http://irclog.perlgeek.de/moarvm/2016-04-17#i_12350674K
17:51 psch err, http://irclog.perlgeek.de/moarvm/2016-04-17#i_12350674
17:52 psch oh, hmm, the previous angle with "decide which of getattr_{i,n,s} to call" might be moot anyway
17:53 psch i just noticed my last debug thingy ran to conclusion with non of getattr{,_i,_n,_s} working for Native[...]!call
19:11 geekosaur joined #p6dev
19:20 hankache joined #p6dev
19:35 geekosaur joined #p6dev
21:43 timotimo joined #p6dev
22:00 geekosaur joined #p6dev
22:09 RabidGravy joined #p6dev
23:07 [Coke] yes, there was no moar release, so nothing else happened.
23:07 * [Coke] is done commuting.

| Channels | #p6dev index | Today | | Search | Google Search | Plain-Text | summary