I don't see why an embedded ECL-based FriCAS must be pure lisp. ECL has its FFI 
just fine.

In fact, one might consider developing a plain C library allowing calling 
FriCAS via libecl.so



On 3 January 2024 11:07:47 WET, Qian Yun <oldk1...@gmail.com> wrote:
>I suggest to check for symbol instead of "#+" feature testing.
>
>This will allow FFI-free pure-lisp build.
>
>To quote the FriCAS development goals:
>
>    "make it easier for external programs to interface with FriCAS"
>
>I think that FFI-free pure-lisp build is one step toward this goal.
>
>fricas0 is one example that utilizes pure-lisp build.
>
>In Sagemath, there's a pexpect (IO) based interface for FriCAS and
>Maxima, but there's an additional ECL based interface for Maxima.
>So using FriCAS as a pure-lisp library can have its advantages.
>
>- Qian
>
>
>diff --git a/src/interp/nlib.lisp b/src/interp/nlib.lisp
>index 8c844fa7..ffdacae6 100644
>--- a/src/interp/nlib.lisp
>+++ b/src/interp/nlib.lisp
>@@ -304,10 +304,10 @@
> ;; ($ERASE filearg) -> 0 if succeeds else 1
> (defun |erase_lib|(filearg)
>   (if (|fricas_probe_file| filearg)
>-      #+:fricas_has_remove_directory
>-          (|remove_directory| filearg)
>-      #-:fricas_has_remove_directory
>-          (delete-directory filearg)
>+      (let ((sym (find-symbol "remove_directory" "FRICAS-LISP")))
>+        (if sym
>+            (funcall sym filearg)
>+            (delete-directory filearg)))
>       1))
>
> (defun |erase_lib0|(fn ft) (|erase_lib| (|make_filename0| fn ft)))
>

-- 
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 on the web visit 
https://groups.google.com/d/msgid/fricas-devel/7A691421-848F-454F-995B-EFDF991A4465%40gmail.com.

Reply via email to