Perl 6 - the future is here, just unevenly distributed

IRC log for #6macros, 2018-01-18

| Channels | #6macros index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
02:57 ilbot3 joined #6macros
15:53 ilbot3 joined #6macros
19:17 Ven`` joined #6macros
19:20 masak Ven``: I feel I need to add that I don't *know* for certain which model to go with (but I remember #212 tipping me firmly towards wrapping everything in blocks again), and that I'm very grateful to have someone to hash it out with
19:21 masak well. a short-term concern is "how can we make it work at all in 007?". a later concern is "what will be possible for Rakudo to adopt?"
19:22 Ven`` masak: I'm available right now if you want to discuss it
19:27 * Ven`` is half-tempted to write a very simple Perl 6 grammar for a faux language that'd do that scope thing
19:27 Ven`` oh, but you already did that, right?
19:29 Ven`` https://github.com/masak/007/blob/master/scope-exploration/m.p6
19:35 masak only got so far
19:36 masak but yes, those are exactly the questions I'm exploring now
19:41 * Ven`` is kinda tempted to take his own lisp-with-macro and try to add hygiene to add, if only to get a clue...
19:42 Ven`` if we were to add scope to the variables themselves... how would we actually do that?
19:50 Ven`` I'm starting to think about it, and I'm not actually sure..
19:56 Ven` joined #6macros
20:07 masak if I correctly understand what you mean, it's what 007 has been doing for more than a year: Q::Identifier has an optional .frame for displacing the variable's scope
20:09 Ven` in which cases is it set?
20:11 masak it's set for variables that came from inside the quasi { ... } block
20:11 masak because those get displaced
20:12 Ven` joined #6macros
20:13 Ven` OK, but is that strictly for variables *directly* in the quasi block, or does it do that deeply?
20:13 masak depends what you mean
20:13 masak it holds for nested blocks in the quasi block
20:13 masak but not for unquotes
20:18 Ven` mh, I'm trying to get the result I want, but 007 is a tad slow :-P.
20:19 masak yeah, performance has never topped our priorirties...
20:22 Ven` well, it probably shouldn't.
20:23 Ven` Ok, so, for the example `macro f { quasi { sub g { my y = 4; } } }; f;` breaking, is the .frame flag use?
20:23 Ven` used*
20:49 masak good question
20:54 masak I think a balanced answer is that that is where the problems started, and I filed #212 to investigate
20:55 masak (sorry, keyboard trouble. my keyboard keeps emitting Rs even when I don't type them. had to type this in vim and then remove all the superfluous Rs.)
20:56 masak anyway, none of this is to say that a "Q::Identifier has a .frame" approach *can
20:56 masak 't* work, just that #212 dug up big issues with it
20:58 Ven` right, yes
21:00 masak I think this is also what led me to want to understand scoping/quasis better
21:01 masak I can point to two major things I've learned since then:
21:01 masak 1. injectiles (the fact that they even exist, and are necessary)
21:01 masak 2. *some* kind of "refresh" seems necessary, not yet sure how
21:15 Ven` joined #6macros
21:28 Ven`` That's still a touchy subject.
21:28 Ven`` I think the "refresh" is just going from an AST variable to a runtime one.

| Channels | #6macros index | Today | | Search | Google Search | Plain-Text | summary