Tue Jul 1 11:19:44 EDT 2014

live interaction

is a bit of a mess..

How to simplify?

Really, there is all the "scat" stuff that I don't use.  I use:

- .fm / .f files with macros / forth code
- .rkt files to define table data in scheme
- 0-arg scheme words for live interaction

It is important to be able to use live words both at the console and
in compilation.  There is a lot of wrapping going on making all the
namespaces work together...

Basically, a host command uses `live:' which uses `live-interpret' in

(define (live-interpret sym)
  (define (dbg dict) '(printf "live-interpret: ~a ~a\n" sym dict))
  (define defined? (make-ns-defined? sym))
   ((defined? '(scat)) => (lambda (x) (dbg 'scat)   x))
   ((defined? '())     => (lambda (x) (dbg 'scheme) (scat-wrap-dynamic x)))
   (else (error 'undefined "~s" sym))))

It gets a bit confusing in `scat-wrap-dynamic' which is essentially