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 fricas-devel+unsubscr...@googlegroups.com.
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

Reply via email to