Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jcatw/iota
A lisp interpreter
https://github.com/jcatw/iota
Last synced: 2 months ago
JSON representation
A lisp interpreter
- Host: GitHub
- URL: https://github.com/jcatw/iota
- Owner: jcatw
- Created: 2014-01-06T20:00:39.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2014-08-12T23:34:38.000Z (over 10 years ago)
- Last Synced: 2024-08-03T18:16:34.553Z (6 months ago)
- Language: C
- Size: 316 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.org
Awesome Lists containing this project
- AwesomeInterpreter - iota
README
* iota
Iota is a lisp interpreter. It is very much a work in progress.build:
#+begin_src sh
make
#+end_srcrun:
#+begin_src sh
./iota
#+end_src** What it has
+ Interpretation.
+ Lisp-1 namespacing.
+ Lexical binding.
+ Common Lisp-style macros.
+ Self-evaluating keywords.
+ Some arg parsing.
+ Some introspection.
+ Decent I/O.** What it doesn't have
+ Booleans (nil serves as false)
+ Garbage collection.** What I want it to have
+ Self-hosted compilation, maybe to some kind of iota bytecode, maybe to javascript, maybe to C, maybe to all three.
+ Much more introspection.
+ Better arg parsing.
+ More (fast) fundamental data structures, like maps/hashtables/dictionaries and resizable vectors.
+ Garbage collection.** Acknowledgements
Big chunks of iota were built based on Peter Michaux's [[http://michaux.ca/articles/scheme-from-scratch-introduction][Scheme from
Scratch]] series, which walks through a C implementation of the
metacircular scheme intepreter in [[http://mitpress.mit.edu/sicp/][SICP]]. Other stuff was built by
reading [[http://mitpress.mit.edu/sicp/][SICP]] directly. I am also working through Lisp in Small
Pieces, so that will probably show up. Still other stuff I just
hacked out. Some of it is broken, see below.** Inspiration
+ [[https://code.google.com/p/femtolisp/][femtolisp]]
+ [[http://piumarta.com/software/maru/][maru]]** Broken / TODO
+ +Quasiquote (backquote) doesn't nest right+ backquote should work now
+ Variable capture seems to be happening a lot, +maybe because quasiquote is broken, or+ maybe just inherent to common lisp macros in a lisp-1.