I’ve just be trying out uLisp for a couple of days and figuring out a nice way to interact with it on my Maxiduino. In the end I settled on what I’ve done for Lisp in the past, namely Emacs with lisp-mode and inferior-lisp. Below is an outline of how to dup what I have:
For interacting with uLisp in a terminal window ‘cu’ is in the repos,
run the command in a terminal (adjusting the dev and speed if needed):
cu -l /dev/ttyUSB0 -s 9600
For emacs interaction add the following 2 lines to the ~/.emacs file:
(setq inferior-lisp-program "cu -l /dev/ttyUSB0 -s 9600")
(setq comint-process-echoes t))
In Emacs start an inferior Lisp buffer with the command:
meta-x inferior-lisp
The inferior-lisp has basic Lisp support (paren matching), and return
sends the sexpr to uLisp and prints the result in the window.
To edit uLisp files use lisp-mode by finding a file with a .lisp
extension. This will have Lisp editing support such as paren
matching, syntax highlighting, etc.
In lisp mode you can send regions or sexprs to uLisp with:
meta-x lisp-eval-region
control-x control-e
The later sends the sexpr before the cursor to the inferior Lisp.
There is a lot of other support, but those are the basics.
For editing large uLisp programs you can use tag tables, for example
to browse the assembler, assuming it is called assembler.lisp:
etags assembler.lisp
Then in Emacs edit the assembler.lisp file and use the command:
meta-.
After loading the TAGS this will jump to the definition under the
cursor or the definition you enter.
Once you have this setup there is more support you can explore, but I think that is most of what you need.