From ca1b12064ff8d177c5642645b25b13aa192dfdc4 Mon Sep 17 00:00:00 2001 From: JeffBezanson Date: Sat, 30 Aug 2008 05:05:31 +0000 Subject: [PATCH] removing some redundant/irrelevant files --- femtolisp/ast/rpasses.exe | Bin 34816 -> 0 bytes femtolisp/ast/system.lsp | 477 ------------------------------------ femtolisp/site/home.gif | Bin 969 -> 0 bytes femtolisp/site/software.gif | Bin 947 -> 0 bytes femtolisp/site/source.gif | Bin 408 -> 0 bytes femtolisp/site/text.gif | Bin 936 -> 0 bytes 6 files changed, 477 deletions(-) delete mode 100755 femtolisp/ast/rpasses.exe delete mode 100644 femtolisp/ast/system.lsp delete mode 100755 femtolisp/site/home.gif delete mode 100755 femtolisp/site/software.gif delete mode 100755 femtolisp/site/source.gif delete mode 100755 femtolisp/site/text.gif diff --git a/femtolisp/ast/rpasses.exe b/femtolisp/ast/rpasses.exe deleted file mode 100755 index d00fd26dd6a90e55b9de87b0657b6bade9b6cbe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34816 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 L|8V_(CxQP1@PHjG diff --git a/femtolisp/ast/system.lsp b/femtolisp/ast/system.lsp deleted file mode 100644 index 514ddd0..0000000 --- a/femtolisp/ast/system.lsp +++ /dev/null @@ -1,477 +0,0 @@ -; femtoLisp standard library -; by Jeff Bezanson -; Public Domain - -(set 'list (lambda args args)) - -(set-syntax 'setq (lambda (name val) - (list set (list 'quote name) val))) - -; convert a sequence of body statements to a single expression. -; this allows define, defun, defmacro, let, etc. to contain multiple -; body expressions as in Common Lisp. -(setq f-body (lambda (e) - (cond ((atom e) e) - ((eq (cdr e) ()) (car e)) - (T (cons 'progn e))))) - -(set-syntax 'defmacro - (lambda (name args . body) - (list 'set-syntax (list 'quote name) - (list 'lambda args (f-body body))))) - -(defmacro label (name fn) - (list (list 'lambda (cons name nil) (list 'setq name fn)) nil)) - -; support both CL defun and Scheme-style define -(defmacro defun (name args . body) - (list 'setq name (list 'lambda args (f-body body)))) - -(defmacro define (name . body) - (if (symbolp name) - (list 'setq name (car body)) - (cons 'defun (cons (car name) (cons (cdr name) body))))) - -(defun identity (x) x) -(setq null not) - -(defun map (f lst) - (if (atom lst) lst - (cons (f (car lst)) (map f (cdr lst))))) - -(defmacro let (binds . body) - (cons (list 'lambda - (map (lambda (c) (if (consp c) (car c) c)) binds) - (f-body body)) - (map (lambda (c) (if (consp c) (cadr c) nil)) binds))) - -(defun nconc lsts - (cond ((null lsts) ()) - ((null (cdr lsts)) (car lsts)) - (T ((lambda (l d) (if (null l) d - (prog1 l - (while (consp (cdr l)) (set 'l (cdr l))) - (rplacd l d)))) - (car lsts) (apply nconc (cdr lsts)))))) - -(defun append lsts - (cond ((null lsts) ()) - ((null (cdr lsts)) (car lsts)) - (T ((label append2 (lambda (l d) - (if (null l) d - (cons (car l) - (append2 (cdr l) d))))) - (car lsts) (apply append (cdr lsts)))))) - -(defun member (item lst) - (cond ((atom lst) ()) - ((equal (car lst) item) lst) - (T (member item (cdr lst))))) - -(defun macrocallp (e) (and (symbolp (car e)) - (symbol-syntax (car e)))) - -(defun functionp (x) - (or (builtinp x) - (and (consp x) (eq (car x) 'lambda)))) - -(defun macroexpand-1 (e) - (if (atom e) e - (let ((f (macrocallp e))) - (if f (apply f (cdr e)) - e)))) - -; convert to proper list, i.e. remove "dots", and append -(defun append.2 (l tail) - (cond ((null l) tail) - ((atom l) (cons l tail)) - (T (cons (car l) (append.2 (cdr l) tail))))) - -(define (cadr x) (car (cdr x))) - -(setq *special-forms* '(quote cond if and or while lambda label trycatch - %top progn)) - -(defun macroexpand (e) - ((label mexpand - (lambda (e env f) - (progn - (while (and (consp e) - (not (member (car e) env)) - (set 'f (macrocallp e))) - (set 'e (apply f (cdr e)))) - (cond ((and (consp e) - (not (eq (car e) 'quote))) - (let ((newenv - (if (and (or (eq (car e) 'lambda) - (eq (car e) 'label)) - (consp (cdr e))) - (append.2 (cadr e) env) - env))) - (map (lambda (x) (mexpand x newenv nil)) e))) - ((and (symbolp e) (constantp e)) (eval e)) - ;((and (symbolp e) - ; (not (member e *special-forms*)) - ; (not (member e env))) (cons '%top e)) - (T e))))) - e nil nil)) - -; uncomment this to macroexpand functions at definition time. -; makes typical code ~25% faster, but only works for defun expressions -; at the top level. -(defmacro defun (name args . body) - (list 'setq name (macroexpand (list 'lambda args (f-body body))))) - -; same thing for macros. enabled by default because macros are usually -; defined at the top level. -(defmacro defmacro (name args . body) - (list 'set-syntax (list 'quote name) - (macroexpand (list 'lambda args (f-body body))))) - -(setq = equal) -(setq eql equal) -(define (/= a b) (not (equal a b))) -(define != /=) -(define (> a b) (< b a)) -(define (<= a b) (not (< b a))) -(define (>= a b) (not (< a b))) -(define (1+ n) (+ n 1)) -(define (1- n) (- n 1)) -(define (mod x y) (- x (* (/ x y) y))) -(define (abs x) (if (< x 0) (- x) x)) -(setq K prog1) ; K combinator ;) -(define (funcall f . args) (apply f args)) -(define (symbol-value sym) (eval sym)) -(define symbol-function symbol-value) -(define (terpri) (princ "\n") nil) - -(define (caar x) (car (car x))) -(define (cdar x) (cdr (car x))) -(define (cddr x) (cdr (cdr x))) -(define (caaar x) (car (car (car x)))) -(define (caadr x) (car (car (cdr x)))) -(define (cadar x) (car (cdr (car x)))) -(define (caddr x) (car (cdr (cdr x)))) -(define (cdaar x) (cdr (car (car x)))) -(define (cdadr x) (cdr (car (cdr x)))) -(define (cddar x) (cdr (cdr (car x)))) -(define (cdddr x) (cdr (cdr (cdr x)))) - -(defun every (pred lst) - (or (atom lst) - (and (pred (car lst)) - (every pred (cdr lst))))) - -(defun any (pred lst) - (and (consp lst) - (or (pred (car lst)) - (any pred (cdr lst))))) - -(defun listp (a) (or (eq a ()) (consp a))) - -(defun nthcdr (n lst) - (if (<= n 0) lst - (nthcdr (- n 1) (cdr lst)))) - -(defun list-ref (lst n) - (car (nthcdr n lst))) - -(defun list* l - (if (atom (cdr l)) - (car l) - (cons (car l) (apply list* (cdr l))))) - -(defun nlist* l - (if (atom (cdr l)) - (car l) - (rplacd l (apply nlist* (cdr l))))) - -(defun lastcdr (l) - (if (atom l) l - (lastcdr (cdr l)))) - -(defun last (l) - (cond ((atom l) l) - ((atom (cdr l)) l) - (T (last (cdr l))))) - -(defun map! (f lst) - (prog1 lst - (while (consp lst) - (rplaca lst (f (car lst))) - (set 'lst (cdr lst))))) - -(defun mapcar (f . lsts) - ((label mapcar- - (lambda (lsts) - (cond ((null lsts) (f)) - ((atom (car lsts)) (car lsts)) - (T (cons (apply f (map car lsts)) - (mapcar- (map cdr lsts))))))) - lsts)) - -(defun transpose (M) (apply mapcar (cons list M))) - -(defun filter (pred lst) - (cond ((null lst) ()) - ((pred (car lst)) (cons (car lst) (filter pred (cdr lst)))) - (T (filter pred (cdr lst))))) - -(define (foldr f zero lst) - (if (null lst) zero - (f (car lst) (foldr f zero (cdr lst))))) - -(define (foldl f zero lst) - (if (null lst) zero - (foldl f (f (car lst) zero) (cdr lst)))) - -(define (reverse lst) (foldl cons nil lst)) - -(defun reduce (f zero lst) - (if (null lst) zero - (reduce f (f zero (car lst)) (cdr lst)))) - -(define (copy-list l) - (if (atom l) l - (cons (car l) - (copy-list (cdr l))))) -(define (copy-tree l) - (if (atom l) l - (cons (copy-tree (car l)) - (copy-tree (cdr l))))) - -(define (nreverse l) - (let ((prev nil)) - (while (consp l) - (set 'l (prog1 (cdr l) - (rplacd l (prog1 prev - (set 'prev l)))))) - prev)) - -(defmacro let* (binds . body) - (cons (list 'lambda (map car binds) - (cons 'progn - (nconc (map (lambda (b) (cons 'setq b)) binds) - body))) - (map (lambda (x) nil) binds))) - -(defmacro labels (binds . body) - (cons (list 'lambda (map car binds) - (cons 'progn - (nconc (map (lambda (b) - (list 'setq (car b) (cons 'lambda (cdr b)))) - binds) - body))) - (map (lambda (x) nil) binds))) - -(defmacro when (c . body) (list 'if c (f-body body) nil)) -(defmacro unless (c . body) (list 'if c nil (f-body body))) - -(defmacro dotimes (var . body) - (let ((v (car var)) - (cnt (cadr var))) - (list 'let (list (list v 0)) - (list 'while (list < v cnt) - (list prog1 (f-body body) (list 'setq v (list + v 1))))))) - -(defun map-int (f n) - (if (<= n 0) - () - (let ((first (cons (f 0) nil))) - ((label map-int- - (lambda (acc i n) - (if (= i n) - first - (progn (rplacd acc (cons (f i) nil)) - (map-int- (cdr acc) (+ i 1) n))))) - first 1 n)))) - -(defun iota (n) (map-int identity n)) - -(defun error args (raise (cons 'error args))) - -(defmacro throw (tag value) `(raise (list 'thrown-value ,tag ,value))) -(defmacro catch (tag expr) - (let ((e (gensym))) - `(trycatch ,expr - (lambda (,e) (if (and (consp ,e) - (eq (car ,e) 'thrown-value) - (eq (cadr ,e) ,tag)) - (caddr ,e) - (raise ,e)))))) - -(defmacro unwind-protect (expr finally) - (let ((e (gensym))) - `(prog1 (trycatch ,expr - (lambda (,e) (progn ,finally (raise ,e)))) - ,finally))) - -; (try expr -; (catch (type-error e) . exprs) -; (catch (io-error e) . exprs) -; (catch (e) . exprs) -; (finally . exprs)) -(defmacro try (expr . forms) - (let* ((e (gensym)) - (reraised (gensym)) - (final (f-body (cdr (or (assoc 'finally forms) '(()))))) - (catches (filter (lambda (f) (eq (car f) 'catch)) forms)) - (catchblock `(cond - ,.(map (lambda (catc) - (let* ((specific (cdr (cadr catc))) - (extype (caadr catc)) - (var (if specific (car specific) - extype)) - (todo (cddr catc))) - `(,(if specific - ; exception matching logic - `(or (eq ,e ',extype) - (and (consp ,e) - (eq (car ,e) - ',extype))) - T); (catch (e) ...), match anything - (let ((,var ,e)) (progn ,@todo))))) - catches) - (T (raise ,e))))) ; no matches, reraise - (if final - (if catches - ; form with both catch and finally - `(prog1 (trycatch ,expr - (lambda (,e) - (trycatch ,catchblock - (lambda (,reraised) - (progn ,final - (raise ,reraised)))))) - ,final) - ; finally only; same as unwind-protect - `(prog1 (trycatch ,expr (lambda (,e) - (progn ,final (raise ,e)))) - ,final)) - ; catch, no finally - `(trycatch ,expr (lambda (,e) ,catchblock))))) - -; setf -; expands (setf (place x ...) v) to (mutator (f x ...) v) -; (mutator (identity x ...) v) is interpreted as (mutator x ... v) -(setq *setf-place-list* - ; place mutator f - '((car rplaca identity) - (cdr rplacd identity) - (caar rplaca car) - (cadr rplaca cdr) - (cdar rplacd car) - (cddr rplacd cdr) - (caaar rplaca caar) - (caadr rplaca cadr) - (cadar rplaca cdar) - (caddr rplaca cddr) - (cdaar rplacd caar) - (cdadr rplacd cadr) - (cddar rplacd cdar) - (cdddr rplacd cddr) - (get put identity) - (aref aset identity) - (symbol-function set identity) - (symbol-value set identity) - (symbol-plist set-symbol-plist identity) - (symbol-syntax set-syntax identity))) - -(defun setf-place-mutator (place val) - (if (symbolp place) - (list 'setq place val) - (let ((mutator (assoc (car place) *setf-place-list*))) - (if (null mutator) - (error '|setf: unknown place | (car place)) - (if (eq (caddr mutator) 'identity) - (cons (cadr mutator) (append (cdr place) (list val))) - (list (cadr mutator) - (cons (caddr mutator) (cdr place)) - val)))))) - -(defmacro setf args - (f-body - ((label setf- - (lambda (args) - (if (null args) - nil - (cons (setf-place-mutator (car args) (cadr args)) - (setf- (cddr args)))))) - args))) - -(defun revappend (l1 l2) (nconc (reverse l1) l2)) -(defun nreconc (l1 l2) (nconc (nreverse l1) l2)) - -(defun list-to-vector (l) (apply vector l)) -(defun vector-to-list (v) - (let ((i (- (length v) 1)) - (l nil)) - (while (>= i 0) - (setq l (cons (aref v i) l)) - (setq i (- i 1))) - l)) - -(defun self-evaluating-p (x) - (or (eq x nil) - (eq x T) - (and (atom x) - (not (symbolp x))))) - -; backquote -(defmacro backquote (x) (bq-process x)) - -(defun splice-form-p (x) - (or (and (consp x) (or (eq (car x) '*comma-at*) - (eq (car x) '*comma-dot*))) - (eq x '*comma*))) - -(defun bq-process (x) - (cond ((self-evaluating-p x) - (if (vectorp x) - (let ((body (bq-process (vector-to-list x)))) - (if (eq (car body) 'list) - (cons vector (cdr body)) - (list apply vector body))) - x)) - ((atom x) (list 'quote x)) - ((eq (car x) 'backquote) (bq-process (bq-process (cadr x)))) - ((eq (car x) '*comma*) (cadr x)) - ((not (any splice-form-p x)) - (let ((lc (lastcdr x)) - (forms (map bq-bracket1 x))) - (if (null lc) - (cons 'list forms) - (nconc (cons 'nlist* forms) (list (bq-process lc)))))) - (T (let ((p x) (q ())) - (while (and (consp p) - (not (eq (car p) '*comma*))) - (setq q (cons (bq-bracket (car p)) q)) - (setq p (cdr p))) - (let ((forms - (cond ((consp p) (nreconc q (list (cadr p)))) - ((null p) (nreverse q)) - (T (nreconc q (list (bq-process p))))))) - (if (null (cdr forms)) - (car forms) - (cons 'nconc forms))))))) - -(defun bq-bracket (x) - (cond ((atom x) (list cons (bq-process x) nil)) - ((eq (car x) '*comma*) (list cons (cadr x) nil)) - ((eq (car x) '*comma-at*) (list 'copy-list (cadr x))) - ((eq (car x) '*comma-dot*) (cadr x)) - (T (list cons (bq-process x) nil)))) - -; bracket without splicing -(defun bq-bracket1 (x) - (if (and (consp x) (eq (car x) '*comma*)) - (cadr x) - (bq-process x))) - -(defmacro assert (expr) `(if ,expr T (raise '(assert-failed ,expr)))) - -(defmacro time (expr) - (let ((t0 (gensym))) - `(let ((,t0 (time.now))) - (prog1 - ,expr - (princ "Elapsed time: " (- (time.now) ,t0) " seconds\n"))))) diff --git a/femtolisp/site/home.gif b/femtolisp/site/home.gif deleted file mode 100755 index cff7e8ab25acee00d5031f66710a7586e755082e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmc(ezf0F)5XaAwD99=O2Bw1&72#0alC?NQX{8ht1Ysb;K}15oz`;OsY0x70M%nQj*6Iw zi-bsWQBf6Bag|U>Y9?x8CT6KGUYE!9&a%UYn(f*MS? zD6$!8v=L)EOR;R?xLKGb_SnkB&E3K+aSH^sFb|8cBn~JUPV=WSBe%017Mu zjTY2k(hCTikwzP_EWO1NKXAf5$q{>O&0YV|w{&e| RpnraNVQ_h8)0TQU@(7d2HAg2q2sbc?A}kOYl?u;?af?2;vMK*=z9 z0EJ^L0*w~bjKT#7n~_FaYP7PW&JP^n2}u^ia8Q=!i`C~)hMO-;%=MzpS1POu9`_Y( z#nDU)|C>3Uf)!Zx`zK`ZK?bPdI`9Ej%!jeTrv%a9}KOrsSlFK@GKDqbm zQp<|&Lu-Fdy}8`hwRO$t^0C?Lt90>m8$LXHv%PER>-RGc`fhY?I)CcK$mHDZhkZkX z2S#SLuj@Jcc31zc#=xBo!|#4C3?AP-*_#*tj<%oN)9C8m_UT3Y{J_lqiH)bHe*M_@ txZ~yh)~iqFKQ!9rE*!h|XZqt*_oFMV2cJ#9A3wMB=;yl=UtW*NmVbVB1!n*N diff --git a/femtolisp/site/source.gif b/femtolisp/site/source.gif deleted file mode 100755 index dde5a6a63213f7c28e5c773da7113769ded0ff30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmZ?wbhEHb6k||en8?8J|NsA)GygMyf#OdVMn)h@2gC!(GcuL6^sm%-`(LbK%h{*P zEIz8Ojt%_~xr}XM&(5t=PHilV3QM+JtdTS4!TkrVF-K(A%_!t>+?BE+ZSmTejW>#n z&)6-$HSL)fZ+-ScxiXtxy8~HEl^FU@KX>Z<+ZS)@x+&hD<;By5q8+If&!$TJNWb>P zxMZ5TWn};ZgW|vUAsLy)3hth63Tc@+sS4$Z#R`eV#i_YTIjJcM<(VZJU^(afyyB9g z(&UoN{5*x=)DnfXqWoMdUM^lP$DHJh)Z9u1-^{#}^8BLgVg=89R>fqlEk9Sd|oae19t^ON1%+eqo1RTBTxe`7uY4q`MJ5Nc_j)- zIr+)iKnLXHDCFgrC?pmXq$US8YL5-!PPh=y2*heSvwTB0eI;wh1JLmF+w zn5I4JR>xFbHB^(WTujZ>O~W*Spyq0>?i#KM6Rn{Z>Y)*uK%+S3!u zGCY2Mu=)MCY>b}nFYX#$>g^uu#^USN%t-6x^8LZ&!}oV@cVEr7_bhc*_Fp`EtG&7U z;mO3@m%Wd#y;yj3c;VBx!Ji*f{UbMqwtioKx&Cap_ikpqI~JGc&rQD_`g-Z}>Y3TA cTlc08tv}!Q=E2X8Ygalw^XdN0$(9`Z2e7t