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

waffle: initial Bytecode Alliance-hosted version. #1

Merged
merged 382 commits into from
Sep 12, 2024
Merged

Conversation

cfallin
Copy link
Member

@cfallin cfallin commented Sep 5, 2024

This PR imports the entire commit history of waffle (almost three years of it!) into the bytecodealliance/waffle repository1.

A small amount of the code this includes has already been reviewed in PRs in my initial repo (cfallin/waffle), but most has not. Let's fix that!

Footnotes

  1. technical note: I wanted to keep the full commit history (including a few contributions from others I've gotten in the past). GitHub by default doesn't allow a PR to suggest replacing the main branch with an unrelated commit, though, and rebasing everything on top of Nick's "empty" initial commit created with this repo was proving challenging with nonlinear history. The best methodology I was able to come with was to create a final merge-commit between my repo's head and this empty initial-commit; thus the history has two roots, but GitHub is happy to see the trees are "related".

Support irreducible control flow by converting it to reducible control flow.
This avoids crashing on very long function bodies.
…mmand.

"Every Wasm compiler library contains an incomplete, bug-ridden
implementation of half of wasip1", the saying goes. (Or was that about
Lisp implementations?) Let's remove the very hacky implementation
here: it was only useful to debug waffle during bringup but shouldn't
really exist as a user-facing functionality at this point.
This was useful to help debugging at one point, especially
differential comparison of before- and after-transform function
bodies, but it's an awkward way of doing it (with a new kind of value
definition in the IR) and is largely unused at this point, so let's
remove it.
@cfallin
Copy link
Member Author

cfallin commented Sep 5, 2024

For the record: once this is reviewed and merged, my plan is to make another release right away, so the "pipeline is flushed" and all published artifacts come from the new official repo.

Copy link
Member

@sunfishcode sunfishcode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this looks great!

src/interp.rs Outdated Show resolved Hide resolved
src/interp.rs Outdated Show resolved Hide resolved
src/backend/mod.rs Show resolved Hide resolved
src/scoped_map.rs Outdated Show resolved Hide resolved
wasm_tests/non-nullable-funcrefs.wat Outdated Show resolved Hide resolved
@cfallin
Copy link
Member Author

cfallin commented Sep 12, 2024

Thanks for the review/feedback; updated!

Copy link
Member

@sunfishcode sunfishcode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@cfallin cfallin merged commit ff2c818 into main Sep 12, 2024
3 checks passed
@cfallin cfallin deleted the cfallin/initial branch September 12, 2024 15:46
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