Re: CLISP on Haiku

Bruno Haible via clisp-devel <[email protected]> Wed, 20 Nov 2024 15:02:03 +0100
Newsgroups gmane.lisp.clisp.devel
Message-ID <1805227.r9UgagUNlL@nimes>
Alexandru Popa wrote:
> So QuickLisp is the guilty party. I will debug it further. It is not fail
> of CLISP.

In the quicklisp-client, searching for side-effects to *features* leads me to:

$ grep -rni 'set.* [*]features[*]' .
./asdf.lisp:1908:           :do (setf o feature) (pushnew feature *features*)
./asdf.lisp:1909:           :else :do (setf *features* (remove feature *features*))

asdf.lisp contains this code:

  (defun detect-os ()
    "Detects the current operating system. Only needs be run at compile-time,
except on ABCL where it might change between FASL compilation and runtime."
    (loop* :with o
           :for (feature . detect) :in '((:os-unix . os-unix-p) (:os-macosx . os-macosx-p)
                                         (:os-windows . os-windows-p)
                                         (:genera . os-genera-p) (:os-oldmac . os-oldmac-p)
                                         (:haiku . os-haiku-p))
           :when (and (or (not o) (eq feature :os-macosx)) (funcall detect))
           :do (setf o feature) (pushnew feature *features*)
           :else :do (setf *features* (remove feature *features*))
           :finally
           (return (or o (error "Congratulations for trying ASDF on an operating system~%~
that is neither Unix, nor Windows, nor Genera, nor even old MacOS.~%Now you port it.")))))

What is this code meant to do??





_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel