home *** CD-ROM | disk | FTP | other *** search
- ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷.)
- (setq *recording* nil)
- (setq *max-record-index* 31.)
- (putvector *record-array* 0. nil))
-
- ; *max-record-index* holds the maximum legal index for record-array
- ; so it and the following must be changed at the same time
-
- (defun begin-record (pdata-matched* *p-name*
- *variable-memory* *ce-variable-memory* *max-index*
- *next-index* *size-result-array* *rest* *build-trace* *last*
- *ptrace* *wtrace* *in-rhs* *recording* *accept-file* *trace-file*
- *write-file* *record-index* *max-record-index* *old-wm*
- *record* *filters* *break-flag* *strategy* *remaining-cycles*
- *wm-filter* *rhs-bound-vars* *rhs-bound-ce-vars* *ppline*
- *ce-count* *brkpts* *class-list* *buckets* *action-type*))
-
- (declare$ ! FILE: sys$user:[gdw.opsl]createops.com;2
- $ ! LastEditDate = Tue Dec 4 00:04:37 1984 GDW
- $ !
- $ ! CREATEOPS.COM: This file will compile the common lisp ops source
- $ ! (ops.lsp), then load the compiled code with several utilities and
- $ ! create a suspended image (OPS.SUS). When this image is resumed, using
- $ ! the command LISP /RESUME=OPS.SUS , you will be in ops.
- $ !
- $ ! required files:
- $ ! OPS.LSP -- the 'common' common lisp ops source
- $ ! OPSENV.LSP -- several utilities, including key bindings for
- $ ! SPAWN/ATTACH to a dcl process, and ATTACH to
- $ ! an EMACS process named EMACS$<term> where <term>
- $ ! is the users terminal (line) name. The function (??)
- $ ! gives some aid on this. I suggest using LISP2 mode.
- $ ! ALSO includes Lisp functions to define (daytime)
- $ ! which returns the time and date as a string.
- $ !
- $ ! source: sys$user:[gdw.opsl]bops.com;1
- $ ! EditDate = Mon Jul 16 18:27:26 1984 GDW
- $ !
- $ lisp/compile ops.lsp
- $ !
- $ ! source: sys$user:[gdw.opsl]sops.com;1
- $ ! EditDate = Wed Jul 18 18:48:43 1984 GDW
- $ !
- $ lisp
- ()
- (load "ops.fas")
- (load 'opsenv)
-
- (block saveit
- (setq *ops-date* (daytime))
- (suspend "ops")
- (setq *top-level-prompt* "CLops: ")
- (setq *EMACS-PROCESS-NAME* (CONCATENATE 'STRING "EMACS$"
- (SYSTEM:REMOVE #\: (TERM))))
- (setq *emacs-lisp-file* "SYS$LOGIN:LEDIT.TMP")
- (terpri)
- (princ "Welcome to Common Lisp Ops 0.9")
- (terpri)
- (princ " Image Created ")
- (princ *ops-date*)
- (terpri)
- (princ
- " ^C = Ops Break. ^Z = Lisp throw to previous command level. (??) help ")
- (vms-keyboard-bindings))
- ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷;
- ;
- ; VPS2 -- Interpreter for OPS5
- ;
- ; Copyright (C) 1979, 1980, 1981
- ; Charles L. Forgy, Pittsburgh, Pennsylvania
- ;
- ;
- ; Re-ported to vax/vms lisp GDW
- ;
- ; Spice Lisp mods by Dario Giuse for Common Lisp on a Perq.
- ;
- ; vax/vms common lisp mods by George Wood
- ;
- ; uses some common lisp mods by Jim Kowalski
- ; fix ppelm: curpos problem
- ; clops127.cl: vax/vms common lisp ops5 interpreter with 127 condition ele.
- ;
- ; Users of this interpreter are requested to contact
- ;
- ; Charles Forgy
- ; Computer Science Department
- ; Carnegie-Mellon University
- ; Pittsburgh, PA 15213
- ; or
- ; Forgy@CMUA
- ;
- ; so that they can be added to the mailing list for OPS5. The mailing list
- ; is needed when new versions of the interpreter or manual are released.
- ;
- ; REPORT BUGS IN THIS VERSION TO:
- ; George Wood
- ; Computer Science Department
- ; Carnegie-Mellon University
- ; Pittsburgh, PA 15213
- ; arpanet : George.Wood@CMU-CS-A
- ;
-
-
- ;[ Add this entry to the front of the file ]
-
- ; 7/6/84 George Wood
- ; - Re-ported to vax/vms lisp
- ; - UNINTERN for WRITE, REMOVE conditionalized using SHARPSIGN-MINUS VMS
- ; compiler reacts badly to it.
- ; - VMS-KEYBOARD-BINDINGS BLOCK INCLUDED IN SHARPSIGN-PLUS VMS CONDITIONAL
- ; - started cleaning up old comments
- ;
- ; 6/22/84 Dario Giuse
- ; - Replacing printline with format
- ;
- ; 6/21/84 Dario Giuse
- ; - Replaced the system::macro business with a honest-to-god (defmacro).
- ; - Rewrote getvector and putvector in sensible Common Lisp.
- ;
- ; 6/20/84 Dario Giuse
- ; - Completely rewrote ops-acceptline. This is now working properly in Spice
- ; Lisp, and since it only uses Common Lisp I believe it will work in any
- ; Common Lisp installation. This version does not do any peek-char; it just
- ; reads the whole line and works from there.
- ; - Removed the now obsolete function span-char.
- ;
- ; 6/19/84 Dario Giuse
- ; - Uncommented do-write
- ; - Changed t to *standard-output* in several places.
- ; - Added a force-output to ops-write, since lines without a Newline are not
- ; printed by default in Spice Lisp (and many other Common Lisp
- ; implementations). This should probably be done only for
- ; *standard-output*, not for all files.
- ;
- ; 6/8/84 Jcp
- ; Changed (setq *refracts* (delete (cons a b) *refracts*)) to
- ; (setq *refracts* (spdelete (cons a b) *refracts*))
- ;
- ; Also defined a new function called spdelete to delete things
- ; from *refracts* properly. This fixes a bug where going back
- ; and then forwards didn't fire the same rules.
- ;
- ;changes made by gdw
- ; Tue Jul 17 22:59:52 1984:
- ; calls to fast-symeval replaced by calls to symbol-value
- ;;;
- ; changed macro to system::macro to access buried fn OBSOLETE
- ; put stuff to unexport & unintern the fns write & remove from
- ; user: package in clopxtra.cl
- ;; ADDED SETBREAK, DEFINE-KEYBOARD-AST FOR ^D --> OPS BREAK CHAR feb 8 84
- ; To make problems easy to find, I have marked comments with:
- ; ??? = possible problems
- ; @@@ = changes (kluges ? working modifications)
- ; ### commented out lines -- temporary hacks?
- ;
- ;; VERSION WITH 127 CONDITION ELEMENTS, NOT 64 -- Jan 13, 1984
- ;
- ;@@@ dec 8 83: added comma to list of skipped char in acceptline
- ;
- ; KNOWN & SUSPECTED PROBLEMS:
- ; see note-write below: This should be redone using packages, when
- ; implemented.
- ; DECLARE's should be replaced with PROCLAIM's
- ; ACCEPTLINE doesn't work right in x0.4-0, due to peek-char bug in
- ; that version. local kluges either redefine peek-char with
- ; read-char & unread char or use XSEL's redefined acceptline, or both.
- ; possible problems with openfile/write:
- ; lisp sometimes doesn't think its a char output stream
- ; problems with remove (doesn't select top-level-remove, recognize *)
- ; NOTE; this happens when execution is broken while in the rhs
- ; of an ops rule -- to correct, (setq *in-rhs* nil)
- ;
- ; problem with (pm) ? (not clear)
- ;
- ; CHANGES, MOST RECENT FIRST
- ; replaced dtpr with consp. (defun didn't work: 13 below)
- ; re-defined tyi @@@ (kowalski's didn't work)
- ; replaced "(times " with "(* " ))
- ; replaced "(greaterp " with (> " (all had 2 args)))
- ; defined infile as open input:
- ; defined outfile as open output:
- ; kluged do-tabto and do-rjust, to avoid messing with flatc & nwritn/
- ; \these kluges are terrible, but should have only cosmetic effects
- ; THEY NOW USE (FORMAT ...), WHICH IS BUGGY IN X0.4-0
- ; commented out (comment function)
- ; changed ==; clisp didn't seem to like the macro def
- ; changed "plus" to "+" throughout
- ; changed quotient to truncate or round;
- ; in ops-compute this may be inappropriate
- ;
- ; @@@ NOTE ON FNS WRITE & REMOVE
- ;note-write
- ;since write is a clisp instinsic, I have changed it to write-ops
- ;until the package feature of common lisp is implemented in declisp--
- ;at that point this kluge may be removed. Ditto for remove/remove-ops-
- ;--In this version, I have uninterned the common lisp intrinsic write
- ;and remove in the separate file clopxtra.cl, to be loaded uncompiled
- ;after clops127.fas is loaded
- ;
- ;
- ; Table of changes made by kowalski to bring ops up under common lisp
- ; (SOME ARE MODIFIED. GDW)
- ; 1) Changed "def" to "defun" throughout. (4/11/83)
- ; 2) Changed "difference" to "-" throughout (2 places). (4/12/83)
- ; 3) Changed the "defun x macro" forms (of which there were 5)
- ; to the macro form of common lisp. (4/20/83)
- ; 4) Added macro def of "putprop" (4/21/83)
- ; 5) changed "setsyntax" to appropriate form of "set-macro-character"
- ; 6) converted fexprs to regular defuns by changing the name of
- ; each fexpr to "ops-.....", deleting the "fexpr", and adding
- ; a macro for each with the name of the original fexpr. 5/23/83
- ; 7) Replaced all "]" (superparentheses) with appropriate number of
- ; regular ones. (5/23/83)
- ; 8) Made changes to the individual functions containing the Franz
- ; "concat" form (instead of writing a macro). (5 places) (6/26/83)
- ; 9) Inverted the arguments of the two uses of "catch" so that tag
- ; is the first argument as required in CLisp. (6/26/83)
- ; I'm really unsure about whether symbolic tags must be quoted in
- ; catch forms.
- ; 10) Changed (member x y ) forms to (member x y :test #'equal) forms
- ; and (memq ..) forms to (member ...). (6/26/83)
- ; 11) Changed the getchar form and index parameter since the first position
- ; of a string is 0 in CommonLisp and 1 in Franz.
- ; 12) Added defmacro for ncons.
- ; @@@ X 13) Added auxiliary function defining function dtpr as consp.
- ; 14) Added auxiliary function defining function fix as floor.
- ; 15) Added auxiliary function defining function tyipeek as peek-char
- ; 16) Added auxiliary function defining = as equal.
-
- ;;; Definitions
-
- ;@@@ added -- bound but not referenced
- (proclaim '(special erm *break-character*))
-
- (proclaim
- '(special *matrix* *feature-count* *pcount* *vars* *cur-vars*
- *curcond* *subnum* *last-node* *last-branch* *first-node*
- *sendtocall* *flag-part* *alpha-flag-part* *data-part*
- *alpha-data-part* *ce-vars* *virtual-cnt* *real-cnt*
- *current-token* *record-array* *result-array*
- *max-cs* *total-cs* *limit-cs* *cr-temp* *side*
- *conflict-set* *halt-flag* *phase* *critical*
- *cycle-count* *total-token* *max-token* *refracts*
- *limit-token* *total-wm* *current-wm* *max-wm*
- *action-count* *wmpart-list* *wm* *data-matched* *p-name*
- *variable-memory* *ce-variable-memory* *max-index*
- *next-index* *size-result-array* *rest* *build-trace* *last*
- *ptrace* *wtrace* *in-rhs* *recording* *accept-file* *trace-file*
- *write-file* *record-index* *max-record-index* *old-wm*
- *record* *filters* *break-flag* *strategy* *remaining-cycles*
- *wm-filter* *rhs-bound-vars* *rhs-bound-ce-vars* *ppline*
- *ce-count* *brkpts* *class-list* *buckets* *action-type*))
-
-
-
- (proclaim '(special *c1* *c2* *c3* *c4* *c5* *c6* *c7* *c8* *c9*
- *c10* *c11* *c12* *c13* *c14* *c15* *c16* *c17* *c18* *c19*
- *c20* *c21* *c22* *c23* *c24* *c25* *c26* *c27* *c28* *c29*
- *c30* *c31* *c32* *c33* *c34* *c35* *c36* *c37* *c38* *c39*
- *c40* *c41* *c42* *c43* *c44* *c45* *c46* *c47* *c48* *c49*
- *c50* *c51* *c52* *c53* *c54* *c55* *c56* *c57* *c58* *c59*
- *c60* *c61* *c62* *c63* *c64* *c65* *c66* *c67* *c68* *c69*
- *c70* *c71* *c72* *c73* *c74* *c75* *c76* *c77* *c78* *c79*
- *c80* *c81* *c82* *c83* *c84* *c85* *c86* *c87* *c88* *c89*
- *c90* *c91* *c92* *c93* *c94* *c95* *c96* *c97* *c98* *c99*
- *c100* *c101* *c102* *c103* *c104* *c105* *c106* *c107* *c108*
- *c109* *c110* *c111* *c112* *c113* *c114* *c115* *c116* *c117*
- *c118* *c119* *c120* *c121* *c122* *c123* *c124* *c125* *c126*
- *c127* ))
-
- #|
- (proclaim '(localf ce-gelm gelm peek-sublex sublex
- eval-nodelist sendto and-left and-right not-left not-right
- top-levels-eq add-token real-add-token remove-old
- remove-old-num remove-old-no-num removecs insertcs dsort
- best-of best-of* conflict-set-compare =alg))
- |#
-
-
-
- ;;; Dario Giuse - July 2, 1984
- ;;; Two little unpleasant things. These are Common Lisp primitives, and we
- ;;; need to redefine them here.
- ;;;
-
- ; UNINTERN COMMENTED OUT OF VAX LISP VERSION, SINCE COMPILER CAN'T
- ; HANDLE IT
-
- #-vms (unexport 'remove (find-package 'lisp))
- #-vms (unintern 'remove (find-package 'user))
- #+vms (shadow 'remove (find-package 'user))
-
- ;;; gdw changed name from 'remove' since DECLISP uses that fname.
- (defmacro remove (&body z)
- `(ops-remove ',z))
-
- #-vms (unexport 'write (find-package 'lisp))
- #-vms (unintern 'write (find-package 'user))
- #+vms (shadow 'write (find-package 'user))
-
- (defmacro write (&body z)
- `(ops-write ',z))
-
-
-
- ;;; ------------------------------------------------------------
-
-
- ;;; Auxiliary macros added by JGK to convert the fexprs.
- ;;; Dario Giuse - converted to use regular Common Lisp defmacros.
-
- (defmacro literal (&body z)
- `(ops-literal ',z))
-
- (defmacro literalize (&body z)
- `(ops-literalize ',z))
-
- (defmacro vector-attribute (&body l)
- `(ops-vector-attribute ',l))
-
- (defmacro p (&body z)
- `(ops-p ',z))
-
- (defmacro wm (&body a)
- `(ops-wm ',a))
-
- (defmacro make (&body z)
- `(ops-make ',z))
-
- (defmacro modify (&body z)
- `(ops-modify ',z))
-
- (defmacro bind (&body z)
- `(ops-bind ',z))
-
- (defmacro cbind (&body z)
- `(ops-cbind ',z))
-
- (defmacro call (&body z)
- `(ops-call ',z))
-
- (defmacro build (&body z)
- `(ops-build ',z))
-
- (defmacro openfile (&body z)
- `(ops-openfile ',z))
-
- (defmacro closefile (&body z)
- `(ops-closefile ',z))
-
- (defmacro default (&body z)
- `(ops-default ',z))
-
- (defmacro accept (&body z)
- `(ops-accept ',z))
-
- (defmacro acceptline (&body z)
- `(ops-acceptline ',z))
-
- (defmacro substr (&body l)
- `(ops-substr ',l))
-
- (defmacro compute (&body z)
- `(ops-compute ',z))
-
- (defmacro arith (&body z)
- `(ops-arith ',z))
-
- (defmacro litval (&