jscl icon indicating copy to clipboard operation
jscl copied to clipboard

feature testing not work as intended at compile time

Open VitoVan opened this issue 2 years ago • 1 comments
trafficstars

(defpackage :common-lisp-user)

#+jscl
(defun hello ()
  (format t "Hello, yes JSCL ~%"))

#-jscl
(defun hello ()
  (format t "Hello, no JSCL ~%"))

(hello)

This piece of code should output "Hello, yes JSCL", right?

But after compiling, it output "Hello, no JSCL".

sbcl --load jscl.lisp --eval '(jscl:bootstrap)' --eval '(jscl:compile-application (list "feature-test.lisp") "main.js")' --eval '(quit)'
imagen

Is this a bug?

I wish to use the same Lisp code to compile on different platforms, like SBCL and ECL and JSCL, how to detect JSCL at compile time?

VitoVan avatar Apr 21 '23 05:04 VitoVan

Here is a workaround:

sbcl --load jscl.lisp --eval '(jscl:bootstrap)' \
     --eval '(pushnew :jscl *features*)' \
     --eval '(jscl:compile-application (list "feature-test.lisp") "main.js")' \
     --eval '(quit)'

I don't know if it has any side-effects, but it seems to be working.

VitoVan avatar Apr 21 '23 05:04 VitoVan