01:01
Ven` joined
01:06
Ven` left
04:19
Ven` joined
04:24
Ven` left
08:04
Ven` joined
11:34
Ven` left
11:51
Ven` joined
12:12
Ven` left
12:16
Ven` joined
|
|||
masak | I'm (slowly) writing a syntax highlighter for the 007 code in the documentation | 12:17 | |
I'm writing it in 007, which is a fun exercise | |||
it scans the input twice (in the first step it finds the 007 code blocks, and in the second it does some kind of half-hearted tokenization) | 12:18 | ||
I find myself wanting to write a version that scans the input once -- maybe I'll write out an implementation of that using a Perl 6 grammar, and then try to "port" it to a handwritten state machine in 007 | 12:19 | ||
or maybe a not-handwritten state machine in 007 | |||
Ven` | where's your markdown parser at? :P | 12:52 | |
masak | hehe, no no | 13:01 | |
just interested in parsing the 007 parts for syntax highlighting here | 13:02 | ||
Ven` | a declarative state machine does sound like an interesting idea for a macro | ||
masak | yes, eventually | ||
related to that, I was mulling about whether there'd need to be like a "factory object" for building switch statements programmatically, or whether that could be easily-enough expressed through the Qtree API | 13:03 | ||
Ven` | .oO( just let me put that idea in my proxy drawer ) |
||
masak | er, I meant that #perl6 question to be here :) | 13:05 | |
Ven`: did you manage to catch github.com/masak/007/issues/410 ? :) | |||
Ven` | .oO( just let me put that idea in my proxy drawer ) |
||
oops, backwards key doesn't work like I thought it did | |||
masak | oh, you read it | ||
I might publish it as a blog post, but time for blogging has been scarce of late | 13:06 | ||
is it, um, readable? | |||
I never quite know these days | |||
Ven` | my end-of-studies test/presentation is this friday, so that's pretty much all I'm doing this week/did the past week | ||
masak | oh, I see | ||
Ven` | to give my opinion on it: that's something sweetjs had a bit of an issue with, only for readability sake though. It generated i.e. `var myvar123;` instead of `var myvar` for this exact reason, and sometimes that was a bit hard to read | 13:10 | |
but really, if I write `my foo;` in 007, there's no technical reason the runtime has to remember the name of the variable. It could be renamed "1" | |||
masak | yes, agreed | ||
in fact, I'm not proposing we do any alpha-rewriting | |||
Ven` | (except debuggability, etc) | ||
masak | my current best-effort view of what a variable use *is*, data-structure-wise, is a tuple (a, b) where a is the number of scopes up and b is a slot index in the resulting outer scope | 13:11 | |
Ven` | www.sweetjs.org/browser/editor.html# (just type in `var a = 1;` and compile for an example) | ||
masak | (the linked gist goes into detail about that tuple convention) | 13:12 | |
Ven` | linked..? | ||
masak | yeah, I get a_4 | ||
linked from the issue | |||
gist.github.com/masak/4c1807775f60...950f33dfd6 | |||
Ven` | I somehow missed it. Found it now. | ||
masak | anyway, having to put numbers on the names of the variables is a problem that those who still cling to the textual/name nature of variables will run into, yes :) | 13:13 | |
the tuple nature kind of avoids that, and (as a nice side effect) it leads to making a language where variable names are not allowed to have any runtime footprint | 13:14 | ||
Ven` disagrees with the term:reduce macro | 13:15 | ||
at least the "parsed" block wouldn't look like that | |||
masak listens | |||
Ven` | I mean, no, but: the way <infix> is captured is wrong | 13:17 | |
or: {{{op.identifier}}} is wrong | |||
because that seems to sacrifice hygiene | |||
masak | mm | ||
Ven` | er, I suppose not "sacrifice" but it's a violation. we're looking it up by name | ||
masak | not really, but I see what you mean. it works under the *current* model of identifiers because identifiers are way overpowered | 13:18 | |
but, op.identifier should probably be refactored to be op.routine (either a func or a macro) -- since referring directly to the routine and not via an identifier is totally kosher, and one layer of indirection less | 13:19 | ||
Ven` | definitely | ||
masak | then we wouldn't even need the {{{ }}} | ||
Ven` | age-old... | ||
nope, not entering this debate again | 13:20 | ||
masak | ;) | ||
Ven` | I should write that quasiquoter I've been meaning to for a while, that should be interesting | 13:22 | |
certainly for this issue looking at racket isn't going to prove *too* interesting, but looking at sweetjs might be | 13:24 | ||
Ven` dislikes Perl 6 containers | |||
masak | today I've been mulling over how the Location API ought to interact with object properties, specifically something like Python's descriptors | 13:26 | |
it feels like there's a neat unification in there somewhere. basically, a descriptor is like a Location for an object property. | |||
I know you don't like Perl 6 containers, but... I believe 007 Locations are slightly less bad :) | 13:27 | ||
we could even forbid them for ever being exposed in runtime code, but I'm not sure I can be bothered -- maybe, if it turns out to have disastrous optimization losses not to | 13:28 | ||
github.com/masak/007/issues/413 | |||
Ven` | I think I've mentioned it already, but outside of the "co-op fatigue" (juggling between work and school), I've not felt like working on 007 for a while, because the goals are a bit too unclear for me. I thought the `is parsed` bit would be its end-all be-all, and now that it's clearly not, I'm feeling a bit... not sure. | 13:35 | |
(it's a bit unfair because I'm known to bikeshed *heavily* but I've not been feeling it that much recently) | 13:37 | ||
13:52
Ven` left
13:53
Ven` joined
17:02
Ven` left
|
|||
masak | yes, I understand | 20:06 | |
for what it's worth, I still would like to come back and focus on `is parsed` in the not too distant future. many macros depend on it. | 20:58 | ||
but I also think, realistically, that the current parser isn't going to be flexible enough to accommodate what we want out of `is parsed` | 20:59 | ||
that's why I have a stalled PR for the simplest possible `is parsed` statement macro | |||
21:17
tbrowder___ left
21:18
tbrowder___ joined
|