Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What is LISP; @ FASL? #1081

Open
eswenson1 opened this issue Jul 19, 2018 · 3 comments
Open

What is LISP; @ FASL? #1081

eswenson1 opened this issue Jul 19, 2018 · 3 comments
Labels

Comments

@eswenson1
Copy link
Member

The PI distribution (and backups of MC) include the file LISP; @ FASL. It isn't clear to me what this does and where its source is. Using FASLRE to inspect the code provides some clues:

(EVAL PNPUT (QUOTE (356315760710 -130423057532 -351267157634 345420_22)) NIL)
(EVAL NIL SETQ (QUOTE SETQ))
(EVAL T SETQ +INTERNAL-STRING-MARKER NIL)
(EVAL PROGN (COND ((STATUS NOFEATURE NOLDMSG) (TERPRI MSGFILES) (PRINC SETQ MSGFILES))) (COND ((LISPV (STATUS /2071) (QUOTE PUTPRO!
P)) (SETF (QUOTE /291) (QUOTE VERSION) (QUOTE PUSH))) ((QUOTE +INTERNAL-STRING-MARKER) (LAMBDA (QUOTE (X (OR) (FILE-EXIT-FUNCTIONS!
OR (T /291 VERSION PUSH)))) NIL))) (QUOTE VERSION))
(EVAL FILE-EXIT-FUNCTIONS (EVAL-ORDERED* (QUOTE GET)) (AUTOLOAD (QUOTE GET) (QUOTE LISP)) (T GET ((EVONCE) FASL NIL) LISP))
(EVAL DEFUPDATE (QUOTE NIL) (QUOTE DEFUPDATE))
(EVAL T |DEFUPDATE MACRO| MACRO NIL)
(EXT CALL 1 LENGTH)
(EXT NCALL 1 |Wrong number args for macro|)
(EXT JCALL 16 CDR)
(EXT CALL 3 SUBR)
(ENTRY MACRO NIL (NIL . 1))
(EXT CALL 1 SETF-SIMPLEP-SCAN)
(EXT CALL 2 |constant-p/||)
(EXT CALL 1 GENTEMP)
(EXT CALL 16 :LOCAL-VAR)
(EXT CALL 3 SETF)
(EXT CALL 1 SETF-INVERT-FORM)
(EXT CALL 2 *APPEND)
...

But I haven't found any source that does this, nor source that is similar to this.

We should figure out what this is/does and how to build it, and decide whether to include it in DB.

@larsbrinkhoff
Copy link
Member

larsbrinkhoff commented Jul 19, 2018 via email

@eswenson1
Copy link
Member Author

We have it as part of DB already RLB; FASLRE 116, LIBLSP; FASLRE FASL, and documentation in LIBDOC; FASLRE INFO.

@eswenson1
Copy link
Member Author

eswenson1 commented Jul 20, 2018

Here's a complete hack that I wrote quickly to dump out a fasl file:

(load '((liblsp) faslre))

(defun autoload (&rest rest)
  (print rest))

(defun dumpfasl (filespec)
  (let ((fasl (faslreadopen filespec)))
    (do ((sexp (faslread fasl) (faslread fasl)))
        ((equal sexp '(eof)))
      (print sexp))
    (faslreadclose fasl)))

The definition of the function autoload is there because without it, certain fasl files would not dump out -- for some reason during FASLREAD, it would attempt to evaluate an autoload form. I don't really know why, but at least the hack allows the dumping out of LISP; @ FASL and I can sort of figure out what it is trying to do by looking at the forms that are printed out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants