Timestamp: lun. 03 juil. 2023 08:20:03 CEST
-----------------------------------------------------------------------------
Issue )copyright to view copyright notices.
Issue )summary for a summary of useful system commands.
Issue )quit to leave FriCAS and return to shell.
-----------------------------------------------------------------------------
(1) -> )co sieve
Compiling FriCAS source code from file /home/greg/Tmp/
sieve.as using
Aldor compiler and options
-O -Fasy -Fao -Flsp -lfricas -Mno-ALDOR_W_WillObsolete -DFriCAS -Y $FRICAS/algebra -I $FRICAS/algebra
Use the system command )set compiler args to change these
options.
Compiling Lisp source code from file ./sieve.lsp
Issuing )library command for sieve
Reading /home/greg/Tmp/sieve.asy
(1) -> sieve 100
(1) 25
So all is right.
It is just a pity from my point of view there is no support of Hunchentoot in it.
I mean having an option for it. I know you do not want a
required
Internet
access to build FriCAS and I understand that.
But if you can load, (require ...), Hunchentoot, even without Internet access,
that would make sense. Using Roswell I have Hunchentoot for Lisp
implementations supported by Roswell and that supports hunchentoot.
It is just a matter of:
$ros install hunchentoot
and later (require ...) it.
Later I can build FrICAS with Hunchentoot in it if I want, and if it is not
available it will not be in FRICASsys, it doesn't really matter, this is just an
option.
Personally I use in my FriCAS copy the following (borrowed from Ralf and Kurt work):
This need to be adapted to add
SBCL_HOME and WEBSPAD_REQUIREMENTS
=================================================
+AC_ARG_WITH([quicklisp],
+ [AS_HELP_STRING([--with-quicklisp=PATH],
+ [use quicklisp installation path (default "~/quicklisp")])],
+ [USE_QUICKLISP=yes
+ AS_IF([test -d $withval],
+ [QUICKLISPPATH=$withval],
+ [AS_IF([test -d ~/quicklisp],
+ [QUICKLISPPATH=~/quicklisp],
+ [AC_MSG_ERROR([quicklisp path not available])])])],
+ [USE_QUICKLISP=no])
+
+INCLUDE_WEBSPAD=no
+AC_ARG_ENABLE(webspad,
+ [AS_HELP_STRING([--enable-webspad],
+ [include a webserver into FriCASsys, (yes/no)])],
+ [AS_CASE([$enableval],
+ [yes], [AS_IF([test "$fricas_lisp_flavor" = "sbcl" \
+ || test "$fricas_lisp_flavor" = "openmcl" \
+ || test "$fricas_lisp_flavor" = "ecl"],
+ [INCLUDE_WEBSPAD=yes],
+ [INCLUDE_WEBSPAD=no
+ AC_MSG_ERROR([webspad only available for SBCL or Clozure CL])])],
+ [no], [INCLUDE_WEBSPAD=no],
+ [AC_MSG_ERROR([only yes/no allowed as value for --enable-webspad])]
+ )]
+)
+
+# Now Check that Hunchentoot is available.
+WEBSPAD_REQUIREMENTS=
+AS_IF([test x"$USE_QUICKLISP" = xyes],
+ [WEBSPAD_REQUIREMENTS="(load \"$QUICKLISPPATH/setup.lisp\")(require :hunchentoot)"],
+ [WEBSPAD_REQUIREMENTS="(require :asdf)(require :hunchentoot)"])
+
+AS_IF([test x"$INCLUDE_WEBSPAD" = xyes],
+ [AC_MSG_CHECKING([for asdf and hunchentoot])
+ AS_IF([$fricas_lisp --non-interactive --eval "(progn $WEBSPAD_REQUIREMENTS)"],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_ERROR([asdf and hunchentoot are required for --enable-webspad])
+ INCLUDE_WEBSPAD=no])]
+)
+
+AS_IF([test x"$INCLUDE_WEBSPAD" = xyes],
+ [AC_MSG_NOTICE([Webserver hunchentoot will be included into FRICASsys.])],
+ [AC_MSG_WARN([No webserver will be included into FRICASsys.])
+ WEBSPAD_REQUIREMENTS=""]
+)
+
+AC_ARG_WITH([sbcl-home],
+ [AS_HELP_STRING([--with-sbcl-home=PATH],
+ [Value for SBCL_HOME.])],
+ # Action if --with-sbcl-home is given.
+ [AS_IF([test -d "$withval"],
+ [SBCL_HOME=$withval],
+ [AC_MSG_ERROR([--with-sbcl-home directory does not exist.])])],
+
+ [lisp_prog=`echo $fricas_lisp | sed 's/ .*//'` # remove parameters
+ lisp_path=`which $lisp_prog` # cannot be empty
+ SBCL_HOME="${lisp_path%sbcl}../lib/sbcl"]
+)
+
+#AC_MSG_NOTICE([SBCL_HOME=$SBCL_HOME])
+AC_SUBST(SBCL_HOME)
+AC_SUBST(WEBSPAD_REQUIREMENTS)
====================================================
I removed the documentation here.
And in src/interp/Makefile.in, something like:
=======================================================
+ WEBSPAD_REQUIREMENTS = @WEBSPAD_REQUIREMENTS@+
+ SBCL_HOME = @SBCL_HOME@
+ export SBCL_HOME
=======================================================
${FRICASSYS}: ../etc/stamp-databases
echo '(defparameter FRICAS-LISP::*building-fricassys* t)' \
'(load "makeint.lisp") #-:ecl(BOOT::reclaim)' \
'#+:cmu (setf (ext:search-list "libspad:")' \
'(list "${FRICAS}/lib/" "${libdir}/fricas/target/${target}/lib/"))' \
'#+:cmu (setq ext:*top-level-auto-declare* t)' \
'#+:cmu (setq *compile-verbose* nil)' \
'#+:cmu (setq *compile-print* nil)' \
'#+:cmu (declaim (optimize (ext:inhibit-warnings 3)))' \
+ '${WEBSPAD_REQUIREMENTS}' \
'#+:ecl(FRICAS-LISP::make-program "$(BASE)$@" nil)' \
'#-:ecl(BOOT::spad-save "$(BASE)$@" t)' \
| DAASE="$(BASE)$(fricas_targetdir)" ${BOOTSYS}
@ echo 6a ${FRICASSYS} created
exposed.lsp: $(fricas_src_algdir)/exposed.lsp
=====================================================
It is just as simple as this.
Of course it is too late to add something like this
but I think this could be added to GitHub.
For me, this adds simplicity without adding _necessary_ required things.
And hsbcl can also be used I guess.
Regards,
__
Greg