;;-*-LISP-*- ;; Evaluator, Compiler, and Runtime options for macsyma source files. ;; Various autoloads (PUTPROP 'Y-OR-N-P "LIBMAX;LMRUN" 'AUTOLOAD) (AUTOLOAD-MACRO 'LOOP "LIBLSP;LOOP" 'LOOP-TRANSLATE) ;; This probably isn't used any more. Replacement is Lispm ;; WITH-OPEN-FILE form. The only place which might use it would ;; be LIBMAX;DEFINE, which should be converted. -cwh (AUTOLOAD-MACRO 'PHI "LIBLSP;IOTA") (AUTOLOAD-MACRO 'DEFSTRUCT "LIBLSP;STRUCT") (AUTOLOAD-MACRO 'TRANSL-MODULE "LIBMAX;TRANSM") (AUTOLOAD-MACRO 'GCALL-BIND "LIBMAX;NUMMAC") (AUTOLOAD-MACRO 'DEF-PROCEDURE-PROPERTY "LIBMAX;PROCS") (AUTOLOAD-MACRO 'CALL-PROCEDURE-PROPERTY "LIBMAX;PROCS") (AUTOLOAD-MACRO 'DEFCLOSURE "LIBMAX;CLOSE") (AUTOLOAD-MACRO 'CALL "LIBMAX;CLOSE") (AUTOLOAD-MACRO 'DEF-OPTIONS "LIBMAX;OPSHIN") (AUTOLOAD-MACRO '|DEF#\SYMBOL| "LIBMAX;READM") (DEFPROP PARSE-OPTION-HEADER "LIBMAX;OPSHIN" AUTOLOAD) (DEFPROP META-EVAL "LIBMAX;META" AUTOLOAD) ;; RUNTIME, to support files used by the macsyma user. (SETQ NEEDED-MACRO-FILES-RUNTIME '((LMMAC) (MAXMAC) (DEFINE) (MOPERS) (UMLMAC "DSK:LISP;"))) (SETQ EVALUATOR-OPTIONS-RUNTIME '( ;; This switch controls whether DEFUN uses the ARGS property for argument count ;; checking or generates in-line code and error messages. When disabled, a ;; message like "between 2 to 4 arguments expected" will be printed. When ;; enabled, something like "EXP and VAR are required arguments; UPPER-BOUND and ;; LOWER-BOUND are optional" can be printed since the arglist will be saved. ;; At eval time, this is enabled to facilitate debugging. At compile time, ;; this is disabled to save address space. This can be overridden locally for ;; files which want to print more informative error messages. (SETQ DEFUN&-CHECK-ARGS T) ;; Some conditionalizations depend upon the machine architecture and not the ;; operating system. This allows one to distinguish between them, i.e. one ;; should do #+PDP10 rather than #+(OR ITS DEC20). ;; Turn on (STATUS FEATURE GC) to include gc code. (SSTATUS FEATURE PDP10) (SSTATUS FEATURE GC) ;; To facilitate debugging, don't displace macros. This prevents repeated ;; expansion, but makes life easier for programs like STEP which don't know ;; about MACROEXPANDED. (SETQ MACRO-EXPANSION-USE 'MACROMEMO) ;; so old code gets gc'd, flush it from the Macromemo hash table!!! (FLUSH-MACROMEMOS () ()) ;; This guy has an icky macro properties in the compiler. (DEFUN MTELL-OPEN (&REST L) (APPLY #'MFORMAT (CONS NIL L))) (DEFUN MFORMAT-OPEN (&REST L) (APPLY #'MFORMAT L)) ;; Use a winning FSUBR for LET in the interpreter. ;; Saves core and eyestrain. (PROGN (DEFPROP LET LETFEX FEXPR) (DEFPROP LET* LET*FEX FEXPR) (DEFPROP DESETQ DESETQFEX FEXPR) (DEFPROP LETFEX |DSK:LIBLSP;LETFEX FASL| AUTOLOAD) (DEFPROP LET*FEX |DSK:LIBLSP;LETFEX FASL| AUTOLOAD) (DEFPROP DESETQFEX |DSK:LIBLSP;LETFEX FASL| AUTOLOAD)) )) (SETQ COMPILER-OPTIONS-RUNTIME '((SETQ DEFUN&-CHECK-ARGS NIL) ;; Don't place macros in the fasl file. Don't load DEFMAX package at runtime. ;; Macro packages should include LIBMAX;MPRELU >. Should macro calls be ;; displaced at eval time? There are good arguments for and against this. (SETQ DEFMACRO-FOR-COMPILING NIL) (SETQ DEFMACRO-DISPLACE-CALL NIL) (MACROS NIL) ;; Use an ASCII encoding scheme (rather than SIXBIT) for in line messages ;; produced by PRINC of a string or symbol. This should be on by default. (SETQ USE-STRT7 T) (setq ibase 10. base 10. *nopoint nil) ;; FEATURES: (SSTATUS FEATURE PDP10) (SSTATUS FEATURE GC) ;; When compiling via :CL, don't bother splitting up files. ;; Only split when debugging via :MCL. (COND ((NOT (STATUS FEATURE MACSYMA-COMPLR)) (DEFUN SPLITFILE FEXPR (X) NIL))) (LOAD-MACSYMA-MACROS MFORMA ERMSGC) )) (SETQ RUNTIME-OPTIONS-RUNTIME NIL) ;; MACRO, to support files used by macsyma system programmers to make ;; RUNTIME files. i.e. various syntactical extensions to the system. (SETQ NEEDED-MACRO-FILES-MACRO '((UMLMAC "DSK:LISP;") (MAXMAC) (LMMAC) (MFORMA))) (SETQ EVALUATOR-OPTIONS-MACRO '( ;; FEATURES: (STATUS FEATURE PDP10) )) (SETQ COMPILER-OPTIONS-MACRO '( ;; Make DEFUN generate inline code for args checking. This is only ;; for compile and eval time usage, so we don't lose anything. (SETQ DEFUN&-CHECK-ARGS T) ;; Compile macros and put them in the fasl file. (SETQ DEFMACRO-FOR-COMPILING T) (MACROS T) ;; Use an ASCII encoding scheme (rather than SIXBIT) for in line messages ;; produced by PRINC of a string or symbol. (SETQ USE-STRT7 T) ;; FEATURES: (STATUS FEATURE PDP10) )) (SETQ RUNTIME-OPTIONS-MACRO NIL)