axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] [build-improvements] Remove dead packages


From: Gabriel Dos Reis
Subject: [Axiom-developer] [build-improvements] Remove dead packages
Date: 24 Mar 2007 19:07:07 -0500

This patch removes dead packages SCRATCHPAD_COMPILER and SPECFNSF.
Furthermore, it removes "define-macro" which is not used anywhere.
GCL's extension system::getenv is consistently used with
package name prefix, so we don't need any import or whatever.

Applied to build-improvements.

Next, I would like to move VMLISP content to BOOT.  The existing
separate VMLISP package definition followed by a long list of import
of almost all of VMLISP in BOOT is an over-engineering.

Next, I would like to have a less confusing naming for packages that
contain Boot to Lisp translator, and Axiom interpreter and compilers.

-- Gaby

2007-03-24  Gabriel Dos Reis  <address@hidden>

        * vmlisp.lisp.pamphlet (define-macro): Likewise.
        * sys-pkg.lisp.pamphlet: Remove dead packages SCRATCHPAD_COMPILER
        and SPECFNSF.
        (define-macro): Remove.
        Remove explicit import of GCL's system::getenv.

*** src/interp/sys-pkg.lisp.pamphlet    (revision 19354)
--- src/interp/sys-pkg.lisp.pamphlet    (local)
***************
*** 1,79 ****
  \documentclass{article}
  \usepackage{axiom}
! \begin{document}
! \title{\$SPAD/src/interp sys-pkg.lisp}
  \author{Timothy Daly}
  \maketitle
  \begin{abstract}
  \end{abstract}
  \newpage
  \tableofcontents
  \newpage
  \section{Non-portable code}
  \subsection{GCL only code}
  This section contains code that will only work in Gnu Common Lisp
  (GCL). These tagged symbols are split out so we can find suitable
  replacements in other common lisps.
! \subsubsection{GETENV}
! GETENV is a GCL function to return the value of shell variables
! from the environment.
! <<GCL.GETENV>>=
! #+:GCL   SYSTEM:GETENV
! @ 
! \subsubsection{DEFINE-MACRO}
! <<GCL.DEFINE-MACRO>>=
! #+:GCL    SYSTEM:DEFINE-MACRO 
! @ 
  \subsubsection{MEMQ}
  <<GCL.MEMQ>>=
  #+:GCL    SYSTEM:MEMQ 
  @ 
  \subsubsection{PNAME}
  <<GCL.PNAME>>=
  #+:GCL    SYSTEM:PNAME
  @ 
- \section{New Common Lisp Changes}
- \subsection{in-package change}
- Common lisp has changed in-package to require a string-designator which
- is a character, string, or symbol. Further, if the package does not exist
- then in-package will throw an error. We fix this by using defpackage.
- We create all of the known packages here.
- <<*>>=
- <<license>>
  
! @
! The spad compiler package. Although I believe this is a dead
! package at this point. All of the symbols from this package
! have been moved into the boot package.
  <<*>>=
! (make-package "SCRATCHPAD_COMPILER")
  @
- The special functions package. There was originally lisp code
- to support hardcoded knowledge of special functions like gamma.
- This is also a dead package as the functions have been lifted
- to the algebra level.
- <<*>>=
- (make-package "SPECFNSF")
  
! @
! This is the package that originally contained the VMLisp macros
  but in fact contains macros to support several other lisps. It
  is essentially the place where most of the macros to support
! idioms from prior ports (like rdefiostream and fileactq)
  <<*>>=
  (make-package "VMLISP")
  (in-package "VMLISP")
  (lisp::use-package '("USER" "SYSTEM" "LISP"))
  
  @
! This is the boot to lisp compiler package which contains the
! src/boot files. Tt is the boot translator package.
  <<*>>=
  (make-package "BOOTTRAN")
  (in-package "BOOTTRAN")
  (lisp::use-package '("LISP"))
  
  @
  Everything in axiom that the user references eventually shows
  up here. The interpreter and the algebra are run after switching
  to the boot package (in-package "BOOT") so any symbol that the
--- 1,81 ----
+ %% Oh Emacs, this is a -*- Lisp -*- file, despite appearance.
  \documentclass{article}
  \usepackage{axiom}
! 
! \title{\Fil{src/interp/sys-pkg.lisp} Pamphlet}
  \author{Timothy Daly}
+ 
+ \begin{document}
  \maketitle
+ 
  \begin{abstract}
  \end{abstract}
  \newpage
  \tableofcontents
  \newpage
+ 
+ 
  \section{Non-portable code}
+ 
  \subsection{GCL only code}
+ 
  This section contains code that will only work in Gnu Common Lisp
  (GCL). These tagged symbols are split out so we can find suitable
  replacements in other common lisps.
! 
  \subsubsection{MEMQ}
  <<GCL.MEMQ>>=
  #+:GCL    SYSTEM:MEMQ 
  @ 
+ 
  \subsubsection{PNAME}
  <<GCL.PNAME>>=
  #+:GCL    SYSTEM:PNAME
  @ 
  
! 
! \section{The many packages}
! 
! Building \Tool{Axiom}, in its current state, requires five packages.
! We create all of them here.  
  <<*>>=
! <<license>>
  @
  
! \subsection{The [[VMLISP]] package}
! 
! This is the package that originally contained the \Tool{VMLisp} macros
  but in fact contains macros to support several other lisps. It
  is essentially the place where most of the macros to support
! idioms from prior ports (like [[rdefiostream]] and [[fileactq]])
  <<*>>=
  (make-package "VMLISP")
  (in-package "VMLISP")
  (lisp::use-package '("USER" "SYSTEM" "LISP"))
  
  @
! 
! We plan to move the content of [[VMLISP]] to [[BOOT]].
! 
! 
! \subsection{The [[BOOTTRAN]] package}
! 
! This is the old Boot to Lisp translator package.
  <<*>>=
  (make-package "BOOTTRAN")
  (in-package "BOOTTRAN")
  (lisp::use-package '("LISP"))
  
  @
+ 
+ Note that the directory \File{src/boot} defines similar package
+ for ``new Boot'' (or Shoe).  Eventually, the old Boot to Lisp 
+ translator will disappear so that the [[BOOTTRAN]] package will 
+ not be created here anymore.
+ 
+ 
+ \subsection{The [[BOOT]] package}
+ 
  Everything in axiom that the user references eventually shows
  up here. The interpreter and the algebra are run after switching
  to the boot package (in-package "BOOT") so any symbol that the
*************** interpreter or algebra uses has to (coug
*** 84,89 ****
--- 86,99 ----
  (lisp::use-package '("VMLISP" "LISP"))
  
  @
+ 
+ Note that it is confusing the package \Tool{Axiom}'s compiler and
+ interpreter use is called [[BOOT]].  It should have been
+ [[Spad]], or better yet [[Axiom]].
+ 
+ 
+ \subsection{The [[FOAM]] package}
+ 
  FOAM is the intermediate language for the aldor compiler. FOAM
  means "first order abstract machine" and functions similar to
  RTL for the GCC compiler. It is a "machine" that is used as the
*************** expanded for the real target machine (or
*** 95,100 ****
--- 105,113 ----
  (lisp::use-package '("LISP"))
  
  @
+ 
+ \subsection{The [[FOAM-USER]] package}
+ 
  FOAM-USER is the package containing foam statements and macros
  that get inserted into user code versus the foam package which
  provides support for compiler code.
*************** provides support for compiler code.
*** 109,115 ****
      '(VMLISP::ERROROUTSTREAM LISP::COUNT VMLISP::NE VMLISP::FLUID
         LISP:SEQUENCE VMLISP::OBEY LISP:NUMBER VMLISP::|union|
         LISP:STEP VMLISP::OPTIONLIST VMLISP::EXIT VMLISP::throw-protect
- <<GCL.GETENV>>
           VMLISP::*INDEX-FILENAME*))
  (lisp:export
      '(BOOT::|$FormalMapVariableList| BOOT::|$userModemaps|
--- 122,127 ----
*************** provides support for compiler code.
*** 327,339 ****
  ;;; Definitions for package VMLISP of type EXPORT
  (lisp:in-package "VMLISP")
  (lisp:import '(
- <<GCL.DEFINE-MACRO>>
  <<GCL.MEMQ>>
  <<GCL.PNAME>>
          BOOT:|directoryp|))
  (lisp:export
      '(VMLISP::SINTP VMLISP::$FCOPY 
- <<GCL.DEFINE-MACRO>>
  <<GCL.MEMQ>>
  <<GCL.PNAME>>
           VMLISP::PUT
--- 339,349 ----
*************** provides support for compiler code.
*** 465,471 ****
  
  ;;; Definitions for package VMLISP of type SHADOW
  (lisp:in-package "VMLISP")
! (lisp:import '(SYSTEM::DEFINE-MACRO SYSTEM::MEMQ SYSTEM::PNAME))
  
  
  (in-package "BOOT") ;; Used to be "UNCOMMON"
--- 475,481 ----
  
  ;;; Definitions for package VMLISP of type SHADOW
  (lisp:in-package "VMLISP")
! (lisp:import '(SYSTEM::MEMQ SYSTEM::PNAME))
  
  
  (in-package "BOOT") ;; Used to be "UNCOMMON"
*************** FOAM::|BIntTimesPlus|
*** 1071,1077 ****
--- 1081,1090 ----
  FOAM::|BIntNext|
  ))
  @
+ 
+ 
  \section{License}
+ 
  <<license>>=
  ;; Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
  ;; All rights reserved.
*** src/interp/util.lisp.pamphlet       (revision 19354)
--- src/interp/util.lisp.pamphlet       (local)
***************
*** 1,15 ****
  \documentclass{article}
  \usepackage{axiom}
! \begin{document}
  \title{\$SPAD/src/interp util.lisp}
  \author{Timothy Daly}
  \maketitle
  \begin{abstract}
  \end{abstract}
  \eject
  \tableofcontents
  \eject
  \section{util.lisp}
  This file is a collection of utility functions that are useful
  for system level work. A couple of the functions, {\bf build-depsys}
  and {\bf build-interpsys} interface to the src/interp/Makefile.
--- 1,22 ----
+ % Oh Emacs, this is a -*- Lisp -*- file, despite appearance.
  \documentclass{article}
  \usepackage{axiom}
! 
  \title{\$SPAD/src/interp util.lisp}
  \author{Timothy Daly}
+ 
+ \begin{document}
  \maketitle
+ 
  \begin{abstract}
  \end{abstract}
  \eject
  \tableofcontents
  \eject
+ 
+ 
  \section{util.lisp}
+ 
  This file is a collection of utility functions that are useful
  for system level work. A couple of the functions, {\bf build-depsys}
  and {\bf build-interpsys} interface to the src/interp/Makefile.
*************** search Emacs TAGS files.
*** 29,35 ****
--- 36,44 ----
  A fifth group of related functions are some translated boot
  functions we need to define here so they work and are available
  at load time.
+ 
  \subsection{Building Depsys (build-depsys)}
+ 
  The {\bf depsys} image is one of the two images we build from
  the src/interp subdirectory (the other is {\bf interpsys}). We
  use {\bf depsys} as a compile-time image as it contains all of
*************** loaded.
*** 56,62 ****
--- 65,73 ----
  ;;                  :rpages 1000 :hole 2000) )
  
  @
+ 
  \subsubsection{make-depsys}
+ 
  When we are building a {\bf depsys} image for AKCL (now GCL) we need
  need to initialize some optimization routines. Each time a file is
  compiled in GCL we collect some function information and write it
*************** into the image. It used to read:
*** 90,95 ****
--- 101,107 ----
    )
  
  @
+ 
  \subsection{Building Interpsys (build-interpsys)}
  \begin{verbatim}
  ;############################################################################
*************** After this function is called the image 
*** 158,164 ****
--- 170,178 ----
   )
  
  @
+ 
  \subsubsection{GCL porting changes}
+ 
  GCL likes to output lines of the form:
  \begin{verbatim}
  ;; Note: Tail-recursive call of |matSuperList1| was replaced by iteration.
*************** he was debugging tail-recursive replacem
*** 169,175 ****
--- 183,192 ----
    #+:AKCL
    (setq compiler::*suppress-compiler-notes* t)
  @
+ 
+ 
  \subsection{The variables}
+ 
  Various lisps use different ``extensions'' on the filename to indicate
  that a file has been compiled. We set this variable correctly depending
  on the system we are using.
*************** on the system we are using.
*** 182,195 ****
--- 199,217 ----
    #+:ccl "not done this way at all")
  
  @
+ 
  \subsubsection{directory-list}
+ 
  This is the system-wide list of directories to search.
  It is set up in the {\bf reroot} function.
  <<directory-list>>=
  (defvar $directory-list ())
  
  @
+ 
+ 
  \subsubsection{relative-directory-list}
+ 
  The relative directory list specifies a search path for files 
  for the current directory structure. It has been changed from the
  NAG distribution back to the original form. 
*************** NAG distribution back to the original fo
*** 202,222 ****
--- 224,252 ----
      "/doc/spadhelp/" ))
  
  @
+ 
+ 
  \subsubsection{library-directory-list}
+ 
  This is the system-wide search path for library files.
  It is set up in the {\bf reroot} function.
  <<library-directory-list>>=
  (defvar $library-directory-list ())
  
  @
+ 
  \subsubsection{relative-library-directory-list}
+ 
  The relative directory list specifies how to find the algebra
  directory from the current {\bf AXIOM} shell variable.
  <<relative-library-directory-list>>=
  (defvar $relative-library-directory-list '("/algebra/"))
  
  @
+ 
+ 
  \subsection{The autoload list}
+ 
  There are several subsystems within {\bf AXIOM} that are not normally
  loaded into a running system. They will be loaded only if you invoke
  one of the functions listed here. Each of these listed functions will
*************** overwritten, the function call is retrie
*** 227,233 ****
--- 257,265 ----
  containing functions listed here are assumed to exist in the 
  {\bf autoload} subdirectory. The list of files to load is defined
  in the src/interp/Makefile.
+ 
  \subsubsection{setBootAutloadProperties}
+ 
  This function is called by {\bf build-interpsys}. It takes two lists.
  The first is a list of functions that need to be used as 
  ``autoload triggers''. The second is a list of files to load if one
*************** This helper function is listed below.
*** 246,252 ****
--- 278,286 ----
  )
  
  @
+ 
  \subsubsection{setBootAutoLoadProperty}
+ 
  This is a helper function to set up the autoload trigger. It sets
  the function cell of each symbol to {\bf mkBootAutoLoad} which is
  listed below. 
*************** listed below. 
*** 255,261 ****
--- 289,297 ----
    (setf (symbol-function func) (|mkBootAutoLoad| func file-list)) )
  
  @
+ 
  \subsubsection{mkBootAutoLoad}
+ 
  This is how the autoload magic happens. Every function named in the
  autoload lists is actually just another name for this function. When
  the named function is called we call {\bf boot-load} on all of the
*************** call succeeds.
*** 271,277 ****
--- 307,315 ----
                  (apply (symbol-function fn) args)))))
  
  @
+ 
  \subsubsection{boot-load}
+ 
  This function knows where the {\bf autoload} subdirectory lives.
  It is called by {\bf mkBootAutoLoad} above to find the necessary
  files.
*************** files.
*** 283,289 ****
--- 321,329 ----
      (load name)))
  
  @
+ 
  \subsubsection{setNAGBootAutloadProperties}
+ 
  This is a further refinement of the autoload scheme. Since the
  Numerical Algorithms Group (NAG) fortran library contains many
  functions we subdivide the NAG library subsystem into chapters.
*************** which files to load.
*** 299,305 ****
--- 339,347 ----
      file-list))
  
  @
+ 
  \subsubsection{get-NAG-chapter}
+ 
  This function is used to find the names of the files to load.
  On solaris 9 under GCL the original implementation will fail because
  the max number of arguments is 63. We rewrite it to get around this
*************** problem. It originally read:
*** 323,329 ****
--- 365,373 ----
    (nreverse r)))
  
  @
+ 
  \subsubsection{nag-files}
+ 
  We analyze the function names to decide which chapter we are in.
  We load files based on the chapter.
  <<nag-files>>=
*************** We load files based on the chapter.
*** 334,340 ****
--- 378,386 ----
       filelist)))
  
  @
+ 
  \subsubsection{chapter-name}
+ 
  The library names follow a convention that allows us to extract
  the chapter name. 
  <<chapter-name>>=
*************** the chapter name. 
*** 349,355 ****
--- 395,403 ----
  )
  
  @
+ 
  \subsubsection{parse-functions}
+ 
  This is the {\bf boot parser} subsystem. It is only needed by 
  developers who translate boot code to Common Lisp.
  <<parse-functions>>=
*************** developers who translate boot code to Co
*** 364,370 ****
--- 412,420 ----
        init-boot/spad-reader))
  
  @
+ 
  \subsubsection{comp-functions}
+ 
  This is the {\bf spad compiler} subsystem. It is only needed by
  developers who write or modify algebra code.
  <<comp-functions>>=
*************** developers who write or modify algebra c
*** 381,387 ****
--- 431,439 ----
        |sublisV|))
  
  @
+ 
  \subsubsection{browse-functions}
+ 
  This is the {\bf browser} subsystem. It will get autoloaded only
  if you use the browse function of the {\bf hypertex} system.
  <<browse-functions>>=
*************** if you use the browse function of the {\
*** 444,450 ****
--- 496,504 ----
        |unescapeStringsInForm|))
  
  @
+ 
  \subsubsection{translate-functions}
+ 
  This is a little used subsystem to generate {\bf ALDOR} code
  from {\bf Spad} code. Frankly, I'd be amazed if it worked.
  <<translate-functions>>=
*************** from {\bf Spad} code. Frankly, I'd be am
*** 455,461 ****
--- 509,517 ----
        ))
  
  @
+ 
  \subsubsection{asauto-functions}
+ 
  This is part of the {\bf ALDOR subsystem}. These will be loaded
  if you compile a {\bf .as} file rather than a {\bf .spad} file.
  {\bf ALDOR} is an external compiler that gets automatically called
*************** if the file extension is {\bf .as}.
*** 475,481 ****
--- 531,539 ----
          |attributesToAxFile| ))
  
  @
+ 
  \subsubsection{debug-functions}
+ 
  These are some {\bf debugging} functions that I use. I can't imagine
  why you might autoload them but they don't need to be in a running
  system.
*************** system.
*** 489,495 ****
--- 547,555 ----
        |showImp|))
  
  @
+ 
  \subsubsection{anna-functions}
+ 
  The {\bf ANNA} subsystem, invoked thru {\bf hypertex}, is an
  expert system that understands the Numerical Algorithms Group (NAG)
  fortran library. 
*************** fortran library. 
*** 523,529 ****
--- 583,591 ----
        |annaOdeDefaultSolve2|))
  
  @
+ 
  \subsubsection{nagbr-functions}
+ 
  The Numerical Algorithms Group (NAG) fortran library has a set
  of cover functions. These functions need to be loaded if you use
  the NAG library.
*************** the NAG library.
*** 564,571 ****
--- 626,637 ----
        ))
  
  @
+ 
+ 
  \subsection{The command-line build functions}
+ 
  \subsubsection{translist}
+ 
  Translate a list of boot files to common lisp.
  <<translist>>=
  (defun translist (fns)
*************** Translate a list of boot files to common
*** 574,580 ****
--- 640,648 ----
          fns))
  
  @
+ 
  \subsubsection{translate}
+ 
  Translate a single boot file to common lisp
  <<translate>>=
  (defun translate (file) ;; translates a single boot file
*************** Translate a single boot file to common l
*** 588,594 ****
--- 656,664 ----
      (boot bootfile (make-pathname :type "lisp" :defaults bootfile))))
  
  @
+ 
  \subsubsection{compile-boot-file}
+ 
  Translate a single boot file to common lisp, compile it 
  and load it.
  <<compile-boot-file>>=
*************** and load it.
*** 604,610 ****
--- 674,682 ----
  )
  
  @
+ 
  \subsubsection{retranslate-file-if-necessary}
+ 
  Retranslate a single boot file if it has been changed.
  <<retranslate-file-if-necessary>>=
  (defun retranslate-file-if-necessary (bootfile)
*************** Retranslate a single boot file if it has
*** 619,625 ****
--- 691,699 ----
                      (boot bootfile lfile) (list bootfile))))))
  
  @
+ 
  \subsubsection{retranslate-directory}
+ 
  Translate a directory of boot code to common lisp if the boot code
  is newer.
  <<retranslate-directory>>=
*************** is newer.
*** 631,637 ****
--- 705,713 ----
        (mapcan #'retranslate-file-if-necessary files)))
  
  @
+ 
  \subsubsection{recompile-NRLIB-if-necessary}
+ 
  Recompile a single library's lisp file if it is out of date.
  The {\bf recompile-lib-file-if-necessary} is defined in nlib.lisp.
  <<recompile-NRLIB-if-necessary>>=
*************** The {\bf recompile-lib-file-if-necessary
*** 640,646 ****
--- 716,724 ----
    (lift-NRLIB-name (namestring lib)))
  
  @
+ 
  \subsubsection{lift-NRLIB-name}
+ 
  We used to use FOO.NRLIB/code.o files for algebra. However there
  was no need for this additional level of indirection since the rest
  of the information in an NRLIB is now kept in the daase files. Thus
*************** we lift the FOO.NRLIB/code.o to FOO.o in
*** 651,657 ****
--- 729,737 ----
    nil)
  
  @
+ 
  \subsubsection{recompile-lib-directory}
+ 
  Recompile library lisp code if necessary.
  <<recompile-lib-directory>>=
  (defun recompile-lib-directory (dir)
*************** Recompile library lisp code if necessary
*** 662,668 ****
--- 742,750 ----
        (mapcan #'recompile-NRLIB-if-necessary files)))
  
  @
+ 
  \subsubsection{recompile-all-files}
+ 
  Force recompilation of all lisp files in a directory.
  <<recompile-all-files>>=
  (defun recompile-all-files (dir)
*************** Force recompilation of all lisp files in
*** 673,679 ****
--- 755,763 ----
       (mapcar #'compile-file files)))
  
  @
+ 
  \subsubsection{recompile-directory}
+ 
  This function will compile any lisp code that has changed in a directory.
  <<recompile-directory>>=
  (defun recompile-directory (dir)
*************** This function will compile any lisp code
*** 684,690 ****
--- 768,776 ----
        (mapcan #'recompile-file-if-necessary files)))
  
  @
+ 
  \subsubsection{recompile-file-if-necessary}
+ 
  This is a helper function that checks the time stamp between
  the given file and its compiled binary. If the file has changed
  since it was last compiled this function will recompile it.
*************** since it was last compiled this function
*** 700,706 ****
--- 786,794 ----
             (list bfile)))))
  
  @
+ 
  \subsubsection{our-write-date}
+ 
  Get the write date of a file. In GCL we need to check that it
  exists first. This is a simple helper function.
  <<our-write-date>>=
*************** exists first. This is a simple helper fu
*** 708,714 ****
--- 796,804 ----
                                  (file-write-date file)))
  
  @
+ 
  \subsubsection{fe}
+ 
  I'm unsure what this does but I believe it is related to an interpreter
  command. Invoking ``)fe'' in the interpreter tries to get at the 
  src/interp/TAGS file.
*************** src/interp/TAGS file.
*** 726,732 ****
--- 816,824 ----
                        (load (make-pathname :type *bin-path* :defaults 
tlispfile)))
        (load tlispfile))))
  @
+ 
  \subsubsection{fc}
+ 
  I'm unsure what this does but I believe it is related to an interpreter
  command. Invoking ``)fc'' in the interpreter tries to get at the 
  src/interp/TAGS file.
*************** src/interp/TAGS file.
*** 734,740 ****
--- 826,834 ----
  (defun fc (function file) (fe function file t))
  
  @
+ 
  \subsubsection{compspadfiles}
+ 
  The {\bf compspadfiles} function will recompile a list of {\bf spad} files.
  The filelist should be a file containing names of files to compile.
  <<compspadfiles>>=
*************** The filelist should be a file containing
*** 749,755 ****
--- 843,851 ----
              (spad fname (concat (pathname-name fname) ".out"))))))
  
  @
+ 
  \subsubsection{load-directory}
+ 
  Load a whole subdirectory of compiled files
  <<load-directory>>=
  (defun load-directory (dir)
*************** Load a whole subdirectory of compiled fi
*** 760,766 ****
--- 856,864 ----
        (mapcar #'load files)))
  
  @
+ 
  \subsubsection{interp-make-directory}
+ 
  This is used by the ")cd" system command.
  <<interp-make-directory>>=
  (defun interp-make-directory (direc)
*************** This is used by the ")cd" system command
*** 790,796 ****
--- 888,896 ----
        direc))))
  
  @
+ 
  \subsubsection{make-directory}
+ 
  Make a directory relative to the {\bf \$spadroot} variable.
  <<make-directory>>=
  (defun make-directory (direc)
*************** Make a directory relative to the {\bf \$
*** 815,821 ****
--- 915,923 ----
        direc))))
  
  @
+ 
  \subsubsection{recompile-all-libs}
+ 
  Occasionally it will be necessary to iterate over all of the NRLIB
  directories and compile each of the code.lsp files in every NRLIB.
  This function will do that. A correct call looks like:
*************** where the [[${SYS}]] variable is same as
*** 835,841 ****
--- 937,945 ----
         files)))
  
  @
+ 
  \subsubsection{recompile-all-algebra-files}
+ 
  We occasionally need to completely rebuild the algebra from the spad
  files. This function will iterate across a directory containing all
  of the spad files and attempt to recompile them. A correct call looks
*************** and all of the matching files would be r
*** 867,873 ****
--- 971,979 ----
         files)))
  
  @
+ 
  \subsubsection{boottocl}
+ 
  The {\bf boottocl} function is the workhorse function that translates
  {\bf .boot} files to {\bf Common Lisp}. It basically wraps the actual
  {\bf boot} function call to ensure that we don't truncate lines 
*************** because of {\bf *print-level*} or {\bf *
*** 888,894 ****
--- 994,1002 ----
        (merge-pathnames (make-pathname :type "clisp") file))))
  
  @
+ 
  \subsubsection{yearweek}
+ 
  We need a way of distinguishing different versions of the system.
  There used to be a way to touch the src/timestamp file whenever
  you checked in a change to the change control subsystem. 
*************** format string from the file [[src/doc/ms
*** 922,928 ****
--- 1030,1038 ----
        (setq *yearweek* "no timestamp")))
  
  @
+ 
  \subsubsection{makelib}
+ 
  Make will not compare dates across directories.
  Rather than copy all of the code.lsp files to the MNT directory
  we run this function to compile the files that are out of date
*************** need to be compiled without optimize due
*** 991,997 ****
--- 1101,1109 ----
        (compile-lib-file dotlsp :output-file doto)))))))
  
  @
+ 
  \subsubsection{makespad}
+ 
  Make will not compare dates across directories.
  In particular, it cannot compare the algebra files because there
  is a one-to-many correspondence. This function will walk over
*************** quality we check anyway.
*** 1067,1073 ****
--- 1179,1187 ----
       (format tmp ")co ~a~%" spad))))))
  
  @
+ 
  \subsubsection{libcheck}
+ 
  We need to ensure that the INTERP.EXPOSED list, which is a list
  of the exposed constructors, is consistent with the actual libraries.
  <<libcheck>>=
*************** of the exposed constructors, is consiste
*** 1199,1205 ****
--- 1313,1322 ----
      (format t "libcheck:~a has no spad source file~%" item)))))
  
  @
+ 
+ 
  \subsection{Constructing TAGS}
+ 
  TAGS are useful for finding functions if you run Emacs. We have a
  set of functions that construct TAGS files for Axiom.
  \subsubsection{make-tags-file}
*************** final TAGS file is constructed in the {\
*** 1215,1221 ****
--- 1332,1340 ----
    (obey "cat /tmp/boot.TAGS >> /tmp/TAGS"))
  
  @
+ 
  \subsubsection{spadtags-from-directory}
+ 
  This function will walk across a directory and call 
  {\bf spadtags-from-file} on each file.
  <<spadtags-from-directory>>=
*************** This function will walk across a directo
*** 1242,1248 ****
--- 1361,1369 ----
                     (write-line line tagstream)))))))
  
  @
+ 
  \subsubsection{spadtags-from-file}
+ 
  This function knows how to find function names in {\bf boot} code
  so we can add them to the TAGS file using standard etags format.
  <<spadtags-from-file>>=
*************** so we can add them to the TAGS file usin
*** 1283,1289 ****
--- 1404,1412 ----
                                          line-count char-count))  )))))))
  
  @
+ 
  \subsubsection{write-tag-line}
+ 
  This function knows how to write a single line into a TAGS file
  using the etags file format.
  <<write-tag-line>>=
*************** using the etags file format.
*** 1296,1309 ****
--- 1419,1436 ----
    (terpri tagstream))
  
  @
+ 
  \subsubsection{blankcharp}
+ 
  This is a trivial predicate for calls to {\bf position-if-not} in the
  {\bf findtag} function.
  <<blankcharp>>=
  (defun blankcharp (c) (char= c #\Space))
  
  @
+ 
  \subsubsection{findtag}
+ 
  The {\bf findtag} function is a user-level function to figure out
  which file contains a given tag. This is sometimes useful if Emacs
  is not around or TAGS are not loaded.
*************** is not around or TAGS are not loaded.
*** 1347,1353 ****
--- 1474,1482 ----
                       (return (cons sourcefile tagline))))))))
  
  @
+ 
  \subsubsection{match-lisp-tag}
+ 
  The {\bf match-lisp-tag} function is used by {\bf findtag}. This
  function assumes that \\ can only appear as first character of name.
  <<match-lisp-tag>>=
*************** function assumes that \\ can only appear
*** 1369,1376 ****
--- 1498,1509 ----
             (eq tag (read-from-string tagline nil nil :start pos))) ))
  
  @
+ 
+ 
  \subsection{Translated Boot functions}
+ 
  \subsubsection{string2BootTree}
+ 
  <<string2BootTree>>=
  (DEFUN |string2BootTree| (S)
    (init-boot/spad-reader)
*************** function assumes that \\ can only appear
*** 1384,1390 ****
--- 1517,1525 ----
      (DEF-RENAME (|new2OldLisp| PARSEOUT))))
  
  @
+ 
  \subsubsection{string2SpadTree}
+ 
  <<string2SpadTree>>=
  (DEFUN |string2SpadTree| (LINE)
    (DECLARE (SPECIAL LINE))
*************** function assumes that \\ can only appear
*** 1401,1413 ****
--- 1536,1553 ----
      PARSEOUT))
  
  @
+ 
  \subsubsection{processSynonyms}
+ 
  ;;--------------------> NEW DEFINITION (see i-syscmd.boot.pamphlet)
  <<processSynonyms>>=
  (defun |processSynonyms| () nil) ;;dummy def for depsys, redefined later
  
  @
+ 
+ 
  \section{License}
+ 
  <<license>>=
  ;; Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
  ;; All rights reserved.
*** src/interp/vmlisp.lisp.pamphlet     (revision 19354)
--- src/interp/vmlisp.lisp.pamphlet     (local)
*************** Contributed by Juergen Weiss.
*** 232,241 ****
  (defmacro dcq (&rest args)
   (cons 'setqp args))
  
- #-Lucid
- (defmacro define-macro (f v)
-  `(setf (macro-function ,f) (macro-function ,v)))
- 
  #-:CCL
  (defmacro difference (&rest args)
   `(- ,@args))
--- 232,237 ----






reply via email to

[Prev in Thread] Current Thread [Next in Thread]