evincarofautumn / kitten

A statically typed concatenative systems programming language.
http://kittenlang.org/
Other
1.1k stars 42 forks source link

New Compiler #152

Closed evincarofautumn closed 7 years ago

evincarofautumn commented 8 years ago

The new compiler, based on the reference typechecker. PRing so GitHub shows it as existing.

sullyj3 commented 8 years ago

How's the new compiler going? What's left to do?

evincarofautumn commented 8 years ago

I haven’t touched it in a little while. Code generation is the biggest thing left to finish—I got hung up on performance details when I should have just done something naïve to improve later. The dictionary code is a bit of a mess (very ad-hoc and dynamic), and I think it needs to be cleaned up in order to move forward.

I have syntax support (here or on my machine) for a few things that don’t have finished semantics, including word/type/vocab synonyms (aliases), trait constraints, and compile-time evaluation (macros). Those aren’t critical for ditching the old compiler, but I think they’ll be necessary before a pre-release announcement.

evincarofautumn commented 7 years ago

Moving this over to master. It’ll make it simpler to move away from the old compiler, and there’s not much use in keeping them separated at this point.

sullyj3 commented 7 years ago

Cool, how do we go about building the new one? It doesn't seem to be referenced in the makefile.

evincarofautumn commented 7 years ago

You can run stack build in the new directory, then stack exec kitten to run it. Of course, the interpreter is currently broken. ¯\_(ツ)_/¯

I’m also going to get rid of the Makefile at some point.