public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Kaz Kylheku <920-082-4242@kylheku.com>
To: Ben Kamen <ben@benkamen.net>
Cc: cygwin@cygwin.com
Subject: Re: Using ARM GNU GCC with Cygwin
Date: Wed, 08 Apr 2020 17:33:22 -0700	[thread overview]
Message-ID: <cc8c0446886e7998a6c3aded3014bcfd@mail.kylheku.com> (raw)
In-Reply-To: <138a0ab1-5b5f-e77d-e49c-3fecfbd9b007@benkamen.net>

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.

  reply	other threads:[~2020-04-09  0:33 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-04  9:00 Ben
2020-04-04 10:23 ` Eliot Moss
2020-04-04 18:15   ` Ben
2020-04-04 14:32 ` Kaz Kylheku
2020-04-04 18:18   ` Ben
2020-04-04 18:58   ` Åke Rehnman
2020-04-04 19:10     ` Ben
2020-04-04 20:39       ` Marco Atzeri
2020-04-08 20:50     ` Kaz Kylheku
2020-04-08 20:58       ` David Rothenberger
2020-04-08 21:13         ` Ben Kamen
2020-04-09  0:33           ` Kaz Kylheku [this message]
2020-04-09  0:17         ` Kaz Kylheku
2020-04-04 21:40   ` Andrey Repin
2020-04-04 21:56     ` Eliot Moss
2020-04-05  8:49     ` Csaba Raduly
2020-04-07 17:36       ` Ben
2020-04-04 19:11 ` Åke Rehnman
2020-04-04 19:31   ` Åke Rehnman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cc8c0446886e7998a6c3aded3014bcfd@mail.kylheku.com \
    --to=920-082-4242@kylheku.com \
    --cc=ben@benkamen.net \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).