Skip to content
/ L3 Public

L3: experiments in aggressive Garbage-collection and interpreter implementation based on the Pratt parser. Uses protocol buffers for serialization, and Judy arrays for fast, sparse arrays/hashtables. Linux and OSX.

Notifications You must be signed in to change notification settings

glycerine/L3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

L3: experiments in aggressive and efficient garbage collection; and in Pratt-parser based interpreter implementation.


Infix notation is parsed by default, using a Pratt parser. See the file newpassing.l3 for the currently working unit tests.  

Prefix notation (Lisp/Scheme style) is also available using the ($functionname arg1 arg2 ...) syntax of starting forms with '($'.

; To run the interpreter: ./terp 
; To start the unit tests within terp: uu




compilation/build notes:

 Originally prototyped the LLVM links with llvm-2.8; later versions of LLVM (2.9, 3.0, etc) probably won't work.
 The LLVM stuff in compiler.cpp can be omitted (it is commented out of the Makefile.mac at the moment).



About

L3: experiments in aggressive Garbage-collection and interpreter implementation based on the Pratt parser. Uses protocol buffers for serialization, and Judy arrays for fast, sparse arrays/hashtables. Linux and OSX.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published