Update SmartString to work for no-std.

This commit is contained in:
Stephen Chung 2021-07-01 18:44:01 +08:00
parent 3e0fd33db4
commit f3541bae19
4 changed files with 5 additions and 18 deletions

View File

@ -12,6 +12,7 @@ Bug fixes
--------- ---------
* Fixed infinite loop in certain script optimizations. * Fixed infinite loop in certain script optimizations.
* Building for `no-std` no longer requires patching `smartstring`.
Breaking changes Breaking changes
---------------- ----------------

View File

@ -19,11 +19,11 @@ categories = ["no-std", "embedded", "wasm", "parser-implementations"]
smallvec = { version = "1.6", default-features = false, features = ["union"] } smallvec = { version = "1.6", default-features = false, features = ["union"] }
ahash = { version = "0.7", default-features = false } ahash = { version = "0.7", default-features = false }
num-traits = { version = "0.2", default-features = false } num-traits = { version = "0.2", default-features = false }
smartstring = { version = "0.2.6", default-features = false } smartstring = { version = "0.2.7", default-features = false }
rhai_codegen = { version = ">=0.4.0", path = "codegen", default-features = false } rhai_codegen = { version = ">=0.4.0", path = "codegen", default-features = false }
[features] [features]
default = ["smartstring/std", "ahash/std", "num-traits/std"] # remove 'smartstring/std' when smartstring is updated to support no-std default = ["ahash/std", "num-traits/std", "smartstring/std"]
unchecked = [] # unchecked arithmetic unchecked = [] # unchecked arithmetic
sync = [] # restrict to only types that implement Send + Sync sync = [] # restrict to only types that implement Send + Sync
no_position = [] # do not track position in the parser no_position = [] # do not track position in the parser

View File

@ -23,20 +23,6 @@ opt-level = "z" # optimize for size
debug = false debug = false
rpath = false rpath = false
debug-assertions = false debug-assertions = false
codegen-units = 1
panic = "abort" panic = "abort"
codegen-units = 1
[profile.unix]
inherits = "release"
lto = true lto = true
[profile.windows]
inherits = "release"
[profile.macos]
inherits = "release"
lto = "fat"
[patch.crates-io]
# Patch smartstring wth a PR fix because it doesn't properly handle no-std builds.
smartstring = { git = "https://github.com/rhaiscript/smartstring" }

View File

@ -12,7 +12,7 @@ To Compile
The nightly compiler is required: The nightly compiler is required:
```bash ```bash
cargo +nightly build --release --profile unix -Z unstable-features cargo +nightly build --release
``` ```
Available profiles are: `unix`, `windows` and `macos`. Available profiles are: `unix`, `windows` and `macos`.