On Fri, Feb 07, 2025 at 08:59:33AM -0500, Camm Maguire wrote:
> Greetings! OK I've pushed a quick commit addressing this issue which
> seems to be working -- please let me know what you think.
It did not work: 'config' include is in build tree and normally not
present in source tree (it could be in source tree if you previously
build there).
There were missing dependencies, not a problem for build itself
but could be very confusing if one tries to re-make after change.
I would also prefer to avoid overlong lines. Diff with my
changes attached.
BTW: I prefer to commit things after enough testing, to have
clean history and to avoid broken builds for people fetching trunk.
> > I wrote compiler::link many years ago as a stopgap compromise to get a
> > standalone separate GCL to support the standard applications. Prior to
> > this it was conventional to take snapshots of the GCL source code and
> > embed it into the source of the applications, with the obvious
> > maintenance difficulties accompanying. I do not intend to withdraw
> > compiler::link anytime soon, but it alone requires shipping a large
> > number of GCL source files and compiled libraries alongside the GCL
> > binary. The alternate '(load "foo.o")(save-system "bar")' lisp paradigm
> > is clearly dominant, and arguably a distinctive feature of the lisp
> > 'world'. Supporting two different linkers is fragile and an extra
> > maintenance headache I would like to avoid. FRICAS is the last
> > application still using it.
AFAICS both dumping and 'compiler::link' are useful. 'compiler::link'
seem to be only possibility if one only has binary object files
(say from non-C compiler) or static library. And with all other
Lisp-s FriCAS can link objects created from C files, either staticaly
or dynamically. Currently this include business is managable, but
I have plans for more C files where I may need target-specific
options for good performance (the idea is to link-in multiple
variants and choose good one at runtime).
--
Waldek Hebisch
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/fricas-devel/Z6ZqPof56OwTkBdP%40fricas.org.
diff --git a/src/lisp/Makefile.in b/src/lisp/Makefile.in
index 7b95c656..7cc5a40f 100644
--- a/src/lisp/Makefile.in
+++ b/src/lisp/Makefile.in
@@ -54,16 +54,26 @@ lisp_c_objects = \
$(OUT)/lisp$(EXEEXT): do_it.$(lisp_flavor)
do_it.gcl: fricas-lisp.lisp fricas-package.lisp fricas-config.lisp \
- primitives.lisp
+ primitives.lisp $(srcdir)/../lib/bsdsignal.c \
+ $(srcdir)/../lib/cfuns-c.c $(srcdir)/../lib/sockio-c.c
$(fricas_gcl_rsym_hack)
echo '(setq si::*optimize-maximum-pages* nil)' \
'(load "fricas-package.lisp") (load "fricas-config.lisp")' \
'(load "fricas-lisp.lisp")' \
'(setq compiler::*default-system-p* t)' \
- '(let ((compiler::*cc* (concatenate (quote string) compiler::*cc* " -I$(srcdir)/../../config -I$(srcdir)/../include -I$(srcdir)/../lib")))(load (compile-file "fricas-lisp.lisp")))' \
- '(load (compile-file "primitives.lisp"))' \
- '(progn (setq si::*code-block-reserve* "")(si::gbc t)(setq si::*code-block-reserve* (make-array 10000000 :element-type (quote character) :static t) si::*optimize-maximum-pages* t))' \
- '(in-package "FRICAS-LISP")(save-core "$(OUT)/lisp$(EXEEXT)")' | GCL_ANSI=t $(FRICAS_LISP)
+ '(let ((compiler::*cc* (concatenate (quote string) ' \
+ 'compiler::*cc* " -I../../config -I$(srcdir)/../include ' \
+ '-I$(srcdir)/../lib"))) ' \
+ '(load (compile-file "fricas-lisp.lisp")))' \
+ '(load (compile-file "primitives.lisp"))' \
+ '(progn (setq si::*code-block-reserve* "") (si::gbc t) ' \
+ '(setq si::*code-block-reserve* ' \
+ '(make-array 10000000 ' \
+ ':element-type (quote character) ' \
+ ':static t) ' \
+ 'si::*optimize-maximum-pages* t))' \
+ '(in-package "FRICAS-LISP") ' \
+ '(save-core "$(OUT)/lisp$(EXEEXT)")' | GCL_ANSI=t $(FRICAS_LISP)
$(STAMP) $@
fricas-lisp.lisp: $(srcdir)/fricas-lisp.lisp