(putd 'defun '(macro lambda (_x) (list 'putd (list 'quote (car _x))
	(list 'function (cons 'lambda (cdr _x)))))) 
(defun exfile (lispfile)
   (catch 'exfile
    (lets ((standard-input (inopen (stream (alloc lispfile)))) 
           (err:end-of-file (function (lambda (stg (dum)) (throw 'exfile)))))
     (loop (eval (read))))))
(defun inopenp (f)
   (lets ((err:open-close (function (lambda (x (y)) (throw 'inopenp nil))))
	  (s (stream f)))
    (cond ((catch 'inopenp (inopen s)) (close s) t)
	  (t nil))))
(lets ((ofile (string-append system_lib_path "lispsys.main.o")))
 (cond ((inopenp ofile) (system-code-load ofile))
       (t (lets ((lfile (string-append system_lib_path "lispsys.main.l")))
	   (cond ((inopenp lfile) (exfile lfile) nil)
		  (t (funcall err:open-close (stream lfile) 'loadfile)))))))
