anchor.diff:  ; Assumes *.kl files are in the ./kernel/klambda directory
   ; Creates intermediate code and binaries in a platform-specific sub-directory under ./native/
   
  -(SETQ *NATIVE-PATH*
  +(DEFCONSTANT NATIVE-PATH
     #+CLISP "./native/clisp/"
     #+SBCL  "./native/sbcl/")
   
  -(ENSURE-DIRECTORIES-EXIST *NATIVE-PATH*)
  +(DEFCONSTANT BINARY-SUFFIX
  +  #+CLISP ".fas"
  +  #+SBCL  ".fasl")
  +
  +#+CLISP (DEFCONSTANT MEM-NAME "shen.mem")
  +
  +#+SBCL (DEFCONSTANT EXECUTABLE-NAME #+WIN32 "shen.exe" #-WIN32 "shen")
  +
  +(ENSURE-DIRECTORIES-EXIST NATIVE-PATH)
   
   (PROCLAIM '(OPTIMIZE (DEBUG 0) (SPEED 3) (SAFETY 3)))
   #+CLISP (SETQ CUSTOM:*COMPILE-WARNINGS* NIL)
  
positive.code:       :IF-DOES-NOT-EXIST :CREATE)
      (FORMAT Out "~{~C~}" Chars)))
  
  (DEFUN importfile (File)
    (LET ((LspFile (FORMAT NIL "~A.lsp" File))
          (ObjFile (FORMAT NIL "~A~A.~A" *NATIVE-PATH* File #+CLISP "fas" #+SBCL "fasl")))
      (COMPILE-FILE LspFile :OUTPUT-FILE ObjFile)
      (LOAD ObjFile)))
  
  
negative.code: (COMPILE 'flip)
  (COMPILE 'write-out-kl)
  
  (importlsp "primitives")
  (importlsp "backend")
  (importkl "toplevel")
  (importkl "core")
  (importkl "sys")
  (importkl "sequent")
  (importkl "yacc")
  (importkl "reader")
  (importkl "prolog")
  (importkl "track")
  (importkl "load")
  (importkl "writer")
  (importkl "macros")
  (importkl "declarations")
  (importkl "types")
  (importkl "t-star")
  (importlsp "overwrite")
  (load "platform.shen")
  
  (MAPC 'FMAKUNBOUND '(boot writefile openfile importlsp))
  
  #+CLISP (EXT:SAVEINITMEM
    (FORMAT NIL "~A~A" NATIVE-PATH MEM-NAME)
    :INIT-FUNCTION 'shen.byteloop)
  
  #+CLISP (QUIT)
  
  #+SBCL (SAVE-LISP-AND-DIE
    (FORMAT NIL "~A~A" NATIVE-PATH EXECUTABLE-NAME)
    :EXECUTABLE T
    :SAVE-RUNTIME-OPTIONS T
    :TOPLEVEL 'SHEN-TOPLEVEL)
  