🦋 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. |
|||||||||||||||||||||||||||||||||||||||
02:29
nine_ left
02:30
nine joined
04:01
MasterDuke joined
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | ab5tract: moarvm does do some optimizations to/for splice, github.com/MoarVM/MoarVM/blob/main...ray.c#L944 | 04:02 | |||||||||||||||||||||||||||||||||||||
09:28
vrurg left
|
|||||||||||||||||||||||||||||||||||||||
Geth | HexDump-Tiny/main: ae2388b304 | (Márton Polgár)++ (committed using GitHub Web editor) | .github/workflows/test.yml Better functioning workflow |
11:11 | |||||||||||||||||||||||||||||||||||||
rakudo/main: 7f97bdd48c | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | tools/templates/L10N/README.md Fix typo |
13:12 | ||||||||||||||||||||||||||||||||||||||
14:08
vrurg joined
|
|||||||||||||||||||||||||||||||||||||||
vrurg | Anybody with good understanding of nqp::p6capturelex semantics around? | 14:11 | |||||||||||||||||||||||||||||||||||||
lizmat | sadly, no docs at github.com/Raku/nqp/blob/main/docs/ops.markdown :-( | 14:17 | |||||||||||||||||||||||||||||||||||||
vrurg | Nah, I know. And I never really had to deal with closures before. And without it can't finish the last PR. :( | 14:19 | |||||||||||||||||||||||||||||||||||||
ab5tract | It's not completely undocumented... | 15:30 | |||||||||||||||||||||||||||||||||||||
Given the specified code object, sets its outer to the current scope. | |||||||||||||||||||||||||||||||||||||||
Must be called in the immediate outer scope of the block in question. | |||||||||||||||||||||||||||||||||||||||
Looking at the Java implementation, it looks like that's exactly what it does. | 15:31 | ||||||||||||||||||||||||||||||||||||||
vrurg: what issues are you facing? | 15:32 | ||||||||||||||||||||||||||||||||||||||
vrurg | There is a thunk (Attribute $!container_initializer). It used to create a container using a statically resolved type. But in order to work with generics it must use QAST::Var to resolve lexicals. And whatever I do, I can't make it blend into the closure of role body. | 15:34 | |||||||||||||||||||||||||||||||||||||
It starts appearing to me though that the problem is that attribute's container_initializer code object has to be replaced with a closure. And that's going to be some headache... | 15:38 | ||||||||||||||||||||||||||||||||||||||
ab5tract | ouch :/ | 16:25 | |||||||||||||||||||||||||||||||||||||
[Tux] |
|
16:32 | |||||||||||||||||||||||||||||||||||||
vrurg | Things are even more weird than I though. When create_BUILDPLAN method checks the container initializer code – it gets correctly instantiated result meaning that it gets a closure. But the BUILDALL ends up calling the original and get uninstatiated result! | 16:54 | |||||||||||||||||||||||||||||||||||||
I'll be afk for a while, but it's something fishy out there... | 16:55 | ||||||||||||||||||||||||||||||||||||||
lizmat | The whole BUILDPLAN logic needs a makeover for RakuAST | 17:05 | |||||||||||||||||||||||||||||||||||||
ab5tract | do we already have a list of changes or new requirements? | 17:09 | |||||||||||||||||||||||||||||||||||||
lizmat | everything that BUILDPLAN currently supports? | 17:11 | |||||||||||||||||||||||||||||||||||||
ab5tract | those are the old requirements, no? but why is it getting reworked? that's an essential question to answer before any how of a rework can begin | 17:15 | |||||||||||||||||||||||||||||||||||||
lizmat | because BUILDPLAN is a hack: it should create the instantiation code using RakuAST classes from the attribute information at QAST time | 17:16 | |||||||||||||||||||||||||||||||||||||
actually, set up the rakuAST at class CHECK time, and then have that QASTed | 17:17 | ||||||||||||||||||||||||||||||||||||||
ab5tract | now it makes total sense to me. I can even picture it a little bit | 17:19 | |||||||||||||||||||||||||||||||||||||
thanks for breaking it down :) | |||||||||||||||||||||||||||||||||||||||
lizmat | basically create the "bless" method on the class | ||||||||||||||||||||||||||||||||||||||
I'm not sure BUILDALL is needed anymore... but I may be wielding the chainsaw a bit too much there :-) | 17:20 | ||||||||||||||||||||||||||||||||||||||
ab5tract | :) | 17:21 | |||||||||||||||||||||||||||||||||||||
is it maybe worth creating a problem solving ticket for this? | |||||||||||||||||||||||||||||||||||||||
lizmat | feels more like a Rakudo issue to me | ||||||||||||||||||||||||||||||||||||||
ab5tract | ok | 17:22 | |||||||||||||||||||||||||||||||||||||
lizmat | ah, you mean about BUILDALL ? | ||||||||||||||||||||||||||||||||||||||
ab5tract | yeah | ||||||||||||||||||||||||||||||||||||||
lizmat | that would be more of a problem solving one, indeed | ||||||||||||||||||||||||||||||||||||||
[Coke] | gist.github.com/coke/ca581925400ec...6ea153cbf5 - all failing nqp doc tests at the moment. | 17:46 | |||||||||||||||||||||||||||||||||||||
note that p6capturelex does not appear in the list (or in the docs) | 17:47 | ||||||||||||||||||||||||||||||||||||||
which means the test isn't being clever enough to find ops in the source. | 17:48 | ||||||||||||||||||||||||||||||||||||||
(I don't see p6capturelex in nqp/src either?) | |||||||||||||||||||||||||||||||||||||||
lizmat | github.com/rakudo/rakudo/blob/main...capturelex | 17:50 | |||||||||||||||||||||||||||||||||||||
[Coke] | ... why did my ack not find that... | ||||||||||||||||||||||||||||||||||||||
lizmat | because you looked in nqp? | 17:51 | |||||||||||||||||||||||||||||||||||||
i just did: rak p6capturelex in the rakudo dir | 17:52 | ||||||||||||||||||||||||||||||||||||||
[Coke] | I'm on main in [email@hidden.address] git pull --rebase, grep p6capturelex docs/ops.markdown -- no results. wtf. | 17:53 | |||||||||||||||||||||||||||||||||||||
I'm on main in git@github.com:Raku/nqp.git, git pull --rebase, grep p6capturelex docs/ops.markdown -- no results. wtf. | |||||||||||||||||||||||||||||||||||||||
(also we should rename those to .md for consistency) | |||||||||||||||||||||||||||||||||||||||
this is so weird, wtf. | 17:55 | ||||||||||||||||||||||||||||||||||||||
last commit is ad92dc5a5 ? | 17:56 | ||||||||||||||||||||||||||||||||||||||
linkable6 | (2023-11-21) github.com/Raku/nqp/commit/ad92dc5a52 [release] Bump VERSION to 2023.11 | ||||||||||||||||||||||||||||||||||||||
[Coke] | ... DO | 18:00 | |||||||||||||||||||||||||||||||||||||
you said rakudo, not nqp | |||||||||||||||||||||||||||||||||||||||
er, D'OH | |||||||||||||||||||||||||||||||||||||||
I forgot we had a separate one for custom ops (that we are not testing) | 18:01 | ||||||||||||||||||||||||||||||||||||||
vrurg | I wish there be an explanation to the magic of p6capturelex. Looking at QAST, there is a block for a code object; then there is p6capturelex over the block with return value never bound; then the method object gets found on a ClassHOW (means – pulled in from the method table of class HOW), invoked – and it's the closure, which is invoked. But how? Something I'm missing here. | 18:10 | |||||||||||||||||||||||||||||||||||||
18:41
sena_kun joined
19:14
notna joined
19:23
notna left
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo/main: d62f7780f2 | (Elizabeth Mattijsen)++ | 2 files RakuAST: move module update logic to RakuAST::L10N |
19:59 | |||||||||||||||||||||||||||||||||||||
rakudo/main: 2d1ce780b8 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Deparse.rakumod RakuAST: allow slangs to have a full name Allowing to say .DEPARSE("TLH:auth<zef:lizmat>") to use the Klingon localization as made identified by that string |
|||||||||||||||||||||||||||||||||||||||
vrurg | One stupid typo in a test code – and hours of lost time. Oh, my... | 20:45 | |||||||||||||||||||||||||||||||||||||
J.K. Rakuling, "Stupid Typo And The Curse Of Confused Coder" | 20:46 | ||||||||||||||||||||||||||||||||||||||
ab5tract | does that mean that you are unstuck vrurg? | 20:53 | |||||||||||||||||||||||||||||||||||||
vrurg | Yep. It was, presumably, working yesterday at some point. | 20:54 | |||||||||||||||||||||||||||||||||||||
ab5tract | well, at least there is a positive outcome :) | ||||||||||||||||||||||||||||||||||||||
vrurg | But the closures implementation details are still confusing. To get a closure of CI it required: a) have 'outer' annotation on CI block QAST; b) install p6capturelex for the block in role's body; c) use p6capturelexwhere in BOOTSTRAP while instatinating an Attribute. | 20:56 | |||||||||||||||||||||||||||||||||||||
I can only guess that p6capturelexwhere causes the block to search in its caller stack the callsite which is specified with 'outer'. But what is the role of p6capturelex in this? | 20:58 | ||||||||||||||||||||||||||||||||||||||
[Coke] | what was CI again ? | 21:01 | |||||||||||||||||||||||||||||||||||||
ab5tract | isn't p6capturelex responsible fhere or allowing the block to actually share the scope of the role's body? | 21:23 | |||||||||||||||||||||||||||||||||||||
but yeah, it really doesn't sound like it was a straightforward process to get it working | |||||||||||||||||||||||||||||||||||||||
vrurg | [Coke]: container initializer | 21:26 | |||||||||||||||||||||||||||||||||||||
ab5tract: it is clearly responsible. It just looks like it is quite different outcomes one gets when uses op return value and when just applies it to code object clone. | 21:27 | ||||||||||||||||||||||||||||||||||||||
It gets us back to the lack of documentation in this field. | |||||||||||||||||||||||||||||||||||||||
Geth | roast: vrurg++ created pull request #850: Add test for instantiation of a generic class |
21:29 | |||||||||||||||||||||||||||||||||||||
ab5tract | yeah, indeed. | ||||||||||||||||||||||||||||||||||||||
22:31
kjp left
22:34
kjp joined
23:03
sena_kun left
|