From: Robert D. <rob...@us...> - 2025-10-14 15:45:15
|
Hmm, I'm sorry to hear defsystem isn't working for ECL + Windows. Defsystem is an older system for building Lisp programs and indeed it hasn't been updated in decades to the best of my knowledge. I guess my advice is to try to solve the problems in ASDF, although I know that's easier said than done. I have a Windows system I can try it on, I will try to remember to try building with ECL in the near future. --- **[bugs:#4565] Compilation on Windows using ECL** **Status:** open **Group:** None **Labels:** build windows ecl **Created:** Tue Jun 03, 2025 01:59 PM UTC by Tobias **Last Updated:** Fri Aug 29, 2025 07:48 AM UTC **Owner:** nobody I'm trying to compile Maxima on Windows to get it in conda. Current progress can be seen at: Following the instructions in `install.lisp` using ecl and msvc compilers, I've encountered various issues and I would like to ask for help in overcoming them: ``` > ecl --load maxima-build.lisp --eval "(maxima-compile)" -eval "(quit)" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748855421706/work/src/maxima-build.lisp" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748855421706/work/src/../lisp-utils/defsystem.lisp" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748855421706/work/src/maxima-package.lisp" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748855421706/work/src/maxima.system" An error occurred during initialization: Reader error in file #<input stream #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748855421706/work/src/maxima.system" 0x2312b90ff00>, position 2024: Cannot find the external symbol BUILD-FASL in #<"C" package> ``` Fixed by loading cmp before: (require 'cmp) ``` > ecl --load maxima-build.lisp -eval "(require 'cmp)" -eval "(maxima-compile)" -eval "(quit)" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748857057656/work/src/maxima-build.lisp" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748857057656/work/src/../lisp-utils/defsystem.lisp" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748857057656/work/src/maxima-package.lisp" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748857057656/_build_env/cmp.fas" ;;; Loading #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748857057656/work/src/maxima.system" ;;; ;;; Compiling C:/ProgramData/miniforge3/conda-bld/maxima_1748857057656/work/src/maxima-package.lisp. ;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=2 ;;; ;;; Finished compiling C:/ProgramData/miniforge3/conda-bld/maxima_1748857057656/work/src/maxima-package.lisp. ;;; An error occurred during initialization: decoding error on stream <input stream #P"C:/ProgramData/miniforge3/conda-bld/maxima_1748857057656/work/src/binary-ecl/maxima-package.obj" 0x1a21b80ac80> (:EXTERNAL-FORMAT (:UTF-8 :LF)): the octet sequence (134) cannot be decoded.. ``` For some reason, it is trying to `load` the `obj` file, which fails (I can reproduce this error independently by invoking `load("<...>/maxima-package.obj")`). Loading the corresponding `fas` file works without error. Workaround: ``` (require 'asdf) (push "./" asdf:*central-registry*) (asdf:make-build :maxima :type :fasl) ``` instead of `(maxima-compile)` This seems to work a bit better but leads to ``` > COMPILE-FILE-ERROR while compiling #<cl-source-file "maxima" "server" "server">. ;;; Cannot find the external symbol +SIGPIPE+ in #<"EXT" package>. ``` Workaround or fix is to change the offending line to: ``` > #+(and ecl (not win32)) (ext:set-signal-handler EXT:+SIGPIPE+ 'ext:quit) ``` This then brings up the next error: ``` > ;;; Compiling C:/ProgramData/miniforge3/conda-bld/maxima_1748925012035/work/src/factor.lisp. An e;;; Compiling #<input stream C:/ProgramData/miniforge3/conda-bld/maxima_1748925012035/w. rror occurred during initialization: The special form c-inline cannot be used in the interpreter: ((P) (:OBJECT) :OBJECT "(#0)->symbol.stype &= ~stp_s" :SIDE-EFFECTS T :ONE-LINER NIL). ;;; Declaring P as NOT SPECIAL ``` My current workaround is to change `maxima::make-unspecial` in `ecl-port.lisp` to do nothing. Then at least the compilation seems to work fine for these files. Which then yields the following error: ``` >;;; Finished compiling C:/ProgramData/miniforge3/conda-bld/maxima_1748880187432/work/src/init-cl.lisp. ;;; Condition of type: SIMPLE-ERROR Could not spawn subprocess to run "cl". Windows library explanation: The parameter is incorrect. Available restarts: 1. (RETRY) Retry COMPILE-BUNDLE-OP on #<system "maxima">. 2. (ACCEPT) Continue, treating COMPILE-BUNDLE-OP on #<system "maxima"> as having been successful. 3. (RETRY) Retry ASDF operation. 4. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after resetting the configuration. 5. (CONTINUE) Ignore initialization errors and continue. 6. (ABORT) Quit ECL unsafely, ignoring all existing threads. ``` No idea what's going wrong here/how to debug/where the error is. --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |