🦋 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.
00:12 finanalyst left 08:56 sena_kun joined
Geth rakudo/main: 760e7a7271 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/MethodDelegation.nqp
Streamline Metamodel::MethodDelegation
rakudo/main: eef5337156 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/Mixins.nqp
Streamline Metamodel::Mixins
rakudo/main: 02aaf9e902 | (Elizabeth Mattijsen)++ | 2 files
Add Metamodel::Composing role

This role provides a framework for all meta classes that need composing.
rakudo/main: 0b759a7ac3 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ModuleHOW.nqp
Streamline Metamodel::ModuleHOW

Also use the new Metamodel::Composing role
rakudo/main: 614571d28f | (Elizabeth Mattijsen)++ | 2 files
Make Metamodel::ClassHOW a consumer of ::Composing

Also add ::Composing.run_if_not_composed method for convenience
lizmat can we agree that during core / setting compilation, we will never have any race conditions, as it's all done in a single thread ? 12:20
Geth rakudo/main: 67153138df | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/NativeHOW.nqp
Make Metamodel::NativeHOW a consumer of ::Consuming
gfldex Do we got a bot that allows full-text search on the Ecosystem? 12:45
lizmat not that I know of 12:46
OOC, you're interested in documentation, source or both ?
Geth rakudo/main: 4c86ef7722 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ParametricRoleHOW.nqp
Make Metamodel::ParametricRoleHOW a consumer of ::Consuming
lizmat greppable6: Foo 12:55
greppable6: help
greppable6 lizmat, Like this: greppable6: password # See wiki for more examples: github.com/Raku/whateverable/wiki/Greppable
lizmat, 3109 lines, 177 modules: gist.github.com/34074df8073fbab9a4...b4cac6a905
lizmat gfldex ^^
12:59 vrurg_ joined, vrurg left
Geth rakudo/main: dab2c235db | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/PackageHOW.nqp
Make Metamodel::PackageHOW consumer of ::Composing
gfldex greppable6: **@ 13:07
greppable6 gfldex, Sorry, can't do that
lizmat greppable6: \*\*@
greppable6 lizmat, 124 lines, 35 modules: gist.github.com/97d91afb22b0212059...72637abf22
gfldex thanks!
lizmat it'd doing a get-grep underneath, and I guess it doesn't escape *
*it's 13:08
Geth rakudo/main: c944dae4d6 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ConcreteRoleHOW.nqp
Make Metamodel::ConcreteRoleHOW consumer of ::Composing
lizmat greppably: Klingon 13:17
greppable6 lizmat, 3 lines, 3 modules: gist.github.com/7199c7ac7ef6af7f7b...cb97e781dc
lizmat meh: looks like the source of greppable6 is not up to date 13:18
raku.land/zef:lizmat/L10N::TLH is not listed
Geth rakudo/main: 2e4113c577 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/NativeRefHOW.nqp
Make Metamodel::NativeRefHOW consumer of ::Composing
rakudo/main: 6987704759 | (Elizabeth Mattijsen)++ | 2 files
Make Metamodel::EnumHOW consumer of ::Composing

Also relax sigature on default .compose, as it's not being checked anyway, so just blindly eat any nameds by default
13:46 MasterDuke joined
Geth rakudo: gfldex++ created pull request #5532:
Implement sub form of &trans, mainly to support feed operators.
gfldex m: my $*RAKU++ for -> **@ {}; 13:47
camelia ( no output )
gfldex I wonder if Larry added **@ to Signatures to support feed operators.
lizmat quite possibly 13:48
MasterDuke gfldex, lizmat: fyi, greppable6 uses moritz's old perl6-all-modules (i don't remember the name exactly), which hasn't been updated in years
lizmat I wonder if it could be upgraded based on the REA
MasterDuke lizmat: and re single-threaded core setting compilation. that's certainly the case now, but i hope we'd get to place where (all) compilation happens multi-threaded 13:50
gfldex I wanted to query the Ecosystem because the feed operator is underused and I had the suspicion that **@ is also underused.
lizmat I'm specifically asking about the core settig
MasterDuke: I think that e.g. it should be possible to generate QAST and perhaps MAST asynchronously in RakuAST 13:51
on a per routine basis
MasterDuke yeah, but if we *can/could* do multi-threaded compilation, is there any reason the core setting *couldn't* be done multi-threaded?
lizmat ok, lemme rephrase that as: can we expect the core setting *parse* stage to be single threaded always 13:52
MasterDuke dunno. but i sort of hope not. unless it gets dramatically faster some other way, multi-threading seems like the best way to significantly speed it up 13:54
now if that's 10+ years away in the best possible case, maybe we can make some tradeoffs now. but i wouldn't want to have something like python's GIL problem 13:55
at least, if there are single-threaded assumptions that get baked in, i hope they're are very well documented in the code so we know exactly what/where needs to be addressed when we try to make it multi-threaded 13:56
lizmat the reason I'm asking, is that there are *many* race potential race conditions in the MOP 13:59
so I was thinking of giving each HOW class its own lock, and do all the potentially racy things in a protect block
except when $*CORE-COMPILING is set, then the protect block would just run the code without locks 14:00
MasterDuke (unrelated, but does github.com/rakudo/rakudo/blob/main...ype.nqp#L7 need to exist? isn't it 0 already by virtue of being a native?) 14:02
maybe that would be a nice way to have the option of easily turning multi-threaded safety on 14:03
lizmat good point, I'll get rid of it 14:04
14:21 vrurg_ is now known as vrurg
Geth rakudo/main: d49cd4e09f | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ArrayType.nqp
Remove unnecessary TWEAK from Metamodel::ArrayType

Native ints instantiate to 0, Masterduke++
releasable6 Next release in ≈4 days and ≈3 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
Geth rakudo/main: 9a82845494 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/NativeHOW.nqp
Streamline Metamodel::NativeHOW

  - make ctype -> nativesize mapping use a constant lookup
rakudo/main: de923f1b0f | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/NativeRefHOW.nqp
Streamline Metamodel::NativeRefHOW
rakudo/main: 1ce9b4c681 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/Nominalizable.nqp
Streamline Metamodel::Nominalizable
rakudo/main: 3c9f07a881 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/PackageHOW.nqp
Streamline Metamodel::PackageHOW
japhb lizmat: Are you sure that checking the value of a dynamic variable in order to elide a lock is actually a net win for us? ISTR dynamic var lookups not being particularly speedy .... 18:44
lizmat japhb: which dynvar are you referring to? 18:45
also: in NQP, dynvars are relatively cheaper as they don't need to call &DYNAMOC 18:47
lizmat ah that one... that would only be checked once in the mainline, if I can help it :-) 18:48
japhb Ah, gotcha.
20:36 sena_kun left 20:37 sena_kun joined 23:24 sena_kun left 23:44 MasterDuke left