april icon indicating copy to clipboard operation
april copied to clipboard

April issues on Windows 10 with LispWorks 8.1 Pro 32-bit and SBCL 2.5.9

Open synchromesh opened this issue 4 months ago • 8 comments

Hello, I'm giving April a try on Windows 10 where I usually use Emacs + SLIME and LispWorks 8.1 Pro 32-bit.

When I first ran (ql:quickload "april") in LispWorks I got an error about System "cape" not found so I cloned the repo as a local project. I have the most recent "quicklisp" version (2025-06-22).

Unfortunately the SLIME output Gray stream has an underlying type of BASE-CHAR which is 8-bit, so whenever it tries to print the final Specified idiom 「APRIL」 with 96 lexical functions, 17 lexical operators, 2 aliased functions, 18 utility functions and 1140 unit tests. message from within SLIME I get an error #\「 (of type CHARACTER) is not of type BASE-CHAR.. If I run this from a PowerShell window it's fine.

When I run (april::load-libs) and (april::run-lib-tests) (still using LW8.1, from a PowerShell window) it reports one failure, on line 41:

× #(#(#\┌ #\→ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ #\─ ... is expected to be #("┌→──────────────────┐" "│ ┌→──┐ ┌→────┐ │" "│ 1 a │abc│ ↓1 2 3│ │" "│ - └───┘ │4 5 6│ │" "│ └~────┘ │" "└∊──────────────────┘")

Here is the entire output: april-run-lib-tests.txt

SBCL 2.5.9 works fine in Emacs, and when I run(april::run-lib-tests) it reports "Ran 607 tests, 0 failed."

Thanks for April and all the great documentation and links, I'm looking forward to giving APL a try and hopefully integrating it into my new machine learning project. I'm enjoying listening to your podcast interview as well.

synchromesh avatar Oct 12 '25 05:10 synchromesh

Here's the display of the LispWorks SLIME error:

   [Condition of type TYPE-ERROR]

Restarts:
 0: [NIL] Try loading C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\spec.ofasl again.
 1: [NIL] Give up loading C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\spec.ofasl.
 2: [NIL] Try loading another file instead of C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\spec.ofasl.
 3: [TRY-RECOMPILING] Recompile spec and try loading it again
 4: [RETRY] Retry loading FASL for #<ASDF/LISP-ACTION:CL-SOURCE-FILE "april" "spec">.
 5: [ACCEPT] Continue, treating loading FASL for #<ASDF/LISP-ACTION:CL-SOURCE-FILE "april" "spec"> as having been successful.
 --more--

Backtrace:
  0: (CONDITIONS::CONDITIONS-ERROR :INVISIBLEP T TYPE-ERROR (:DATUM #\「 :EXPECTED-TYPE BASE-CHAR))
  1: (ERROR TYPE-ERROR :DATUM #\「 :EXPECTED-TYPE BASE-CHAR)
  2: (SYSTEM::MUMBLE-REPLACE-FROM-MUMBLE)
  3: ((SUBFUNCTION 1 (METHOD STREAM:STREAM-WRITE-STRING (SWANK/GRAY::SLIME-OUTPUT-STREAM T))))
  4: ((SUBFUNCTION (FLET SWANK/BACKEND:CALL-WITH-LOCK-HELD) (TOP-LEVEL-FORM 125)) ..)
  5: ((METHOD STREAM:STREAM-WRITE-STRING (SWANK/GRAY::SLIME-OUTPUT-STREAM T)) #<SWANK/GRAY::SLIME-OUTPUT-STREAM 221893DF> "~%~a idiom 「~a」 with ~a.~%~%" 4 12)
  6: (SYSTEM::WRITE-STRING-WITH-PROPERTIES* "~%~a idiom 「~a」 with ~a.~%~%" NIL #<SWANK/GRAY::SLIME-OUTPUT-STREAM 221893DF> 4 12)
  7: (SYSTEM::WRITE-STRING* "~%~a idiom 「~a」 with ~a.~%~%" #<SWANK/GRAY::SLIME-OUTPUT-STREAM 221893DF> 4 12)
  8: (SYSTEM::SUB-FORMAT 0 28)
  9: (SYSTEM::CALL-SUB-FORMAT #<SWANK/GRAY::SLIME-OUTPUT-STREAM 221893DF> 0 28)
 10: (FORMAT T "~%~a idiom 「~a」 with ~a.~%~%" "Specified" "APRIL" "96 lexical functions, 17 lexical operators, 2 aliased functions, 18 utility functions and 1140 unit tests")
 11: (SYSTEM::FASL-LOAD-TIME-CALL #<Fasl #<STREAM::LATIN-1-FILE-STREAM C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\spec.ofasl> >)
 12: (SYSTEM::FASL-READ-ONE-OBJECT #<Fasl #<STREAM::LATIN-1-FILE-STREAM C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\spec.ofasl> > ..)
 13: (SYSTEM::LOAD-FASL-STREAM #<STREAM::LATIN-1-FILE-STREAM C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\spec.ofasl> ..)
 14: (SYSTEM::LOAD-FASL-FILE #P"C:/Users/john/AppData/Local/cache/common-lisp/lw-8.1.1-win-x86/C/Users/john/quicklisp/local-projects/april/spec.ofasl" NIL NIL NIL)
 15: (SYSTEM::TRY-TO-LOAD #P"C:/Users/john/AppData/Local/cache/common-lisp/lw-8.1.1-win-x86/C/Users/john/quicklisp/local-projects/april/spec.ofasl" T NIL NIL NIL ...)
 16: ((SUBFUNCTION 1 LOAD))
 17: (SYSTEM::LOAD-FILE-WITH-RESTARTS #<Closure 1 subfunction of LOAD 236E8512> ..)
 18: (LOAD #P"C:/Users/john/AppData/Local/cache/common-lisp/lw-8.1.1-win-x86/C/Users/john/quicklisp/local-projects/april/spec.ofasl" ..)
 19: (UIOP/UTILITY:CALL-WITH-MUFFLED-CONDITIONS #<Closure 1 subfunction of UIOP/LISP-BUILD:LOAD* 236E852A> ("Overwriting already existing readtable ~S." #(#:FINALIZERS-OFF-WARNING :ASDF-FINALIZERS)))

synchromesh avatar Oct 12 '25 06:10 synchromesh

Thanks for doing these tests on the LW+Windows setup. It looks like the character isn't working correctly for that setup, I can check out some other characters it could be changed to. Kind of surprised the test output with all the APL chars doesn't cause a problem.

phantomics avatar Oct 28 '25 22:10 phantomics

If you'd like me to run any more tests, sample code etc. just let me know.

synchromesh avatar Oct 29 '25 03:10 synchromesh

Sure, could you try running the demo in april/demos/ncurses? There's a readme in that folder explaining how to do so. It's a Conway visualization meant to be displayed in a terminal, I'm curious to see how it'll work in Windows.

phantomics avatar Oct 29 '25 04:10 phantomics

OK, the short answer is: running the demo immediately and silently terminates the process.

The long answer: I downloaded and compiled a 32-bit version of PDCurses and ran the demo "manually":

PS D:\LispWorks> .\lw-console.exe
; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\itself\0001\0004.ofasl
; Loaded public patch PATCH-ITSELF 1.4

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\itself\0001\0005.ofasl
; Loaded public patch PATCH-ITSELF 1.5

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\itself\0001\0006.ofasl
; Loaded public patch PATCH-ITSELF 1.6

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\itself\0001\0007.ofasl
; Loaded public patch PATCH-ITSELF 1.7

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\itself\0001\0008.ofasl
; Loaded public patch PATCH-ITSELF 1.8

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi-win32\0001\0001.ofasl
; Loaded public patch CAPI-WIN32 1.1

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0006.ofasl
; Loaded public patch CAPI 1.6

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0007.ofasl
; Loaded public patch CAPI 1.7

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0008.ofasl
;  Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\editor\0001\0003.ofasl
; Loaded public patch EDITOR 1.3

;  Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\editor\0001\0004.ofasl
; Loaded public patch EDITOR 1.4

;  Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\editor\0001\0005.ofasl
; Loaded public patch EDITOR 1.5

;  Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\editor\0001\0006.ofasl
; Loaded public patch EDITOR 1.6

;  Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\editor\0001\0007.ofasl
; Loaded public patch EDITOR 1.7

; Loaded public patch CAPI 1.8

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0009.ofasl
; Loaded public patch CAPI 1.9

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0010.ofasl
; Loaded public patch CAPI 1.10

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0011.ofasl
; Loaded public patch CAPI 1.11

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0012.ofasl
; Loaded public patch CAPI 1.12

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0013.ofasl
; Loaded public patch CAPI 1.13

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\capi\0001\0014.ofasl
; Loaded public patch CAPI 1.14

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\compiler\0001\0009.ofasl
; Loaded public patch COMPILER 1.9

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\full\0001\0002.ofasl
; Loaded public patch FULL 1.2

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\system\0001\0006.ofasl
; Loaded public patch SYSTEM 1.6

; Loading fasl file C:\program files (x86)\lispworks\lib\8-1-0-0\patches\system\0001\0007.ofasl
; Loaded public patch SYSTEM 1.7

; Loading text file C:\program files (x86)\lispworks\lib\8-1-0-0\private-patches\load.lisp
LispWorks(R) (for the Windows(R) operating system)
Copyright (C) 1987-2025 LispWorks Ltd.  All rights reserved.
Version 8.1.1
Saved by john as lw-console, at 17 Aug 2025 18:57
User john on MECH
; Loading text file C:\program files (x86)\lispworks\lib\8-1-0-0\config\siteinit.lisp
;  Loading text file C:\program files (x86)\lispworks\lib\8-1-0-0\private-patches\load.lisp
; Loading text file C:\Users\john\.lispworks
; Loading C:\program files (x86)\lispworks\lib\8-1-0-0\load-on-demand\utilities\asdf.ofasl on demand...
;  Loading text file C:\Users\john\quicklisp\setup.lisp
Warning: Using DEFPACKAGE to modify #<The QL-SETUP package, 24/32 internal, 3/16 external>.
; Loading C:\program files (x86)\lispworks\lib\8-1-0-0\load-on-demand\processes\comm-defsys.lisp on demand...
;; Creating system "COMM"
; Loading C:\program files (x86)\lispworks\lib\8-1-0-0\load-on-demand\ccl\describe.ofasl on demand...
; Loading C:\program files (x86)\lispworks\lib\8-1-0-0\load-on-demand\ccl\inspector-values.ofasl on demand...
; Loading C:\program files (x86)\lispworks\lib\8-1-0-0\load-on-demand\ffi\types\inspector.ofasl on demand...
;  Loading text file C:\Users\john\quicklisp\setup.lisp
Warning: Using DEFPACKAGE to modify #<The QL-SETUP package, 24/32 internal, 3/16 external>.
;  Loading text file C:\Users\john\.lispworks-common

CL-USER 1 > (ql:quickload 'april-demo.ncurses)
To load "april-demo.ncurses":
  Load 1 ASDF system:
    april-demo.ncurses
; Loading "april-demo.ncurses"
.On Lispworks, we cannot add method to DESCRIBE-OBJECT, so you cannot enjoy extended documentations for various namespaces
Specified idiom 「APRIL」 with 96 lexical functions, 17 lexical operators, 2 aliased functions, 18 utility functions and 1140 unit tests.

.................................................
..................................................
..................................................
[package de.anvi.croatoan]........................
[package de.anvi.croatoan.soft-labels]............
[package de.anvi.croatoan.dialog].................
...................
Creating foreign funcallable for signature (:INT :INT) -> :POINTER
...............................
[package april-demo.ncurses].....
(APRIL-DEMO.NCURSES)

CL-USER 2 > (asdf:load-system 'april-demo.ncurses)

; Loading text file C:\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\array-operations.asd
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\generic.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\reducing.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\matrices.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\utilities.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\creating.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\indexing.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\displacing.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\transforming.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\stacking.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\dists\quicklisp\software\array-operations-1.2.1\src\all.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\vex\package.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\vex\vex.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\aplesque\package.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\aplesque\forms.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\aplesque\aplesque.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\package.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\macros.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\base.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\index.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\primal.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\derived.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\calculate.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\select.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\logic.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\varray\composed.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\c\users\john\quicklisp\local-projects\april\package.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\c\users\john\quicklisp\local-projects\april\utilities.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\c\users\john\quicklisp\local-projects\april\functions.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\c\users\john\quicklisp\local-projects\april\grammar.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\c\users\john\quicklisp\local-projects\april\spec.ofasl

Specified idiom 「APRIL」 with 96 lexical functions, 17 lexical operators, 2 aliased functions, 18 utility functions and 1140 unit tests.

; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\c\users\john\quicklisp\local-projects\april\novelties.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\demos\ncurses\package.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\demos\ncurses\setup.ofasl
; Loading fasl file C:\Users\john\AppData\Local\cache\common-lisp\lw-8.1.1-win-x86\C\Users\john\quicklisp\local-projects\april\demos\ncurses\ncurses.ofasl
T

CL-USER 3 > (april-demo.ncurses::main)
PS D:\LispWorks>

synchromesh avatar Oct 29 '25 05:10 synchromesh

When I run the demo in SBCL in a PowerShell window with the 64-bit libncursesw6.dll from MSYS2, I get some output and then a blank screen. None of the keys (R, G) seem to do anything. When I press Ctrl-C, I see:

This is SBCL 2.5.9, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
WARNING: System definition file #P"C:/Users/john/quicklisp/dists/quicklisp/software/cl-colors-20180328-git/cl-colors.asd" contains definition for system "cl-colors-tests". Please only define "cl-colors" and secondary systems with a name starting with "cl-colors/" (e.g. "cl-colors/test") in that file.
;;; Computing Hangul syllable names
Specified idiom 「APRIL」 with 96 lexical functions, 17 lexical operators, 2 aliased functions, 18 utility functions and 1140 unit tests.

WARNING: redefining DE.ANVI.CROATOAN:CURRENT-ITEM in DEFGENERIC
WARNING: redefining DE.ANVI.CROATOAN:SELECT-PREVIOUS-ITEM in DEFGENERIC
WARNING: redefining DE.ANVI.CROATOAN:SELECT-NEXT-ITEM in DEFGENERIC
WARNING: redefining DE.ANVI.CROATOAN:WIDTH in DEFGENERIC
WARNING: redefining DE.ANVI.CROATOAN:HEIGHT in DEFGENERIC
WARNING: redefining (COMMON-LISP:SETF DE.ANVI.CROATOAN:WIDTH) in DEFGENERIC
WARNING:
   Specializing on the second argument to PRINT-OBJECT has unportable effects,
   and also interferes with precomputation of print functions for exceptional
   situations.
See also:
  The ANSI Standard, Function PRINT-OBJECT
WARNING:
   Specializing on the second argument to PRINT-OBJECT has unportable effects,
   and also interferes with precomputation of print functions for exceptional                                                                                                    situations.
See also:
  The ANSI Standard, Function PRINT-OBJECT
WARNING:
   Specializing on the second argument to PRINT-OBJECT has unportable effects,
   and also interferes with precomputation of print functions for exceptional
   situations.
See also:
  The ANSI Standard, Function PRINT-OBJECT
WARNING:
   Specializing on the second argument to PRINT-OBJECT has unportable effects,
   and also interferes with precomputation of print functions for exceptional
   situations.
See also:
  The ANSI Standard, Function PRINT-OBJECT
While evaluating the form starting at line 6, column 0
  of #P"C:/Users/john/quicklisp/local-projects/april/demos/ncurses/loader.lisp":

debugger invoked on a TYPE-ERROR @100111C421 in thread
#<THREAD tid=17348 "main thread" RUNNING {1100030003}>:
  The value
    NIL
  is not of type
    VECTOR
  when binding #:V13

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY   ] Retry EVAL of current toplevel form.
  1: [CONTINUE] Ignore error and continue loading file "C:\\Users\\john\\quicklisp\\local-projects\\april\\demos\\ncurses\\loader.lisp".
  2: [ABORT   ] Abort loading file "C:\\Users\\john\\quicklisp\\local-projects\\april\\demos\\ncurses\\loader.lisp".
  3:            Ignore runtime option --load "loader.lisp".
  4:            Skip rest of --eval and --load options.
  5:            Skip to toplevel READ/EVAL/PRINT loop.
  6: [EXIT    ] Exit SBCL (calling #'EXIT, killing the process).

((LAMBDA (&OPTIONAL APRIL-DEMO.NCURSES::RESTARTING) :IN APRIL-DEMO.NCURSES::MAIN) T)
   source: (LOOP :FOR CHAR :ACROSS *GLYPHS*
                 :FOR COLOR :ACROSS *BG-COLORS*
                 :DO (DE.ANVI.CROATOAN:ADD-WIDE-CHAR SCREEN CHAR :FGCOLOR
                                                     '(:NUMBER 253) :BGCOLOR
                                                     (AREF *BG-COLOR-FORMS*
                                                           COLOR)))
0]
PS C:\Users\john\quicklisp\local-projects\april\demos\ncurses>

I tried with the 64-bit version of PDCurses and I got a different error:

While evaluating the form starting at line 6, column 0
  of #P"C:/Users/john/quicklisp/local-projects/april/demos/ncurses/loader.lisp":

debugger invoked on a SB-KERNEL::UNDEFINED-ALIEN-FUNCTION-ERROR @1000000A21 in thread
#<THREAD tid=51992 "main thread" RUNNING {1100030003}>:
  The alien function "tigetstr" is undefined.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY   ] Retry EVAL of current toplevel form.
  1: [CONTINUE] Ignore error and continue loading file "C:\\Users\\john\\quicklisp\\local-projects\\april\\demos\\ncurses\\loader.lisp".
  2: [ABORT   ] Abort loading file "C:\\Users\\john\\quicklisp\\local-projects\\april\\demos\\ncurses\\loader.lisp".
  3:            Ignore runtime option --load "loader.lisp".
  4:            Skip rest of --eval and --load options.
  5:            Skip to toplevel READ/EVAL/PRINT loop.
  6: [EXIT    ] Exit SBCL (calling #'EXIT, killing the process).

("undefined function")
0]

synchromesh avatar Oct 29 '25 06:10 synchromesh

Thanks, very strange. In your first PDCurses attempt were you able to see and use the ncurses program? There are clearly a lot of hurdles to make this work under Windows.

phantomics avatar Oct 29 '25 06:10 phantomics

No, I haven't seen any ncurses output other than the clearing of the window. No indication that keypresses were being processed either.

I played around with the "hello world" code in https://github.com/armlesshobo/croatoan/blob/master/doc/slime.md with both PDCurses and the MSYS2 libncursesw6.dll in both a PowerShell window and an MSYS2 shell window and couldn't get any text on the screen, so there are definitely deeper issues there.

synchromesh avatar Oct 29 '25 23:10 synchromesh