magic/lisp
Darryl L. Miles 887eca61fe build: generate magic/tcltk/scmos/doc/lisp Makefiles from Makefile.in (rename unit)
Fourth batch of the Makefile.in migration: the top-level complex outliers
  magic tcltk scmos doc lisp
Pure renames -- content unchanged, so each still builds via the defs.mak
srcdir derivation; the @srcdir@ substitution follows.

Their nested children (scmos/cif_template and doc/{man,tutcells,html,
latexfiles}) are intentionally NOT converted here: scmos and doc recurse
into them with `-f ${MAGICSRC}/.../Makefile`, which keeps working only
while those children remain static Makefiles.  They convert in a later
step together with the parent-recursion updates.

* git mv <dir>/Makefile -> <dir>/Makefile.in (5 modules)
* configure.in: AC_CONFIG_FILES for each; regenerated configure.
* .gitignore: ignore each generated <dir>/Makefile, same commit.

Verified out-of-tree: full `make` rc=0 -- tclmagic.so, scmos techs (scmos
recurses into the static cif_template via -f, 8 objs), 27/28 docs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-26 14:54:11 -04:00
..
scm Convert $Id$ placeholders to $Header$ placeholders. 2020-05-23 17:00:38 -04:00
Makefile.in build: generate magic/tcltk/scmos/doc/lisp Makefiles from Makefile.in (rename unit) 2026-07-26 14:54:11 -04:00
README Convert $Id$ placeholders to $Header$ placeholders. 2020-05-23 17:00:38 -04:00
lisp.h Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
lispA-Z.c lisp: Add needed system #include directives 2026-07-23 16:10:09 -04:00
lispA-Z.h Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
lispArith.c Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
lispEval.c lisp: Add needed system #include directives 2026-07-23 16:10:09 -04:00
lispFrame.c Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
lispGC.c lisp: Add needed system #include directives 2026-07-23 16:10:09 -04:00
lispIO.c lisp: Add needed system #include directives 2026-07-23 16:10:09 -04:00
lispInt.h listInt.h: correct prototype names 2026-07-23 16:10:09 -04:00
lispMagic.c lisp: Add needed system #include directives 2026-07-23 16:10:09 -04:00
lispMain.c lisp: Add needed system #include directives 2026-07-23 16:10:09 -04:00
lispParse.c lisp: Clean up compiler warnings 2026-07-23 16:10:09 -04:00
lispPrint.c lisp: Clean up compiler warnings 2026-07-23 16:10:09 -04:00
lispString.c lisp: Add needed system #include directives 2026-07-23 16:10:09 -04:00
lispTrace.c Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00
lispargs.h Updates from running the fix-ending-whitespace script. 2020-05-23 17:13:14 -04:00

README

This is a mini-scheme interpreter, even though the files are all named
lisp*.{c,h}.

This interpreter is *extremely* slow. I can think of lots of ways to
improve its memory usage and performance (a factor of 5 improvement
seems easy), but it is very robust and it works. :) Besides, it turns
out that the bottleneck in most common tasks is magic itself, not the
interpreter.

The memory usage of this interpreter is ridiculously high. Collect garbage
often. :) Garbage collection is done automatically based on the
variable scm-gc-frequency at the top-level . . . i.e., when you see
magic's ">" prompt. To collect garbage at intermediate points in the
computation, you have to call "collect-garbage" explicitly.


-Rajit Manohar <rajit@csl.cornell.edu>
 Computer Systems Laboratory
 Cornell University
 Ithaca NY 14853
 http://www.csl.cornell.edu/~rajit/

$Header$