Follow build architecture naming conventions (#5780)

This commit is contained in:
Greg Van Liew 2022-11-10 16:22:26 -08:00 коммит произвёл GitHub
Родитель 56ceaec813
Коммит 154adae64f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
6 изменённых файлов: 32 добавлений и 30 удалений

Просмотреть файл

@ -16,7 +16,7 @@ Visual Studio Code is a large project with lots of moving parts and an active pa
We described in an [earlier blog post](https://medium.com/crawl-walk-sprint/reducing-vs-code-ci-build-times-by-33-dbb1715b5028) how we reduced CI build times by 33%. This was accomplished by using custom build tasks that cache the node modules that VS Code consumes instead of resolving the packages at build time. While we were happy with this performance boost, we wanted to see how much further we could push the caching tasks that we built.
When we last talked about our CI engineering, our target platforms spanned Windows, macOS, and Linux. As of today, VS Code targets a much more diverse set of platforms, such as ARM64 and Alpine Linux for its remote server components. In total, we have eight different targets that all share common build steps. This post outlines how we leveraged the caching tasks to reduce CI duplication and further improve our build times.
When we last talked about our CI engineering, our target platforms spanned Windows, macOS, and Linux. As of today, VS Code targets a much more diverse set of platforms, such as Arm64 and Alpine Linux for its remote server components. In total, we have eight different targets that all share common build steps. This post outlines how we leveraged the caching tasks to reduce CI duplication and further improve our build times.
## Room for improvement
@ -100,12 +100,12 @@ Once these changes were implemented, we saw drastic reductions in total build ti
| Windows 32 | 59 min | 46 min | 22% |
| Linux | 38 min | 23 min | 39% |
| macOS | 68 min | 42 min | 38% |
| Linux ARM | 22 min | 21 min | 5% |
| Linux Arm | 22 min | 21 min | 5% |
| Linux Alpine | 23 min | 26 min | -13% |
![VS Code before and after build times](chart.png)
The Linux ARM and Linux Alpine targets only build the [VS Code remote server components](https://code.visualstudio.com/docs/remote/remote-overview), so their original build times were good enough. But since they share some common tasks with the standard VS Code client platforms, we decided to have them depend on the common build agent. This resulted in slightly increased build times due to the increased overhead in one case.
The Linux Arm and Linux Alpine targets only build the [VS Code remote server components](https://code.visualstudio.com/docs/remote/remote-overview), so their original build times were good enough. But since they share some common tasks with the standard VS Code client platforms, we decided to have them depend on the common build agent. This resulted in slightly increased build times due to the increased overhead in one case.
Build resubmissions saw a drastic improvement, since the shared agent tasks can be skipped altogether. Here are some numbers for macOS, for example:

Просмотреть файл

@ -9,7 +9,7 @@ MetaDescription: Configure Visual Studio Code c_cpp_properties.json to get Intel
---
# IntelliSense for cross-compiling
The article is about configuring the C/C++ extension to provide proper IntelliSense (code completions) in Visual Studio Code when you compile for a different architecture than your development host machine. For example, when your host machine is x64 but you are compiling for ARM.
The article is about configuring the C/C++ extension to provide proper IntelliSense (code completions) in Visual Studio Code when you compile for a different architecture than your development host machine. For example, when your host machine is x64 but you are compiling for Arm.
The C/C++ extension isn't a compiler--it provides rich language features such as syntax highlighting and IntelliSense. For the extension to provide correct IntelliSense suggestions, and to reflect the right sizes of data types, you need to configure the C++ extension to emulate the target architecture.
@ -19,7 +19,7 @@ These configuration settings are stored in your project's `c_cpp_properties.json
## Example IntelliSense configuration
The following shows configuring the C/C++ extension for a Linux x64 host machine that targets Linux ARM. It configures the following IntelliSense settings:
The following shows configuring the C/C++ extension for a Linux x64 host machine that targets Linux Arm. It configures the following IntelliSense settings:
- **Compiler path**: the extension queries your compiler at this location to retrieve system libraries and compiler defines.
- **IntelliSense mode**: emulates the target architecture and compiler so that the extension can provide correct IntelliSense and reflect the right sizes of data types such as `pointer`, `size_t`, `long`, and so on.

Просмотреть файл

@ -72,7 +72,7 @@ At that point, here are step-by-step instructions to quickly get up and running:
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\.vscode-server-launcher\bin", "User")
```
**Windows (ARM):**
**Windows (Arm):**
Run the following commands in a non-elevated PowerShell. You may need to restart your terminal for the PATH changes to apply.

Просмотреть файл

@ -96,6 +96,6 @@ If you are running macOS Mojave version, you may see dialogs saying "Visual Stud
If VS Code doesn't update once it restarts, it might be set under quarantine by macOS. Follow the steps in this [issue](https://github.com/microsoft/vscode/issues/7426#issuecomment-425093469) for resolution.
### Does VS Code run on Apple Silicon machines?
### Does VS Code run on Apple silicon machines?
Yes, VS Code supports macOS ARM64 builds that can run on Macs with the Apple Silicon chipsets. You can install the Universal build, which includes both Intel and Apple Silicon builds, or one of the platform specific builds.
Yes, VS Code supports macOS Arm64 builds that can run on Macs with the Apple silicon chipsets. You can install the Universal build, which includes both Intel and Apple silicon builds, or one of the platform specific builds.

Просмотреть файл

@ -67,5 +67,5 @@ The folder locations will vary depending on your platform:
* [Setup overview](/docs/setup/setup-overview.md) - General information about VS Code setup and updates.
* [Windows setup](/docs/setup/windows.md) - Details and common questions about installing VS Code on Windows.
* [macOS setup](/docs/setup/mac.md) - VS Code is available for both Intel and Apple Silicon macOS machines.
* [macOS setup](/docs/setup/mac.md) - VS Code is available for both Intel and Apple silicon macOS machines.
* [Linux setup](/docs/setup/linux.md) - Learn about the different VS Code packages available for Linux.

Просмотреть файл

@ -153,28 +153,30 @@ If you need a type of installation not listed there, you can manually download v
Download type | URL
--- | ---
Windows 64 bit System installer | https://update.code.visualstudio.com/{version}/win32-x64/stable
Windows 64 bit User installer| https://update.code.visualstudio.com/{version}/win32-x64-user/stable
Windows 64 bit zip | https://update.code.visualstudio.com/{version}/win32-x64-archive/stable
Windows 64 bit ARM System installer | https://update.code.visualstudio.com/{version}/win32-arm64/stable
Windows 64 bit ARM User installer | https://update.code.visualstudio.com/{version}/win32-arm64-user/stable
Windows 64 bit ARM zip | https://update.code.visualstudio.com/{version}/win32-arm64-archive/stable
Windows 32 bit System installer | https://update.code.visualstudio.com/{version}/win32/stable
Windows 32 bit User installer | https://update.code.visualstudio.com/{version}/win32-user/stable
Windows 32 bit zip | https://update.code.visualstudio.com/{version}/win32-archive/stable
macOS | https://update.code.visualstudio.com/{version}/darwin/stable
Linux 64 bit | https://update.code.visualstudio.com/{version}/linux-x64/stable
Linux 64 bit debian | https://update.code.visualstudio.com/{version}/linux-deb-x64/stable
Linux 64 bit rpm | https://update.code.visualstudio.com/{version}/linux-rpm-x64/stable
Linux 64 bit snap | https://update.code.visualstudio.com/{version}/linux-snap-x64/stable
Linux ARM | https://update.code.visualstudio.com/{version}/linux-armhf/stable
Linux ARM debian | https://update.code.visualstudio.com/{version}/linux-deb-armhf/stable
Linux ARM rpm | https://update.code.visualstudio.com/{version}/linux-rpm-armhf/stable
Linux 64 bit ARM | https://update.code.visualstudio.com/{version}/linux-arm64/stable
Linux 64 bit ARM debian | https://update.code.visualstudio.com/{version}/linux-deb-arm64/stable
Linux 64 bit ARM rpm | https://update.code.visualstudio.com/{version}/linux-rpm-arm64/stable
Windows x64 System installer | https://update.code.visualstudio.com/{version}/win32-x64/stable
Windows x64 User installer| https://update.code.visualstudio.com/{version}/win32-x64-user/stable
Windows x64 zip | https://update.code.visualstudio.com/{version}/win32-x64-archive/stable
Windows Arm64 System installer | https://update.code.visualstudio.com/{version}/win32-arm64/stable
Windows Arm64 User installer | https://update.code.visualstudio.com/{version}/win32-arm64-user/stable
Windows Arm64 zip | https://update.code.visualstudio.com/{version}/win32-arm64-archive/stable
Windows x86 System installer | https://update.code.visualstudio.com/{version}/win32/stable
Windows x86 User installer | https://update.code.visualstudio.com/{version}/win32-user/stable
Windows x86 zip | https://update.code.visualstudio.com/{version}/win32-archive/stable
macOS Universal | https://update.code.visualstudio.com/{version}/darwin-universal/stable
macOS Intel chip | https://update.code.visualstudio.com/{version}/darwin/stable
macOS Apple silicon | https://update.code.visualstudio.com/{version}/darwin-arm64/stable
Linux x64 | https://update.code.visualstudio.com/{version}/linux-x64/stable
Linux x64 debian | https://update.code.visualstudio.com/{version}/linux-deb-x64/stable
Linux x64 rpm | https://update.code.visualstudio.com/{version}/linux-rpm-x64/stable
Linux x64 snap | https://update.code.visualstudio.com/{version}/linux-snap-x64/stable
Linux Arm32 | https://update.code.visualstudio.com/{version}/linux-armhf/stable
Linux Arm32 debian | https://update.code.visualstudio.com/{version}/linux-deb-armhf/stable
Linux Arm32 rpm | https://update.code.visualstudio.com/{version}/linux-rpm-armhf/stable
Linux Arm64 | https://update.code.visualstudio.com/{version}/linux-arm64/stable
Linux Arm64 debian | https://update.code.visualstudio.com/{version}/linux-deb-arm64/stable
Linux Arm64 rpm | https://update.code.visualstudio.com/{version}/linux-rpm-arm64/stable
Substitute the specific release you want in the `{version}` placeholder. For example, to download the Linux ARM debian version for 1.50.1, you would use
Substitute the specific release you want in the `{version}` placeholder. For example, to download the Linux Arm32 debian version for 1.50.1, you would use
```bash
https://update.code.visualstudio.com/1.50.1/linux-deb-armhf/stable