Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR uses WebAssembly commands rather than TypeScript ones. It follows on from the experiment in jupyterlite/terminal#15 by moving the WASM modules from there to here. There are 2 WASM modules,
fs.js
contains the Emscripten filesystem used by the commands and a single instance exists for the duration of the shell, andcoreutils.js
contains many commands. The latter is reused for each command run and the filesystem fromfs.js
is patched in as aPROXYFS
so that all commands see the same filesystem. There is no use of a JupyterLiteDriveFS
here, that is kept in theterminal
extension as it can only be used with a running instance of JupyterLite and here we want to be able to test the commands just using the basic WASM filesystem. There are also some builtin commands (currently onlycd
) that access the Emscripten filesystem directly.The idea here is to merge this and release version 0.0.4 of
@jupyterlite/cockle
, then jupyterlite/terminal#15 can be rewritten to use this. After that we can do some fast iterations ofcockle
without having to changeterminal
, to try to get this into a fully working system.