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