Live data from Hacker News

Cash: a cross-platform implementation of Unix shell commands in JavaScript

github.com

61–70 of 75 posts

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#61
post #54
post #53

Earlier quoted context omitted.

MSYS2 is a fork of Cygwin. The goal is to make it easier to compile software targeting Windows. Some notable changes are: - It has its own package repository, using PKGBUILDs on github. It can also be updated from within its own shell. Cygwin doesn't do this, for very important reasons, involving autorebase hell which MSYS2 is certainly still subject to. - In their fork of cygwin1.dll, they removed support for symlin…

One more important note about compiling software with MSYS2 is that the msys2 version of cygwin1.dll (i forget how it's renamed) obviously inherits the same license as cygwin1.dll. Cygwin1.dll is not LGPL. It is GPL . So any program you release compiled with MSYS2 inherits GPL virality, unless you pay Red Hat for a commercial Cygwin license.

This sounds like you're trying to scare people off using MSYS2 altogether with the GPL bogey man, and it misrepresents the point of MSYS2.

The 'msys2' software repository (as opposed to the 'mingw32' and 'mingw64' ones) contains things that link to msys-2.0.dll which is GPL, and yes it includes compilers and linkers that in turn generate new PECOFF objects that in turn link to msys-2.0.dll. This repository exists mostly as build scaffolding (Autotools, bash) to support building native Windows software (as exists in the other two repositories) and that is the real goal of MSYS2. If you want POSIX-y GPLed software on Windows, use Cygwin.

You are right to caution people on the naive usage of our msys2/gcc package, but you've made it sound like something much worse than it is.

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#62
post #53
post #20

Earlier quoted context omitted.

Thanks for mentioning this. I just started using Windows at home after a long break and defaulted to setting up Cygwin with cmder. Before that I used Arch Linux for a while so seeing that msys2 uses a port of pacman is intriguing. Could you (or anyone else for that matter) share more information about what it's like using this as opposed to Cygwin? Pros, cons, etc.

MSYS2 is a fork of Cygwin. The goal is to make it easier to compile software targeting Windows. Some notable changes are: - It has its own package repository, using PKGBUILDs on github. It can also be updated from within its own shell. Cygwin doesn't do this, for very important reasons, involving autorebase hell which MSYS2 is certainly still subject to. - In their fork of cygwin1.dll, they removed support for symlin…

Autorebase hell is I hope a thing of the past. We made all of the executables involved in the running of pacman static (except msys-2.0.dll obviously, and some post-install scripts, but we try to remove those) and split the update procedure into two parts, "update-core" which handles updating the core of MSYS2 and pacman. The rest of the system update is then completed with "pacman -Su". We've had no reports of update failures since then.

We didn't remove support for symlinks, you can enable them in the MSYS env. var winsymlinks:nativestrict if you want. If symlinks didn't require special permissions, we'd enable them by default, but unfortunately they do. Maybe one day Microsoft will change their minds on this. I can only hope so. I guess you may have meant that we don't create the 'Cygwin special' symlinks that winsymlinks:native falls back to when it doesn't get permissions? Yes those are an interoperability disaster for MSYS2 when native programs read them.

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#63
post #15

Earlier quoted context omitted.

http://babun.github.io/ is wonderful. ConEmu is a great container for a tabbed interface of Babun, PuTTY or powershell instances.

Babun seems to solve none of the issues that the original commenter mentioned. Awful fonts, worse rendering, crappy copy/paste, limited size, no split screen or tabs The screenshots on the Babun site show the same 90s-era looking shell container. ConEmu looks to have more features, but is similarly stuck in the Win-98 design aesthetic.

[deleted]

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#64
post #44

Earlier quoted context omitted.

> That's not to say that standards are bad and shouldn't be followed. (Open) standards-compliance becomes essential if we want our work to outlast us. Yes, we all know design by committee is horrible and gets nothing done. The solution is get rid of specs completely though. I don't trust "javascript developers" to have any sort of discipline. I'm sorry if this sounds like stereotyping but it just seems like a trend t…

Do you know what specs I used to write Cash? ^ look at the link two parents up. Do you know how long I spent working on getting the specs right in Cash? Cash isn't perfect, but it took me months of "discipline" before I would let myself do even the initial release, which is `v0.1.0` btw.

Sorry, I didn't mean you when I said that. I meant our dependencies. We will revisit this topic when node js inevitably screws you and your project fails in mysterious ways with a new node update.

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#65
post #5
post #2

Linux is enough to have Linux feel without the Windows' suck.

Some aren't that fortunate and have to work on Windows environments at work.

Others have spent years in UNIX land and still prefer Windows to Linux.

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#66

> Huh? Okay - think Cygwin, except: No GCC or compilers, which I would think is one of the biggest reasons most people use Cygwin? Cygwin isn't just shell commands, and surprisingly PowerShell doesn't suck as much it features some unixy commands. As well as others have mentioned Clink makes cmd.exe suck even less.

I only use cygwin to SSH into my irssi-box and that only because I have more control over how to looks than normal "cmd" If you have something customizable, but not cygwin I'm all ears

Just for SSH? I use and love Bitvise on Windows, but I have no idea how customizable it is.

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#67
This is neat!

For Javascript we have the engine as V8 VM already, is it possible we can use javascript the way as python/bash(i.e. #!/bin/js) someday? that means ignoring the DOM/web related portion and make javascript a true client/server side script language, then it's really close to 'one language rules all'.

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#68
post #67

This is neat! For Javascript we have the engine as V8 VM already, is it possible we can use javascript the way as python/bash(i.e. #!/bin/js) someday? that means ignoring the DOM/web related portion and make javascript a true client/server side script language, then it's really close to 'one language rules all'.

This works:

  #!/usr/bin/node

  console.log("hello");
mark it executable and enjoy.

Unless that's not really what you were getting at with your comment. If I misunderstood, sorry!

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#69
post #44

Earlier quoted context omitted.

Do you know what specs I used to write Cash? ^ look at the link two parents up. Do you know how long I spent working on getting the specs right in Cash? Cash isn't perfect, but it took me months of "discipline" before I would let myself do even the initial release, which is `v0.1.0` btw.

Sorry, I didn't mean you when I said that. I meant our dependencies. We will revisit this topic when node js inevitably screws you and your project fails in mysterious ways with a new node update.

It would be mysterious if I didn't understand Node. Node hasn't mysteriously failed me yet. Looks like you're just sour with a little too little actual data.

Re: Cash: a cross-platform implementation of Unix shell commands in JavaScript

#70
post #67

This is neat! For Javascript we have the engine as V8 VM already, is it possible we can use javascript the way as python/bash(i.e. #!/bin/js) someday? that means ignoring the DOM/web related portion and make javascript a true client/server side script language, then it's really close to 'one language rules all'.

As the other poster notes, that's exactly what node is.
Post reply on HN