I got the 20.4.24 tarball and actually managed to compile it on Windows 10 using cygwin gcc.
Got it to run and it seems to work pretty well from what I've seen so far.
However, the goal of my doing all this was to be able to link Lisp code to C/C++ code and compile-file doesn't want to work.
With this simple lisp file named t2.lsp: (defun gpdtest () (print "we did it")) When I do this (when in the same directory): (compile-file "t2.lsp" :system-p t) I get this back: Condition of type: FILE-ERROR Filesystem error with pathname #P"SYS:CMP.NEWEST". Which makes no sense to me.
If I do this: (probe-file "t2.lsp") I get back: #P"/cygdrive/c/Users/danger/gcl/t2.lsp"
Thoughts?
Apologies in advance if this is a stupid question. :-)
Thanks, Garrett Dangerfield.
Cygwin allows you to compile linux programs on windows systems by providing the full set of Linux functions your application might expect to see. It even converts filenames into a format Linux applications are used to and therefore uses "/cygdrive/c" instead of "C:" in pathnames. Any "real" windows application that uses windows function calls for accessing files won't be able to find out where that file is supposed to be and therefore is bound to fail in that case.
Kind regards,
Gunter.
On November 25, 2020 6:36:40 PM GMT+01:00, Garrett Dangerfield garrett@dangerimp.com wrote:
I got the 20.4.24 tarball and actually managed to compile it on Windows 10 using cygwin gcc.
Got it to run and it seems to work pretty well from what I've seen so far.
However, the goal of my doing all this was to be able to link Lisp code to C/C++ code and compile-file doesn't want to work.
With this simple lisp file named t2.lsp: (defun gpdtest () (print "we did it")) When I do this (when in the same directory): (compile-file "t2.lsp" :system-p t) I get this back: Condition of type: FILE-ERROR Filesystem error with pathname #P"SYS:CMP.NEWEST". Which makes no sense to me.
If I do this: (probe-file "t2.lsp") I get back: #P"/cygdrive/c/Users/danger/gcl/t2.lsp"
Thoughts?
Apologies in advance if this is a stupid question. :-)
Thanks, Garrett Dangerfield.
Dear Garrett,
the error you get is due to ECL not finding its compiler binary (the compiler is build as a separate fasl which is loaded on demand). Can you check whether the file obtained from (translate-logical-pathname #P"SYS:CMP.NEWEST") exists? What value is the variable c::*ecl-library-directory* bound to?
Note also that you will likely experience trouble with ECL 20.4.24 on cygwin when compiling many files unless you incorporate the following workaround for cygwin problems with fork: https://gitlab.com/embeddable-common-lisp/ecl/-/commit/d6b422fe3940dcce00473...
Best, Marius
Am 25.11.20 um 18:36 schrieb Garrett Dangerfield:
I got the 20.4.24 tarball and actually managed to compile it on Windows 10 using cygwin gcc.
Got it to run and it seems to work pretty well from what I've seen so far.
However, the goal of my doing all this was to be able to link Lisp code to C/C++ code and compile-file doesn't want to work.
With this simple lisp file named t2.lsp: (defun gpdtest () (print "we did it")) When I do this (when in the same directory): (compile-file "t2.lsp" :system-p t) I get this back: Condition of type: FILE-ERROR Filesystem error with pathname #P"SYS:CMP.NEWEST". Which makes no sense to me.
If I do this: (probe-file "t2.lsp") I get back: #P"/cygdrive/c/Users/danger/gcl/t2.lsp"
Thoughts?
Apologies in advance if this is a stupid question. :-)
Thanks, Garrett Dangerfield.
On 11/25/20, Garrett Dangerfield garrett@dangerimp.com wrote:
I got the 20.4.24 tarball and actually managed to compile it on Windows 10 using cygwin gcc.
Here is my experience with (latest) ECL on Windows 10:
I installed the (free) MSVC compiler (which is the natural choice on Windows, has fewer dependencies and produces smaller executables).
For simplicity let's assume we have ECL in 'C:\ecl'. In order to build the 64 bit version, you need to edit 'C:\ecl\msvc\Makefile', line 24 like this:
ECL_WIN64 = 1
If you build from the command line, make sure to run the respective 'vcvars*.bat' file first. In my case it is:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat
This will setup the environment for command line builds. After switching to 'C:\ecl\msvc' and building ECL with 'nmake.exe', run 'nmake install'. Without arguments, it will install in:
C:\ecl\msvc\package\
You may now try to switch to the above path and run the 'ecl.exe'. Before compiling a file, just run '(require :cmp)'.
If the above works, just add the above path to your PATH environment variable (e.g. in the 'msvc*.bat' file, see above), and you should be able to compile from any directory.
@set PATH="C:\ecl\msvc\package";%PATH%
Paul