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

Use no_std by default #173

Merged
merged 1 commit into from Oct 29, 2019
Merged

Use no_std by default #173

merged 1 commit into from Oct 29, 2019

Conversation

@mbrubeck
Copy link
Contributor

mbrubeck commented Oct 29, 2019

Since alloc became stable, the std feature is only needed to enable impl Write for SmallVec, which most users of this crate do not need. This patch replaces the enabled-by-default std feature with a disabled-by-default write feature. This decreases the chance that users of this crate will accidentally depend on libstd when they don't need it.

The `std` feature is only needed to enable `impl Write for SmallVec`,
which most users of this crate do not need.  This patch replaces the
enabled-by-default `std` feature with a disabled-by-default `write`
feature.  This decreases the chance that users of this crate will
accidentally depend on libstd when they don't need it.
@mbrubeck mbrubeck requested a review from emilio Oct 29, 2019
@mbrubeck
Copy link
Contributor Author

mbrubeck commented Oct 29, 2019

r? @emilio

@emilio
emilio approved these changes Oct 29, 2019
Copy link
Member

emilio left a comment

Looks good!

@emilio
Copy link
Member

emilio commented Oct 29, 2019

@bors-servo
Copy link
Contributor

bors-servo commented Oct 29, 2019

📌 Commit fffb185 has been approved by emilio

@bors-servo
Copy link
Contributor

bors-servo commented Oct 29, 2019

Testing commit fffb185 with merge b2c9c65...

bors-servo added a commit that referenced this pull request Oct 29, 2019
Use no_std by default

Since `alloc` became stable, the `std` feature is only needed to enable `impl Write for SmallVec`, which most users of this crate do not need.  This patch replaces the enabled-by-default `std` feature with a disabled-by-default `write` feature.  This decreases the chance that users of this crate will accidentally depend on libstd when they don't need it.
@bors-servo
Copy link
Contributor

bors-servo commented Oct 29, 2019

☀️ Test successful - checks-travis
Approved by: emilio
Pushing b2c9c65 to master...

@bors-servo bors-servo merged commit fffb185 into servo:master Oct 29, 2019
2 checks passed
2 checks passed
Travis CI - Pull Request Build Passed
Details
homu Test successful
Details
mbrubeck added a commit to mbrubeck/rust-smallvec that referenced this pull request Oct 30, 2019
* [breaking change] Use `MaybeUninit` internally to avoid possible undefined behavior (servo#162, servo#170).
* [breaking change] The `drain` method now takes a range argument, just like the standard `Vec::drain` (servo#145).
* [breaking change] Remove the `unreachable` function and replace it with the new standard `unreachable_unchecked` function (servo#164).
* [breaking change] Use `no_std` by default. This crate depends only on `core` and `alloc` by default. If the optional `write` feature is enabled then it depends on `std` so that `SmallVec<[u8, _]>` can implement the `std::io::Write` trait (servo#173).
* Add support for 96-element small vectors, `SmallVec<[T; 96]>` (servo#163).
* Iterators now implement `FusedIterator` (servo#172).
* Indexing now uses the standard `SliceIndex` trait (servo#166).
* Remove the deprecated `VecLike` trait (servo#165).
* Use `NonNull` internally (servo#171).
* Add automatic fuzz testing and MIRI testing (servo#168, servo#162).
* Update syntax and formatting to Rust 2018 standard (servo#174, servo#167).
@mbrubeck mbrubeck mentioned this pull request Oct 30, 2019
bors-servo added a commit that referenced this pull request Nov 2, 2019
Version 1.0.0

* Requires Rust 1.36 or later.
* [breaking change] Use `MaybeUninit` to avoid possible undefined behavior (#162, #170).
* [breaking change] The `drain` method now takes a range argument, just like the standard `Vec::drain` (#145).
* [breaking change] Remove the `unreachable` function and replace it with the new standard `unreachable_unchecked` function (#164).
* [breaking change] Use `no_std` by default. This crate depends only on `core` and `alloc` by default. If the optional `write` feature is enabled then it depends on `std` so that `SmallVec<[u8;_]>` can implement the `std::io::Write` trait (#173).
* Add support for 96-element small vectors, `SmallVec<[T; 96]>` (#163).
* Iterators now implement `FusedIterator` (#172).
* Indexing now uses the standard `SliceIndex` trait (#166).
* Remove the deprecated `VecLike` trait (#165).
* Use `NonNull` internally (#171).
* Add automatic fuzz testing and MIRI testing (#168, #162).
* Update syntax and formatting to Rust 2018 standard (#174, #167).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.