/nolisp

Nolan's Lisp

Primary LanguageCommon Lisp

NoLisp2

Copyright (C) 2018-2019 Nolan Eakins

A language that looks like Lisp but lacks lists and compiles in a single pass. All it knows are integers and memory accesses.

https://github.com/sneakin/nolisp/tree/nolisp2

Requirements

  • Steel Bank Common Lisp
  • Ruby and Rake

Interactive Top Level

In a Lisp such as SBCL the following can be done:

Loading

   $ cd $ROOT
   $ sbcl
   cl> (load "sbcl.lisp")

Or in Emacs using Slime, evaluate sbcl.lisp with the slime-eval-buffer command.

Compiling Files

   cl> (repl::repl-file path)

Disassembling Files

   cl> (repl::disassemble-asm output-sequence)

Command Line

Compiling and disassembling can also be done outside of a Lisp:

Building

To produce compiler.exe and disassembler.exe run:

   $ cd $ROOT
   $ rake

Running

   $ ./compiler.exe -o hello-world.bin tests/runtime/hello-world.nl

And to run hello-world.bin:

   $ NODE_PATH=$BACAW/js/lib node $BACAW/bin/bccon.js hello-world.bin

Bacaw can be fetched using git submodule update --init.