-
Notifications
You must be signed in to change notification settings - Fork 101
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
Make wee-alloc an optional feature. #38
Conversation
730fea0
to
0e75333
Compare
@PiotrSikora given that I didn't really touched any code, how do you want to handle the failed outdated check? |
Please ignore it. Those dependencies that were outdated before. I'll fix it shortly. |
FWIW I think that we should merge this or something like it. I actually wish that the library didn't bring in wee-alloc at all. I don't think that it's the business of a library to set the global allocator on any platform, and WASM targets work just fine without it. The only downside is a few tens of K of generated code, which in any module I've written for Envoy is dwarfed by all the other stuff. Projects that want to shrink the size of their WASM can always include it themselves. |
i will give it a try; but not an expert on bazel machinery. will update soon |
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
f17220d
to
a9dd4b0
Compare
@PiotrSikora I added the feature to the rust side, but I'm not sure how to do it on the bazel side.. do you happen to know that off the top of your head? if not i'll have to dig in to the bazel rust rules... i.e. i need to set the dependencies to rust_library conditionally, which i'm not sure how to do |
src/lib.rs
Outdated
@@ -16,6 +16,7 @@ pub mod hostcalls; | |||
pub mod traits; | |||
pub mod types; | |||
|
|||
#[cfg(feature = "wee-alloc")] | |||
mod allocator; |
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.
You need to move this to src/allocator.rs
and guard only #[global_allocator]
. Having this guard here removes malloc()
export.
Cargo.toml
Outdated
wee_alloc = { version = "0.4", optional = true } | ||
|
||
[features] | ||
wee-alloc = ["wee_alloc"] |
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.
Could you move [features]
before [dependencies]
?
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.
Hmm... It looks that one of my responses got lost.
You need to regenerate BUILD
files to match updated Cargo.toml
:
cargo install cargo-raze --version 0.3.8
rm -rf bazel/cargo/
cargo generate-lockfile
cargo raze --output=bazel/cargo
mv Cargo.lock bazel/cargo/
Regarding Bazel, I couldn't find a way to make cargo-raze
support features in the primary crate, but I think that we can skip wee_alloc
there for now.
Once #45 is merged, you should merge/rebase to fix outdated check. Sorry for the delay! |
sounds good; will also add the raze comment to the readme |
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
just tested this;
To fix this I added |
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
it's both; wee_alloc (when doesn't target wasm) brings in |
yes, that works! |
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
7820978
to
0e02e12
Compare
One more thing, could you please add |
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
README.md
Outdated
|
||
# Updating dependencies | ||
|
||
When updating dependencies, You need to regenerate `BUILD` files to match updated `Cargo.toml`: |
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.
Nit: s/You/you/
.github/workflows/rust.yml
Outdated
- name: Clippy (wasm32-wasi) | ||
env: | ||
RUSTFLAGS: -D warnings -C link-args=-S | ||
run: cargo clippy --release --all-targets --target=wasm32-wasi | ||
|
||
- name: Clippy (wasm32-wasi with wee-alloc)) |
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.
Nit: ))
-> )
.github/workflows/rust.yml
Outdated
- name: Clippy (wasm32-wasi) | ||
env: | ||
RUSTFLAGS: -D warnings -C link-args=-S | ||
run: cargo clippy --release --all-targets --target=wasm32-wasi | ||
|
||
- name: Clippy (wasm32-wasi with wee-alloc)) |
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.
Nit: ))
-> )
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
Thanks! |
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com>
* Use Rust toolchains with working components. (#16) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Split licenses check into a separate test target. (#17) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Help other developers get started using this SDK. (#15) Signed-off-by: DazWilkin <daz.wilkin@gmail.com> * Add Bazel support. (#18) Signed-off-by: Shikugawa <Shikugawa@gmail.com> Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for setting HTTP bodies. (#2) Signed-off-by: Gregory Brail <gregbrail@google.com> * Release v0.1.1. (#20) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update MapType values to match updated Proxy-Wasm ABI v0.1.0. (#7) Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io> * Release v0.1.2. (#21) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update hashbrown to v0.8.2. (#22) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add cargo audit and cargo outdated checks. (#23) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update chrono to v0.4.15. (proxy-wasm#33) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Move optional checks to the end. (proxy-wasm#28) While there, align style with the test framework. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Move Bazel to //bazel. (proxy-wasm#29) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Fix HTTP body example. (proxy-wasm#32) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for setting network buffers. (proxy-wasm#31) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add metrics. (proxy-wasm#30) Fixes #4. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update hashbrown and transitive dependencies. (proxy-wasm#45) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Allow building for wasm32-wasi target. (proxy-wasm#42) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Make wee-alloc an optional feature. (proxy-wasm#38) Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com> * Update rules_rust to latest. (proxy-wasm#46) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update cargo-raze to latest and regenerate artifacts. (proxy-wasm#47) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Allow building for wasm32-wasi target using Bazel. (proxy-wasm#50) While there, update Bazel to 3.7.0. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Show getrandom and chrono/time usage in examples. (proxy-wasm#51) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Use cargo-raze's gen_buildrs for trusted crates. (proxy-wasm#53) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for nested HTTP callouts. (proxy-wasm#56) Signed-off-by: Svetlin Zarev <svetlin.zarev@sap.com> * Allow RootContext to create child contexts for streams. (proxy-wasm#34) Fixes #6. Signed-off-by: Daniel Grimm <dgrimm@redhat.com> * Fix warnings from Clippy v1.50.0 (nightly). (proxy-wasm#58) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Release v0.1.3. (proxy-wasm#59) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup instructions for updating dependencies. (proxy-wasm#60) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup WORKSPACE. (proxy-wasm#61) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup examples. (proxy-wasm#62) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update libc (transitive dependency) to v0.2.81. (proxy-wasm#63) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update the declared ABI version to 0.2.0 Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Update the examples so that they use the latest API Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Remove ChildContext for now, which is not used anymore Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Bump the version to 0.0.8 Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix bazel build for the fork's crate Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix clippy erros in bytestring.rs Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Update dependencies Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix Cargo.toml Signed-off-by: Takaya Saeki <takaya@tetrate.io> * outdated should check only root deps Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix inconsistent derived traits Signed-off-by: Takaya Saeki <takaya@tetrate.io> Co-authored-by: Piotr Sikora <piotrsikora@google.com> Co-authored-by: Daz Wilkin <DazWilkin@users.noreply.github.com> Co-authored-by: Greg Brail <gbrail@users.noreply.github.com> Co-authored-by: Yaroslav Skopets <y.skopets@gmail.com> Co-authored-by: Yuval Kohavi <yuval.kohavi@gmail.com> Co-authored-by: SvetlinZarev-SAP <43135961+SvetlinZarev-SAP@users.noreply.github.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com>
* Use Rust toolchains with working components. (#16) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Split licenses check into a separate test target. (#17) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Help other developers get started using this SDK. (#15) Signed-off-by: DazWilkin <daz.wilkin@gmail.com> * Add Bazel support. (#18) Signed-off-by: Shikugawa <Shikugawa@gmail.com> Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for setting HTTP bodies. (#2) Signed-off-by: Gregory Brail <gregbrail@google.com> * Release v0.1.1. (#20) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update MapType values to match updated Proxy-Wasm ABI v0.1.0. (#7) Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io> * Release v0.1.2. (#21) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update hashbrown to v0.8.2. (#22) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add cargo audit and cargo outdated checks. (#23) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update chrono to v0.4.15. (proxy-wasm#33) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Move optional checks to the end. (proxy-wasm#28) While there, align style with the test framework. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Move Bazel to //bazel. (proxy-wasm#29) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Fix HTTP body example. (proxy-wasm#32) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for setting network buffers. (proxy-wasm#31) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add metrics. (proxy-wasm#30) Fixes #4. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update hashbrown and transitive dependencies. (proxy-wasm#45) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Allow building for wasm32-wasi target. (proxy-wasm#42) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Make wee-alloc an optional feature. (proxy-wasm#38) Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com> * Update rules_rust to latest. (proxy-wasm#46) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update cargo-raze to latest and regenerate artifacts. (proxy-wasm#47) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Allow building for wasm32-wasi target using Bazel. (proxy-wasm#50) While there, update Bazel to 3.7.0. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Show getrandom and chrono/time usage in examples. (proxy-wasm#51) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Use cargo-raze's gen_buildrs for trusted crates. (proxy-wasm#53) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for nested HTTP callouts. (proxy-wasm#56) Signed-off-by: Svetlin Zarev <svetlin.zarev@sap.com> * Allow RootContext to create child contexts for streams. (proxy-wasm#34) Fixes #6. Signed-off-by: Daniel Grimm <dgrimm@redhat.com> * Fix warnings from Clippy v1.50.0 (nightly). (proxy-wasm#58) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Release v0.1.3. (proxy-wasm#59) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup instructions for updating dependencies. (proxy-wasm#60) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup WORKSPACE. (proxy-wasm#61) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup examples. (proxy-wasm#62) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update libc (transitive dependency) to v0.2.81. (proxy-wasm#63) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update the declared ABI version to 0.2.0 Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Update the examples so that they use the latest API Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Remove ChildContext for now, which is not used anymore Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Bump the version to 0.0.8 Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix bazel build for the fork's crate Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix clippy erros in bytestring.rs Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Update dependencies Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix Cargo.toml Signed-off-by: Takaya Saeki <takaya@tetrate.io> * outdated should check only root deps Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix inconsistent derived traits Signed-off-by: Takaya Saeki <takaya@tetrate.io> Co-authored-by: Piotr Sikora <piotrsikora@google.com> Co-authored-by: Daz Wilkin <DazWilkin@users.noreply.github.com> Co-authored-by: Greg Brail <gbrail@users.noreply.github.com> Co-authored-by: Yaroslav Skopets <y.skopets@gmail.com> Co-authored-by: Yuval Kohavi <yuval.kohavi@gmail.com> Co-authored-by: SvetlinZarev-SAP <43135961+SvetlinZarev-SAP@users.noreply.github.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com>
…opets#19) * Use Rust toolchains with working components. (yskopets#16) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Split licenses check into a separate test target. (yskopets#17) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Help other developers get started using this SDK. (yskopets#15) Signed-off-by: DazWilkin <daz.wilkin@gmail.com> * Add Bazel support. (yskopets#18) Signed-off-by: Shikugawa <Shikugawa@gmail.com> Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for setting HTTP bodies. (yskopets#2) Signed-off-by: Gregory Brail <gregbrail@google.com> * Release v0.1.1. (yskopets#20) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update MapType values to match updated Proxy-Wasm ABI v0.1.0. (yskopets#7) Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io> * Release v0.1.2. (yskopets#21) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update hashbrown to v0.8.2. (yskopets#22) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add cargo audit and cargo outdated checks. (yskopets#23) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update chrono to v0.4.15. (proxy-wasm#33) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Move optional checks to the end. (proxy-wasm#28) While there, align style with the test framework. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Move Bazel to //bazel. (proxy-wasm#29) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Fix HTTP body example. (proxy-wasm#32) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for setting network buffers. (proxy-wasm#31) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add metrics. (proxy-wasm#30) Fixes yskopets#4. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update hashbrown and transitive dependencies. (proxy-wasm#45) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Allow building for wasm32-wasi target. (proxy-wasm#42) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Make wee-alloc an optional feature. (proxy-wasm#38) Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com> * Update rules_rust to latest. (proxy-wasm#46) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update cargo-raze to latest and regenerate artifacts. (proxy-wasm#47) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Allow building for wasm32-wasi target using Bazel. (proxy-wasm#50) While there, update Bazel to 3.7.0. Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Show getrandom and chrono/time usage in examples. (proxy-wasm#51) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Use cargo-raze's gen_buildrs for trusted crates. (proxy-wasm#53) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Add support for nested HTTP callouts. (proxy-wasm#56) Signed-off-by: Svetlin Zarev <svetlin.zarev@sap.com> * Allow RootContext to create child contexts for streams. (proxy-wasm#34) Fixes yskopets#6. Signed-off-by: Daniel Grimm <dgrimm@redhat.com> * Fix warnings from Clippy v1.50.0 (nightly). (proxy-wasm#58) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Release v0.1.3. (proxy-wasm#59) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup instructions for updating dependencies. (proxy-wasm#60) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup WORKSPACE. (proxy-wasm#61) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Cleanup examples. (proxy-wasm#62) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update libc (transitive dependency) to v0.2.81. (proxy-wasm#63) Signed-off-by: Piotr Sikora <piotrsikora@google.com> * Update the declared ABI version to 0.2.0 Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Update the examples so that they use the latest API Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Remove ChildContext for now, which is not used anymore Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Bump the version to 0.0.8 Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix bazel build for the fork's crate Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix clippy erros in bytestring.rs Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Update dependencies Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix Cargo.toml Signed-off-by: Takaya Saeki <takaya@tetrate.io> * outdated should check only root deps Signed-off-by: Takaya Saeki <takaya@tetrate.io> * Fix inconsistent derived traits Signed-off-by: Takaya Saeki <takaya@tetrate.io> Co-authored-by: Piotr Sikora <piotrsikora@google.com> Co-authored-by: Daz Wilkin <DazWilkin@users.noreply.github.com> Co-authored-by: Greg Brail <gbrail@users.noreply.github.com> Co-authored-by: Yaroslav Skopets <y.skopets@gmail.com> Co-authored-by: Yuval Kohavi <yuval.kohavi@gmail.com> Co-authored-by: SvetlinZarev-SAP <43135961+SvetlinZarev-SAP@users.noreply.github.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com>
Allow building for non-wasm arch by only depending on wee allocator if we are compiling to wasm32.
Compiling to native has the advantages of being able easily write and run unit tests in dependent projects.
I did test this manually to work, but I am by no means a bazel expert.