3

I have negative experience with Cygwin but it's only the one option I have on Windows.

In recent days Cygwin provides W32 build which has native UI (copy/paste, widgets) with tight integration to Cygwin (pty and Cygwin paths).

But BLODA ruins that workflow. Cygwin Emacs W32 constantly hangs of forks and I manually cleanup processes with procexp.

So I stick to native Emacs with cygwin-mount.el. Main disadvantage is that it lacks PTY support.

With opening of Windows Subsystem For Linux I wondered if it possible to switch Emacs from Cygwin to WSL?

Should I use native Emacs with patched cygwin-mount.el, or console WSL Emacs or X11 WSL Emacs via Xming?

WSL provides much more packages then Cygwin without fork and performance issues.

gavenkoa
  • 3,352
  • 19
  • 36
  • Is there a reason for you to not just use a native build? –  Sep 13 '17 at 19:44
  • As I wrote BLODA with Cygwin Emacs W32 and missing terminal API for native build (M-x term isn't worked). – gavenkoa Sep 14 '17 at 15:30
  • Depending on what you need terminals for, `eshell` might be good enough for you. –  Sep 14 '17 at 16:50
  • 1
    I had no idea what was meant by "BLODA", but I presume you mean it as defined by https://cygwin.com/acronyms/ ? You might like to update the question text to not use this rather niche terminology? – phils Feb 11 '18 at 01:05
  • In context of Cygwin knowing BLODA is important. That is first that you get from upstream in response for your problem )) But your link is great for newcomers! – gavenkoa Feb 11 '18 at 10:14

1 Answers1

1

From what I've learned WSL currently has limited capabilities to run arbitrary code. All Linux executable is hidden inside %APPDATA% directory and isn't launchable from w32 world.

Special executable c:\windows\system32\bash.exe is a window to Linux word. In other words you need to wrap each call to utility via: bash -c "cmd-here ...".

That mean you won't get any benefits from native Emacs.

On other hand you can run bash and emacs from inside Linux space and access w32 world. You even can setup X server, like vcxsrv or Cygwin one and after DISPLAY=:0 use Linux GTK emacs.

I tried git and quilt on my project. They are not significantly fast as Cygwin's ones. And git reported that all project's files is modified: +x executable bit set. It isn't usable as I commit from Emacs but do Java stuff from within IDE.

Currently I stick to native Emacs (to avoid Cygwin's Emacs fork issues) with Cygwin utilities.

I still see valid usage of WSL if you need to run some program that is in large Ubuntu repository (like code analizer). But you can't relay on WSL in build scripts, etc.

UPDATE I returned to use Cygwin Emacs w32 because proper work of TRAMP, term, and pipe to external processes in general. I need to kill hanging emacs fork form once or twice a day. It usually happens when Emacs tried to run git/hg to check file status and this is frequent operation. Sometime git sticks at rm command ((

gavenkoa
  • 3,352
  • 19
  • 36
  • "They are not significantly fast as Cygwin's ones." - Does that mean WSL git is slower or faster than Cygwin git? – npostavs Oct 13 '17 at 21:36
  • WSL is a bit faster as it has native `fork` but file operations are not so fast so I can see notable performance improvement for `git`. – gavenkoa Oct 14 '17 at 18:45
  • 1
    I was recently playing with WSL while testing portability of a shell script, and I was surprised by how slow WSL was, as I had anticipated it would be an improvement upon Cygwin. For my script WSL and Cygwin were much of a muchness, performance-wise. YMMV, but it's surely nothing like running a GNU/Linux OS directly. – phils Feb 11 '18 at 00:59
  • 3
    I currently use Emacs on WSL with my own compiled version for Linux-like style work, though I always set gitconfig to `core.filemode=false` and `core.autocrlf=true` to avoid problems. I also use native Win32 Emacs one, though `git for Windows` is really really slow. I do not know why, but in general `git` integration on Emacs does behave very slow on Windows, comparing for example with SublimeMerge. – nephewtom Feb 12 '19 at 21:06