🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm Set by lizmat on 8 June 2022. |
|||
01:23
librasteve_ left
09:05
sena_kun joined
09:59
sena_kun left
10:14
andinus left
10:15
andinus joined
|
|||
Geth | rakudo/main: fd6ffe3310 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/RoleToClassApplier.nqp Streamline Metamodel::RoleToClassApplier (Part 1/N) - split method lookup in local / non-local case - simplify lookups to bare nqp::existkey - move all error handling into separate methods to reduce bytecode size for the fast path |
10:31 | |
ab5tract | Looking for a way to determine the "shape" of a Parameter (eg, '$', '@', or '%') ... from the Parameter class code it really looks like the only option is to check the sigil. `$!container_descriptor` appears to be undefined for the general cases I've tried. | 10:56 | |
lizmat | good question, I propose to abstract that functionality into a Parameter.method, so we can easily make it a better check in the future | 11:07 | |
ab5tract | good answer :) | 11:44 | |
m: class C { multi method m(Positional $a where [&&] *.map({ $_ == 1|2 })) { say "scalar" }; multi method m(@a) { say "array" } }; (my $c = C.new).m([1,2]); $c.m([3,4]) | 12:42 | ||
camelia | scalar scalar |
||
ab5tract | m: class C { multi method m(Positional $a where { [&&] $_.map({ $_ == 1|2 })}) { say "scalar" }; multi method m(@a) { say "array" } }; (my $c = C.new).m([1,2]); $c.m([3,4]) | 12:43 | |
camelia | scalar array |
||
ab5tract | ^^ this is weird, right? | 12:59 | |
lizmat | do you need the example to be methods? | 13:26 | |
m: multi m(Positional $a where [&&] *.map({ $_ == 1|2 })) { say "scalar" }; multi method m(@a) { say "array" }; m([1,2]); m([3,4]) | 13:27 | ||
camelia | Potential difficulties: Useless declaration of a has-scoped multi-method in mainline (did you mean 'my method m'?) at <tmp>:1 ------> = 1|2 })) { say "scalar" }; multi method⏏ m(@a) { say "array" }; m([1,2]); m([3,4 scalar… |
||
lizmat | m: multi m(Positional $a where [&&] *.map({ $_ == 1|2 })) { say "scalar" }; multi m(@a) { say "array" }; m([1,2]); m([3,4]) | ||
camelia | scalar scalar |
||
lizmat | I wonder whether it would make sense to make the Parameter object available in where blocks somehow | 13:29 | |
Geth | rakudo: ab5tract++ created pull request #5543: Add multi disambiguation for positional scalars / use disambiguation in Array.splice |
13:33 | |
ab5tract | this is just a weird behavior that I noticed while doing some testing of the multi disambiguation ("Now available in PR!") | 13:37 | |
lizmat left some comments | 13:39 | ||
will look at it in more depth later | |||
Geth | rakudo/main: aa02c8b89b | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/RoleToClassApplier.nqp Streamline Metamodel::RoleToClassApplier (Part 2/N) - remove $!to_compose_meta attribute: it can be derived from $!to_compose when needed - restructure helper subs and add a few new ones - turn error methods into error subs: we're in a class so that's possible - don't use attributes where local shortcuts can be used - fininsh streamlining the .apply method - some more internal comments |
14:13 | |
ab5tract | lizmat: thanks for once again giving me reason to dislike the JVM backend :/ | 14:53 | |
just waiting for this thing to re-compile to test changes is going to be enough to drain a significant portion of my will to live, er, code | 15:08 | ||
is there a way to disable the newdisp dispatcher in MoarVM so that I can at least test via a usable pipeline? | 15:13 | ||
+++ Generatinggen/jvm/ast.nqp # it's been here for nearly 10 minutes already | 15:14 | ||
15:23
sena_kun joined
|
|||
ab5tract | total time was closer to 30 minutes... I think I'd rather abandon the whole concept behind the PR then deal with developing under those conditions | 15:41 | |
*than | |||
at least re-compilation is not quite so lengthy | 15:57 | ||
lizmat | ab5tract: sorry | 16:35 | |
ab5tract | :) | 16:36 | |
16:56
djinni`_ left
17:14
djinni` joined
|
|||
nine | JVM backend is slower but that sounds excessive. But then this step takes a surprisingly long time even on MoarVM | 17:21 | |
m: role Foo[::T] {}; dd my Foo:D[Int] $i = Foo[Int].new | 17:42 | ||
camelia | Foo:D $i = Foo[Int].new | ||
nine | m: role Foo[::T] {}; dd my Foo:D[Int] $i .= new | ||
camelia | No appropriate parametric role variant available for 'Foo': Cannot resolve caller (Foo); none of these signatures matches: (::$?CLASS ::::?CLASS Mu, ::T Mu) in block <unit> at <tmp> line 1 |
||
nine | Another one of these bugs in the old frontend that become clear when you actually try to understand the code :) | ||
lizmat | ab5tract: github.com/Raku/nqp/pull/816 may be of interest | 17:45 | |
18:24
MasterDuke joined
|
|||
MasterDuke | the jvm build is currently broken because of 196fbee64e8002272a4a7ed853315eedd160204f. i have been holding off on merging github.com/Raku/nqp/pull/816 because it break on windows, but may merge anyway since then at least things fail faster... | 18:28 | |
ab5tract | MasterDuke: thanks for mentioning this. it was breaking for me but I don't have the patience to bisect | 18:46 | |
Legacy dispatch can now also distinguish between $[] and [] | 18:51 | ||
Geth | rakudo/main: b411252a53 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/RoleToClassApplier.nqp Streamline Metamodel::RoleToClassApplier (Part 3/N) - statically inline compose_method_table sub: it's only called in one location, so why not have the code live there - streamline private/only method composition - add some more internal comments |
18:54 | |
lizmat | ab5tract++ whee! | ||
19:16
librasteve_ joined
|
|||
ab5tract | lizmat: so how do I kick the tires on a blin run? I don't think I want to set that up on my local machine | 19:21 | |
lizmat | jdv probably knows | 19:22 | |
ab5tract | pinging jdv re: blin runs on PR branches | 19:40 | |
Geth | rakudo/main: d1a5b47970 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/RoleToClassApplier.nqp Streamline Metamodel::RoleToClassApplier (Part 4/N) - make checking for suitable candidates much smarter and much less involved, by having a local lookup hash with all candidates by name - added has_matching_candidate helper sub to check whether a given code object has a matching candidate in a list of code objects |
20:20 | |
lizmat | this appears to bring CPU seconds of make spectest down from 1242 -> 1234, or .4% | 20:21 | |
ab5tract | Nice one! | 20:40 | |
lizmat | ah, 1230 even :-) | ||
Geth | rakudo/main: 3b736e56d6 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/RoleToClassApplier.nqp Streamline Metamodel::RoleToClassApplier (Part 5/5) - streamline attributes, parents and array_type handling |
20:42 | |
japhb | If you mean it went 1242 -> 1230, that's a full 1%. :-D | 20:46 | |
lizmat | well, almost | 20:47 | |
m: say 1230 / 1242 | |||
camelia | 0.990338 | ||
Geth | rakudo/main: c7d24b3dfb | (Elizabeth Mattijsen)++ | 2 files Don't bother passing the target in the stubs It's always the same, and available when composing a class |
21:09 | |
lizmat | and that concludes my hacking for today& | ||
ab5tract | enjoy your rest! | 21:24 | |
23:31
sena_kun left
|
|||
japhb | m: say 1229 / 1242 | 23:34 | |
camelia | 0.989533 | ||
japhb | lizmat: ^^ OK fine, within rounding error, 1230 is closer to 1% than 1129 is. ;-) | 23:35 | |
jdv | ab5tract: it *should* work in docker | 23:50 | |
at least that's how i run it | |||
ab5tract | Nice! Which Dockerfile do you use? | 23:51 | |
23:51
sena_kun joined
|
|||
jdv | its in blin | 23:51 | |
docker/Dockerfile iirc | 23:52 | ||
it might have a missing builds issue though. if it does i have a way around it but either AlexDaniel needs to fix it or we need to move it to community run (the mothership | 23:53 | ||
) | |||
ab5tract | Ah, I should have looked more carefully. I’ll try to add something to the blin documentation about it once I get it working | ||
jdv | ok. i think there's a doc in that dir | ||
good luck | 23:54 | ||
ab5tract | The readme could use a mention of it somewhere near the skull emoji, I reckon :) | ||
jdv | its pretty resource intensive and takes a while to run (at least on my piddly box) | 23:55 | |
ab5tract | Thanks for the heads up. I’ll put some extra focus on patience | 23:56 | |
23:58
librasteve_ left
|