(declaim (optimize (debug 3)) (notinline foo bar run)) (defun foo () (/ (read) (read))) (defun bar () (foo)) (defun run () (print (bar))) (defun toplevel () (let ((debug (find "--debug" *posix-argv* :test #'string=))) (handler-bind ((error (lambda (c) (if debug (invoke-debugger c) (progn (format t "Usage: echo 1 2 | ~A~2%Error: ~A" (first *posix-argv*) c) (sb-ext:exit :code 1))))) (sb-sys:interactive-interrupt (lambda (c) (if debug (invoke-debugger c) (sb-ext:exit :code 0))))) (run)))) (defun build () (sb-ext:save-lisp-and-die "div" :executable t :toplevel #'toplevel :save-runtime-options t))