-
-
Notifications
You must be signed in to change notification settings - Fork 27
Add Emscripten build to buildRelease workflow #489
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
Conversation
I'd like to see the medley side file packaging before I review this because it will all need to fit together. |
I've written a script to build the file system, and what I'd suggest for this is that we not worry about creating a separate target emscripten-wasm_nl, and just replace emscripten-wasm. Do remove the --preload-file entries, and we should add -sLZ4 in the LDFLAGS so that we can check if packaging the file system with --lz4 gets better performance than not. We can still gzip an lz4 compressed file for about a 30% decrease in transmission size.
and having the lde.html include the sysoutfs.js and medleyfs.js files before ldesdl.js. |
@nbriggs You can see what I've done so far on the Medley side in the branch fgh_emscripten-01. The work is in installers/emscripten. Two files: em_build.sh and medley.html. embuild.sh is the file packager and release builder. It is designed to be called either locally or from a github action. medley.html is a revised version of lde.html.
|
Oh and
|
On the medley side, on the machine on which I have emscripten installed from standard packages, which is a FreeBSD 14.0 system:
Here, |
@nbriggs New commit on Medley side in fgh_emscripten-01 branch.
The calls to find (used to find lcoms and dfasls) are pretty vanilla but are not 100% posix (since posix find is kind of sparse). But I did check the freebsd find man page and I'm pretty confident that the finds will work ok for you.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good. I made everything and installed on my FreeBSD/nginx setup, gzipped every file and it was still happy. Having looked at it in the non-source case, the only thing I think I'd change is putting the (TEdit/text) documentation files in the compiled files package. Longer term it might be worth considering the lazy file loading option, so we'd transmit all the file names and only get the contents, on a per-file basis, if you actually open them - but that looks a bit complicated to set up.
This PR implements the automated builds for Emscripten maiko as part of the buildRelease workflow. The result is a maiko...emscripten.tgz file added to the release assets.
Note that this PR adds a new makeright target called wasm_nl (for wasm_nl) that just compiles the lde code to wasm without adding any preloaded files. The result is just two release files ldesdl.wasm and ldesdl.js.
The idea is that the Medley file system "preload" will be created in the Medley buildRelease workflow using the emscripten file packager. In the Medley repo there will also be a modified lde.html (probably called medley.html) that loads the separately package files appropriately (also allows choice of full.sysout or apps.sysout).
This scheme ensures that the Maiko automated builds don't depend on Medley automated builds - avoiding circular dependencies since Medley builds already depend on Maiko builds.