The patch is here, discussions are welcome. If my idea is accepted,
I can refine the patch a bit more.
It uses "argv[0]" to determine the path of "FRICASsys" binary,
not very reliable, but portable.
So the logic is to use env var "FRICAS" first if it exists,
then use "newroot" if it is passed as function argument,
then use "$spadroot" which is build time value, use if it still exists,
then use the parent directory of "FRICASsys", if it contains
"algebra/compress.daase".
- Qian
diff --git a/src/interp/util.lisp b/src/interp/util.lisp
index e0466835..a2133e31 100644
--- a/src/interp/util.lisp
+++ b/src/interp/util.lisp
@@ -108,8 +108,16 @@ where the [[${FRICAS}]] variable points to
installed tree.
;;; and default to the {\bf \$spadroot} variable (which was the value
;;; of the {\bf FRICAS} shell variable at build time) if we can't.
(defun initroot (&optional (newroot nil))
- (reroot (or (|getEnv| "FRICAS") newroot $spadroot
- (error "setenv FRICAS or (setq $spadroot)"))))
+ (reroot (or (|getEnv| "FRICAS") newroot
+ (cond
+ ((|fricas_probe_file| $spadroot) $spadroot)
+ ((|fricas_probe_file|
+ (concatenate 'string (directory-namestring (car
(|getCLArgs|)))
+ "/../algebra/compress.daase"))
+ (concatenate 'string (directory-namestring (car
(|getCLArgs|)))
+ "/../"))
+ (t (error "setenv FRICAS or (setq $spadroot)")))
+ )))
;;; Gnu Common Lisp (GCL) (at least 2.6.[78]) requires some changes
;;; to the default memory setup to run FriCAS efficiently.
--
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 on the web visit
https://groups.google.com/d/msgid/fricas-devel/23d5ab5e-c663-9b6c-91b4-d834c10736ac%40gmail.com.