[Openmcl-devel] (getenv "TEMP") value in POSIX format puzzle on Windows

Mirko Vukovic mirko.vukovic at gmail.com
Wed Feb 10 13:44:57 PST 2021

To start with, I am pretty sure the problem is on my side, not on ccl's

I run CCL 1.12 on a corporate Windows machine. I installed it via Roswell,
which I installed in the MSYS2 environment (from its MinGW64 shell). When
running it in Emacs/Slime, the value returned by (ccl:getenv "TEMP") causes
me a problem.

Here are the values of TEMP under several scenarios:

   1. Windows PowerShell: C:\Users\977315\AppData\Local\Temp
   2. MSYS2's MinGW64 shell: TEMP evaluates to "/tmp", which points to
   C:/msys64-a/tmp (as translated by cygpath -m)
   3. In CCL launched by ros run, I get C:\\msys64-a\\tmp (agrees with #2)
   4. In Emacs (that came with MSYS2, and launched from the MinGW64 shell),
   I get "C:\Users\977315\AppData\Local\Temp" (agrees with #1)
   5. In CCL launched via Emacs & Slime (that uses ros run), I get (ccl:getenv
   "TEMP")=>"/c/Users/977315/AppData/Local/Temp" (value of #1 but using
   MSYS2's translation to Posix)

This issue causes me a problem when I try to install a library via
quicklisp in Emacs/Slime. This uses a bit of UIOP machinery to get a
temporary directory. Near the bottom of that stack, a call to
ccl:getenv returns
the "/c/Users/..." value, that ccl's create-directory chokes on.

I guess the alternative questions are:

   - Is there a switch or some other way of getting ccl:getenv to return a
   Windows native pathname? ( did not find anything in the documentation)
   - Is there a recommended installation procedure for ccl on Windows that
   would eliminate this problem?
   - Is the Roswell binary the cause of the problem? Should I install the
   binary from the github page
   - Something else?

Thank you,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20210210/17aea218/attachment.htm>

More information about the Openmcl-devel mailing list