libera/#ecl - IRC Chatlog
Search
16:12:24
skin
Hello. I can't get ecl to compile on windows using the MSVC stack with the `:dffi` option enabled. I can get `:dlopen` feature, but not `:dffi`. What step am I missing?
21:17:40
skin
jackdaniel: libffi is *supposed* to work with msvc; there's a blurb in the docs about it in the in-tree copy. But I've been trying to build it and it's rather difficult
21:21:11
skin
It's just that means CFFI doesn't work on windows, basically. Which, due to the nature of the library ecosystem in common lisp, means that ECL basically isn't useable on MSVC, unless you roll all your deps yourself.
21:21:12
skin
I mean, I guess I could use mingw to compile, but I've tried that too; it has a problem with code page 437 or some such. It doesn't load.
21:21:12
skin
I'd be happy if I could compile on windows using Msys2 (mingw), but I can't seem to find a guide for how to do it. I tried doing it myself, but I am confused by the error I get when I fire it up after having compiled it.
21:25:40
jackdaniel
windows is a crappy platform :) I'll look into it on the next occasion I'm testing ecl on windows
21:27:34
skin
I get it's not a fun platform, but I really like the promise of ECL. It's perfect for making CLI apps, which is what I'm most interested in. If I can make self-contained binaries, or even ones that require a few DLLs/SOs on the big 3 OS's, I think that'd be pretty cool.
21:28:25
skin
I did get *pretty* far; Once I figured out what I was doing, `:dlopen` just "works", and was "good enough" for many libraries. I guess I could get specifics around what library broke and see if I can move past it by using something else.
21:28:42
skin
The other weird thing I ran into was that MSVC compilers can only handle strings of length 65k or smaller
21:29:34
skin
that was super weird. Quri didn't load, because of how it generates some strings at "compile time", which translates to "write the C file time" for ECL. I was able to put in a PR that fixed that though :)
21:30:30
skin
Think I could try the cygwin thing. It would only mean the executable would need one additional binary. Still, MSVC would be pretty huge, once we get it to work.