Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes. Set by lizmat on 24 May 2021. |
|||
00:06
discord-raku-bot left,
discord-raku-bot joined,
reportable6 left
00:08
reportable6 joined
00:10
discord-raku-bot left
00:11
discord-raku-bot joined
01:41
frost joined
03:31
[Coke] left
03:34
[Coke] joined
04:34
evalable6 left,
benchable6 left,
linkable6 left,
bloatable6 left,
unicodable6 left,
quotable6 left,
notable6 left,
greppable6 left,
statisfiable6 left,
sourceable6 left,
coverable6 left,
tellable6 left,
bisectable6 left,
nativecallable6 left,
releasable6 left,
shareable6 left,
committable6 left,
reportable6 left,
notable6 joined,
releasable6 joined,
linkable6 joined
04:35
sourceable6 joined,
coverable6 joined,
statisfiable6 joined,
bisectable6 joined,
committable6 joined,
benchable6 joined,
quotable6 joined
04:36
unicodable6 joined,
greppable6 joined
04:37
tellable6 joined,
evalable6 joined,
reportable6 joined,
shareable6 joined,
bloatable6 joined,
nativecallable6 joined
05:39
Util left
05:46
Util joined
|
|||
Nicholas | Servus, #moarvm | 05:49 | |
06:07
reportable6 left,
reportable6 joined
|
|||
nine | Morgen! | 06:13 | |
06:15
vrurg joined
06:17
vrurg_ left
07:53
MasterDuke joined
08:33
Util left
08:39
Util joined
|
|||
jnthnwrthngtn | Ahoj! | 08:58 | |
Nicholas | jnthnwrthngtn: a friend I was with at the weekend is learning Czech using duolingo. duolingo offered the following phrase (in English and Czech): I drink beer because I am thirsty | 09:00 | |
jnthnwrthngtn | Me too duo, me too... :) | 09:04 | |
Nicholas | that was what we both thought. | 09:05 | |
jnthnwrthngtn | The microbrewery I go to now and then, which usually makes reliably nice beers, recently made a mint APA. I think it's the first beer I've had in a while that I questioned not finishing. | 09:22 | |
uh, s/questioned/considered/ | 09:23 | ||
MasterDuke | huh. that sounds like an IPA i might actually like. you don't like mint? | 09:24 | |
jnthnwrthngtn | I do like mint. I do like IPA/APA. | 09:27 | |
Somehow their combination didn't work for me. Or at least, this combination didn't. | 09:28 | ||
10:27
Altai-man joined
10:30
sena_kun left
10:40
sena_kun joined
10:43
Altai-man left
12:08
reportable6 left
12:11
reportable6 joined
|
|||
nine | Lot of people like fish. Even more people like chocolate. For some reason, Zotter's fish chocolate (yes, for real) didn't take off though. | 12:18 | |
Nicholas | Herr Zotter has some crazy ideas. There's a graveyard for them roughly here: www.google.com/maps/@46.9916884,15...a=!3m1!1e3 | 12:28 | |
(the factory tour is fun) | |||
MasterDuke | huh, never heard of them | ||
13:37
discord-raku-bot left,
discord-raku-bot joined
14:02
frost left
15:02
RakuIRCLogger left,
TempIRCLogger left
16:07
linkable6 left,
evalable6 left
16:10
linkable6 joined,
evalable6 joined
18:05
sena_kun left
18:07
reportable6 left
18:10
reportable6 joined
18:11
sena_kun joined
|
|||
drakonis | is there any documentation for experimental rakuast and slang usage? | 19:55 | |
highly possible this is the wrong channel | 19:57 | ||
20:00
sena_kun left
|
|||
drakonis | also how to write a new trait to modify moarvm behavior when dealing with recursive functions | 20:01 | |
as it is the kind of change that needs to go on the vm | 20:02 | ||
20:02
sena_kun joined
|
|||
[Coke] | in the rakuast branch, there's src/Raku/ast/README.md | 20:03 | |
20:06
sena_kun left
20:07
sena_kun joined
|
|||
jnthnwrthngtn | drakonis: If it's about supporting tailcalls, I guess places to start reading in MoarVM are github.com/MoarVM/MoarVM/blob/mast...allstack.h for stack layout and around github.com/MoarVM/MoarVM/blob/4e2e...ame.c#L455 for where stack frame creation is driven. | 20:26 | |
drakonis | i see | ||
jnthnwrthngtn | I suspect it'd then want to be plumbed in NQP somewhere. How exactly depends on the semantics you're shooting for. | 20:28 | |
drakonis | hmm, looks like there's multiple ways to achieve it | 20:29 | |
jnthnwrthngtn | Although most probably you'd need a new boot-tailcall dispatch terminal | ||
drakonis | one where you can explicitly transform a procedure call into a tail call | ||
ocaml.org/releases/4.14/htmlman/ta..._cons.html as seen here | |||
as opposed to just the returning procedure call | 20:30 | ||
the semantics seem similar to what i'd want to do | |||
although it is still experimental | 20:31 | ||
jnthnwrthngtn | I kinda wonder if it'd be possible, when AST is availble in traits, to avoid doing any VM stuff and just rewrite it as a loop in RakuAST | ||
drakonis | i'm not sure whether doing that would always map correctly to recursive functions that aren't really loops | 20:32 | |
ie: traveling a tree structure | |||
traversing or generating trees | 20:33 | ||
or dealing with anything deep | 20:35 | ||
jnthnwrthngtn | Yeah, I'm not sure off hand | 20:38 | |
Also jnthn.net/papers/2021-trc-dispatch.pdf is maybe of interest in parts (it explains how calls work) | 20:39 | ||
Among the many semantics to figure out are if a recursive call in a multi candidate should call the proto | 20:40 | ||
Which brings up the issue I've mentioned before, that what MoarVM thinks of as a stack frame may not be the thing you think of as a function | 20:41 | ||
So doing this well might actually mean pealing off multiple VM level frames. I dunno where the arguments of the recursive call should be stored, although one would need to ensure the GC can find them | 20:43 | ||
drakonis | also, loops can be implemented with recursion | 20:47 | |
but modelling a traversal algorithm for non contiguous data structures sucks | 20:49 | ||
20:51
lizmat_ joined,
Geth__ left,
Geth__ joined,
Geth left
20:52
TempIRCLogger joined,
Geth__ left,
Geth joined,
lizmat left
|
|||
drakonis | while you're still here, i wanted to ask about multiple dispatch and constraints being used together in a similar manner to pattern matching | 20:52 | |
guards | 20:53 | ||
20:53
lizmat_ left
20:54
lizmat joined
20:56
Geth left,
Geth joined
|
|||
jnthnwrthngtn | OK, what's the question? | 20:56 | |
I mean, multiple dispatch constraints and signature unpacking can do stuff like pattern matching/destructuring. | 20:57 | ||
drakonis | with enough patience, it should be possible to combine those together into a keyword for pattern matching, yeah? | 20:59 | |
seems like it'd require wading in rakudo's guts for this | 21:00 | ||
21:01
Geth left
|
|||
drakonis | alternatively, the real question is whether code can be reduced to syntatic sugar | 21:01 | |
21:01
Geth joined
|
|||
drakonis | ie: pattern matching being syntax sugar for the combination of multiple dispatch constraints and signature packing | 21:01 | |
or is that still going to require rakuast to even do that? | 21:02 | ||
syntax sugar is another kind of codegen isnt it | 21:05 | ||
jnthnwrthngtn | I think at some point it was speculated what `when` with a signatured (pointy) block would accept if the signature matched, although that never got implemented thus far. But if you want to do syntax sugar stuff, yes, that's probably a slang + rakuast job, and it's not really at a point where one can easily do that yet | ||
drakonis | that does dampen my excitement at the moment | 21:08 | |
but it should be worth the wait | 21:11 | ||
MasterDuke | if people are around and up for some thinking, any thoughts on github.com/MoarVM/MoarVM/pull/1685 or github.com/MoarVM/MoarVM/pull/1645 ? | 21:19 | |
or github.com/MoarVM/MoarVM/pull/1470 | 21:20 | ||
21:22
linkable6 left
21:24
linkable6 joined
22:06
linkable6 left
22:07
linkable6 joined
|