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

Add CI built on GitHub Actions #20

Closed
wants to merge 18 commits into from
Closed

Conversation

geky
Copy link
Collaborator

@geky geky commented Aug 19, 2020

Note: This depends on #19, but it can be disentangled if needed. See 51dc1d1...geky:testing-squished to see what's changed.

This PR adds support for CI built on GitHub Actions. I will tinker with it to make sure its working, but it may just automatically run. It should take any commits/PRs against this repo, build them against both wasmception and wasi-sdk, and push the resulting benchmarks.csv as a "artifact" to the workflow. I will aadd a comment once its working.

There's a small TODO list:

  1. Host a precompiled wasmception binary somewhere. Currently I have the wasmception binary as a release on my repo here. You should just be able to download the wasmception-0.1.tar.gz and reupload to the repo you want to host from. Should this be Others/wasmception or gwsystems repo?

    Once hosting in a correct place I can update this PR to point there instead of my own repo.

  2. Make sure GitHub actions is enabled on gwsystems/awsm. Just need to see what's needed here. This PR may just work without GitHub-side config, or it may not.

Anyways I just wanted to get this PR up for feedback, it should hopefully help build confidence on PRs to here.

geky added 18 commits August 8, 2020 19:25
These simply call the externally linked instruction_memory_grow and
instruction_memory_size functions in the runtime.

Once connected, these runtime functions can use the existing expand_memory
logic that is specific to each runtime-memory implementation.
Note this is only needed when incrementally compiling, which we don't do
because of LTO.
- Removed wasmception integration for now
- Consistent readv/writev implementation
- Changed some magic numbers to enums
- Added predeclaration of (get|set)_(i8|16|32|64|f32|f64) stubs
- Consistent offset type in get/set stubs
- Moved env_(sin|cos) to runtime/libc/env.c
These aren't needed to pass code_benches, but may be used depending on
what functions the wasm binary uses (unlink -> wasi_unstable_path_unlink_file
for example).

Note this the WASI API backing is still not exhaustive.
These were emitted by wasi-sdk-8.0.
And some cleanup around wasm-libc selection
Currently:
- code_benches/run.py --polybench
- code_benches/run.py --app
- code_benches/run.py --custom
The memory instruction implementation is just a thing wrapper around
the memory_size/memory_expand API in aWsm.
@geky
Copy link
Collaborator Author

geky commented Aug 19, 2020

Should resolve #17

@geky
Copy link
Collaborator Author

geky commented Aug 19, 2020

@geky geky mentioned this pull request Aug 19, 2020
@geky geky linked an issue Aug 19, 2020 that may be closed by this pull request
@Others
Copy link
Contributor

Others commented Feb 19, 2021

Consider this approved by me, as soon as everything under it is merged

@Others
Copy link
Contributor

Others commented Mar 3, 2021

Ready to be merged after #19

@bushidocodes
Copy link
Contributor

@geky - I cut a release from the head of the sfbase branch of wasmception of gwsystems, so a tarball is here: https://github.com/gwsystems/wasmception/releases/tag/v0.2.0. Can you please use that and rebase with master? Assuming things rebase cleanly, I suspect that this one should be ready to merge. If you're swamped, I can grab the diff you posted earlier and create a fresh PR. Let me know either way!

bushidocodes added a commit that referenced this pull request Mar 26, 2021
@bushidocodes
Copy link
Contributor

FYI: I cherry picked the diff you linked above into #27 so I can try to bang this out.

bushidocodes added a commit that referenced this pull request Mar 26, 2021
* chore: Cherry pick @geky diff from #20

* chore: check path

* chore: try to cap cargo build jobs

* chore: Remove -Ztime-passes

* chore: additional ls

* chore: remove ls

* chore: try only wasmceptoin

* chore: remove strip components

* chore: rerun with wask-sdk

* chore: remove cargo build cap
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.

Add Continuous Integration
3 participants