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.

5
  • Is there a reason for you to not just use a native build?
    – user12563
    Sep 13, 2017 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, 2017 at 15:30
  • Depending on what you need terminals for, eshell might be good enough for you.
    – user12563
    Sep 14, 2017 at 16:50
  • 1
    I had no idea what was meant by "BLODA", but I presume you mean it as defined by cygwin.com/acronyms ? You might like to update the question text to not use this rather niche terminology?
    – phils
    Feb 11, 2018 at 1: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, 2018 at 10:14

1 Answer 1

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 ((

4
  • "They are not significantly fast as Cygwin's ones." - Does that mean WSL git is slower or faster than Cygwin git?
    – npostavs
    Oct 13, 2017 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, 2017 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, 2018 at 0: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, 2019 at 21:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.