Skip to content
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

Enhancements in support of the WASI terminal in a browser #2887

Closed
wants to merge 21 commits into from

Conversation

john-sharratt
Copy link
Contributor

@john-sharratt john-sharratt commented May 14, 2022

Enhancements in support of the WASI terminal in a browser

  • Split functionality out of WasiEnv so that it can support multi-threading
  • Added methods to the VFS File Trait that supporting polling
  • Implemented basic time functionality for WASI
  • Incorported a yield callback for when WASI processes idle
  • Improved the error handling on WASI IO calls
  • Reduce the verbose logging on some critical WASI calls (write/read)
  • Implemented the missing poll functionality for WASI processes
  • Moved the syspoll functionality behind a feature flag to default to WASI method
  • Refactored the thread sleeping functionality for WASI processes
  • Fixed the files system benchmark which was not compiling
  • Modified the file system trait so that it is SYNC and thus can handle multiple threads
  • Removed the large mutex around filesystem state and implemented granular locks instead
    (this is needed to fix a deadlock scenario on the terminal)
  • Split the inodes object apart from the state to fix the deadlock scenario.
  • Few minor fixes to some warnings when not using certain features
  • Sleeping will now call a callback that can be used by the runtime operator when a WASI thread goes to sleep (for instance to do other work)
  • Fixed a bug where paths that exist on the real file system are leaking into VFS
  • Timing functions now properly return a time precision on WASI
  • Some improved macros for error handling within syscalls (wasi_try_ok!)
  • Refactored the remove_directory WASI function which was not working properly
  • Refactored the unlink WASI function which was not working properly
  • Refactored the poll WASI function which was not working properly
  • Updates some of the tests to make them compile again
  • Rewrote the OutputCapturer so that it does leak into the internals

@john-sharratt john-sharratt changed the title Wasmer3 works Enhancements in support of the WASI terminal in a browser May 14, 2022
@john-sharratt john-sharratt force-pushed the wasmer3-works branch 4 times, most recently from f58fb0b to 891b1c7 Compare May 14, 2022 16:03
…wser

- Split functionality out of WasiEnv so that it can support multi-threading
- Added methods to the VFS File Trait that supporting polling
- Implemented basic time functionality for WASI
- Incorported a yield callback for when WASI processes idle
- Improved the error handling on WASI IO calls
- Reduce the verbose logging on some critical WASI calls (write/read)
- Implemented the missing poll functionality for WASI processes
- Moved the syspoll functionality behind a feature flag to default to WASI method
- Refactored the thread sleeping functionality for WASI processes
- Fixed the files system benchmark which was not compiling
- Modified the file system trait so that it is SYNC and thus can handle multiple threads
- Removed the large mutex around filesystem state and implemented granular locks instead
  (this is needed to fix a deadlock scenario on the terminal)
- Split the inodes object apart from the state to fix the deadlock scenario.
- Few minor fixes to some warnings when not using certain features
- Sleeping will now call a callback that can be used by the runtime operator when
  a WASI thread goes to sleep (for instance to do other work)
- Fixed a bug where paths that exist on the real file system are leaking into VFS
- Timing functions now properly return a time precision on WASI
- Some improved macros for error handling within syscalls (wasi_try_ok!)
- Refactored the remove_directory WASI function which was not working properly
- Refactored the unlink WASI function which was not working properly
- Refactored the poll WASI function which was not working properly
- Updates some of the tests to make them compile again
- Rewrote the OutputCapturer so that it does leak into the internals
@john-sharratt john-sharratt marked this pull request as ready for review May 14, 2022 17:29
@syrusakbary syrusakbary added this to the v3.0 milestone Jun 1, 2022
@epilys epilys self-assigned this Jun 1, 2022
@epilys epilys self-requested a review June 1, 2022 08:00
@bors bors bot deleted the branch wasmerio:master June 8, 2022 11:27
@bors bors bot closed this Jun 8, 2022
@epilys
Copy link
Contributor

epilys commented Jun 8, 2022

Closed unintentionally.

@epilys epilys reopened this Jun 8, 2022
@syrusakbary syrusakbary changed the base branch from wasmer3 to master June 8, 2022 11:36
@syrusakbary
Copy link
Member

Closing this PR as it got superseded by #2941 which already got merged in master.

@john-sharratt john-sharratt deleted the wasmer3-works branch July 20, 2022 04:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants