Start working on L2
This changes the compilation process to keep track of register types, which
we'll need to distinguish between local/permanent variables. It also makes
things a bit more obvious/safe when compiling argument registers because they're
tagged explicitly.
This also changes up the actual running of the code by actually using
CALL/PROCEED, though it's not fully fleshed out yet.
author |
Steve Losh <steve@stevelosh.com> |
date |
Wed, 13 Apr 2016 17:38:57 +0000 |
parents |
564c709801aa |
children |
1dd07907df49 |
(asdf:defsystem #:bones
:name "bones"
:description "A logic programming library for Common Lisp."
:author "Steve Losh <steve@stevelosh.com>"
:maintainer "Steve Losh <steve@stevelosh.com>"
:license "MIT/X11"
:version "0.0.1"
:depends-on (#:defstar
#:optima
#:trivial-types
#:cl-arrows
#:fare-quasiquote-optima
#:fare-quasiquote-readtable)
:serial t
:components ((:file "src/quickutils") ; quickutils package ordering crap
(:file "package")
(:module "src"
:components ((:file "paip")
(:file "utils")
(:module "wam"
:components ((:file "constants")
(:file "types")
(:file "topological-sort")
(:file "cells")
(:file "opcodes")
(:file "wam")
(:file "compile")
(:file "instructions")
(:file "dump")))
(:file "bones")))))