aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am630
-rw-r--r--configure.ac230
-rw-r--r--m4/m4_ax_cxx_compile_stdcxx.m41009
-rw-r--r--m4/open-axiom-deps.m428
-rw-r--r--src/clef/edible.cc (renamed from src/clef/edible.c)0
-rw-r--r--src/etc/asq.c.pamphlet1
-rw-r--r--src/graph/Gdraws/Gdraws0.h1
-rw-r--r--src/graph/view2D/buttons2d.c1
-rw-r--r--src/graph/view2D/control2d.c1
-rw-r--r--src/graph/view2D/graph2d.c1
-rw-r--r--src/graph/view2D/main2d.c1
-rw-r--r--src/graph/view2D/pot2d.c1
-rw-r--r--src/graph/view2D/process2d.c1
-rw-r--r--src/graph/view2D/spadAction2d.c1
-rw-r--r--src/graph/view2D/stuff2d.c1
-rw-r--r--src/graph/view2D/write2d.c1
-rw-r--r--src/graph/view3D/buttons3d.c1
-rw-r--r--src/graph/view3D/closeView3d.c1
-rw-r--r--src/graph/view3D/component3d.c1
-rw-r--r--src/graph/view3D/control3d.c1
-rw-r--r--src/graph/view3D/illuminate3d.c1
-rw-r--r--src/graph/view3D/lightbut3d.c1
-rw-r--r--src/graph/view3D/lighting3d.c1
-rw-r--r--src/graph/view3D/main3d.c1
-rw-r--r--src/graph/view3D/mesh3d.c1
-rw-r--r--src/graph/view3D/msort3d.c1
-rw-r--r--src/graph/view3D/pot3d.c1
-rw-r--r--src/graph/view3D/process3d.c1
-rw-r--r--src/graph/view3D/project3d.c1
-rw-r--r--src/graph/view3D/quit3d.c1
-rw-r--r--src/graph/view3D/quitbut3d.c1
-rw-r--r--src/graph/view3D/save3d.c1
-rw-r--r--src/graph/view3D/savebut3d.c1
-rw-r--r--src/graph/view3D/smoothShade3d.c1
-rw-r--r--src/graph/view3D/spadAction3d.c1
-rw-r--r--src/graph/view3D/stuff3d.c1
-rw-r--r--src/graph/view3D/surface3d.c1
-rw-r--r--src/graph/view3D/testcol.c1
-rw-r--r--src/graph/view3D/transform3d.c1
-rw-r--r--src/graph/view3D/viewport3d.c1
-rw-r--r--src/graph/view3D/volume3d.c1
-rw-r--r--src/graph/view3D/write3d.c1
-rw-r--r--src/graph/viewAlone/viewAlone.c1
-rw-r--r--src/graph/viewman/cleanup.c1
-rw-r--r--src/graph/viewman/make2D.c1
-rw-r--r--src/graph/viewman/make3D.c1
-rw-r--r--src/graph/viewman/makeGraph.c1
-rw-r--r--src/graph/viewman/readView.c1
-rw-r--r--src/graph/viewman/sselect.c1
-rw-r--r--src/graph/viewman/viewman.c1
-rw-r--r--src/hyper/ReadBitmap.c1
-rw-r--r--src/hyper/addfile.c1
-rw-r--r--src/hyper/cond.c1
-rw-r--r--src/hyper/debug.c1
-rw-r--r--src/hyper/dialog.c1
-rw-r--r--src/hyper/display.c1
-rw-r--r--src/hyper/event.c1
-rw-r--r--src/hyper/ex2ht.c1
-rw-r--r--src/hyper/extent.h1
-rw-r--r--src/hyper/extent1.c1
-rw-r--r--src/hyper/extent2.c1
-rw-r--r--src/hyper/form-ext.c1
-rw-r--r--src/hyper/group.h1
-rw-r--r--src/hyper/htadd.c1
-rw-r--r--src/hyper/hthits.c1
-rw-r--r--src/hyper/htinp.c1
-rw-r--r--src/hyper/htsearch.cc1
-rw-r--r--src/hyper/hyper.h1
-rw-r--r--src/hyper/initx.c1
-rw-r--r--src/hyper/input.c1
-rw-r--r--src/hyper/item.c1
-rw-r--r--src/hyper/keyin.c1
-rw-r--r--src/hyper/lex.c1
-rw-r--r--src/hyper/macro.c1
-rw-r--r--src/hyper/parse-aux.c1
-rw-r--r--src/hyper/parse-input.c1
-rw-r--r--src/hyper/parse-paste.c1
-rw-r--r--src/hyper/parse-paste.h1
-rw-r--r--src/hyper/parse-types.c1
-rw-r--r--src/hyper/parse.h1
-rw-r--r--src/hyper/scrollbar.c1
-rw-r--r--src/hyper/show-types.c1
-rw-r--r--src/hyper/spadbuf.c1
-rw-r--r--src/hyper/titlebar.c1
-rw-r--r--src/hyper/token.h1
-rw-r--r--src/include/open-axiom.h6
-rw-r--r--src/include/open-axiom/storage1
-rw-r--r--src/include/sockio.h1
-rw-r--r--src/lib/XDither.c1
-rw-r--r--src/lib/XShade.c1
-rw-r--r--src/lib/XSpadFill.c1
-rw-r--r--src/lib/bsdsignal.cxx1
-rw-r--r--src/lib/cfuns-c.cxx8
-rw-r--r--src/lib/cursor.cc (renamed from src/lib/cursor.c)1
-rw-r--r--src/lib/edin.cc (renamed from src/lib/edin.c)1
-rw-r--r--src/lib/emupty.c1
-rw-r--r--src/lib/fnct_key.cc (renamed from src/lib/fnct_key.c)1
-rw-r--r--src/lib/halloc.c1
-rw-r--r--src/lib/hash.c1
-rw-r--r--src/lib/openpty.cc (renamed from src/lib/openpty.c)5
-rw-r--r--src/lib/pixmap.c1
-rw-r--r--src/lib/prt.cc (renamed from src/lib/prt.c)1
-rw-r--r--src/lib/sockio-c.cxx4
-rw-r--r--src/lib/spadcolors.c1
-rw-r--r--src/lib/util.c1
-rw-r--r--src/lib/wct.cc (renamed from src/lib/wct.c)1
-rw-r--r--src/lisp/core.lisp.in6
-rw-r--r--src/sman/session.cc (renamed from src/sman/session.c)0
-rw-r--r--src/sman/sman.cc (renamed from src/sman/sman.c)0
-rw-r--r--src/sman/spadclient.cc (renamed from src/sman/spadclient.c)1
-rw-r--r--src/utils/command.cc5
-rw-r--r--src/utils/hammer.cc2
-rw-r--r--src/utils/storage.cxx12
113 files changed, 1933 insertions, 110 deletions
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 00000000..040407f5
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,630 @@
+SUFFIXES = .lisp .clisp .cl .boot .$(FASLEXT)
+
+FASL_V = $(FASL_V_@AM_V@)
+FASL_V_ = $(FASL_V_@AM_DEFAULT_V@)
+FASL_V_0 = @echo " FASL " $@;
+
+OALD_V = $(OALD_V_@AM_V@)
+OALD_V_ = $(OALD_V_@AM_DEFAULT_V@)
+OALD_V_0 = @echo " OALD " $@;
+
+DISTCLEANFILES = $(OA_DEPS_FILE)
+
+noinst_PROGRAMS =
+libexec_PROGRAMS =
+CLEANFILES =
+DRIVER = $(top_builddir)/open-axiom$(EXEEXT)
+
+bin_PROGRAMS = open-axiom
+open_axiom_CPPFLAGS = -I$(srcdir)/src/include
+open_axiom_CPPFLAGS += -DOPENAXIOM_ROOT_DIRECTORY="\"$(libexecdir)\""
+open_axiom_SOURCES = \
+ src/driver/main.cc \
+ src/lib/cfuns-c.cxx \
+ src/utils/command.cc
+
+
+libexec_PROGRAMS += session
+session_CPPFLAGS = -I$(srcdir)/src/include
+session_SOURCES = \
+ src/lib/bsdsignal.cxx \
+ src/lib/cfuns-c.cxx \
+ src/lib/sockio-c.cxx \
+ src/sman/session.cc
+
+libexec_PROGRAMS += sman
+sman_CPPFLAGS = -I$(srcdir)/src/include
+sman_CPPFLAGS += -DOPENAXIOM_ROOT_DIRECTORY="\"$(libexecdir)\""
+sman_SOURCES = \
+ src/lib/bsdsignal.cxx \
+ src/lib/cfuns-c.cxx \
+ src/lib/sockio-c.cxx \
+ src/lib/openpty.cc \
+ src/sman/sman.cc \
+ src/utils/command.cc
+
+libexec_PROGRAMS += spadclient
+spadclient_CPPFLAGS = -I$(srcdir)/src/include
+spadclient_SOURCES = \
+ src/lib/bsdsignal.cxx \
+ src/lib/cfuns-c.cxx \
+ src/lib/sockio-c.cxx \
+ src/sman/spadclient.cc
+
+libexec_PROGRAMS += clef
+clef_CPPFLAGS = -I$(srcdir)/src/include
+clef_SOURCES = \
+ src/clef/edible.cc \
+ src/lib/bsdsignal.cxx \
+ src/lib/cfuns-c.cxx \
+ src/lib/cursor.cc \
+ src/lib/edin.cc \
+ src/lib/fnct_key.cc \
+ src/lib/openpty.cc \
+ src/lib/prt.cc \
+ src/lib/wct.cc
+
+
+noinst_PROGRAMS += hammer
+hammer_CPPFLAGS = -I$(srcdir)/src/include
+hammer_SOURCES = \
+ src/utils/hammer.cc \
+ src/utils/storage.cxx
+
+noinst_PROGRAMS += oalisp
+am_oalisp_OBJECTS = $(oalisp_SOURCES:.lisp=.$(FASLEXT))
+CLEANFILES += $(am_oalisp_OBJECTS)
+oalisp_SOURCES = src/lisp/core.lisp
+oalisp_LINK = $(OA_LISP) $(OA_LISP_BATCH_FLAGS) $(OA_LISP_EVAL_FLAGS) '(load "$<")' $(OA_LISP_EVAL_FLAGS) '(|AxiomCore|::|link| "$@" (quote nil) "|AxiomCore|::|topLevel|")' \#
+src/lisp/core.$(FASLEXT): src/lisp/core.lisp
+ $(FASL_V)$(OA_LISP) $(OA_LISP_BATCH_FLAGS) $(OA_LISP_EVAL_FLAGS) '(progn (setq *compile-print* nil *compile-verbose* nil) (compile-file "$<") (quit))'
+
+noinst_PROGRAMS += bootsys0
+bootsys0_LINK = $(DRIVER) --execpath=oalisp$(EXEEXT) --make --main='|AxiomCore|::|topLevel|' --prologue='(pushnew :open-axiom-boot *features*)' --load-directory=$(<D) --output=$@
+am_bootsys0_OBJECTS = $(bootsys0_SOURCES:.clisp=.$(FASLEXT))
+$(am_bootsys0_OBJECTS): $(DRIVER) oalisp$(EXEEXT)
+CLEANFILES += $(am_bootsys0_OBJECTS)
+# TODO utility.clisp must go first
+bootsys0_SOURCES = \
+ src/boot/strap/utility.clisp \
+ src/boot/strap/ast.clisp \
+ src/boot/strap/includer.clisp \
+ src/boot/strap/parser.clisp \
+ src/boot/strap/pile.clisp \
+ src/boot/strap/scanner.clisp \
+ src/boot/strap/tokens.clisp \
+ src/boot/strap/translator.clisp
+
+noinst_PROGRAMS += bootsys1
+bootsys1_LINK = $(DRIVER) --execpath=oalisp$(EXEEXT) --make --main='|AxiomCore|::|topLevel|' --prologue='(pushnew :open-axiom-boot *features*)' --load-directory=$(<D) --output=$@
+$(nodist_bootsys1_SOURCES): $(DRIVER) bootsys0$(EXEEXT)
+nodist_bootsys1_OBJECTS = $(nodist_bootsys1_SOURCES:.cl=.$(FASLEXT))
+$(nodist_bootsys1_OBJECTS): $(DRIVER) oalisp$(EXEEXT)
+CLEANFILES += $(nodist_bootsys1_OBJECTS) $(nodist_bootsys1_SOURCES)
+# TODO utility.clisp must go first
+nodist_bootsys1_SOURCES = \
+ src/boot/stage1/utility.cl \
+ src/boot/stage1/ast.cl \
+ src/boot/stage1/includer.cl \
+ src/boot/stage1/parser.cl \
+ src/boot/stage1/pile.cl \
+ src/boot/stage1/scanner.cl \
+ src/boot/stage1/tokens.cl \
+ src/boot/stage1/translator.cl
+
+# TODO: automatically resolve dependencies?
+src/boot/stage1/ast.$(FASLEXT): src/boot/stage1/includer.$(FASLEXT)
+src/boot/stage1/includer.$(FASLEXT): src/boot/stage1/tokens.$(FASLEXT)
+src/boot/stage1/parser.$(FASLEXT): src/boot/stage1/includer.$(FASLEXT) src/boot/stage1/scanner.$(FASLEXT) src/boot/stage1/ast.$(FASLEXT)
+src/boot/stage1/pile.$(FASLEXT): src/boot/stage1/includer.$(FASLEXT) src/boot/stage1/scanner.$(FASLEXT)
+src/boot/stage1/scanner.$(FASLEXT): src/boot/stage1/tokens.$(FASLEXT) src/boot/stage1/includer.$(FASLEXT)
+src/boot/stage1/tokens.$(FASLEXT): src/boot/stage1/utility.$(FASLEXT)
+src/boot/stage1/translator.$(FASLEXT): src/boot/stage1/includer.$(FASLEXT) src/boot/stage1/scanner.$(FASLEXT) src/boot/stage1/pile.$(FASLEXT) src/boot/stage1/parser.$(FASLEXT) src/boot/stage1/ast.$(FASLEXT)
+
+noinst_PROGRAMS += bootsys
+bootsys_LINK = $(DRIVER) --execpath=oalisp$(EXEEXT) --make --main='|AxiomCore|::|topLevel|' --prologue='(pushnew :open-axiom-boot *features*)' --load-directory=$(<D) --output=$@
+bootsys_CLISP = $(bootsys_SOURCES:.boot=.clisp)
+$(bootsys_CLISP): $(DRIVER) bootsys1$(EXEEXT)
+am_bootsys_OBJECTS = $(bootsys_CLISP:.clisp=.$(FASLEXT))
+$(am_bootsys_OBJECTS): $(DRIVER) oalisp$(EXEEXT)
+CLEANFILES += $(am_bootsys_OBJECTS) $(bootsys_CLISP)
+# TODO utility.boot must go first
+bootsys_SOURCES = \
+ src/boot/utility.boot \
+ src/boot/ast.boot \
+ src/boot/includer.boot \
+ src/boot/parser.boot \
+ src/boot/pile.boot \
+ src/boot/scanner.boot \
+ src/boot/tokens.boot \
+ src/boot/translator.boot
+
+
+.clisp.$(FASLEXT):
+ $(FASL_V)$(DRIVER) --execpath=oalisp$(EXEEXT) --compile --load-directory=$(@D) --output=$@ $<
+
+.boot.cl:
+ $(AM_V_GEN)$(DRIVER) --execpath=bootsys0$(EXEEXT) --translate --import=skip --output=$@ $<
+
+.cl.$(FASLEXT):
+ $(FASL_V)$(DRIVER) --execpath=oalisp$(EXEEXT) --compile --load-directory=$(@D) --output=$@ $<
+
+.boot.clisp:
+ $(AM_V_GEN)$(DRIVER) --execpath=bootsys1$(EXEEXT) --translate --import=skip --output=$@ $<
+
+.boot.$(FASLEXT):
+ $(FASL_V)$(DRIVER) --execpath=bootsys$(EXEEXT) --compile --load-directory=$(@D) --output=$@ $<
+
+.lisp.$(FASLEXT):
+ $(FASL_V)$(DRIVER) --execpath=bootsys$(EXEEXT) --compile --load-directory=$(@D) --output=$@ $<
+
+noinst_PROGRAMS += interpsys
+interpsys_LINK = $(DRIVER) --execpath=bootsys$(EXEEXT) --make --main='BOOT::|systemMain|' --prologue='(pushnew :open-axiom-basic-system *features*)' --load-directory=$(<D) --output=$@
+interpsys_OBJECTS_lisp = $(interpsys_SOURCES:.lisp=.$(FASLEXT))
+am_interpsys_OBJECTS = $(interpsys_OBJECTS_lisp:.boot=.$(FASLEXT))
+$(am_interpsys_OBJECTS): $(DRIVER) bootsys$(EXEEXT)
+CLEANFILES += $(am_interpsys_OBJECTS)
+# TODO: linking order is important! Make open-axiom reorder objects automatically
+interpsys_SOURCES = \
+ src/interp/boot-pkg.lisp \
+ src/interp/types.boot \
+ src/interp/sys-driver.boot \
+ src/interp/sys-constants.boot \
+ src/interp/hash.lisp \
+ src/interp/lisp-backend.boot \
+ src/interp/sys-globals.boot \
+ src/interp/vmlisp.lisp \
+ src/interp/io.boot \
+ src/interp/sys-utility.boot \
+ src/interp/lexing.boot \
+ src/interp/diagnostics.boot \
+ src/interp/union.lisp \
+ src/interp/sys-macros.lisp \
+ src/interp/util.lisp \
+ src/interp/unlisp.lisp \
+ src/interp/g-util.boot \
+ src/interp/g-opt.boot \
+ src/interp/c-util.boot \
+ src/interp/astr.boot \
+ src/interp/ht-util.boot \
+ src/interp/bc-util.boot \
+ src/interp/br-search.boot \
+ src/interp/alql.boot \
+ src/interp/buildom.boot \
+ src/interp/simpbool.boot \
+ src/interp/g-timer.boot \
+ src/interp/cattable.boot \
+ src/interp/posit.boot \
+ src/interp/cformat.boot \
+ src/interp/clam.boot \
+ src/interp/clammed.boot \
+ src/interp/nlib.lisp \
+ src/interp/daase.lisp \
+ src/interp/pathname.boot \
+ src/interp/compat.boot \
+ src/interp/serror.boot \
+ src/interp/ptrees.boot \
+ src/interp/cparse.boot \
+ src/interp/cstream.boot \
+ src/interp/g-cndata.boot \
+ src/interp/database.boot \
+ src/interp/debug.lisp \
+ src/interp/dq.boot \
+ src/interp/fname.lisp \
+ src/interp/format.boot \
+ src/interp/g-error.boot \
+ src/interp/ggreater.lisp \
+ src/interp/hypertex.boot \
+ src/interp/i-object.boot \
+ src/interp/i-analy.boot \
+ src/interp/i-resolv.boot \
+ src/interp/i-coerfn.boot \
+ src/interp/i-coerce.boot \
+ src/interp/i-eval.boot \
+ src/interp/i-funsel.boot \
+ src/interp/i-intern.boot \
+ src/interp/i-map.boot \
+ src/interp/i-output.boot \
+ src/interp/i-special.boot \
+ src/interp/i-syscmd.boot \
+ src/interp/i-toplev.boot \
+ src/interp/i-util.boot \
+ src/interp/incl.boot \
+ src/interp/int-top.boot \
+ src/interp/lisplib.boot \
+ src/interp/macex.boot \
+ src/interp/match.boot \
+ src/interp/monitor.lisp \
+ src/interp/msg.boot \
+ src/interp/msgdb.boot \
+ src/interp/newfort.boot \
+ src/interp/nrunfast.boot \
+ src/interp/osyscmd.boot \
+ src/interp/packtran.boot \
+ src/interp/pf2sex.boot \
+ src/interp/scan.boot \
+ src/interp/pile.boot \
+ src/interp/postpar.boot \
+ src/interp/parse.boot \
+ src/interp/spad-parser.boot \
+ src/interp/record.boot \
+ src/interp/rulesets.boot \
+ src/interp/server.boot \
+ src/interp/setvars.boot \
+ src/interp/sfsfun.boot \
+ src/interp/sfsfun-l.lisp \
+ src/interp/slam.boot \
+ src/interp/spad.lisp \
+ src/interp/termrw.boot \
+ src/interp/trace.boot \
+ src/interp/word.boot \
+ src/interp/fortcall.boot \
+ src/interp/i-parser.boot \
+ src/interp/category.boot \
+ src/interp/define.boot \
+ src/interp/compiler.boot \
+ src/interp/c-doc.boot \
+ src/interp/profile.boot \
+ src/interp/functor.boot \
+ src/interp/nruncomp.boot \
+ src/interp/htcheck.boot \
+ src/interp/bc-matrix.boot \
+ src/interp/bc-misc.boot \
+ src/interp/bc-solve.boot \
+ src/interp/htsetvar.boot \
+ src/interp/ht-root.boot \
+ src/interp/br-con.boot \
+ src/interp/br-data.boot \
+ src/interp/showimp.boot \
+ src/interp/br-op1.boot \
+ src/interp/br-op2.boot \
+ src/interp/br-util.boot \
+ src/interp/topics.boot \
+ src/interp/br-prof.boot \
+ src/interp/br-saturn.boot \
+ src/interp/setvart.boot
+
+# open-axiom driver may leave these files when compilation fails:
+clean-local:
+ rm -f src/interp/*.clisp
+
+UNUSED_INTERP_FILES = \
+ src/interp/guess.boot \
+ src/interp/nhyper.boot \
+ src/interp/pf2atree.boot \
+ src/interp/sys-os.boot
+
+ALGEBRA_PAMPHLETS = \
+ src/algebra/acplot.spad.pamphlet \
+ src/algebra/aggcat2.spad.pamphlet \
+ src/algebra/aggcat.spad.pamphlet \
+ src/algebra/algcat.spad.pamphlet \
+ src/algebra/algext.spad.pamphlet \
+ src/algebra/algfact.spad.pamphlet \
+ src/algebra/algfunc.spad.pamphlet \
+ src/algebra/allfact.spad.pamphlet \
+ src/algebra/alql.spad.pamphlet \
+ src/algebra/any.spad.pamphlet \
+ src/algebra/array1.spad.pamphlet \
+ src/algebra/array2.spad.pamphlet \
+ src/algebra/attreg.spad.pamphlet \
+ src/algebra/bags.spad.pamphlet \
+ src/algebra/bezout.spad.pamphlet \
+ src/algebra/boolean.spad.pamphlet \
+ src/algebra/brill.spad.pamphlet \
+ src/algebra/card.spad.pamphlet \
+ src/algebra/carten.spad.pamphlet \
+ src/algebra/catdef.spad.pamphlet \
+ src/algebra/cden.spad.pamphlet \
+ src/algebra/clifford.spad.pamphlet \
+ src/algebra/clip.spad.pamphlet \
+ src/algebra/cmplxrt.spad.pamphlet \
+ src/algebra/coerce.spad.pamphlet \
+ src/algebra/color.spad.pamphlet \
+ src/algebra/combfunc.spad.pamphlet \
+ src/algebra/combinat.spad.pamphlet \
+ src/algebra/compiler.spad.pamphlet \
+ src/algebra/complet.spad.pamphlet \
+ src/algebra/constant.spad.pamphlet \
+ src/algebra/contfrac.spad.pamphlet \
+ src/algebra/coordsys.spad.pamphlet \
+ src/algebra/cra.spad.pamphlet \
+ src/algebra/crfp.spad.pamphlet \
+ src/algebra/curve.spad.pamphlet \
+ src/algebra/cycles.spad.pamphlet \
+ src/algebra/cyclotom.spad.pamphlet \
+ src/algebra/data.spad.pamphlet \
+ src/algebra/ddfact.spad.pamphlet \
+ src/algebra/defaults.spad.pamphlet \
+ src/algebra/defintef.spad.pamphlet \
+ src/algebra/defintrf.spad.pamphlet \
+ src/algebra/degred.spad.pamphlet \
+ src/algebra/derham.spad.pamphlet \
+ src/algebra/dhmatrix.spad.pamphlet \
+ src/algebra/divisor.spad.pamphlet \
+ src/algebra/domain.spad.pamphlet \
+ src/algebra/dpolcat.spad.pamphlet \
+ src/algebra/drawopt.spad.pamphlet \
+ src/algebra/drawpak.spad.pamphlet \
+ src/algebra/draw.spad.pamphlet \
+ src/algebra/efstruc.spad.pamphlet \
+ src/algebra/efuls.spad.pamphlet \
+ src/algebra/efupxs.spad.pamphlet \
+ src/algebra/eigen.spad.pamphlet \
+ src/algebra/elemntry.spad.pamphlet \
+ src/algebra/elfuts.spad.pamphlet \
+ src/algebra/equation1.spad.pamphlet \
+ src/algebra/equation2.spad.pamphlet \
+ src/algebra/error.spad.pamphlet \
+ src/algebra/expexpan.spad.pamphlet \
+ src/algebra/exposed.lsp.pamphlet \
+ src/algebra/expr2ups.spad.pamphlet \
+ src/algebra/exprode.spad.pamphlet \
+ src/algebra/expr.spad.pamphlet \
+ src/algebra/facutil.spad.pamphlet \
+ src/algebra/ffcat.spad.pamphlet \
+ src/algebra/ffcg.spad.pamphlet \
+ src/algebra/fff.spad.pamphlet \
+ src/algebra/ffhom.spad.pamphlet \
+ src/algebra/ffnb.spad.pamphlet \
+ src/algebra/ffpoly2.spad.pamphlet \
+ src/algebra/ffpoly.spad.pamphlet \
+ src/algebra/ffp.spad.pamphlet \
+ src/algebra/ffx.spad.pamphlet \
+ src/algebra/files.spad.pamphlet \
+ src/algebra/float.spad.pamphlet \
+ src/algebra/fmod.spad.pamphlet \
+ src/algebra/fname.spad.pamphlet \
+ src/algebra/fnla.spad.pamphlet \
+ src/algebra/forttyp.spad.pamphlet \
+ src/algebra/fourier.spad.pamphlet \
+ src/algebra/fparfrac.spad.pamphlet \
+ src/algebra/fraction.spad.pamphlet \
+ src/algebra/free.spad.pamphlet \
+ src/algebra/fr.spad.pamphlet \
+ src/algebra/fs2expxp.spad.pamphlet \
+ src/algebra/fs2ups.spad.pamphlet \
+ src/algebra/fspace.spad.pamphlet \
+ src/algebra/funcpkgs.spad.pamphlet \
+ src/algebra/galfact.spad.pamphlet \
+ src/algebra/galfactu.spad.pamphlet \
+ src/algebra/galpolyu.spad.pamphlet \
+ src/algebra/galutil.spad.pamphlet \
+ src/algebra/gaussfac.spad.pamphlet \
+ src/algebra/gaussian.spad.pamphlet \
+ src/algebra/gbeuclid.spad.pamphlet \
+ src/algebra/gbintern.spad.pamphlet \
+ src/algebra/gb.spad.pamphlet \
+ src/algebra/gdirprod.spad.pamphlet \
+ src/algebra/gdpoly.spad.pamphlet \
+ src/algebra/geneez.spad.pamphlet \
+ src/algebra/generic.spad.pamphlet \
+ src/algebra/genufact.spad.pamphlet \
+ src/algebra/genups.spad.pamphlet \
+ src/algebra/ghensel.spad.pamphlet \
+ src/algebra/gpgcd.spad.pamphlet \
+ src/algebra/gpol.spad.pamphlet \
+ src/algebra/grdef.spad.pamphlet \
+ src/algebra/groebf.spad.pamphlet \
+ src/algebra/groebsol.spad.pamphlet \
+ src/algebra/gseries.spad.pamphlet \
+ src/algebra/ideal.spad.pamphlet \
+ src/algebra/idecomp.spad.pamphlet \
+ src/algebra/indexedp.spad.pamphlet \
+ src/algebra/infprod.spad.pamphlet \
+ src/algebra/intaf.spad.pamphlet \
+ src/algebra/intalg.spad.pamphlet \
+ src/algebra/intaux.spad.pamphlet \
+ src/algebra/intclos.spad.pamphlet \
+ src/algebra/intef.spad.pamphlet \
+ src/algebra/integer.spad.pamphlet \
+ src/algebra/integrat.spad.pamphlet \
+ src/algebra/interval.spad.pamphlet \
+ src/algebra/intfact.spad.pamphlet \
+ src/algebra/intpm.spad.pamphlet \
+ src/algebra/intrf.spad.pamphlet \
+ src/algebra/irexpand.spad.pamphlet \
+ src/algebra/irsn.spad.pamphlet \
+ src/algebra/ituple.spad.pamphlet \
+ src/algebra/java.spad.pamphlet \
+ src/algebra/kl.spad.pamphlet \
+ src/algebra/kovacic.spad.pamphlet \
+ src/algebra/laplace.spad.pamphlet \
+ src/algebra/laurent.spad.pamphlet \
+ src/algebra/leadcdet.spad.pamphlet \
+ src/algebra/lie.spad.pamphlet \
+ src/algebra/limitps.spad.pamphlet \
+ src/algebra/lindep.spad.pamphlet \
+ src/algebra/lingrob.spad.pamphlet \
+ src/algebra/liouv.spad.pamphlet \
+ src/algebra/listgcd.spad.pamphlet \
+ src/algebra/list.spad.pamphlet \
+ src/algebra/lmdict.spad.pamphlet \
+ src/algebra/lodof.spad.pamphlet \
+ src/algebra/lodop.spad.pamphlet \
+ src/algebra/lodo.spad.pamphlet \
+ src/algebra/logic.spad.pamphlet \
+ src/algebra/manip.spad.pamphlet \
+ src/algebra/mappkg.spad.pamphlet \
+ src/algebra/matcat.spad.pamphlet \
+ src/algebra/matfuns.spad.pamphlet \
+ src/algebra/mathml.spad.pamphlet \
+ src/algebra/matrix.spad.pamphlet \
+ src/algebra/matstor.spad.pamphlet \
+ src/algebra/mesh.spad.pamphlet \
+ src/algebra/mfinfact.spad.pamphlet \
+ src/algebra/misc.spad.pamphlet \
+ src/algebra/mkfunc.spad.pamphlet \
+ src/algebra/mkrecord.spad.pamphlet \
+ src/algebra/mlift.spad.jhd.pamphlet \
+ src/algebra/mlift.spad.pamphlet \
+ src/algebra/moddfact.spad.pamphlet \
+ src/algebra/modgcd.spad.pamphlet \
+ src/algebra/modmonom.spad.pamphlet \
+ src/algebra/modmon.spad.pamphlet \
+ src/algebra/modring.spad.pamphlet \
+ src/algebra/moebius.spad.pamphlet \
+ src/algebra/mring.spad.pamphlet \
+ src/algebra/mset.spad.pamphlet \
+ src/algebra/mts.spad.pamphlet \
+ src/algebra/multfact.spad.pamphlet \
+ src/algebra/multpoly.spad.pamphlet \
+ src/algebra/multsqfr.spad.pamphlet \
+ src/algebra/naalgc.spad.pamphlet \
+ src/algebra/naalg.spad.pamphlet \
+ src/algebra/net.spad.pamphlet \
+ src/algebra/newdata.spad.pamphlet \
+ src/algebra/newpoint.spad.pamphlet \
+ src/algebra/newpoly.spad.pamphlet \
+ src/algebra/nlinsol.spad.pamphlet \
+ src/algebra/nlode.spad.pamphlet \
+ src/algebra/npcoef.spad.pamphlet \
+ src/algebra/nregset.spad.pamphlet \
+ src/algebra/nsregset.spad.pamphlet \
+ src/algebra/numeigen.spad.pamphlet \
+ src/algebra/numeric.spad.pamphlet \
+ src/algebra/numode.spad.pamphlet \
+ src/algebra/numquad.spad.pamphlet \
+ src/algebra/numsolve.spad.pamphlet \
+ src/algebra/numtheor.spad.pamphlet \
+ src/algebra/oct.spad.pamphlet \
+ src/algebra/odealg.spad.pamphlet \
+ src/algebra/odeef.spad.pamphlet \
+ src/algebra/oderf.spad.pamphlet \
+ src/algebra/opalg.spad.pamphlet \
+ src/algebra/openmath.spad.pamphlet \
+ src/algebra/op.spad.pamphlet \
+ src/algebra/ore.spad.pamphlet \
+ src/algebra/outform.spad.pamphlet \
+ src/algebra/out.spad.pamphlet \
+ src/algebra/pade.spad.pamphlet \
+ src/algebra/padiclib.spad.pamphlet \
+ src/algebra/padic.spad.pamphlet \
+ src/algebra/paramete.spad.pamphlet \
+ src/algebra/parsers.spad.pamphlet \
+ src/algebra/partperm.spad.pamphlet \
+ src/algebra/patmatch1.spad.pamphlet \
+ src/algebra/patmatch2.spad.pamphlet \
+ src/algebra/pattern.spad.pamphlet \
+ src/algebra/pcurve.spad.pamphlet \
+ src/algebra/pdecomp.spad.pamphlet \
+ src/algebra/perman.spad.pamphlet \
+ src/algebra/permgrps.spad.pamphlet \
+ src/algebra/perm.spad.pamphlet \
+ src/algebra/pfbr.spad.pamphlet \
+ src/algebra/pfo.spad.pamphlet \
+ src/algebra/pfr.spad.pamphlet \
+ src/algebra/pf.spad.pamphlet \
+ src/algebra/pgcd.spad.pamphlet \
+ src/algebra/pgrobner.spad.pamphlet \
+ src/algebra/pinterp.spad.pamphlet \
+ src/algebra/pleqn.spad.pamphlet \
+ src/algebra/plot3d.spad.pamphlet \
+ src/algebra/plot.spad.pamphlet \
+ src/algebra/plottool.spad.pamphlet \
+ src/algebra/polset.spad.pamphlet \
+ src/algebra/poltopol.spad.pamphlet \
+ src/algebra/polycat.spad.pamphlet \
+ src/algebra/poly.spad.pamphlet \
+ src/algebra/primelt.spad.pamphlet \
+ src/algebra/print.spad.pamphlet \
+ src/algebra/product.spad.pamphlet \
+ src/algebra/prs.spad.pamphlet \
+ src/algebra/prtition.spad.pamphlet \
+ src/algebra/pscat.spad.pamphlet \
+ src/algebra/pseudolin.spad.pamphlet \
+ src/algebra/ptranfn.spad.pamphlet \
+ src/algebra/puiseux.spad.pamphlet \
+ src/algebra/qalgset.spad.pamphlet \
+ src/algebra/quat.spad.pamphlet \
+ src/algebra/radeigen.spad.pamphlet \
+ src/algebra/radix.spad.pamphlet \
+ src/algebra/random.spad.pamphlet \
+ src/algebra/ratfact.spad.pamphlet \
+ src/algebra/rdeef.spad.pamphlet \
+ src/algebra/rderf.spad.pamphlet \
+ src/algebra/rdesys.spad.pamphlet \
+ src/algebra/real0q.spad.pamphlet \
+ src/algebra/realzero.spad.pamphlet \
+ src/algebra/reclos.spad.pamphlet \
+ src/algebra/regset.spad.pamphlet \
+ src/algebra/rep1.spad.pamphlet \
+ src/algebra/rep2.spad.pamphlet \
+ src/algebra/resring.spad.pamphlet \
+ src/algebra/retract.spad.pamphlet \
+ src/algebra/rf.spad.pamphlet \
+ src/algebra/riccati.spad.pamphlet \
+ src/algebra/rinterp.spad.pamphlet \
+ src/algebra/rule.spad.pamphlet \
+ src/algebra/seg.spad.pamphlet \
+ src/algebra/setorder.spad.pamphlet \
+ src/algebra/sets.spad.pamphlet \
+ src/algebra/sex.spad.pamphlet \
+ src/algebra/sf.spad.pamphlet \
+ src/algebra/sgcf.spad.pamphlet \
+ src/algebra/sign.spad.pamphlet \
+ src/algebra/si.spad.pamphlet \
+ src/algebra/smith.spad.pamphlet \
+ src/algebra/solvedio.spad.pamphlet \
+ src/algebra/solvefor.spad.pamphlet \
+ src/algebra/solvelin.spad.pamphlet \
+ src/algebra/solverad.spad.pamphlet \
+ src/algebra/sortpak.spad.pamphlet \
+ src/algebra/space.spad.pamphlet \
+ src/algebra/special.spad.pamphlet \
+ src/algebra/sregset.spad.pamphlet \
+ src/algebra/s.spad.pamphlet \
+ src/algebra/stream.spad.pamphlet \
+ src/algebra/string.spad.pamphlet \
+ src/algebra/sttaylor.spad.pamphlet \
+ src/algebra/sttf.spad.pamphlet \
+ src/algebra/sturm.spad.pamphlet \
+ src/algebra/suchthat.spad.pamphlet \
+ src/algebra/suls.spad.pamphlet \
+ src/algebra/sum.spad.pamphlet \
+ src/algebra/sups.spad.pamphlet \
+ src/algebra/supxs.spad.pamphlet \
+ src/algebra/suts.spad.pamphlet \
+ src/algebra/symbol.spad.pamphlet \
+ src/algebra/syntax.spad.pamphlet \
+ src/algebra/syssolp.spad.pamphlet \
+ src/algebra/system.spad.pamphlet \
+ src/algebra/tableau.spad.pamphlet \
+ src/algebra/table.spad.pamphlet \
+ src/algebra/taylor.spad.pamphlet \
+ src/algebra/term.spad.pamphlet \
+ src/algebra/tex.spad.pamphlet \
+ src/algebra/tools.spad.pamphlet \
+ src/algebra/transsolve.spad.pamphlet \
+ src/algebra/tree.spad.pamphlet \
+ src/algebra/trigcat.spad.pamphlet \
+ src/algebra/triset.spad.pamphlet \
+ src/algebra/tube.spad.pamphlet \
+ src/algebra/twofact.spad.pamphlet \
+ src/algebra/unifact.spad.pamphlet \
+ src/algebra/updecomp.spad.pamphlet \
+ src/algebra/updivp.spad.pamphlet \
+ src/algebra/utsode.spad.pamphlet \
+ src/algebra/variable.spad.pamphlet \
+ src/algebra/vector.spad.pamphlet \
+ src/algebra/view2D.spad.pamphlet \
+ src/algebra/view3D.spad.pamphlet \
+ src/algebra/viewDef.spad.pamphlet \
+ src/algebra/viewpack.spad.pamphlet \
+ src/algebra/void.spad.pamphlet \
+ src/algebra/weier.spad.pamphlet \
+ src/algebra/wtpol.spad.pamphlet \
+ src/algebra/xlpoly.spad.pamphlet \
+ src/algebra/xpoly.spad.pamphlet \
+ src/algebra/young.spad.pamphlet \
+ src/algebra/ystream.spad.pamphlet \
+ src/algebra/zerodim.spad.pamphlet
+
+
+EXTRA_DIST = \
+ $(UNUSED_INTERP_FILES) \
+ $(ALGEBRA_PAMPHLETS) \
+ STYLES
+
+@OA_DEPS@
+
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 00000000..cad94390
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,230 @@
+AC_INIT([Open Axiom], [1.5.1~dev], [pashev.igor@gmail.com])
+AC_CANONICAL_TARGET
+
+dnl clisp 2.49.92
+dnl sbcl 2.1.1
+dnl gcl 2.6.12
+dnl ecl 20.4.24
+
+AC_CONFIG_SRCDIR([src/algebra/boolean.spad.pamphlet])
+AC_CONFIG_AUX_DIR([build-aux])
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([-Wall dist-xz foreign subdir-objects])
+
+dnl **** C++ and libraries ****
+AC_PROG_CC
+AX_CXX_COMPILE_STDCXX([20], [noext], [mandatory])
+AC_CHECK_SIZEOF([void *])
+
+AC_CHECK_HEADERS_ONCE([fcntl.h unistd.h])
+AC_CHECK_HEADERS_ONCE([sys/ioctl.h sys/types.h sys/stat.h])
+
+AC_CHECK_DECLS([fork, geteuid, getgid, getuid, mktemp, tempnam])
+
+AC_CHECK_HEADERS_ONCE([sys/wait.h])
+AC_CHECK_DECLS([wait], [], [], [[
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
+]])
+
+AC_CHECK_HEADERS_ONCE([sys/mman.h])
+AC_CHECK_DECLS([MAP_ANONYMOUS, MAP_ANON], [], [], [[
+#ifdef HAVE_SYS_MMAN_H
+#include <sys/mman.h>
+#endif
+]])
+
+
+AC_CHECK_HEADERS_ONCE([sys/socket.h sys/un.h])
+AC_CHECK_DECLS([AF_LOCAL, AF_UNIX], [], [], [[
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+]])
+
+AC_CHECK_HEADERS_ONCE([libutil.h pty.h termios.h util.h])
+AC_CHECK_DECLS([openpty], [], [], [[
+#if HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#endif
+#if HAVE_SYS_TYPESL_H
+# include <sys/types.h>
+#endif
+#if HAVE_LIBUTIL_H
+# include <libutil.h>
+#endif
+#if HAVE_PTY_H
+# include <pty.h>
+#endif
+#if HAVE_TERMIOS_H
+# include <termios.h>
+#endif
+#if HAVE_UTIL_H
+# include <util.h>
+#endif
+]])
+AC_SEARCH_LIBS([openpty], [util])
+
+
+dnl **** LISP ****
+
+AC_ARG_WITH([lisp],
+ [AS_HELP_STRING([--with-lisp=LISP], [use LISP to build Open Axiom])],
+ [OA_LISP="$withval"],
+ [AC_PATH_PROGS([OA_LISP], [sbcl gcl ecl clisp clozure], [none])])
+AS_IF([test "x$OA_LISP" = xnone], [AC_MSG_ERROR([could not find suitable Lisp])])
+
+AC_MSG_CHECKING([Lisp])
+AC_MSG_RESULT([$OA_LISP])
+
+AC_MSG_CHECKING([for Lisp flavor])
+oa_lisp_impl_type=`echo '(lisp-implementation-type)' | $OA_LISP 2>&AS_MESSAGE_LOG_FD`
+AS_CASE([$oa_lisp_impl_type],
+ [*"SBCL"*], [oa_lisp_flavor="sbcl"],
+ [*"GNU Common Lisp"*], [oa_lisp_flavor="gcl"],
+ [*"Embeddable Common-Lisp"*], [oa_lisp_flavor="ecl"],
+ [*"CLISP"*], [oa_lisp_flavor="clisp"],
+ [*"Clozure Common Lisp"*], [oa_lisp_flavor="clozure"],
+ [AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([unsupported Lisp])])
+AC_MSG_RESULT([$oa_lisp_flavor])
+
+AS_CASE([$oa_lisp_flavor],
+ [sbcl], [OA_LISP_BATCH_FLAGS='--noinform --noprint --no-sysinit --no-userinit --disable-debugger'
+ OA_LISP_EVAL_FLAGS='--eval'
+ oa_delay_ffi=yes
+ char_type='char'
+ double_type='double'
+ float_type='float'
+ int_type='int'
+ pointer_type='(* t)'
+ string_type='c-string'
+ void_type='void'],
+ [gcl], [OA_LISP_BATCH_FLAGS='-batch'
+ OA_LISP_EVAL_FLAGS='-eval'
+ oa_delay_ffi=no
+ void_type='void'
+ char_type='char'
+ int_type='int'
+ float_type='float'
+ double_type='double'
+ string_type='string'
+ AS_IF([test "x$SIZEOF_VOID_P" = x4], [pointer_type='fixnum'], [pointer_type='(signed-integer 64)'])],
+ [ecl], [OA_LISP_BATCH_FLAGS='--nodebug --norc'
+ OA_LISP_EVAL_FLAGS='--eval'
+ oa_delay_ffi=no
+ void_type=':void'
+ char_type=':char'
+ int_type=':int'
+ float_type=':float'
+ double_type=':double'
+ string_type=':cstring'
+ pointer_type=':pointer-void'],
+ [clisp], [OA_LISP_BATCH_FLAGS='-q -q -norc'
+ OA_LISP_EVAL_FLAGS='-x'
+ oa_delay_ffi=yes
+ void_type='nil'
+ char_type='character'
+ int_type='int'
+ float_type='single-float'
+ double_type='double-float'
+ string_type='c-string'
+ pointer_type='c-pointer'],
+ [clozure], [OA_LISP_BATCH_FLAGS='--quiet --no-init'
+ OA_LISP_EVAL_FLAGS='--eval'
+ oa_delay_ffi=yes
+ void_type=':void'
+ char_type=':unsigned-byte'
+ int_type=':signed-fullword'
+ float_type=':single-float'
+ double_type=':double-float'
+ string_type=':address'
+ pointer_type=':address'],
+ [AC_MSG_ERROR([unsupported Lisp flavor $oa_lisp_flavor])])
+
+AC_MSG_CHECKING([how to invoke Lisp])
+AC_MSG_RESULT([$OA_LISP $OA_LISP_BATCH_FLAGS $OA_LISP_EVAL_FLAGS])
+
+AC_MSG_CHECKING([for compiled Lisp file extension])
+oa_fasl_type=`$OA_LISP $OA_LISP_BATCH_FLAGS $OA_LISP_EVAL_FLAGS '(progn (format t "oa_fasl_type:~a" (pathname-type (compile-file-pathname "non-existing.lisp"))) (quit))' 2>&AS_MESSAGE_LOG_FD`
+AS_IF([test "x$oa_fasl_type" = x], [AC_MSG_RESULT([failed])
+ AC_MSG_ERROR([Lisp compiler does not work, see config.log for details])])
+oa_fasl_type=`echo "$oa_fasl_type" | $AWK -F : '/oa_fasl_type:/{print $2}'`
+AC_MSG_RESULT([$oa_fasl_type])
+
+AC_SUBST([OA_LISP])
+AC_SUBST([OA_LISP_BATCH_FLAGS])
+AC_SUBST([OA_LISP_EVAL_FLAGS])
+AC_SUBST([FASLEXT], [$oa_fasl_type])
+AC_DEFINE_UNQUOTED([FASLEXT], ["$oa_fasl_type"], [Compiled Lisp file extension (usually "fasl").])
+AC_DEFINE_UNQUOTED([OPENAXIOM_BASE_RTS], [Runtime::$oa_lisp_flavor], [The kind of base runtime system for this build.])
+
+AC_MSG_CHECKING([Lisp char type])
+AC_MSG_RESULT([$char_type])
+AC_SUBST([char_type])
+
+AC_MSG_CHECKING([Lisp double type])
+AC_MSG_RESULT([$double_type])
+AC_SUBST([double_type])
+
+AC_SUBST([float_type])
+AC_MSG_CHECKING([Lisp float type])
+AC_MSG_RESULT([$float_type])
+
+AC_MSG_CHECKING([Lisp int type])
+AC_MSG_RESULT([$int_type])
+AC_SUBST([int_type])
+
+AC_MSG_CHECKING([Lisp pointer type])
+AC_MSG_RESULT([$pointer_type])
+AC_SUBST([pointer_type])
+
+AC_MSG_CHECKING([Lisp string type])
+AC_MSG_RESULT([$string_type])
+AC_SUBST([string_type])
+
+AC_MSG_CHECKING([Lisp void type])
+AC_MSG_RESULT([$void_type])
+AC_SUBST([void_type])
+
+
+AC_SUBST([oa_delay_ffi])
+AC_SUBST([oa_editor], [/usr/bin/editor])
+AC_SUBST([oa_enable_profiling], [nil])
+AC_SUBST([oa_keep_files], [])
+AC_SUBST([oa_optimize_options], [speed])
+AC_SUBST([oa_standard_linking], [no])
+AC_SUBST([oa_use_llvm], [no])
+AC_SUBST([oa_c_runtime_extra], [])
+
+
+AC_DEFINE_UNQUOTED([OPENAXIOM_EXEEXT], ["$ac_cv_exeext"], [File extensions of the executables (e. g. ".exe").])
+AC_DEFINE_UNQUOTED([OPENAXIOM_USE_GUI], [0], [Whether to use the Qt-base GUI as driver.])
+AC_DEFINE_UNQUOTED([OPENAXIOM_USE_SMAN], [1], [Whether to use the session manager as driver.])
+
+OA_DEPS=dependencies.mk
+rm -f "$OA_DEPS"
+OA_RESOLVE_DEPENDENCIES([src/boot], ["$OA_DEPS"])
+OA_RESOLVE_DEPENDENCIES([src/boot/strap], ["$OA_DEPS"])
+OA_RESOLVE_DEPENDENCIES([src/interp], ["$OA_DEPS"])
+AC_SUBST_FILE([OA_DEPS])
+AC_SUBST([OA_DEPS_FILE], [$OA_DEPS])
+
+AC_CONFIG_LINKS([src/boot/stage1/ast.boot:src/boot/ast.boot
+ src/boot/stage1/includer.boot:src/boot/includer.boot
+ src/boot/stage1/parser.boot:src/boot/parser.boot
+ src/boot/stage1/pile.boot:src/boot/pile.boot
+ src/boot/stage1/scanner.boot:src/boot/scanner.boot
+ src/boot/stage1/tokens.boot:src/boot/tokens.boot
+ src/boot/stage1/translator.boot:src/boot/translator.boot
+ src/boot/stage1/utility.boot:src/boot/utility.boot])
+
+AC_CONFIG_FILES([Makefile src/lisp/core.lisp])
+AC_OUTPUT
+
diff --git a/m4/m4_ax_cxx_compile_stdcxx.m4 b/m4/m4_ax_cxx_compile_stdcxx.m4
new file mode 100644
index 00000000..a3d964c6
--- /dev/null
+++ b/m4/m4_ax_cxx_compile_stdcxx.m4
@@ -0,0 +1,1009 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
+#
+# DESCRIPTION
+#
+# Check for baseline language coverage in the compiler for the specified
+# version of the C++ standard. If necessary, add switches to CXX and
+# CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for
+# the respective C++ standard version.
+#
+# The second argument, if specified, indicates whether you insist on an
+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
+# -std=c++11). If neither is specified, you get whatever works, with
+# preference for no added switch, and then for an extended mode.
+#
+# The third argument, if specified 'mandatory' or if left unspecified,
+# indicates that baseline support for the specified C++ standard is
+# required and that the macro should error out if no mode with that
+# support is found. If specified 'optional', then configuration proceeds
+# regardless, after defining HAVE_CXX${VERSION} if and only if a
+# supporting mode is found.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
+# Copyright (c) 2015 Paul Norman <penorman@mac.com>
+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
+# Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
+# Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>
+# Copyright (c) 2020 Jason Merrill <jason@redhat.com>
+# Copyright (c) 2021 Jörn Heusipp <osmanx@problemloesungsmaschine.de>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 15
+
+dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
+dnl (serial version number 13).
+
+AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
+ m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
+ [$1], [14], [ax_cxx_compile_alternatives="14 1y"],
+ [$1], [17], [ax_cxx_compile_alternatives="17 1z"],
+ [$1], [20], [ax_cxx_compile_alternatives="20"],
+ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
+ m4_if([$2], [], [],
+ [$2], [ext], [],
+ [$2], [noext], [],
+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
+ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
+ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
+ [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
+ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
+ AC_LANG_PUSH([C++])dnl
+ ac_success=no
+
+ m4_if([$2], [], [dnl
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
+ ax_cv_cxx_compile_cxx$1,
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+ [ax_cv_cxx_compile_cxx$1=yes],
+ [ax_cv_cxx_compile_cxx$1=no])])
+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
+ ac_success=yes
+ fi])
+
+ m4_if([$2], [noext], [], [dnl
+ if test x$ac_success = xno; then
+ for alternative in ${ax_cxx_compile_alternatives}; do
+ switch="-std=gnu++${alternative}"
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
+ $cachevar,
+ [ac_save_CXX="$CXX"
+ CXX="$CXX $switch"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+ [eval $cachevar=yes],
+ [eval $cachevar=no])
+ CXX="$ac_save_CXX"])
+ if eval test x\$$cachevar = xyes; then
+ CXX="$CXX $switch"
+ if test -n "$CXXCPP" ; then
+ CXXCPP="$CXXCPP $switch"
+ fi
+ ac_success=yes
+ break
+ fi
+ done
+ fi])
+
+ m4_if([$2], [ext], [], [dnl
+ if test x$ac_success = xno; then
+ dnl HP's aCC needs +std=c++11 according to:
+ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
+ dnl Cray's crayCC needs "-h std=c++11"
+ for alternative in ${ax_cxx_compile_alternatives}; do
+ for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
+ $cachevar,
+ [ac_save_CXX="$CXX"
+ CXX="$CXX $switch"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+ [eval $cachevar=yes],
+ [eval $cachevar=no])
+ CXX="$ac_save_CXX"])
+ if eval test x\$$cachevar = xyes; then
+ CXX="$CXX $switch"
+ if test -n "$CXXCPP" ; then
+ CXXCPP="$CXXCPP $switch"
+ fi
+ ac_success=yes
+ break
+ fi
+ done
+ if test x$ac_success = xyes; then
+ break
+ fi
+ done
+ fi])
+ AC_LANG_POP([C++])
+ if test x$ax_cxx_compile_cxx$1_required = xtrue; then
+ if test x$ac_success = xno; then
+ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
+ fi
+ fi
+ if test x$ac_success = xno; then
+ HAVE_CXX$1=0
+ AC_MSG_NOTICE([No compiler with C++$1 support was found])
+ else
+ HAVE_CXX$1=1
+ AC_DEFINE(HAVE_CXX$1,1,
+ [define if the compiler supports basic C++$1 syntax])
+ fi
+ AC_SUBST(HAVE_CXX$1)
+])
+
+
+dnl Test body for checking C++11 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+)
+
+dnl Test body for checking C++14 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
+)
+
+dnl Test body for checking C++17 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17],
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
+)
+
+dnl Test body for checking C++20 support
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20],
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_20
+)
+
+
+dnl Tests for new features in C++11
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
+
+// If the compiler admits that it is not ready for C++11, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+// MSVC always sets __cplusplus to 199711L in older versions; newer versions
+// only set it correctly if /Zc:__cplusplus is specified as well as a
+// /std:c++NN switch:
+// https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
+#elif __cplusplus < 201103L && !defined _MSC_VER
+
+#error "This is not a C++11 compiler"
+
+#else
+
+namespace cxx11
+{
+
+ namespace test_static_assert
+ {
+
+ template <typename T>
+ struct check
+ {
+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
+ };
+
+ }
+
+ namespace test_final_override
+ {
+
+ struct Base
+ {
+ virtual ~Base() {}
+ virtual void f() {}
+ };
+
+ struct Derived : public Base
+ {
+ virtual ~Derived() override {}
+ virtual void f() override {}
+ };
+
+ }
+
+ namespace test_double_right_angle_brackets
+ {
+
+ template < typename T >
+ struct check {};
+
+ typedef check<void> single_type;
+ typedef check<check<void>> double_type;
+ typedef check<check<check<void>>> triple_type;
+ typedef check<check<check<check<void>>>> quadruple_type;
+
+ }
+
+ namespace test_decltype
+ {
+
+ int
+ f()
+ {
+ int a = 1;
+ decltype(a) b = 2;
+ return a + b;
+ }
+
+ }
+
+ namespace test_type_deduction
+ {
+
+ template < typename T1, typename T2 >
+ struct is_same
+ {
+ static const bool value = false;
+ };
+
+ template < typename T >
+ struct is_same<T, T>
+ {
+ static const bool value = true;
+ };
+
+ template < typename T1, typename T2 >
+ auto
+ add(T1 a1, T2 a2) -> decltype(a1 + a2)
+ {
+ return a1 + a2;
+ }
+
+ int
+ test(const int c, volatile int v)
+ {
+ static_assert(is_same<int, decltype(0)>::value == true, "");
+ static_assert(is_same<int, decltype(c)>::value == false, "");
+ static_assert(is_same<int, decltype(v)>::value == false, "");
+ auto ac = c;
+ auto av = v;
+ auto sumi = ac + av + 'x';
+ auto sumf = ac + av + 1.0;
+ static_assert(is_same<int, decltype(ac)>::value == true, "");
+ static_assert(is_same<int, decltype(av)>::value == true, "");
+ static_assert(is_same<int, decltype(sumi)>::value == true, "");
+ static_assert(is_same<int, decltype(sumf)>::value == false, "");
+ static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
+ return (sumf > 0.0) ? sumi : add(c, v);
+ }
+
+ }
+
+ namespace test_noexcept
+ {
+
+ int f() { return 0; }
+ int g() noexcept { return 0; }
+
+ static_assert(noexcept(f()) == false, "");
+ static_assert(noexcept(g()) == true, "");
+
+ }
+
+ namespace test_constexpr
+ {
+
+ template < typename CharT >
+ unsigned long constexpr
+ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
+ {
+ return *s ? strlen_c_r(s + 1, acc + 1) : acc;
+ }
+
+ template < typename CharT >
+ unsigned long constexpr
+ strlen_c(const CharT *const s) noexcept
+ {
+ return strlen_c_r(s, 0UL);
+ }
+
+ static_assert(strlen_c("") == 0UL, "");
+ static_assert(strlen_c("1") == 1UL, "");
+ static_assert(strlen_c("example") == 7UL, "");
+ static_assert(strlen_c("another\0example") == 7UL, "");
+
+ }
+
+ namespace test_rvalue_references
+ {
+
+ template < int N >
+ struct answer
+ {
+ static constexpr int value = N;
+ };
+
+ answer<1> f(int&) { return answer<1>(); }
+ answer<2> f(const int&) { return answer<2>(); }
+ answer<3> f(int&&) { return answer<3>(); }
+
+ void
+ test()
+ {
+ int i = 0;
+ const int c = 0;
+ static_assert(decltype(f(i))::value == 1, "");
+ static_assert(decltype(f(c))::value == 2, "");
+ static_assert(decltype(f(0))::value == 3, "");
+ }
+
+ }
+
+ namespace test_uniform_initialization
+ {
+
+ struct test
+ {
+ static const int zero {};
+ static const int one {1};
+ };
+
+ static_assert(test::zero == 0, "");
+ static_assert(test::one == 1, "");
+
+ }
+
+ namespace test_lambdas
+ {
+
+ void
+ test1()
+ {
+ auto lambda1 = [](){};
+ auto lambda2 = lambda1;
+ lambda1();
+ lambda2();
+ }
+
+ int
+ test2()
+ {
+ auto a = [](int i, int j){ return i + j; }(1, 2);
+ auto b = []() -> int { return '0'; }();
+ auto c = [=](){ return a + b; }();
+ auto d = [&](){ return c; }();
+ auto e = [a, &b](int x) mutable {
+ const auto identity = [](int y){ return y; };
+ for (auto i = 0; i < a; ++i)
+ a += b--;
+ return x + identity(a + b);
+ }(0);
+ return a + b + c + d + e;
+ }
+
+ int
+ test3()
+ {
+ const auto nullary = [](){ return 0; };
+ const auto unary = [](int x){ return x; };
+ using nullary_t = decltype(nullary);
+ using unary_t = decltype(unary);
+ const auto higher1st = [](nullary_t f){ return f(); };
+ const auto higher2nd = [unary](nullary_t f1){
+ return [unary, f1](unary_t f2){ return f2(unary(f1())); };
+ };
+ return higher1st(nullary) + higher2nd(nullary)(unary);
+ }
+
+ }
+
+ namespace test_variadic_templates
+ {
+
+ template <int...>
+ struct sum;
+
+ template <int N0, int... N1toN>
+ struct sum<N0, N1toN...>
+ {
+ static constexpr auto value = N0 + sum<N1toN...>::value;
+ };
+
+ template <>
+ struct sum<>
+ {
+ static constexpr auto value = 0;
+ };
+
+ static_assert(sum<>::value == 0, "");
+ static_assert(sum<1>::value == 1, "");
+ static_assert(sum<23>::value == 23, "");
+ static_assert(sum<1, 2>::value == 3, "");
+ static_assert(sum<5, 5, 11>::value == 21, "");
+ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
+
+ }
+
+ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
+ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
+ // because of this.
+ namespace test_template_alias_sfinae
+ {
+
+ struct foo {};
+
+ template<typename T>
+ using member = typename T::member_type;
+
+ template<typename T>
+ void func(...) {}
+
+ template<typename T>
+ void func(member<T>*) {}
+
+ void test();
+
+ void test() { func<foo>(0); }
+
+ }
+
+} // namespace cxx11
+
+#endif // __cplusplus >= 201103L
+
+]])
+
+
+dnl Tests for new features in C++14
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
+
+// If the compiler admits that it is not ready for C++14, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201402L && !defined _MSC_VER
+
+#error "This is not a C++14 compiler"
+
+#else
+
+namespace cxx14
+{
+
+ namespace test_polymorphic_lambdas
+ {
+
+ int
+ test()
+ {
+ const auto lambda = [](auto&&... args){
+ const auto istiny = [](auto x){
+ return (sizeof(x) == 1UL) ? 1 : 0;
+ };
+ const int aretiny[] = { istiny(args)... };
+ return aretiny[0];
+ };
+ return lambda(1, 1L, 1.0f, '1');
+ }
+
+ }
+
+ namespace test_binary_literals
+ {
+
+ constexpr auto ivii = 0b0000000000101010;
+ static_assert(ivii == 42, "wrong value");
+
+ }
+
+ namespace test_generalized_constexpr
+ {
+
+ template < typename CharT >
+ constexpr unsigned long
+ strlen_c(const CharT *const s) noexcept
+ {
+ auto length = 0UL;
+ for (auto p = s; *p; ++p)
+ ++length;
+ return length;
+ }
+
+ static_assert(strlen_c("") == 0UL, "");
+ static_assert(strlen_c("x") == 1UL, "");
+ static_assert(strlen_c("test") == 4UL, "");
+ static_assert(strlen_c("another\0test") == 7UL, "");
+
+ }
+
+ namespace test_lambda_init_capture
+ {
+
+ int
+ test()
+ {
+ auto x = 0;
+ const auto lambda1 = [a = x](int b){ return a + b; };
+ const auto lambda2 = [a = lambda1(x)](){ return a; };
+ return lambda2();
+ }
+
+ }
+
+ namespace test_digit_separators
+ {
+
+ constexpr auto ten_million = 100'000'000;
+ static_assert(ten_million == 100000000, "");
+
+ }
+
+ namespace test_return_type_deduction
+ {
+
+ auto f(int& x) { return x; }
+ decltype(auto) g(int& x) { return x; }
+
+ template < typename T1, typename T2 >
+ struct is_same
+ {
+ static constexpr auto value = false;
+ };
+
+ template < typename T >
+ struct is_same<T, T>
+ {
+ static constexpr auto value = true;
+ };
+
+ int
+ test()
+ {
+ auto x = 0;
+ static_assert(is_same<int, decltype(f(x))>::value, "");
+ static_assert(is_same<int&, decltype(g(x))>::value, "");
+ return x;
+ }
+
+ }
+
+} // namespace cxx14
+
+#endif // __cplusplus >= 201402L
+
+]])
+
+
+dnl Tests for new features in C++17
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
+
+// If the compiler admits that it is not ready for C++17, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201703L && !defined _MSC_VER
+
+#error "This is not a C++17 compiler"
+
+#else
+
+#include <initializer_list>
+#include <utility>
+#include <type_traits>
+
+namespace cxx17
+{
+
+ namespace test_constexpr_lambdas
+ {
+
+ constexpr int foo = [](){return 42;}();
+
+ }
+
+ namespace test::nested_namespace::definitions
+ {
+
+ }
+
+ namespace test_fold_expression
+ {
+
+ template<typename... Args>
+ int multiply(Args... args)
+ {
+ return (args * ... * 1);
+ }
+
+ template<typename... Args>
+ bool all(Args... args)
+ {
+ return (args && ...);
+ }
+
+ }
+
+ namespace test_extended_static_assert
+ {
+
+ static_assert (true);
+
+ }
+
+ namespace test_auto_brace_init_list
+ {
+
+ auto foo = {5};
+ auto bar {5};
+
+ static_assert(std::is_same<std::initializer_list<int>, decltype(foo)>::value);
+ static_assert(std::is_same<int, decltype(bar)>::value);
+ }
+
+ namespace test_typename_in_template_template_parameter
+ {
+
+ template<template<typename> typename X> struct D;
+
+ }
+
+ namespace test_fallthrough_nodiscard_maybe_unused_attributes
+ {
+
+ int f1()
+ {
+ return 42;
+ }
+
+ [[nodiscard]] int f2()
+ {
+ [[maybe_unused]] auto unused = f1();
+
+ switch (f1())
+ {
+ case 17:
+ f1();
+ [[fallthrough]];
+ case 42:
+ f1();
+ }
+ return f1();
+ }
+
+ }
+
+ namespace test_extended_aggregate_initialization
+ {
+
+ struct base1
+ {
+ int b1, b2 = 42;
+ };
+
+ struct base2
+ {
+ base2() {
+ b3 = 42;
+ }
+ int b3;
+ };
+
+ struct derived : base1, base2
+ {
+ int d;
+ };
+
+ derived d1 {{1, 2}, {}, 4}; // full initialization
+ derived d2 {{}, {}, 4}; // value-initialized bases
+
+ }
+
+ namespace test_general_range_based_for_loop
+ {
+
+ struct iter
+ {
+ int i;
+
+ int& operator* ()
+ {
+ return i;
+ }
+
+ const int& operator* () const
+ {
+ return i;
+ }
+
+ iter& operator++()
+ {
+ ++i;
+ return *this;
+ }
+ };
+
+ struct sentinel
+ {
+ int i;
+ };
+
+ bool operator== (const iter& i, const sentinel& s)
+ {
+ return i.i == s.i;
+ }
+
+ bool operator!= (const iter& i, const sentinel& s)
+ {
+ return !(i == s);
+ }
+
+ struct range
+ {
+ iter begin() const
+ {
+ return {0};
+ }
+
+ sentinel end() const
+ {
+ return {5};
+ }
+ };
+
+ void f()
+ {
+ range r {};
+
+ for (auto i : r)
+ {
+ [[maybe_unused]] auto v = i;
+ }
+ }
+
+ }
+
+ namespace test_lambda_capture_asterisk_this_by_value
+ {
+
+ struct t
+ {
+ int i;
+ int foo()
+ {
+ return [*this]()
+ {
+ return i;
+ }();
+ }
+ };
+
+ }
+
+ namespace test_enum_class_construction
+ {
+
+ enum class byte : unsigned char
+ {};
+
+ byte foo {42};
+
+ }
+
+ namespace test_constexpr_if
+ {
+
+ template <bool cond>
+ int f ()
+ {
+ if constexpr(cond)
+ {
+ return 13;
+ }
+ else
+ {
+ return 42;
+ }
+ }
+
+ }
+
+ namespace test_selection_statement_with_initializer
+ {
+
+ int f()
+ {
+ return 13;
+ }
+
+ int f2()
+ {
+ if (auto i = f(); i > 0)
+ {
+ return 3;
+ }
+
+ switch (auto i = f(); i + 4)
+ {
+ case 17:
+ return 2;
+
+ default:
+ return 1;
+ }
+ }
+
+ }
+
+ namespace test_template_argument_deduction_for_class_templates
+ {
+
+ template <typename T1, typename T2>
+ struct pair
+ {
+ pair (T1 p1, T2 p2)
+ : m1 {p1},
+ m2 {p2}
+ {}
+
+ T1 m1;
+ T2 m2;
+ };
+
+ void f()
+ {
+ [[maybe_unused]] auto p = pair{13, 42u};
+ }
+
+ }
+
+ namespace test_non_type_auto_template_parameters
+ {
+
+ template <auto n>
+ struct B
+ {};
+
+ B<5> b1;
+ B<'a'> b2;
+
+ }
+
+ namespace test_structured_bindings
+ {
+
+ int arr[2] = { 1, 2 };
+ std::pair<int, int> pr = { 1, 2 };
+
+ auto f1() -> int(&)[2]
+ {
+ return arr;
+ }
+
+ auto f2() -> std::pair<int, int>&
+ {
+ return pr;
+ }
+
+ struct S
+ {
+ int x1 : 2;
+ volatile double y1;
+ };
+
+ S f3()
+ {
+ return {};
+ }
+
+ auto [ x1, y1 ] = f1();
+ auto& [ xr1, yr1 ] = f1();
+ auto [ x2, y2 ] = f2();
+ auto& [ xr2, yr2 ] = f2();
+ const auto [ x3, y3 ] = f3();
+
+ }
+
+ namespace test_exception_spec_type_system
+ {
+
+ struct Good {};
+ struct Bad {};
+
+ void g1() noexcept;
+ void g2();
+
+ template<typename T>
+ Bad
+ f(T*, T*);
+
+ template<typename T1, typename T2>
+ Good
+ f(T1*, T2*);
+
+ static_assert (std::is_same_v<Good, decltype(f(g1, g2))>);
+
+ }
+
+ namespace test_inline_variables
+ {
+
+ template<class T> void f(T)
+ {}
+
+ template<class T> inline T g(T)
+ {
+ return T{};
+ }
+
+ template<> inline void f<>(int)
+ {}
+
+ template<> int g<>(int)
+ {
+ return 5;
+ }
+
+ }
+
+} // namespace cxx17
+
+#endif // __cplusplus < 201703L && !defined _MSC_VER
+
+]])
+
+
+dnl Tests for new features in C++20
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 202002L && !defined _MSC_VER
+
+#error "This is not a C++20 compiler"
+
+#else
+
+#include <version>
+
+namespace cxx20
+{
+
+// As C++20 supports feature test macros in the standard, there is no
+// immediate need to actually test for feature availability on the
+// Autoconf side.
+
+} // namespace cxx20
+
+#endif // __cplusplus < 202002L && !defined _MSC_VER
+
+]])
diff --git a/m4/open-axiom-deps.m4 b/m4/open-axiom-deps.m4
new file mode 100644
index 00000000..595c6da3
--- /dev/null
+++ b/m4/open-axiom-deps.m4
@@ -0,0 +1,28 @@
+# Resolve dependencies between *.boot, *.lisp, *.clisp
+# and other OpenAxiom source files within the given directory.
+# Dependencies will be written (appended) to the makefile:
+#
+# OA_RESOLVE_DEPENDENCIES(directory, makefile)
+#
+# Example:
+#
+# OA_RESOLVE_DEPENDENCIES([src/boot/strap], [Makefile])
+#
+# -----------------------------
+AC_DEFUN([OA_RESOLVE_DEPENDENCIES],
+[ AC_MSG_CHECKING([dependencies in $1])
+ for f in $1/*.clisp $1/*.lisp $1/*.boot
+ do
+ AS_IF([test -f "$f"],
+ [AS_CASE(["$f"],
+ [*.boot], [OA_EXTRACT_BOOT([/^import @<:@^ @:>@+$/], [/^import /], [/$/], [$1], ["$f"]) >> $2],
+ [*.clisp], [OA_EXTRACT_LISP([/\((IMPORT-MODULE|import-module) "/], [/"\)/], [$1], ["$f"]) >> $2],
+ [*.lisp], [OA_EXTRACT_LISP([/\((IMPORT-MODULE|import-module) "/], [/"\)/], [$1], ["$f"]) >> $2])])
+ done
+ AC_MSG_RESULT([done])])
+
+AC_DEFUN([OA_EXTRACT_LISP], [OA_EXTRACT([$1], [$1], [$2], [$3], [$4])])
+AC_DEFUN([OA_EXTRACT_BOOT], [OA_EXTRACT([$1], [$2], [$3], [$4], [$5])])
+
+AC_DEFUN([OA_EXTRACT],
+[$AWK 'BEGIN {t=ARGV@<:@1@:>@; sub(/\.@<:@^.@:>@+$/,".$(FASLEXT)",t)} $1 {gsub ($2, "$4/"); gsub($3, ".$(FASLEXT)"); gsub(/_-/, "-"); r=r " " @S|@0} END {printf("%s:%s\n", t, r)}' $5])
diff --git a/src/clef/edible.c b/src/clef/edible.cc
index c3022060..c3022060 100644
--- a/src/clef/edible.c
+++ b/src/clef/edible.cc
diff --git a/src/etc/asq.c.pamphlet b/src/etc/asq.c.pamphlet
index 0ef9c5ef..98217cae 100644
--- a/src/etc/asq.c.pamphlet
+++ b/src/etc/asq.c.pamphlet
@@ -524,7 +524,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/* printhelp -- print the help info */
/* main */
-#include "openaxiom-c-macros.h"
#include <ctype.h>
#include <unistd.h>
diff --git a/src/graph/Gdraws/Gdraws0.h b/src/graph/Gdraws/Gdraws0.h
index 632c3704..88425df1 100644
--- a/src/graph/Gdraws/Gdraws0.h
+++ b/src/graph/Gdraws/Gdraws0.h
@@ -36,7 +36,6 @@
#ifndef _GDRAWS0_H_
#define _GDRAWS0_H_ 1
-#include "openaxiom-c-macros.h"
#include <X11/Xlib.h>
diff --git a/src/graph/view2D/buttons2d.c b/src/graph/view2D/buttons2d.c
index 1babc196..1f435657 100644
--- a/src/graph/view2D/buttons2d.c
+++ b/src/graph/view2D/buttons2d.c
@@ -34,7 +34,6 @@
*/
#define _BUTTONS2D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
diff --git a/src/graph/view2D/control2d.c b/src/graph/view2D/control2d.c
index 051184c4..83be366c 100644
--- a/src/graph/view2D/control2d.c
+++ b/src/graph/view2D/control2d.c
@@ -34,7 +34,6 @@
*/
#define _CONTROL2D_C
-#include "openaxiom-c-macros.h"
#include <stdlib.h>
#include <unistd.h>
diff --git a/src/graph/view2D/graph2d.c b/src/graph/view2D/graph2d.c
index dadd4008..2e1f9f86 100644
--- a/src/graph/view2D/graph2d.c
+++ b/src/graph/view2D/graph2d.c
@@ -34,7 +34,6 @@
*/
#define _GRAPH2D_C
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <unistd.h>
diff --git a/src/graph/view2D/main2d.c b/src/graph/view2D/main2d.c
index 29c3b3d7..ac8547ee 100644
--- a/src/graph/view2D/main2d.c
+++ b/src/graph/view2D/main2d.c
@@ -34,7 +34,6 @@
*/
#define _MAIN2D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <stdlib.h>
diff --git a/src/graph/view2D/pot2d.c b/src/graph/view2D/pot2d.c
index 19f34e96..69aa985a 100644
--- a/src/graph/view2D/pot2d.c
+++ b/src/graph/view2D/pot2d.c
@@ -34,7 +34,6 @@
*/
#define _POT2D_C
-#include "openaxiom-c-macros.h"
#include "header2.h"
diff --git a/src/graph/view2D/process2d.c b/src/graph/view2D/process2d.c
index 52c326f6..96740d35 100644
--- a/src/graph/view2D/process2d.c
+++ b/src/graph/view2D/process2d.c
@@ -34,7 +34,6 @@
*/
#define _PROCESS2D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <stdio.h>
diff --git a/src/graph/view2D/spadAction2d.c b/src/graph/view2D/spadAction2d.c
index 60789eb1..bceec18d 100644
--- a/src/graph/view2D/spadAction2d.c
+++ b/src/graph/view2D/spadAction2d.c
@@ -34,7 +34,6 @@
*/
#define _SPADACTION2D_C
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/graph/view2D/stuff2d.c b/src/graph/view2D/stuff2d.c
index 1674d2f2..49649fdb 100644
--- a/src/graph/view2D/stuff2d.c
+++ b/src/graph/view2D/stuff2d.c
@@ -34,7 +34,6 @@
*/
#define _STUFF2D_C
-#include "openaxiom-c-macros.h"
#include <unistd.h>
#include <stdlib.h>
diff --git a/src/graph/view2D/write2d.c b/src/graph/view2D/write2d.c
index 395b821a..967dd149 100644
--- a/src/graph/view2D/write2d.c
+++ b/src/graph/view2D/write2d.c
@@ -34,7 +34,6 @@
*/
#define _WRITE2D_C
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/graph/view3D/buttons3d.c b/src/graph/view3D/buttons3d.c
index d96031b9..1b3c4bcb 100644
--- a/src/graph/view3D/buttons3d.c
+++ b/src/graph/view3D/buttons3d.c
@@ -34,7 +34,6 @@
*/
#define _BUTTONS3D_C
-#include "openaxiom-c-macros.h"
#include "header.h"
#include "cpanel.h"
diff --git a/src/graph/view3D/closeView3d.c b/src/graph/view3D/closeView3d.c
index 14c64110..af040411 100644
--- a/src/graph/view3D/closeView3d.c
+++ b/src/graph/view3D/closeView3d.c
@@ -34,7 +34,6 @@
*/
#define _CLOSEVIEW3D_C
-#include "openaxiom-c-macros.h"
#include <stdlib.h>
#include "header.h"
diff --git a/src/graph/view3D/component3d.c b/src/graph/view3D/component3d.c
index 626790be..e45c58cf 100644
--- a/src/graph/view3D/component3d.c
+++ b/src/graph/view3D/component3d.c
@@ -34,7 +34,6 @@
*/
#define _COMPONENT3D_C
-#include "openaxiom-c-macros.h"
#include "header.h"
#include "draw.h"
diff --git a/src/graph/view3D/control3d.c b/src/graph/view3D/control3d.c
index 2fb407e6..0e59aec5 100644
--- a/src/graph/view3D/control3d.c
+++ b/src/graph/view3D/control3d.c
@@ -34,7 +34,6 @@
*/
#define _CONTROL3D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <stdio.h>
diff --git a/src/graph/view3D/illuminate3d.c b/src/graph/view3D/illuminate3d.c
index 323e5916..78bec762 100644
--- a/src/graph/view3D/illuminate3d.c
+++ b/src/graph/view3D/illuminate3d.c
@@ -34,7 +34,6 @@
*/
#define _ILLUMINATE3D_C
-#include "openaxiom-c-macros.h"
#include <math.h>
diff --git a/src/graph/view3D/lightbut3d.c b/src/graph/view3D/lightbut3d.c
index b15b14da..42eb140b 100644
--- a/src/graph/view3D/lightbut3d.c
+++ b/src/graph/view3D/lightbut3d.c
@@ -34,7 +34,6 @@
*/
#define _LIGHTBUT3D_C
-#include "openaxiom-c-macros.h"
#include "header.h"
#include "cpanel.h"
diff --git a/src/graph/view3D/lighting3d.c b/src/graph/view3D/lighting3d.c
index 5d0b5489..03438aaa 100644
--- a/src/graph/view3D/lighting3d.c
+++ b/src/graph/view3D/lighting3d.c
@@ -34,7 +34,6 @@
*/
#define _LIGHTING3D_C
-#include "openaxiom-c-macros.h"
#include <math.h>
#include <string.h>
diff --git a/src/graph/view3D/main3d.c b/src/graph/view3D/main3d.c
index 90616192..a987028f 100644
--- a/src/graph/view3D/main3d.c
+++ b/src/graph/view3D/main3d.c
@@ -34,7 +34,6 @@
*/
#define _MAIN3D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <stdio.h>
diff --git a/src/graph/view3D/mesh3d.c b/src/graph/view3D/mesh3d.c
index 716cebeb..c1369e3f 100644
--- a/src/graph/view3D/mesh3d.c
+++ b/src/graph/view3D/mesh3d.c
@@ -34,7 +34,6 @@
*/
#define _MESH3D_C
-#include "openaxiom-c-macros.h"
#include <math.h>
diff --git a/src/graph/view3D/msort3d.c b/src/graph/view3D/msort3d.c
index f034fe2d..36d2ca43 100644
--- a/src/graph/view3D/msort3d.c
+++ b/src/graph/view3D/msort3d.c
@@ -34,7 +34,6 @@
*/
#define _MSORT3D_C
-#include "openaxiom-c-macros.h"
/*****************************************************
diff --git a/src/graph/view3D/pot3d.c b/src/graph/view3D/pot3d.c
index 0e519313..a38b16e9 100644
--- a/src/graph/view3D/pot3d.c
+++ b/src/graph/view3D/pot3d.c
@@ -34,7 +34,6 @@
*/
#define _POT3D_C
-#include "openaxiom-c-macros.h"
#include "header.h"
#include "all_3d.H1"
diff --git a/src/graph/view3D/process3d.c b/src/graph/view3D/process3d.c
index f5adbf9e..fcceb2e4 100644
--- a/src/graph/view3D/process3d.c
+++ b/src/graph/view3D/process3d.c
@@ -34,7 +34,6 @@
*/
#define _PROCESS3D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <stdlib.h>
diff --git a/src/graph/view3D/project3d.c b/src/graph/view3D/project3d.c
index f95d12d5..0032953d 100644
--- a/src/graph/view3D/project3d.c
+++ b/src/graph/view3D/project3d.c
@@ -34,7 +34,6 @@
*/
#define _PROJECT3D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include "header.h"
diff --git a/src/graph/view3D/quit3d.c b/src/graph/view3D/quit3d.c
index bcbcd707..3218e00e 100644
--- a/src/graph/view3D/quit3d.c
+++ b/src/graph/view3D/quit3d.c
@@ -34,7 +34,6 @@
*/
#define _QUIT3D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include "header.h"
diff --git a/src/graph/view3D/quitbut3d.c b/src/graph/view3D/quitbut3d.c
index 448d80ed..a4ada8f4 100644
--- a/src/graph/view3D/quitbut3d.c
+++ b/src/graph/view3D/quitbut3d.c
@@ -34,7 +34,6 @@
*/
#define _QUITBUT3D_C
-#include "openaxiom-c-macros.h"
#include "header.h"
#include "cpanel.h"
diff --git a/src/graph/view3D/save3d.c b/src/graph/view3D/save3d.c
index be86090f..2114668a 100644
--- a/src/graph/view3D/save3d.c
+++ b/src/graph/view3D/save3d.c
@@ -34,7 +34,6 @@
*/
#define _SAVE3D_C
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <string.h>
diff --git a/src/graph/view3D/savebut3d.c b/src/graph/view3D/savebut3d.c
index d6e1e900..f2b80a8d 100644
--- a/src/graph/view3D/savebut3d.c
+++ b/src/graph/view3D/savebut3d.c
@@ -34,7 +34,6 @@
*/
#define _SAVEBUT3D_C
-#include "openaxiom-c-macros.h"
#include "header.h"
#include "cpanel.h"
diff --git a/src/graph/view3D/smoothShade3d.c b/src/graph/view3D/smoothShade3d.c
index b794f210..bb6a97bd 100644
--- a/src/graph/view3D/smoothShade3d.c
+++ b/src/graph/view3D/smoothShade3d.c
@@ -34,7 +34,6 @@
*/
#define _SMOOTHSHADE_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <math.h>
diff --git a/src/graph/view3D/spadAction3d.c b/src/graph/view3D/spadAction3d.c
index 0c3861f3..e9ce3827 100644
--- a/src/graph/view3D/spadAction3d.c
+++ b/src/graph/view3D/spadAction3d.c
@@ -34,7 +34,6 @@
*/
#define _SPADACTION3D_C
-#include "openaxiom-c-macros.h"
#include <unistd.h>
#include <stdio.h>
diff --git a/src/graph/view3D/stuff3d.c b/src/graph/view3D/stuff3d.c
index ed466eb3..2362fc74 100644
--- a/src/graph/view3D/stuff3d.c
+++ b/src/graph/view3D/stuff3d.c
@@ -34,7 +34,6 @@
*/
#define _STUFF3D_C
-#include "openaxiom-c-macros.h"
#include "header.h"
diff --git a/src/graph/view3D/surface3d.c b/src/graph/view3D/surface3d.c
index 3cff2df6..27647d23 100644
--- a/src/graph/view3D/surface3d.c
+++ b/src/graph/view3D/surface3d.c
@@ -34,7 +34,6 @@
*/
#define _SURFACE3D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <math.h>
diff --git a/src/graph/view3D/testcol.c b/src/graph/view3D/testcol.c
index 9eaea909..2c576bd6 100644
--- a/src/graph/view3D/testcol.c
+++ b/src/graph/view3D/testcol.c
@@ -34,7 +34,6 @@
*/
#define _MAIN3D_C
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/graph/view3D/transform3d.c b/src/graph/view3D/transform3d.c
index 4030e25c..c4390f99 100644
--- a/src/graph/view3D/transform3d.c
+++ b/src/graph/view3D/transform3d.c
@@ -34,7 +34,6 @@
*/
#define _TRANSFORM3D_C
-#include "openaxiom-c-macros.h"
#include "header.h"
diff --git a/src/graph/view3D/viewport3d.c b/src/graph/view3D/viewport3d.c
index eed96b72..b0d9cb40 100644
--- a/src/graph/view3D/viewport3d.c
+++ b/src/graph/view3D/viewport3d.c
@@ -34,7 +34,6 @@
*/
#define _VIEWPORT3D_C
-#include "openaxiom-c-macros.h"
#include <math.h>
#include <stdio.h>
diff --git a/src/graph/view3D/volume3d.c b/src/graph/view3D/volume3d.c
index 87bce529..1794a1d2 100644
--- a/src/graph/view3D/volume3d.c
+++ b/src/graph/view3D/volume3d.c
@@ -34,7 +34,6 @@
*/
#define _VOLUME3D_C
-#include "openaxiom-c-macros.h"
#include <math.h>
#include <string.h>
diff --git a/src/graph/view3D/write3d.c b/src/graph/view3D/write3d.c
index 7eeaf15b..dd3c9a15 100644
--- a/src/graph/view3D/write3d.c
+++ b/src/graph/view3D/write3d.c
@@ -34,7 +34,6 @@
*/
#define _WRITE3D_C
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/graph/viewAlone/viewAlone.c b/src/graph/viewAlone/viewAlone.c
index 07f89039..5fb48a93 100644
--- a/src/graph/viewAlone/viewAlone.c
+++ b/src/graph/viewAlone/viewAlone.c
@@ -34,7 +34,6 @@
*/
#define _VIEWALONE_C
-#include "openaxiom-c-macros.h"
#include <stdlib.h>
#include "viewAlone.h"
diff --git a/src/graph/viewman/cleanup.c b/src/graph/viewman/cleanup.c
index 4dfbc04e..20c4cfa9 100644
--- a/src/graph/viewman/cleanup.c
+++ b/src/graph/viewman/cleanup.c
@@ -34,7 +34,6 @@
*/
#define _CLEANUP_C
-#include "openaxiom-c-macros.h"
#include <stdlib.h>
#include <unistd.h>
diff --git a/src/graph/viewman/make2D.c b/src/graph/viewman/make2D.c
index 65810003..0cbcf8bc 100644
--- a/src/graph/viewman/make2D.c
+++ b/src/graph/viewman/make2D.c
@@ -34,7 +34,6 @@
*/
#define _MAKE2D_C
-#include "openaxiom-c-macros.h"
#include "viewman.h"
diff --git a/src/graph/viewman/make3D.c b/src/graph/viewman/make3D.c
index 30f2e869..2bbaebb9 100644
--- a/src/graph/viewman/make3D.c
+++ b/src/graph/viewman/make3D.c
@@ -34,7 +34,6 @@
*/
#define _MAKE3D_C
-#include "openaxiom-c-macros.h"
#include <stdlib.h>
diff --git a/src/graph/viewman/makeGraph.c b/src/graph/viewman/makeGraph.c
index 331d32cf..344144ec 100644
--- a/src/graph/viewman/makeGraph.c
+++ b/src/graph/viewman/makeGraph.c
@@ -34,7 +34,6 @@
*/
#define _MAKEGRAPH_C
-#include "openaxiom-c-macros.h"
#include <stdlib.h>
#include <stdio.h>
diff --git a/src/graph/viewman/readView.c b/src/graph/viewman/readView.c
index b21cf3df..13745459 100644
--- a/src/graph/viewman/readView.c
+++ b/src/graph/viewman/readView.c
@@ -34,7 +34,6 @@
*/
#define _READVIEW_C
-#include "openaxiom-c-macros.h"
#include <unistd.h>
#include <stdio.h>
diff --git a/src/graph/viewman/sselect.c b/src/graph/viewman/sselect.c
index 68a3f869..942aa14c 100644
--- a/src/graph/viewman/sselect.c
+++ b/src/graph/viewman/sselect.c
@@ -34,7 +34,6 @@
*/
#define _SSELECT_C
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <errno.h>
diff --git a/src/graph/viewman/viewman.c b/src/graph/viewman/viewman.c
index e5940302..34c48a71 100644
--- a/src/graph/viewman/viewman.c
+++ b/src/graph/viewman/viewman.c
@@ -34,7 +34,6 @@
*/
#define _VIEWMAN_C
-#include "openaxiom-c-macros.h"
#include <unistd.h>
#include <sys/time.h>
diff --git a/src/hyper/ReadBitmap.c b/src/hyper/ReadBitmap.c
index ee8e89d2..3ecd3bd4 100644
--- a/src/hyper/ReadBitmap.c
+++ b/src/hyper/ReadBitmap.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/addfile.c b/src/hyper/addfile.c
index 3671b2a5..cac8a957 100644
--- a/src/hyper/addfile.c
+++ b/src/hyper/addfile.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include <sys/stat.h>
#include <errno.h>
diff --git a/src/hyper/cond.c b/src/hyper/cond.c
index 1771ca02..4db1f352 100644
--- a/src/hyper/cond.c
+++ b/src/hyper/cond.c
@@ -41,7 +41,6 @@
*
****************************************************************************/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "sockio.h"
#include "halloc.h"
diff --git a/src/hyper/debug.c b/src/hyper/debug.c
index 7260ca15..c00d53d2 100644
--- a/src/hyper/debug.c
+++ b/src/hyper/debug.c
@@ -34,7 +34,6 @@
*/
#define _DEBUG_C
-#include "openaxiom-c-macros.h"
#include "debug.h"
diff --git a/src/hyper/dialog.c b/src/hyper/dialog.c
index e3ae5122..e67ca0fd 100644
--- a/src/hyper/dialog.c
+++ b/src/hyper/dialog.c
@@ -43,7 +43,6 @@
#include <X11/keysym.h>
#define _DIALOG_C
-#include "openaxiom-c-macros.h"
#include "debug.h"
diff --git a/src/hyper/display.c b/src/hyper/display.c
index e7d493f6..0bb5fa36 100644
--- a/src/hyper/display.c
+++ b/src/hyper/display.c
@@ -52,7 +52,6 @@
*/
#define _DISPLAY_C
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "sockio.h"
diff --git a/src/hyper/event.c b/src/hyper/event.c
index b2217805..8412df23 100644
--- a/src/hyper/event.c
+++ b/src/hyper/event.c
@@ -35,7 +35,6 @@
#define _EVENT_C
-#include "openaxiom-c-macros.h"
#include <X11/X.h>
#include <X11/Xatom.h>
diff --git a/src/hyper/ex2ht.c b/src/hyper/ex2ht.c
index 64a55a2e..36042231 100644
--- a/src/hyper/ex2ht.c
+++ b/src/hyper/ex2ht.c
@@ -36,7 +36,6 @@
/* ex2ht creates a cover page for structured HyperDoc example pages */
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include <stdio.h>
diff --git a/src/hyper/extent.h b/src/hyper/extent.h
index efc9ece4..4e1e2425 100644
--- a/src/hyper/extent.h
+++ b/src/hyper/extent.h
@@ -36,7 +36,6 @@
#ifndef _EXTENT_H_
#define _EXTENT_H_ 1
-#include "openaxiom-c-macros.h"
#include "hyper.h"
/*
diff --git a/src/hyper/extent1.c b/src/hyper/extent1.c
index 95766791..46977487 100644
--- a/src/hyper/extent1.c
+++ b/src/hyper/extent1.c
@@ -41,7 +41,6 @@
*
****************************************************************************/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "sockio.h"
#include "extent.h"
diff --git a/src/hyper/extent2.c b/src/hyper/extent2.c
index 10f7b923..c251e6ac 100644
--- a/src/hyper/extent2.c
+++ b/src/hyper/extent2.c
@@ -41,7 +41,6 @@
*
****************************************************************************/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/form-ext.c b/src/hyper/form-ext.c
index 93d8d0b0..24c94a24 100644
--- a/src/hyper/form-ext.c
+++ b/src/hyper/form-ext.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "sockio.h"
#include "extent.h"
diff --git a/src/hyper/group.h b/src/hyper/group.h
index 7253cd83..0a1b9d44 100644
--- a/src/hyper/group.h
+++ b/src/hyper/group.h
@@ -36,7 +36,6 @@
#ifndef _GROUP_H_
#define _GROUP_H_ 1
-#include "openaxiom-c-macros.h"
#include "hyper.h"
extern void bf_top_group(void );
diff --git a/src/hyper/htadd.c b/src/hyper/htadd.c
index b3a5962a..8457885c 100644
--- a/src/hyper/htadd.c
+++ b/src/hyper/htadd.c
@@ -36,7 +36,6 @@
/* HyperDoc database file manager */
-#include "openaxiom-c-macros.h"
#include <errno.h>
#include <setjmp.h>
diff --git a/src/hyper/hthits.c b/src/hyper/hthits.c
index 4e628b16..5f04bdbf 100644
--- a/src/hyper/hthits.c
+++ b/src/hyper/hthits.c
@@ -49,7 +49,6 @@
* SMW Feb 91
*/
-#include "openaxiom-c-macros.h"
#include "debug.h"
diff --git a/src/hyper/htinp.c b/src/hyper/htinp.c
index b44047f8..fafa992a 100644
--- a/src/hyper/htinp.c
+++ b/src/hyper/htinp.c
@@ -37,7 +37,6 @@
#include <sys/signal.h>
#include <setjmp.h>
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/htsearch.cc b/src/hyper/htsearch.cc
index b42c0b0f..d521a12f 100644
--- a/src/hyper/htsearch.cc
+++ b/src/hyper/htsearch.cc
@@ -41,7 +41,6 @@
* result.
*/
-#include "openaxiom-c-macros.h"
#include <stdlib.h>
#include <stdio.h>
diff --git a/src/hyper/hyper.h b/src/hyper/hyper.h
index 67537647..2b4b577d 100644
--- a/src/hyper/hyper.h
+++ b/src/hyper/hyper.h
@@ -36,7 +36,6 @@
#ifndef _HYPER_H_
#define _HYPER_H_ 1
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
diff --git a/src/hyper/initx.c b/src/hyper/initx.c
index c69c2071..911208c9 100644
--- a/src/hyper/initx.c
+++ b/src/hyper/initx.c
@@ -43,7 +43,6 @@
/* #define DEBUG 1 */
-#include "openaxiom-c-macros.h"
#include <unistd.h>
#include <sys/signal.h>
diff --git a/src/hyper/input.c b/src/hyper/input.c
index 2c645208..cabfdc24 100644
--- a/src/hyper/input.c
+++ b/src/hyper/input.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "sockio.h"
#include "hyper.h"
diff --git a/src/hyper/item.c b/src/hyper/item.c
index 7bf7d724..576cc895 100644
--- a/src/hyper/item.c
+++ b/src/hyper/item.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include "sockio.h"
#include "debug.h"
#include "halloc.h"
diff --git a/src/hyper/keyin.c b/src/hyper/keyin.c
index fa8af8de..e8dbf70d 100644
--- a/src/hyper/keyin.c
+++ b/src/hyper/keyin.c
@@ -42,7 +42,6 @@
****************************************************************************/
#include <X11/keysym.h>
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/lex.c b/src/hyper/lex.c
index ed281403..9c7edc23 100644
--- a/src/hyper/lex.c
+++ b/src/hyper/lex.c
@@ -57,7 +57,6 @@
*
*/
#define _LEX_C
-#include "openaxiom-c-macros.h"
#include <ctype.h>
#include <setjmp.h>
diff --git a/src/hyper/macro.c b/src/hyper/macro.c
index 7bf0f77b..54e70f09 100644
--- a/src/hyper/macro.c
+++ b/src/hyper/macro.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/parse-aux.c b/src/hyper/parse-aux.c
index 24efcf89..cbfb2197 100644
--- a/src/hyper/parse-aux.c
+++ b/src/hyper/parse-aux.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/parse-input.c b/src/hyper/parse-input.c
index 727acc9d..f97a68eb 100644
--- a/src/hyper/parse-input.c
+++ b/src/hyper/parse-input.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
/***
Contains all the code needed to parse input items,
InputString
diff --git a/src/hyper/parse-paste.c b/src/hyper/parse-paste.c
index 06d84fa1..58ea290e 100644
--- a/src/hyper/parse-paste.c
+++ b/src/hyper/parse-paste.c
@@ -41,7 +41,6 @@
*
****************************************************************************/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/parse-paste.h b/src/hyper/parse-paste.h
index cb0556b9..6b8ba74f 100644
--- a/src/hyper/parse-paste.h
+++ b/src/hyper/parse-paste.h
@@ -36,7 +36,6 @@
#ifndef _PARSE_PASTE_H_
#define _PARSE_PASTE_H_ 1
-#include "openaxiom-c-macros.h"
#include "hyper.h"
extern void parse_paste();
diff --git a/src/hyper/parse-types.c b/src/hyper/parse-types.c
index e42d93f9..60a25d35 100644
--- a/src/hyper/parse-types.c
+++ b/src/hyper/parse-types.c
@@ -41,7 +41,6 @@
*
****************************************************************************/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/parse.h b/src/hyper/parse.h
index 3e2c04b4..20109ba5 100644
--- a/src/hyper/parse.h
+++ b/src/hyper/parse.h
@@ -36,7 +36,6 @@
#ifndef _PARSE_H_
#define _PARSE_H_ 1
-#include "openaxiom-c-macros.h"
#ifdef SUNplatform
#include <sys/types.h>
diff --git a/src/hyper/scrollbar.c b/src/hyper/scrollbar.c
index 92e67ad1..2571d501 100644
--- a/src/hyper/scrollbar.c
+++ b/src/hyper/scrollbar.c
@@ -41,7 +41,6 @@
*
****************************************************************************/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/show-types.c b/src/hyper/show-types.c
index e34498d8..31a02a46 100644
--- a/src/hyper/show-types.c
+++ b/src/hyper/show-types.c
@@ -41,7 +41,6 @@
*
****************************************************************************/
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "sockio.h"
#include "hyper.h"
diff --git a/src/hyper/spadbuf.c b/src/hyper/spadbuf.c
index bfb4b377..d6f3e0b1 100644
--- a/src/hyper/spadbuf.c
+++ b/src/hyper/spadbuf.c
@@ -34,7 +34,6 @@
*/
#define _SPADBUF_C
-#include "openaxiom-c-macros.h"
#include "debug.h"
diff --git a/src/hyper/titlebar.c b/src/hyper/titlebar.c
index 7cc21822..072284c5 100644
--- a/src/hyper/titlebar.c
+++ b/src/hyper/titlebar.c
@@ -42,7 +42,6 @@
****************************************************************************/
#include <stdlib.h>
-#include "openaxiom-c-macros.h"
#include "debug.h"
#include "halloc.h"
#include "sockio.h"
diff --git a/src/hyper/token.h b/src/hyper/token.h
index b40d069a..f6ddbd31 100644
--- a/src/hyper/token.h
+++ b/src/hyper/token.h
@@ -36,7 +36,6 @@
#ifndef _TOKEN_H_
#define _TOKEN_H_ 1
-#include "openaxiom-c-macros.h"
#include <stdio.h>
/*
diff --git a/src/include/open-axiom.h b/src/include/open-axiom.h
index 7d15e4ec..5f173e33 100644
--- a/src/include/open-axiom.h
+++ b/src/include/open-axiom.h
@@ -34,11 +34,13 @@
#ifndef OPENAXIOM_included
#define OPENAXIOM_included
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <vector>
#include <string>
-#include "openaxiom-c-macros.h"
-
/* Annotation to request C calling convention */
#ifdef __cplusplus
# define OPENAXIOM_C_CALL extern "C"
diff --git a/src/include/open-axiom/storage b/src/include/open-axiom/storage
index fe12d1eb..1ac6cbcf 100644
--- a/src/include/open-axiom/storage
+++ b/src/include/open-axiom/storage
@@ -40,7 +40,6 @@
#ifndef OPENAXIOM_STORAGE_included
#define OPENAXIOM_STORAGE_included
-#include <open-axiom/config>
#include <stddef.h>
#include <new>
#include <cmath>
diff --git a/src/include/sockio.h b/src/include/sockio.h
index f77f8d50..4b683105 100644
--- a/src/include/sockio.h
+++ b/src/include/sockio.h
@@ -50,7 +50,6 @@
# define OPENAXIOM_INVALID_SOCKET (-1)
#endif
-#include "openaxiom-c-macros.h"
#include "open-axiom.h"
namespace OpenAxiom {
diff --git a/src/lib/XDither.c b/src/lib/XDither.c
index d766633d..aac711f8 100644
--- a/src/lib/XDither.c
+++ b/src/lib/XDither.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/lib/XShade.c b/src/lib/XShade.c
index 590f2d2f..a5851f69 100644
--- a/src/lib/XShade.c
+++ b/src/lib/XShade.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/lib/XSpadFill.c b/src/lib/XSpadFill.c
index 566c57ce..0b2212e5 100644
--- a/src/lib/XSpadFill.c
+++ b/src/lib/XSpadFill.c
@@ -58,7 +58,6 @@
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
-#include "openaxiom-c-macros.h"
#include "spadcolors.h"
#include "XSpadFill.h"
#include "XShade.h"
diff --git a/src/lib/bsdsignal.cxx b/src/lib/bsdsignal.cxx
index 07fc6b54..66e4dcd0 100644
--- a/src/lib/bsdsignal.cxx
+++ b/src/lib/bsdsignal.cxx
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include <signal.h>
#include "bsdsignal.h"
diff --git a/src/lib/cfuns-c.cxx b/src/lib/cfuns-c.cxx
index 5dbcd6bc..5cb5f338 100644
--- a/src/lib/cfuns-c.cxx
+++ b/src/lib/cfuns-c.cxx
@@ -34,7 +34,9 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
#include <errno.h>
#include <limits.h>
@@ -501,11 +503,11 @@ oa_acquire_temporary_pathname() {
}
return strdup(buf);
#elif HAVE_DECL_MKTEMP
- return mktemp(copy_c_str(std::string{ oa_get_tmpdir() } + "/oa-XXXXXX"));
+ return mktemp(strdup((std::string{ oa_get_tmpdir() } + "/oa-XXXXXX").c_str()));
#elif HAVE_DECL_TEMPNAM
return tempnam(oa_get_tmpdir(), "oa-");
#else
- return copy_c_str("oa-" + std::to_string(random()));
+ return strdup(("oa-" + std::to_string(random())).c_str());
#endif
}
diff --git a/src/lib/cursor.c b/src/lib/cursor.cc
index 5413151d..af0b6603 100644
--- a/src/lib/cursor.c
+++ b/src/lib/cursor.cc
@@ -34,7 +34,6 @@
*/
#include <stdlib.h>
-#include "openaxiom-c-macros.h"
#include "cursor.h"
diff --git a/src/lib/edin.c b/src/lib/edin.cc
index 568bb77a..7fee5176 100644
--- a/src/lib/edin.c
+++ b/src/lib/edin.cc
@@ -36,7 +36,6 @@
/* #define debug 1 */
#include <stdlib.h>
-#include "openaxiom-c-macros.h"
#include <unistd.h>
#include <string.h>
#include <stdio.h>
diff --git a/src/lib/emupty.c b/src/lib/emupty.c
index 7ddfbd2d..9b9848c9 100644
--- a/src/lib/emupty.c
+++ b/src/lib/emupty.c
@@ -31,7 +31,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
/*
Here is some code taken from Nick Simicich. It takes an escape sequence
diff --git a/src/lib/fnct_key.c b/src/lib/fnct_key.cc
index f70bc430..af0d5c28 100644
--- a/src/lib/fnct_key.c
+++ b/src/lib/fnct_key.cc
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/src/lib/halloc.c b/src/lib/halloc.c
index 4b19c60a..fb43d6b3 100644
--- a/src/lib/halloc.c
+++ b/src/lib/halloc.c
@@ -31,7 +31,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
/* memory allocation used by HyperDoc and addfile */
diff --git a/src/lib/hash.c b/src/lib/hash.c
index 837eb8b1..7f727ecf 100644
--- a/src/lib/hash.c
+++ b/src/lib/hash.c
@@ -32,7 +32,6 @@
*/
-#include "openaxiom-c-macros.h"
#define _HASH_C
#include "debug.h"
diff --git a/src/lib/openpty.c b/src/lib/openpty.cc
index 5918aa7a..4262832e 100644
--- a/src/lib/openpty.c
+++ b/src/lib/openpty.cc
@@ -33,7 +33,10 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
diff --git a/src/lib/pixmap.c b/src/lib/pixmap.c
index d0ad2097..da169dfb 100644
--- a/src/lib/pixmap.c
+++ b/src/lib/pixmap.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include <X11/Xlib.h>
#include <X11/Xutil.h>
diff --git a/src/lib/prt.c b/src/lib/prt.cc
index ee5b3af0..831a199e 100644
--- a/src/lib/prt.c
+++ b/src/lib/prt.cc
@@ -31,7 +31,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
diff --git a/src/lib/sockio-c.cxx b/src/lib/sockio-c.cxx
index dda95ec3..c17c3398 100644
--- a/src/lib/sockio-c.cxx
+++ b/src/lib/sockio-c.cxx
@@ -70,9 +70,9 @@ namespace OpenAxiom {
/* Note that the name AF_LOCAL is more portable than AF_UNIX, but MingW
implementation and Windows documentation don't always agree. */
-#if HAVE_AF_LOCAL
+#if HAVE_DECL_AF_LOCAL
# define OPENAXIOM_AF_LOCAL AF_LOCAL
-#elif HAVE_AF_UNIX
+#elif HAVE_DECL_AF_UNIX
# define OPENAXIOM_AF_LOCAL AF_UNIX
#else
# error "needs one of AF_LOCAL or AF_UNIX"
diff --git a/src/lib/spadcolors.c b/src/lib/spadcolors.c
index b8d784f2..8007b450 100644
--- a/src/lib/spadcolors.c
+++ b/src/lib/spadcolors.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include "spadcolors.h"
#include <X11/Xlib.h>
diff --git a/src/lib/util.c b/src/lib/util.c
index 198cd3bf..264590ea 100644
--- a/src/lib/util.c
+++ b/src/lib/util.c
@@ -33,7 +33,6 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "openaxiom-c-macros.h"
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
diff --git a/src/lib/wct.c b/src/lib/wct.cc
index 44510558..bac8c894 100644
--- a/src/lib/wct.c
+++ b/src/lib/wct.cc
@@ -41,7 +41,6 @@
*
*/
-#include "openaxiom-c-macros.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in
index 4fce2768..d5e36548 100644
--- a/src/lisp/core.lisp.in
+++ b/src/lisp/core.lisp.in
@@ -423,7 +423,10 @@
(eval-when (:compile-toplevel :load-toplevel :execute)
(progn
(setq *read-default-float-format* 'double-float)
- (setq *load-verbose* nil)))
+ (setq *load-print* nil)
+ (setq *load-verbose* nil)
+ (setq *compile-print* nil)
+ (setq *compile-verbose* nil)))
;; True means that the base Lisp system uses conventional C-style
;; program linking model, whereby programs are constructed by linking
@@ -673,6 +676,7 @@
(defun |getFileType|(file)
(let ((file-type (pathname-type file)))
(cond ((or (equal "clisp" file-type)
+ (equal "cl" file-type)
(equal "lsp" file-type))
|$LispFileType|)
(t file-type))))
diff --git a/src/sman/session.c b/src/sman/session.cc
index 20a29307..20a29307 100644
--- a/src/sman/session.c
+++ b/src/sman/session.cc
diff --git a/src/sman/sman.c b/src/sman/sman.cc
index ac941266..ac941266 100644
--- a/src/sman/sman.c
+++ b/src/sman/sman.cc
diff --git a/src/sman/spadclient.c b/src/sman/spadclient.cc
index 85b8815e..029d354a 100644
--- a/src/sman/spadclient.c
+++ b/src/sman/spadclient.cc
@@ -40,7 +40,6 @@
#include <signal.h>
#include <stdlib.h>
-#include "openaxiom-c-macros.h"
#include "sockio.h"
#include "com.h"
#include "bsdsignal.h"
diff --git a/src/utils/command.cc b/src/utils/command.cc
index 55716bc1..b0419a99 100644
--- a/src/utils/command.cc
+++ b/src/utils/command.cc
@@ -234,9 +234,10 @@ build_rts_options(Command* command, Driver driver)
break;
case Runtime::ecl:
- command->rt_args.allocate(2);
+ command->rt_args.allocate(3);
command->rt_args[0] = (char*) "-q";
- command->rt_args[1] = (char*) "-norc";
+ command->rt_args[1] = (char*) "--nodebug";
+ command->rt_args[1] = (char*) "--norc";
break;
default:
diff --git a/src/utils/hammer.cc b/src/utils/hammer.cc
index 003cd1f8..36193c0b 100644
--- a/src/utils/hammer.cc
+++ b/src/utils/hammer.cc
@@ -152,7 +152,7 @@ namespace OpenAxiom::Hammer {
CompositeText prose; // the prose around the chunks.
ChunkTable defs; // chunk definition table.
CompositeText* active_chunk; // chunk under construction.
- const char8_t* text_start; // begining of current basic text.
+ const char8_t* text_start; // beginning of current basic text.
// Append basic text in the range `[text_start,last)'
// to the current chunk.
diff --git a/src/utils/storage.cxx b/src/utils/storage.cxx
index 98b0a27f..a2eb2919 100644
--- a/src/utils/storage.cxx
+++ b/src/utils/storage.cxx
@@ -31,6 +31,10 @@
// --%: Gabriel Dos Reis.
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <open-axiom/storage>
#include <open-axiom/FileMapping>
#ifdef HAVE_SYS_TYPES_H
@@ -56,6 +60,14 @@
#include <stdlib.h>
#include <string.h>
+#if HAVE_DECL_MAP_ANONYMOUS
+# define OPENAXIOM_MM_ANONYMOUS_MAP_FLAG MAP_ANONYMOUS
+#elif HAVE_DECL_MAP_ANON
+# define OPENAXIOM_MM_ANONYMOUS_MAP_FLAG MAP_ANON
+#else
+# error MAP_ANONYMOUS or MAP_ANON must be defined
+#endif
+
namespace OpenAxiom {
// ----------------
// -- SystemError --