[00:07] *** reportable6 left [00:08] *** reportable6 joined [02:24] *** frost joined [04:22] *** frost left [05:22] *** evalable6 left [05:22] *** greppable6 left [05:22] *** bisectable6 left [05:22] *** notable6 left [05:22] *** shareable6 left [05:22] *** statisfiable6 left [05:22] *** tellable6 left [05:22] *** benchable6 left [05:22] *** reportable6 left [05:22] *** releasable6 left [05:22] *** linkable6 left [05:22] *** committable6 left [05:22] *** bloatable6 left [05:22] *** unicodable6 left [05:22] *** quotable6 left [05:22] *** coverable6 left [05:22] *** sourceable6 left [05:22] *** nativecallable6 left [05:22] *** greppable6 joined [05:22] *** nativecallable6 joined [05:23] *** notable6 joined [05:23] *** shareable6 joined [05:23] *** statisfiable6 joined [05:23] *** sourceable6 joined [05:23] *** bisectable6 joined [05:24] *** coverable6 joined [05:24] *** quotable6 joined [05:24] *** committable6 joined [05:24] *** evalable6 joined [05:24] *** tellable6 joined [05:24] *** bloatable6 joined [05:24] *** benchable6 joined [05:24] *** linkable6 joined [05:24] *** releasable6 joined [05:25] *** reportable6 joined [05:25] *** unicodable6 joined [06:04] good *able6, #moarvm [06:07] *** reportable6 left [06:08] *** reportable6 joined [06:56] *** TempIRCLogger left [06:56] *** jjatria left [07:01] *** TempIRCLogger joined [07:03] *** jjatria joined [07:16] *** japhb left [07:18] *** japhb joined [07:21] *** frost joined [07:26] *** frost left [07:31] *** frost joined [07:48] *** frost95 joined [07:49] *** frost95 left [07:52] *** frost left [07:54] *** frost joined [08:54] *** evalable6 left [08:54] *** linkable6 left [08:55] *** linkable6 joined [08:56] *** evalable6 joined [09:50] *** frost left [09:58] *** Kaiepi left [10:07] *** Altai-man joined [10:18] *** frost joined [10:43] *** Kaiepi joined [12:07] *** reportable6 left [12:09] *** reportable6 joined [12:48] Type captures are weird. They are parameters but actually parse as type constraints [13:12] *** evalable6 left [13:12] *** linkable6 left [13:13] *** linkable6 joined [13:14] *** evalable6 joined [14:18] Parametric roles are a deep rabbit hole. Type captures were just the start. BEGIN time calls to the role's body block are a bit of a different beast. [14:19] *** frost left [14:24] nine: you always seem to fall into rabbit holes :) [14:36] "I wonder why it's so dark under that tree ..." [14:58] huh, https://commaide.com/subscriber/home only shows 2022.02 for download, but i already have 2022.04... [14:59] Hmm [15:09] looks like it's fixed now (i.e., showing 2022.04) [15:09] Yeah, for me too. [15:11] jnthn: you're now registered as jnthn? [15:13] No, just IRC client seems to like this do this on reconnect [15:13] aha OK [15:24] How on earth can a WVal that's a Block at compile time turn into an (EXPORT) at deserialize time? [15:27] Wrong SC somewhere? [15:33] No idea how that would happen. I'm only trying RAKUDO_RAKUAST=1 ./rakudo-m --ll-exception -e 'my role IntTypedCArray[::TValue] { method foo() { TValue } }; my class Foo does IntTypedCArray[Int] { }; Foo.new.foo' [15:34] The WVal in question is $code-obj (the role's body) in IMPL-LINK-META-OBJECT https://github.com/rakudo/rakudo/blob/rakuast/src/Raku/ast/code.rakumod#L76 [15:48] I get the same SC handle at all times [15:53] Huh.... it's somehow the experimental self.IMPL-INTERPRET(RakuAST::IMPL::InterpContext.new) call in the body's stub [16:42] jnthn: I understand the plan for BEGIN time execution is to just interpret the AST. How would that work with role bodies which end with nqp::list($?PACKAGE, nqp::curlexpad)? Wouldn't the interpreter have to come up with a lexpad then? [16:44] nine: The plan is to interpret simple, compile others, and the plan for compile was to get the VM involved with some kind of way of telling it that a lexical lookup was actaully to be delegated to something that would do a late-bound symbol lookup under the control of the compiler (rather than the fake environment trick we have today [16:46] Ok, that makes more sense of course. It also raises the "oh boy, am I really going to try to implement that?" question [16:51] :) [16:53] Actually I think with just little adjustments to the metamodel code, I could avoid full BEGIN time compilation a while longer. After all that lexpad is only used to resolve generics. Wouldn't be hard to make that work a little differently at compile time [16:55] And that may actually make sense regardless of my trepidation. Role bodies are mostly boring blocks that would be fast to interpret. And they are common. [16:57] Well, the main problem is the clone of the methods, which have to close over ::?CLASS in order to do attribute access [17:24] Ah, yes, of course. That's actually something I have come across just earlier today. I don't think those closures are implemented yet [17:31] *** Altai-man left [18:06] *** reportable6 left [18:06] *** reportable6 joined [18:18] *** sena_kun left [18:19] *** sena_kun joined [18:45] *** CaCode joined [18:51] *** [Coke] left [19:25] *** [Coke] joined [21:12] *** discord-raku-bot left [21:12] *** discord-raku-bot joined [22:51] *** CaCode left