Enable preliminary Windows support#190
Enable preliminary Windows support#190kwonoj wants to merge 2 commits intovercel:masterfrom kwonoj:build_windows
Conversation
|
@Gottox is Awesome stuff so far! |
|
child_pty does only work on unix systems atm. There were some experiments with winpty but as I don't own a windows system to test it hasn't come that far yet. |
|
The main problem with winpty is that I refuse to ship winpty in binary. winpty itself has insane build deps requiring both, a cygwin and a MinGW toolchain. So for now I decided to keep it simple and only support unix systems. EDIT: I misread the Prerequisites, so MSYS should be enough. |
- enable preliminary cross-platform pty support on windows
|
I'm currently playing with a windows VM and nodejs. I let you know if I get it up and running. |
|
@Gottox looking forward to this! |
- setup initial script to install dependencies, build native modules - does not trigger packaging yet relates to #167
|
See ongoing process here: https://github.com/Gottox/child_pty/tree/windows |
|
I am just totally thrilled! I wonder if the windows build hyperterm will be able to attach to the terminal panel inside IntelliJ IDEA IDE ? |
|
This will take some time, I guess. winpty is quite different from the unix API... Especially I can't reuse child_process on windows, so a lot of stuff needs to be written. In order to get hyperterm on windows out fast, I guess switching back to pty.js is a better solution. |
|
Thanks for the update @Gottox. One thing I'd like to check before we temporarily switch back to this is: chatting with @Tyriar he shared some concerns about
|
|
The main issue with pty.js is that it must by run in a child process on OS X or it maxes out the CPU, see electron/electron#38 The current situation with vscode is that we do just that, but we don't use chjj/pty.js, instead we my personal fork of it Tyriar/pty.js which is a fork itself: The purpose of the Tyriar/ fork is to gets it building on new node (which ptyw.js seems to do) and working with our build system (by removing prebuilt assets). I'm passively looking around for a maintained alternative that uses a newer version of winpty. |
|
pty.js has some issues with binding of functions. So |
|
Hey, There are already many forks of child_pty. Also some guys work on windows. The debt a second pty lib like pty.js would introduce in the project should be considered. |
|
Where are these windows forks your talking about? :) |
|
If there's any grunt work a newcomer to the project can do to help this along, let me know. |
|
I'd love to help, but I'm not sure what's needed here. |
|
@tyrbo child_pty needs windows support. There's a window branch in the child_pty repo. the branch includes the winpty project, but I haven't figured out how to intergrate it into child_pty. The hardest part is that winpty needs a custom exec method, so we cannot use child_process directly. |
|
can anybody share status of this issue/pr? |
|
@iamstarkov I think windows support is coming here: #946 |
|
Yes, I'm closing this on behalf of #946. Wish this could make it, but those PR seems much more ready-to-ship state. |
This PR consists couple of changes to enable preliminary support on Windows platform, by
child_ptytoptyw.js: original module
ptycurrently have known issues with windows build (Installation fails (max is not a template of std among others) chjj/pty.js#131), introducedptywuntil issue's fully resolved.appveyorto trigger windows build.: currently only install dependenceis / bulid native modules, does not packaging it yet.
: resues existing install script (
install.sh), so anyone want to build locally may require *nix shell environment still.As this PR replaces one of core module, I agree this can be risky change especially there isn't enough test coverage. Please feel freely reject if this need not to be considered at this moment.