Commit Graph

637 Commits

Author SHA1 Message Date
Alon Zakai
76a5ae0b82 If an archive has not been downloaded, download it and assume its contents are new (#248)
This allows us to always unpack our builds into upstream/ or fastcomp/, instead of creating a new directory each time. Since without this, we'd get told to download a new file, and the emsdk would see that where it would be unpacked had contents, and assumed that even though it wasn't downloaded it must be the same. So we'd silently skip it.

It's useful to always unpack into the same dir since it's easier for people that create their own .emscripten file (the location of emscripten etc. is all fixed under the emsdk), and also it avoids directories accumulating, which each take hundreds of megabytes, so over time it can get burdensome.
2019-05-28 15:57:04 -07:00
Alon Zakai
7b8322f45e Remove waterfall integration (#246)
We can remove this now that we have emscripten-releases working and use it everywhere we used the emsdk's waterfall integration.

In particular this should fix the current lkgr.json errors people are seeing (by removing all the lkgr stuff), which I believe started when I refactored that code while doing the releases work - I must have gotten something wrong on non-linux OSes. But anyhow, easier to remove that unnecessary code than fix it at this point.
2019-05-24 14:04:43 -07:00
Alon Zakai
e1c8f791a9 Support for tip-of-tree (tot) builds (#245)
emsdk install tot-upstream will install the very latest build from emscripten-releases. These builds are useful for emscripten github CI.

There isn't a latest or lkgr for emscripten-releases currently. What this does instead is get the git repo, and check if builds exist for the latest commits there, returning the latest of those.

This also makes us not update the emscripten-version.txt file if we are not an actual version. That is, for a tot build we leave that file unchanged in the emscripten checkout.

There is also a tot-fastcomp for fastcomp.
2019-05-24 10:23:01 -07:00
Alon Zakai
0ff164fc0c Restore lkgr (#244) 2019-05-23 19:56:13 -07:00
Alon Zakai
de1134d8de Add emscripten-releases support for release tags (#243)
* Structures emscripten-releases-tags.txt to mention the latest release, and then a list of all previous releases.
* Adds a new release for 1.38.33.
* If the manifest has emscripten_releases_hash, then we write out emscripten-version.txt with the proper version. We start with the hash, and check if there is a released version for it, if so we emit that, otherwise we emit the hash.
* Windows zipfile fix.
2019-05-23 17:08:23 -07:00
Alon Zakai
7c9b5090bf Fix emsdk on python3 - the values() of a dict is a view there, not a list (#241)
Also add both python2 and 3 testing on CI here.

Fixes #240.
2019-05-23 11:01:49 -07:00
Alon Zakai
e2434062a8 Prepare for emscripten-releases (#237)
Updated to our current initial plan here:

* Add emscripten-releases-tags.txt which is a JSON file with a map of tag name to git hash in the emscripten-releases repo. Right now this file is just checked in here; in the future we may make the emsdk update it from git tags with update-tags etc.
* That file contains a "latest" tag, which is fetched for when getting latest-releases-[upstream|fastcomp]. We may want that to eventually be updated based on the latest green stuff on the bots perhaps.
* Rename the current sdk-[upstream|fastcomp]-* etc. to sdk-waterfall-[upstream\|fastcomp]-*. Then we'll have sdk-releases-[upstream|fastcomp]-* etc. This is just an internal name change - emsdk install latest-upstream still works as before, and still uses the waterfall (so we don't break our github CI).
* Add support for emsdk install latest-releases-[upstream\|fastcomp]
* Add a test using the actual emscripten-releases builds
2019-05-22 17:23:04 -07:00
Alon Zakai
751355a267 remove lkgr.json from git - the mozilla bots break if it's there (#238) 2019-05-20 14:17:35 -07:00
Sam Clegg
040e49ad1e Update tags (#235) 2019-05-09 19:47:35 -07:00
juj
4eeff61368 Add SDK definitions for upstream wasm backend enabled LLVM, "sdk-wasm-master-32/64bit". (#213) 2019-05-06 11:52:13 +03:00
Sam Clegg
1362a02f16 Line wrap README.md (#233) 2019-05-02 11:34:16 -07:00
Sam Clegg
fa6dc7bad8 Fix some flake8 warnings in emsdk (#224)
Only some checks are enabled here in order to make this change
easier to review and less error prone.
2019-04-29 15:39:20 -07:00
Shane Peelar
9538381d56 Support Fish shell (emsdk_env) (#214)
Fish shell doesn't support the same syntax as most shells,
so add an emsdk_env.fish to support these users.
Instructions included in the file.
2019-03-18 11:43:13 -07:00
Jacob Greenfield
590e7bb23d Fix path quoting bug introduced in #220 (#227)
It seems that some variables were mistakenly left unquoted, leading to paths containing spaces being treated incorrectly.

For example, the directory `/home/person/foo bar/test/` would cause `CURDIR=$(pwd)` to be expanded to `CURDIR=/home/person/foo bar/test/`. This means that the shell would attempt to run the command `bar/test/` with the environment variable `CURDIR` set to `/home/person/foo`. This is due to [word splitting](https://www.gnu.org/software/bash/manual/html_node/Word-Splitting.html). (TL;DR the result of shell expansions should probably be quoted 99% of the time)
2019-03-06 08:35:35 -08:00
Sam Clegg
cd59b3aa26 Remove sudo from travis configuration (#225)
In theory this should speed it up a little.  I suppose it was
initially added because we use docker but it doesn't seem that is
requirement here.
2019-02-27 10:50:07 -08:00
Alon Zakai
e5844d746e Add the lkgr as a prefix to upstream downloads (#223)
Without this, we would not download new versions, as the filename looked the same ("already downloaded"). We'd unzip those old contents to a directory with the new name, giving the impression we updated when we didn't :(
2019-02-25 17:18:58 -08:00
Nic Hartley
a77638d5c1 Remove bashism in favor of portable alternative (#220) 2019-02-21 17:02:22 +02:00
Passw
c486741551 remove duplicated emsdk-1.35.0-full-64bit.exe (#216) 2019-02-13 10:22:46 -08:00
Alon Zakai
ea5d631a54 Deduplicate activated configs in the .emscripten file (#198)
While doing so, we:

* keep the latest activation (e.g., the user may have activated latest and then latest-upstream, then the upstream LLVM is what is desired).
* keep the order of keys fixed (so the relative order of lines in the .emscripten file is fixed)

This adds some assertions in the Dockerfile, to verify we have one LLVM_ROOT command, and it is the right one.

Fixes #194
2019-01-18 16:29:08 -08:00
Alon Zakai
5a8f59737d Remove wasm.js reference (#207)
We removed it in Binaryen #1858. The reference here broke source installs using the emsdk.

Fixes #206
2019-01-09 09:04:03 -08:00
Alon Zakai
f00c9ce165 update emscripten and binaryen tags (#205) 2019-01-09 16:40:53 +02:00
Alon Zakai
38dcc11b1d Re-land #200 : waterfall fastcomp support (#204)
(This was reverted by mistake. It had a bad commit message though, so relanding with a nicer one is nice anyhow.)

With this, we can do emsdk install latest-fastcomp and it installs fastcomp from the waterfall. That is, we then have 3 main sdks people might want to use:

* latest which installs fastcomp-llvm (plus emscripten etc.) from the mozilla infrastructure. (fetches the last emscripten version there)
* latest-upstream which installs upstream-llvm (plus emscripten etc.) from the waterfall infrastructure. (fetches the last known good revision (lkgr) there)
* latest-fastcomp which installs fastcomp-llvm (plus emscripten etc.) from the waterfall infrastructure. (fetches the last known good revision (lkgr) there)

The first and last are currently somewhat overlapping in that both fetch a build of fastcomp. However, as we transition away from the mozilla infrastructure, we could just make latest an alias for latest-fastcomp. (And later, when we're ready to switch to the wasm backend by default, the alias could switch to latest-upstream.)
2019-01-08 13:46:53 -08:00
Alon Zakai
3ef46e970d Revert "Commit update-tags results" (#203) 2019-01-08 13:33:54 -08:00
Alon Zakai
b0fda89ec2 Revert "Add 'latest-fastcomp' sdk (#200)" (#202)
This reverts commit b4de632f3f.

This caused the ec2 mozilla builders to fail due to bundling lkgr.json. Reverting til we figure it out.
2019-01-08 13:28:17 -08:00
Alon Zakai
b4de632f3f Add 'latest-fastcomp' sdk (#200)
* add a 'fastcomp' sdk, which provides fastcomp from the waterfall

* fix

* fix

* fix?

* fix

* fix

* fix

* logging

* fix?

* cleanup
2019-01-08 12:37:39 +02:00
juj
43576c3f60 Merge pull request #201 from kripken/update
Commit update-tags results
2019-01-08 12:36:23 +02:00
Alon Zakai (kripken)
028d7c09ab commit update-tags results 2019-01-06 09:21:40 -08:00
juj
df648b4382 Merge pull request #199 from juj/fix-warning
Avoid a Docker warning on an unused build arg
2018-12-21 11:45:05 +02:00
Alon Zakai
c9005824cf avoid a travis warning on an unused build arg 2018-12-20 11:35:21 -08:00
Alon Zakai
889c1516fb Enable "emsdk [install|activate] latest-upstream" (#195)
This makes it possible to tell the emsdk to get "latest-upstream", which fetches the latest lkgr from there. This will probably be a common use pattern, I expect we may want to recommend users start trying out the wasm backend that way soon. This will also let us simplify this code: https://github.com/kripken/emscripten/blob/incoming/.circleci/config.yml#L334

Aside from adding the "latest-upstream" alias, this PR has

* A few minor cleanups in the emsdk code.
( Minor restructuring of how we define the upstream stuff in the manifest: It seemed odd to have 3 things (clang, emscripten, binaryen) that are all coming from a single archive from the waterfall. Simpler to have just one - the archive is one big lump, there's no way to download just part of it.
* Also add node 8.9.1 as a dependency of the upstream sdk, which makes things usable out of the box (node.js is the one thing not provided by the waterfall archive).
2018-12-20 09:58:37 -08:00
Jukka Jylänki
7a0e27441e Fix vswhere search for msbuild on Python 3, and demote pywin32 as optional when only enabling emsdk for current command prompt instance. Fixes #177 2018-10-23 14:52:40 +03:00
Jukka Jylänki
0d8576c0e8 Micro-cleanup TTY_OUTPUT global declaration 2018-08-19 16:39:58 +03:00
juj
d8066153ea Merge pull request #168 from sbc100/tty_option
Add --notty to force non-erasing progress bar
2018-08-19 16:31:04 +03:00
Sam Clegg
8b168a47ca Add --notty to force non-erasing progress bar
This is useful in CI environments that claim to be TTYs but
really don't have escape characters such as \r correctly.
2018-08-16 14:14:58 -07:00
juj
857f418f9f Merge pull request #164 from jgravelle-google/waterfall_lkgr
Add upstream waterfall tools and sdk
2018-07-25 19:10:34 +03:00
Jacob Gravelle
e7a7828def Move waterfall-lkgr sdk to not be chosen by 'install latest' 2018-07-23 13:52:14 -07:00
juj
97564e0bbf Merge pull request #165 from juj/llvm_root
LLVM_ROOT
2018-07-22 17:56:06 +03:00
Jukka Jylänki
23dba8d27b Remove redundant checking for hasattr(self, 'activated_env') since activated_environment() function already does that. Also change activated_environment() to return a pre-split list instead of a string that caller is expected to split. 2018-07-20 10:02:55 +03:00
Jukka Jylänki
df9957f0dc Also add EMSCRIPTEN_NATIVE_OPTIMIZER environment variable. 2018-07-19 12:37:34 +03:00
Jukka Jylänki
c0e0f2ddd7 Also add EMSDK_NODE environment variable. 2018-07-19 12:30:50 +03:00
Jukka Jylänki
f4f4dbdbf7 Also add EMSDK_PYTHON environment variable to point to the python.exe interpreter that is activated with Emsdk. 2018-07-19 12:27:24 +03:00
Jukka Jylänki
17f50b0e95 Add LLVM_ROOT environment variable when a Clang tool is activated. 2018-07-19 12:19:20 +03:00
Jukka Jylänki
cac082054a Add support for multiple environment items to be present in activated_env, separated by semicolon ;. 2018-07-19 12:19:20 +03:00
Jacob Gravelle
f221912051 Move upstream- prefix from tool id to version 2018-07-18 09:42:25 -07:00
Jacob Gravelle
c475b565ad Add upstream waterfall tools and sdk 2018-07-18 09:27:20 -07:00
juj
18b21ddad6 Merge pull request #156 from juj/no-binaryen.js
binaryen.js is no longer bundled in binaryen
2018-07-06 11:16:21 +03:00
Alon Zakai (kripken)
ff627992cb binaryen.js is no longer bundled in binaryen, and emscripten doesn't need it anyhow (it's for handwritten js users) 2018-07-05 15:09:29 -07:00
Jukka Jylänki
4c8ac8755d Update tags list to latest. 2018-07-05 16:27:06 +03:00
Alon Zakai
5ea31e96a9 Travis CI (#155)
* try using travis

* comments

* docker

* fix

* fix
2018-07-05 16:21:47 +03:00
Jacob Gravelle
8512c60588 There is no binaryen-incoming, point incoming sdks at binaryen-master (#150) 2018-06-22 09:38:41 -07:00