-
Notifications
You must be signed in to change notification settings - Fork 27.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can I or will I be able to run VSCode on Surface Pro X? #81854
Comments
This seems to be related to #33620 |
@FilipeRamalho thanks for the reference. I am a little bit worried about the performance stuff. Can I rely on Surface Pro X to be my daily PC for development? |
@vilic Without going too much off topic. I am also considering the Pro X and thinking about the use of development tools on it. As it releases on November there is enough time to see if it's possible to use as an daily PC for development.
|
@vilic, @FilipeRamalho If you build vscode by yourself or get a arm64 version from a third party site you get code-oss. One of the major differences between official builds and open source builds is that the remote extensions refuse to work with oss. So in your case you will have to work in the x86 emulation. Which is probably currently the best way as the c# and c++ extensions also don't work on arm64. Probably a lot other extensions, too. Although i'm from the linux side i'm hoping that with the surface pro x native arm gets a bit of a boost. |
@magic-k I think that code-oss is a proof of concept, so we know that vs code itself can work on win-arm64. |
@FilipeRamalho I was more thinking the other way around. Microsoft forces it's own vscode department to support a native arm64 version, forcing the extensions to follow. From there a native linux version is probably only a short step. code-oss is the open source community portion of vscode, which works on all platforms you can compile it for including linux arm64 but without proprietary microsoft parts and native x86 parts. |
@magic-k The VSCode community will hopefully follow and compile/support arm64. |
The primary trouble I have using the x86 VS Code build on an ARM64 Win10 laptop is that the remote extensions don't support ARM64 Linux (it seems to download x86-64 code which then fails to run?), so WSL-based development isn't as smooth as it could be. Performance of the editor is adequate for my purposes. |
@Brion The extensions seem to be the primary problem when using VSCode are extensions with X64 code, I'm no that well-versed into Code extensions, but I will try to find out what is been compiled into x64 and if it can be compiled into x86 or even arm64. |
I'm also thinking about using Pro X to develop Golang backend applications. |
As long as everything runs in the emulation, it'll probably works. delve, the golang debugger won't work on arm64. |
Firstly the original blocking issue has been resolved, there is official windows ARM64 electron support, hooray 🎉 . I'm using a surface pro X now, the x86 version of code does work, but there's slightly disruptive visual lag on most actions, though typing seems to be fine. I'm also a mostly remote use person so I'm not dying here but it seems like it should be low hanging fruit. |
I'm happy to try adding this to https://github.com/headmelted/codebuilds now that Electron supports Windows ARM64. Is there interest in this, given that it's not an official build so you would need to accept that there may be inconsistencies in terms of what's support from an extension perspective. |
Thank you @headmelted !!! I can and will gracefully accept whatever extension challenges may come. |
This was fixed in the November 2019 1.41 release. The x86 Windows UI will now correctly use the x64 ARM vscode-server in WSL. |
The Surface ProX is a great machine for on the go connectivity, I have a larger machine for work at my desk. I would love to see the UI deployed as ARM64 on Windows. I feel that skipping the x86 emulation would increase performance and potentially decrease Electron's power consumption. |
What types of apps do you want to build on the machine? What are the target runtimes (e.g. Node, Go, Rust, Python, etc.). Are there ARM64 versions of those tools? Or, are you primarily doing remote development (e.g. SSH) to another machine? |
I primarily work in C# Core, Python and Azure CLI.
My desired setup on the Surface ProX is to work both local WindowsARM and in WSL2 Remoting in native ARM64.
I understand from the thread that the C# plugins have x86 dependencies, but I expect that no plug in maintainers will consider updating to native ARM on Win/Linux support until the IDE supports the scenario.
From: Chris Dias <notifications@github.com>
Sent: Tuesday, December 17, 2019 5:57 PM
To: microsoft/vscode <vscode@noreply.github.com>
Cc: Jim Priestley <Jim.Priestley@microsoft.com>; Comment <comment@noreply.github.com>
Subject: Re: [microsoft/vscode] Can I or will I be able to run VSCode on Surface Pro X? (#81854)
What types of apps do you want to build on the machine? What are the target runtimes (e.g. Node, Go, Rust, Python, etc.). Are there ARM64 versions of those tools? Or, are you primarily doing remote development (e.g. SSH) to another machine?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fvscode%2Fissues%2F81854%3Femail_source%3Dnotifications%26email_token%3DAET62LXKS7VNHNVTDLPTJFTQZFKNTA5CNFSM4I4YGFZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHEHXTI%23issuecomment-566787021&data=02%7C01%7CJim.Priestley%40microsoft.com%7Cd397dba265964e13bff808d783447e67%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637122202517442130&sdata=KGk4b5Ich68RLJSc%2B04xRvDcUtCIfmzPBVz1k7VT60M%3D&reserved=0>, or unsubscribe<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAET62LQ7AVTZ3BVZFCHYW4DQZFKNTANCNFSM4I4YGFZQ&data=02%7C01%7CJim.Priestley%40microsoft.com%7Cd397dba265964e13bff808d783447e67%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637122202517452128&sdata=b0QTZDfOfLsNuu3V7RdiRfIn5BhBSG5We%2BmYxdVK0JE%3D&reserved=0>.
|
To add to Chris’ point above and pre-empt the next question, some of the blanks in tooling probably can be filled in with emulation - but from experience I’d expect very mixed results, and in any case it could get so messy so quickly that it becomes more hassle than it’s worth for an end user (example: x86 on ARM targeting x64 would be three triplets to track in GCC). Even if the tools you need work in an emulator (which is not guaranteed), performance would likely be very poor. |
It's incumbent on the host to lead the push. If the host doesn't support it there's absolutely no reason for the client to support it. The idea that clients will work to support something that the host doesn't is fantasy. How would you even test it? |
arm64 Linux versions of DotNet 3.1, AZCLI, Docker-ce and Python do exist, and work well in the WSL Remoting on the Surface ProX. As stated above, running VSCode Shell on ARM64 on Windows would be a first step in supporting Windows on ARM as a dev work environment, and is a pre-requisite for any plugin authors then also supporting Win on ARM natively. Edge on Chromium for WinARM is now in Dev, and is supposed to release on January 15th, according to news stories. Other threads indicate there is now an Electron release that supports Win on ARM64. |
The minute there is an official build for ARM, I'm buying a Surface Pro X. The SSH and WSL remoting is awesome, I can't wait to be able to use it as a development machine! |
@JimPriestley Oh... neat! Thanks for the insight... I think I'm brave enough to make the jump now! :) |
bump! It is good that we can run the x86-32 version of VSCode on the Surface Pro X but if MS is serious about Windows on ARM then it needs to step up its support for development. One of the main reasons there are so few native arm64 apps for Windows is that there is no support for developing on arm64 machines. Everyone that spent ~2k on Surface Pro X are running win32 32bits emulated software or remoting into WSL. I've posted about this in the past. |
@soapdog i've jumped onto the arm bandwagon with the galaxy book s, the battery life is awesome, and the LTE well and truly gives proper portability, it's a trade off but it's worth it if you can manage it. i'm using x86 emulation with vscode, and using remote ssh to work with asp.net core on x64. it works well enough for day to day, and edge/firefox arm builds work really really well. i was able to run an unofficial code oss build and it's lighting quick, but the extensions don't work yet. wsl works great too, but i'm opting for using a slightly beefier virtual server instead via ssh remote. once there's a arm64 build with ssh remote the experience will be wonderful, hopefully it's not too far off :) |
@ryan-allen @soapdog After another month, how happy are you? Could you give a quick update about your current setup and satisfaction with the performance? I'd be very happy to hear back, currently looking into ARM Windows for nodeJS/vscode. Cheers mates! |
@bkniffler hey bloke! i spent quite a while trying out a number of approaches, and i have settled on the following set up: i'm using https://github.com/cdr/code-server running it on a x64 ubuntu server, i do all development through code-oss running remotely via this project. i use microsoft edge (which is native arm) to run code-server 'as an app' so that it captures key commands that are otherwise captured by the browser. there are features missing (e.g. debugging) because these are only available via vs-code released my msft. i'm using windows terminal preview which also has an arm build, so my day to day feels native and i have 95% of what i need with this setup, though it does require me to have an internet connection in order to work. it feels native, i use ssh port forwarding to hit local development servers on the virtual server i'm working on day to day. i'm very happy! vscode running on the galaxy book s seemed sluggish due to is being 32bit emulated (this did work though, it just didn't feel 'fast'). one day if we get vscode arm and remote ssh it's going to be a winner. the battery life is unbelievable and built in LTE is amazing :) you can try out this hackjob setup with code-server without having to buy an arm laptop to see if it'll suffice! edit: as an aside, i'm using many apps through the browser now: whatsapp, spotify, excel, they run really well. firefox also has an arm build that works quite well, but i found edge to be just a touch more responsive so i've switched to using that. |
@ryan-allen Thanks for the extensive feedback lad, it really seems incredible what Microsoft accomplished with the latest edge browser. I'm currently using an iPad with raspberry pi4 and code server, so I'm kinda familiar with the setup, but iPad just doesn't (yet?) feel like a real computer. Just to be sure, your x64 ubuntu server is physically on a different device? If yes, was it due to setup difficulty or performance benefits of a real server? |
@bkniffler Hi, there's also Visual Studio Online that offers an alternative to code-server (now with docker support it's not bad)! |
@bkniffler i'm using a classic vps type thing to run code-server, and to develop on (vultr, ssd, cheaper and faster than aws/etc), it feels pretty much native as they have sydney edge locations. i have been working via remote-ssh for a couple of years as it allows me to work from different computers and have the same environment set up, i very much love remote-ssh! i'm hoping visual studio online will allow remote-ssh to custom servers, @davide-rota does the docker support allow this yet? :) |
@bkniffler you can have remote ssh and remote docker support to your own linux server right now with vscode remote extensions ( https://code.visualstudio.com/docs/remote/remote-overview ). |
@bkniffler I'm quite happy with the surface pro x but as I blogged in the past, I think Microsoft needs to step up its support for developers. There is basically no support for "dynamic languages" running native on Windows 10 on ARM, there is no released NodeJS aarch64 for Windows for example. There is an unofficial release but good luck using it and compiling something from source using |
I use Remote SSH most of the time btw.
The text was updated successfully, but these errors were encountered: