Wed May 20 10:33:36 CEST 2015
Yesterday the topic of Windows development was brought up on Twitter. I
looked into it and it's clearly an issue. At best you can compile
projects that don't involve shell scripts, makefiles or C code, so you
can't really work on anything significant as a large number of open
source projects involve one or the other (yes, even when using rebar).
Now there's three ways Erlang could be more friendly to Windows developers:
To use Windows tools imply making open source projects work for Windows.
Sure perhaps it's not an issue for the simplest NIFs but some projects
require C libraries which themselves aren't always easy to make work on
MingW has the same issues. You need to fix everything to work on Windows.
Cygwin makes this much easier. Everything seems to work... except
Erlang. Erlang on Cygwin thinks it runs on win32 and, while true to a
certain extent, it fails badly when dealing with files (cygwin has / as
root while win32 has c:\).
Now you might say Cygwin is massive. That's true, it takes some time to
install and some space on the disk. But it's very easy to install and
can be almost entirely automated using chocolatey and apt-cyg. And
adding an SSH server on top of that is a couple commands away, so it is
a very interesting solution if you ask me.
Now Erlang compiles on Cygwin... but produces the win32 target. Which
brings me to the main subject of this email: what would it involve to
make Erlang work on Cygwin? Considering Cygwin is a mix of Windows and
Linux it's probably just about enabling one or another piece of code, or
It could be a fine side project but I don't really know where to start.
Any tips appreciated.
PS: tried just patching os:type()... that didn't work. Ended up with
Erlang not finding a file that existed on disk when running common_test.
PPS: I know "real" developers use Unix. But the more numerous "fake"
developers might be more interested in Erlang if they can keep their OS.
PPPS: I know this isn't a good option if you're going to create
Photoshoperl, but it's still a good option for server application
More information about the erlang-questions