-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Wine progress:
-
You can download a full SBCL installer from their website, run wine on it, and then open a REPL via the resulting .exe
-
*features*contains :WIN32 and neither :LINUX nor :UNIX -
If you wine
~/.wine/blahblah/sbcl.exefrom outside the wine prefix and then ask it(uiop:getcwd), it tells you a path under Z: likeZ:/home/colin/code/foobar/ -
If you
vend repl wine /home/colin/.wine/drive_c/Program\ Files/Steel\ Bank\ Common\ Lisp/sbcl.exe(using vend) it "just works" and you can load your systems. -
Loading systems produces messages like:
; compiling file "Z:/home/colin/code/common-lisp/filepaths/src/filepaths.lisp" (written 17 FEB 2025 06:14:11 AM):
; wrote C:/users/colin/AppData/Local/cache/common-lisp/sbcl-2.5.5-win-x64/Z/home/colin/code/common-lisp/filepaths/src/filepaths-tmpUX5S4ADN.fasl
-
In emacs, you can add the following to
sly-lisp-implementationsand it will "just work":(sbcl-wine ("vend" "repl" "wine" "/home/colin/.wine/drive_c/Program Files/Steel Bank Common Lisp/sbcl.exe")) -
I'm able to load and test systems as usual from a normal Emacs session running in Linux, but the underlying SBCL thinks it's in Windows.
-
The
:devicefield ofpathnamefinally matters:
The object is a PATHNAME.
0. NAMESTRING: "Z:/home/colin/code/common-lisp/filepaths/"
1. HOST: #<SB-IMPL::WIN32-HOST {1100039A13}>
2. DEVICE: "Z"
3. DIR+HASH: ((:ABSOLUTE "home" "colin" "code" "common-lisp" "filepaths")
. 1436663681855573684)
4. NAME: NIL
5. TYPE: NIL
6. VERSION: NIL
Likewise, this shape of literal does what you expect: #p"Z:/foo" with Z as the device. Notice however that even on windows, the separator is a slash (not a backslash, thank god)
(@fosskers on Discord)
Does Wine work well? The Kandria game Windows version was built like this.