that might happen idk. though more likely would use a combination of rebol and wisp and not sexprs directly.

really the important part of terra/lua is just that the compiler is an interactive service. i think you could make something in sane with that and just a handful of optimizer components.

esp. partial evaluation

@icedquinn Use Red instead of REBOL. It's a modernized version and it is actually FOSS.

red-lang.org/

@xianc78 ten years they've been working on this shit and its still not usable.

would just be stealing the syntax anyway. probably wouldn't even keep most of the syntax either (the extra data types are neat in theory but it puts a lot of load on the lexer for not a whole lot of benefit.)
Follow

@icedquinn I've only messed with the graphical and GUI stuff. I realized that there is no audio DSL yet. Otherwise, I would totally recommend it as a beginner's game programming language.

· · Web · 1 · 0 · 0
@xianc78 i like what nenad wanted to do but :/

metacircular compiler is very good idea. its what the thing i ponder about on occasion is (the terra/lua adjacent monstrocity.)

parsing rebol is kind of weird. i should be able to do it again soon (i did several hand-writes, but i'm about to have an augmented LR rig :abongocat:) big pain in the ass is how there's no way to know what parameters are without knowing what the functions are. so you have to look at the symbol, look up that its a word, and then recursively repeat the process to bundle up the arguments.

when i asked nenad years ago how he planned to get around some of the ambiguity he just handwaved me off about JITs.

i do think the rebol syntax overall is a nice variation of parenthesis-less lisp, though, so its something i keep in mind all the time.
@xianc78 basically in sexpr format you may not know anything about the context but you can figure out the structure of (shitpost (catblob)). in rebol/red you have just "shitpost catblob." the only static structure is when something is put in to blocks. and whether blocks are even evaluated or not is up in the air (lisps have a similar problem with macros implicitly quoting some arguments.)

so you have to basically run the lexer->parser automata to get trees which are not directly useful because you have to turn around and run an automata or recursive descent on it again to get the actual call trees, where every step has to consult the current scope for arity, and in traditional rebol these are variable lookups so its possible that arity could actually change between calls to eval and now your program means something else entirely.

there are some foot guns to deal with for sure :blobcatgoogly:
Sign in to participate in the conversation
Game Liberty Mastodon

Mainly gaming/nerd instance for people who value free speech. Everyone is welcome.