Big project dir refactor

* split into multi member workspace in preparation for a no_std core
* env and posix stuff neatly crammed into a seperate shell project
* some pokes at interactive-devel.f
* updated ci
* removed 'l' shortcut for 'load' and update docs
* remove out of date readme content
* updated tests
* more sensible cond implementation and extra tests
* substr stdlib function with tests

Signed-off-by: Ava Affine <ava@sunnypup.io>
This commit is contained in:
Ava Apples Affine 2024-07-10 13:22:28 -07:00
parent aa56570d7d
commit 6d2925984f
44 changed files with 967 additions and 779 deletions

View file

@ -18,19 +18,31 @@
;; INTERACTIVE DEVELOPMENT
;; This file contains features that help you develop new features at the REPL
;; TODO: Need an is_symbol impl or some way to reflect
;; lib setup
(if (not (set? reduce))
((echo "need map. Include userlib.f")
(exit -1)))
;; basic goals
;; (def get-sym-deps
;; 'gets all global symbols referenced by the definition of a symbol'
;; (sym) ;; probably just iter over and call 'set?' on symbols
;; ()) ;; then return a stack of symbols
;; (def get-tree-deps
;; 'Gets all global symbols referenced by the definition of a symbol.
;; assumes symbol is passed in quoted. Essentially this function expects
;; a tree.'
;; (sym)
;; (reduce (lambda (res elem) (cond ((sym? elem) ;; symbol case
;; ()
;; ((list? elem) ;; list case
;; (extend results (get-tree-deps (eval elem)))))))
;; sym)) ;; then return a stack of symbols
;; (def dump-sym
;; (def dump-tree
;; 'writes a symbol to a library file'
;; (sym lib) ;; check if lib exists
;; ()) ;; write to lib
;; (def dump-sym-with-deps
;; (def dump-tree-with-deps
;; 'writes a symbol, with all its dependencies, to a file'
;; (sym lib) ;; make a list of sym and all its deps
;; ()) ;; iterate over that list and add new elements that are deps of iter