On 2020-04-08 14:13, Ben Kamen wrote:
Well then.
This certainly turned out to be all sorts of interesting discussion. :)
I for one also can say it's nice to have a cygwin environment over DOS
if I'm forced to a CLI on Windows.
Most of my days are spent on Linux -- but it looks like I have some
legit CLI time coming on Windows and cygwin was my first go-to thought
for that.
It's already bad enough how many times I type 'ls -l' in DOS to get an
error. HAhahaha.
(two thumbs up)
I use Cygwin for porting a programming language (TXR) to Windows.
Previously, I used MinGW, which was terrible; it has no POSIX
support at all. The MinGW version didn't have a working REPL mode,
for instance. Cygwin has termios calls that translate to the Windows
Console API; you can put the TTY into raw mode and just spew ANSI/VT100
codes and it all works. Input side too.
In 2016(?), Cygwin announced that the DLL's were going to be LGPL
instead of GPL. That means they could be linked not only with
proprietary applications, but ones with *less* restrictive licensing
such as BSD, without GPL contagion, like my project. Terrific!
I immediately saw the implications for this, and
began work on a forked version of the Cygwin DLL which
is a little bit more suitable as a run-time for a Windows application.
I made just a few changes for more Windows-like behaviors.
For instance, the file system calls understand Windows paths with
letter names instead of /cygdrv, and the chdir() system call
understands the "logged drive" DOS/Windows concept. The PATH variable
is untranslated in Cygnal, and semicolon separated. The system()
function and popen() don't look for /bin/sh, they use the CMD
variable, defaulting on cmd.exe. Things like that.
That project is here:
https://www.kylheku.com/cygnal/
The beauty is that you can compile a program quite simply in Cygwin
as a Cygwin executable. Then just slide this modified library
under it, bundle them together, and ship it as a Windows program.
I do exactly that.
Cygnal is a little behind Cygwin; it's about time I did a rebase
to a newer Cygwin.
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple