#!/home/dbane/openlisp-10.9.0/uxlisp -shell ;;; ISLisp is fine so long as you do "read-line" from the same place you call the entry point fun. ;;; So -shell with an immediate call doesn't work, something is closed after reading the Lisp source. ;;; -shell -keep, supplying the call from the keyboard works fine. ;;; ;;; Calling entry point from a Lisp CLI (after "load") also works. ;;; And this may be what I end up with, if I'm doing a view in Emacs. (require "cmd") (require "builtins") (defpackage #:btech (:use #:cmd #:builtins) (:export #:main)) (in-package #:btech) ;; Favour symbols & objects over C-like numbers (defconstant +cmds+ (list (create-tab #'bt-quit "QUIT" 1) (create-tab #'help "help" 2) (create-tab #'look "look" 2))) (defun main () (read-line) ; Throw away LF (format (standard-output) "> ") (let* ((tab (lookup (parse (read-line)) +cmds+)) (f (fun tab))) (funcall f))) ; I *think* this is better than (flet ... (provide "btech") (main)