aboutsummaryrefslogtreecommitdiff
path: root/src/interp/lisplib.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/lisplib.boot')
-rw-r--r--src/interp/lisplib.boot18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot
index f491569e..755e3f8e 100644
--- a/src/interp/lisplib.boot
+++ b/src/interp/lisplib.boot
@@ -35,7 +35,10 @@
import nlib
import c_-util
import debug
+
namespace BOOT
+module lisplib
+
++
$functionLocations := []
@@ -701,3 +704,18 @@ getIndexTable dir ==
-- index file doesn't exist but mark this directory as a Lisplib.
WITH_-OPEN_-FILE(stream(indexFile,KEYWORD::DIRECTION,KEYWORD::OUTPUT),
nil)
+
+--%
+compDefineExports(op,catobj,sig,e) ==
+ not $LISPLIB => systemErrorHere "compDefineExports"
+ libName := getConstructorAbbreviation op
+ exportsFile := strconc(STRING libName,'".sig")
+ removeFile exportsFile
+ withOutputFile(s,exportsFile,
+ PRETTYPRINT(
+ ["put", quoteForm op, quoteForm "isFunctor", quoteForm catobj.1,
+ ["addModemap", quoteForm op, quoteForm first sig,
+ quoteForm sig, true, quoteForm op,
+ ["put", quoteForm op, quoteForm "mode",
+ quoteForm ["Mapping",:sig], "$CategoryFrame"]]], s))
+ [op,["Mapping",:sig],e]