Its not really very useful to cache the tot release in a local text
file. Instead just fetch the revsion each time `install tot` is run.
This avoids folks accidentally installing "old" tot releases.
Also, make the output a little less chatty when looking up tot version.
This is done by detecting the 40 character git sha in the SDK version
and creating a new set of tools based on this SHA. This works for any
command that uses expand_sdk_name (i.e. install activate and update) but
it wont show up in the output of `list`.
For example:
./emsdk install sdk-releases-upstream-b0cfdb236483b6828ee2e3f263fd94f011ed1863-64bit
Or just:
./emsdk install releases-upstream-b0cfdb236483b6828ee2e3f263fd94f011ed1863
This avoids re-running the post-install scripts when commands such as
`./emsdk install latest` a re-run. This re-running of npm ci can be
significant slowdown especially during testing and developerment.
Becuase of the refactoring this change change also means we exit ealier
when a given tool fails to install. In general we want to error out as
early as possible on the first failure so as not to bury it.
Without this, all releases are made available as fastcomp
versions.
Also, sort the releases to that the most recent come last.
This fixes the `emsdk list` display which only displays
the two most recent versions.
Using the full SDK name was causing a crash here because the
version is not of the form 1.2.3. e.g:
sdk-releases-upstream-3b8cff670e9233a6623563add831647e8689a86b-64bit
update-tags is called from two places `update-tags` itself and also
as as part of `update`. Silently ignoring the absence of git should
only happen in the later case. If the user explicitly ask for
update-tags we should hard fail as normal.
"emsdk install emscripten-master-64bit" is currently dependent on
whether emscripten node is installed or not.
This change allow using system-provided node / npm command to proceed
the installation. Also clarify the error message.
For Java we use the value in the config file so it doesn't need to be in
the PATH.
For python, all our tools should launch via scripts that check for
EMSDK_PYTHON so having python in the PATH for emsdk users should not be
needed.
The motivation for this is that we don't want to clobber any existing
python or java versions that users might already have in their PATH.
This is the easy part of #705.
- Remove empty llvm-tags-32bit.txt
- Remove code that executes if llvm-tags-64bit.txt is missing (it
can't be since its checked in these days).
- Cleanup load_file_index_list
I verfied manually that llvm_precompiled_tags* list are identical
before and after this change.
This change comes with fairly major change to the bazel toolchain.
- Use pre-built cache that comes with emsdk
- Mark cache as readonly using FROZEN_CACHE
- Pass `--sysroot` to match upstream emscripten change
We have mac linux and windows bots that run this script
on each of those platforms. This script already runs
`install latest` so there is no need to re-download these
three different archives on each platform.
LLVM renamed their default branch to main from master.
This breaks builds of the SDK from the sources.
This commit retargets LLVM builds to use the git branch main when appropriate.
The version name "master" remains the same to maintain compatibility with existing build scripts
Fixes#692.
Binaryen renamed their default branch to main from master.
This breaks builds of the SDK from the sources.
This commit retargets binaryen builds to use the git branch `main` when appropriate.
The version name "master" remains the same to maintain compatibility with existing build scripts
Fixes#683.
I have no idea why this argument was included when this
script was first added. `emsdk_env.bat` does not even pass
its argument into `emsdk.py` so this argument has no effect
here.
This PR has three changes:
1) Fixing --permanent flag:
The previous algorithm looped over the values of PATH 4 times to check conditions while these conditions are the opposite of each other. Also, the result did not include all the parts in the whole_path.
I have combined these loops and fixed the algorithm, so no path is lost. Now using --permanent the PATH and Env variables are correctly updated.
2) Fixing --system flag:
Now, the system flag does not cause the PATH values to be overwritten/clobbered. The PATH/Env variables are correctly updated.
3) Fixing flagless flag:
When no flag is provided the value of process/shell is correctly updated and preserved.
This adds the tests for all the situations.
Fixes#634Fixes#645
Also switch PostMessage to SendMessageWithTimeout and only send one if
environment variables actually changed.
Also, enable and fix --permanent unit tests.