* TODO update header files * TODO use better type names: u32, .. * TODO write and/or as macros * TODO docs as a external dict to make LO smaller * TODO doc generation * TODO function let (let fac ([n 10]) (if (zero? n) 1 (* n (fac (sub1 n))))) 3628800 * TODO runHook NAS_Action * TODO consisitent names (Lisp_Object_Type_to_string .. lisp_object_to_string) * TODO rename modifying functions to prefix '!' * TODO rename slime to plisk * TODO BUG 1: eval dot notation #+BEGIN_SRC lisp (eval `(+ . ,(list 1 2 3))) ;; should output 6 ;; throws error instead #+END_SRC * TODO BUG 2: eval dot notation #+BEGIN_SRC lisp (begin (define a (list 1 2 3)) (eval `(+ . ,a))) ;; should output 6 ;; outputs 0 #+END_SRC * TODO BUG 3: unnecessary copying? define((test val),"") { fetch(val) ; printf("addr of arg: %lld\n", (unsigned long long)&val); return Memory::nil; }; then: #+begin_src slime (define a "a") (test a) ;; will output an adress (if 1 (test a) 2) ;; will output a different adress #+end_src * TODO BUG 4: arg parsing #+begin_src slime (define (range (:from 0) to) ...) #+end_src should error since we can't have positional args after keywords. right now, 'to' is silently ignored..