Skip to content

Commit

Permalink
Rename override-json-parse-and-stringify to simd-json-builtins
Browse files Browse the repository at this point in the history
  • Loading branch information
saulecabrera committed Sep 10, 2024
1 parent 7a2831f commit d886338
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 41 deletions.
26 changes: 9 additions & 17 deletions crates/cli/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ impl TryFrom<Vec<GroupOption<CodegenOption>>> for CodegenOptionGroup {
pub struct JsOptionGroup {
pub redirect_stdout_to_stderr: bool,
pub javy_json: bool,
pub override_json_parse_and_stringify: bool,
pub simd_json_builtins: bool,
pub javy_stream_io: bool,
pub text_encoding: bool,
}
Expand All @@ -244,7 +244,7 @@ option_group! {
/// Whether to override the `JSON.parse` and `JSON.stringify`
/// implementations with an alternative, more performant, SIMD based
/// implemetation.
OverrideJsonParseAndStringify(bool),
SimdJsonBuiltins(bool),
/// Whether to enable support for the `TextEncoder` and `TextDecoder`
/// APIs.
TextEncoding(bool),
Expand All @@ -261,9 +261,7 @@ impl From<Vec<GroupOption<JsOption>>> for JsOptionGroup {
group.redirect_stdout_to_stderr = *enabled;
}
JsOption::JavyJson(enable) => group.javy_json = *enable,
JsOption::OverrideJsonParseAndStringify(enable) => {
group.override_json_parse_and_stringify = *enable
}
JsOption::SimdJsonBuiltins(enable) => group.simd_json_builtins = *enable,
JsOption::TextEncoding(enable) => group.text_encoding = *enable,
JsOption::JavyStreamIo(enable) => group.javy_stream_io = *enable,
}
Expand All @@ -281,10 +279,7 @@ impl From<JsOptionGroup> for Config {
value.redirect_stdout_to_stderr,
);
config.set(Config::JAVY_JSON, value.javy_json);
config.set(
Config::OVERRIDE_JSON_PARSE_AND_STRINGIFY,
value.override_json_parse_and_stringify,
);
config.set(Config::SIMD_JSON_BUILTINS, value.simd_json_builtins);
config.set(Config::JAVY_STREAM_IO, value.javy_stream_io);
config.set(Config::TEXT_ENCODING, value.text_encoding);
config
Expand All @@ -296,8 +291,7 @@ impl From<Config> for JsOptionGroup {
Self {
redirect_stdout_to_stderr: value.contains(Config::REDIRECT_STDOUT_TO_STDERR),
javy_json: value.contains(Config::JAVY_JSON),
override_json_parse_and_stringify: value
.contains(Config::OVERRIDE_JSON_PARSE_AND_STRINGIFY),
simd_json_builtins: value.contains(Config::SIMD_JSON_BUILTINS),
javy_stream_io: value.contains(Config::JAVY_STREAM_IO),
text_encoding: value.contains(Config::TEXT_ENCODING),
}
Expand Down Expand Up @@ -341,13 +335,11 @@ mod tests {
};
assert_eq!(group, expected);

let raw = vec![GroupOption(vec![JsOption::OverrideJsonParseAndStringify(
false,
)])];
let raw = vec![GroupOption(vec![JsOption::SimdJsonBuiltins(false)])];
let group: JsOptionGroup = raw.into();

let expected = JsOptionGroup {
override_json_parse_and_stringify: false,
simd_json_builtins: false,
..Default::default()
};
assert_eq!(group, expected);
Expand All @@ -366,15 +358,15 @@ mod tests {
JsOption::JavyJson(false),
JsOption::RedirectStdoutToStderr(false),
JsOption::TextEncoding(false),
JsOption::OverrideJsonParseAndStringify(false),
JsOption::SimdJsonBuiltins(false),
])];
let group: JsOptionGroup = raw.into();
let expected = JsOptionGroup {
javy_stream_io: false,
javy_json: false,
redirect_stdout_to_stderr: false,
text_encoding: false,
override_json_parse_and_stringify: false,
simd_json_builtins: false,
};
assert_eq!(group, expected);

Expand Down
2 changes: 1 addition & 1 deletion crates/cli/tests/integration_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ fn test_javy_json_enabled(builder: &mut Builder) -> Result<()> {
fn test_javy_json_disabled(builder: &mut Builder) -> Result<()> {
let mut runner = builder
.input("javy-json-id.js")
.javy_stream_io(false)
.simd_json_builtins(false)
.build()?;

let result = runner.exec(&[]);
Expand Down
6 changes: 3 additions & 3 deletions crates/config/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ use bitflags::bitflags;
bitflags! {
#[derive(Eq, PartialEq, Debug)]
pub struct Config: u32 {
const OVERRIDE_JSON_PARSE_AND_STRINGIFY = 1;
const SIMD_JSON_BUILTINS = 1;
const JAVY_JSON = 1 << 1;
const JAVY_STREAM_IO = 1 << 2;
const REDIRECT_STDOUT_TO_STDERR = 1 << 3;
Expand All @@ -37,7 +37,7 @@ bitflags! {
impl Default for Config {
fn default() -> Self {
let mut config = Config::empty();
config.set(Config::OVERRIDE_JSON_PARSE_AND_STRINGIFY, true);
config.set(Config::SIMD_JSON_BUILTINS, true);
config.set(Config::JAVY_JSON, true);
config.set(Config::JAVY_STREAM_IO, true);
config.set(Config::REDIRECT_STDOUT_TO_STDERR, true);
Expand All @@ -51,7 +51,7 @@ mod tests {
use super::Config;
#[test]
fn check_bits() {
assert!(Config::OVERRIDE_JSON_PARSE_AND_STRINGIFY == Config::from_bits(1).unwrap());
assert!(Config::SIMD_JSON_BUILTINS == Config::from_bits(1).unwrap());
assert!(Config::JAVY_JSON == Config::from_bits(1 << 1).unwrap());
assert!(Config::JAVY_STREAM_IO == Config::from_bits(1 << 2).unwrap());
assert!(Config::REDIRECT_STDOUT_TO_STDERR == Config::from_bits(1 << 3).unwrap());
Expand Down
4 changes: 1 addition & 3 deletions crates/core/src/runtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ pub(crate) fn new(shared_config: SharedConfig) -> Result<Runtime> {
.text_encoding(shared_config.contains(SharedConfig::TEXT_ENCODING))
.redirect_stdout_to_stderr(shared_config.contains(SharedConfig::REDIRECT_STDOUT_TO_STDERR))
.javy_stream_io(shared_config.contains(SharedConfig::JAVY_STREAM_IO))
.override_json_parse_and_stringify(
shared_config.contains(SharedConfig::OVERRIDE_JSON_PARSE_AND_STRINGIFY),
)
.simd_json_builtins(shared_config.contains(SharedConfig::SIMD_JSON_BUILTINS))
.javy_json(shared_config.contains(SharedConfig::JAVY_JSON));

Runtime::new(std::mem::take(config))
Expand Down
14 changes: 7 additions & 7 deletions crates/javy/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ pub struct Config {
/// serde_json and simd_json.
/// This setting requires the `JSON` intrinsic to be enabled, and the `json`
/// crate feature to be enabled as well.
pub(crate) override_json_parse_and_stringify: bool,
pub(crate) simd_json_builtins: bool,
}

impl Default for Config {
Expand All @@ -70,7 +70,7 @@ impl Default for Config {
intrinsics,
javy_intrinsics: JavyIntrinsics::empty(),
redirect_stdout_to_stderr: false,
override_json_parse_and_stringify: false,
simd_json_builtins: false,
}
}
}
Expand Down Expand Up @@ -193,13 +193,13 @@ impl Config {
/// crate feature to be enabled as well.
/// Disabled by default.
#[cfg(feature = "json")]
pub fn override_json_parse_and_stringify(&mut self, enable: bool) -> &mut Self {
self.override_json_parse_and_stringify = enable;
pub fn simd_json_builtins(&mut self, enable: bool) -> &mut Self {
self.simd_json_builtins = enable;
self
}

pub(crate) fn validate(self) -> Result<Self> {
if self.override_json_parse_and_stringify && !self.intrinsics.contains(JSIntrinsics::JSON) {
if self.simd_json_builtins && !self.intrinsics.contains(JSIntrinsics::JSON) {
bail!("JSON Intrinsic is required to override JSON.parse and JSON.stringify");
}

Expand All @@ -215,7 +215,7 @@ mod tests {
#[test]
fn err_config_validation() {
let mut config = Config::default();
config.override_json_parse_and_stringify(true);
config.simd_json_builtins(true);
config.json(false);

assert!(config.validate().is_err());
Expand All @@ -224,7 +224,7 @@ mod tests {
#[test]
fn ok_config_validation() {
let mut config = Config::default();
config.override_json_parse_and_stringify(true);
config.simd_json_builtins(true);

assert!(config.validate().is_ok());
}
Expand Down
2 changes: 1 addition & 1 deletion crates/javy/src/runtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ impl Runtime {
unsafe { intrinsic::Json::add_intrinsic(ctx.as_raw()) }
}

if cfg.override_json_parse_and_stringify {
if cfg.simd_json_builtins {
#[cfg(feature = "json")]
unsafe {
Json::add_intrinsic(ctx.as_raw())
Expand Down
18 changes: 9 additions & 9 deletions crates/runner/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pub struct Builder {
javy_stream_io: Option<bool>,
/// Whether to override JSON.parse and JSON.stringify with a SIMD based
/// implementation.
override_json_parse_and_stringify: Option<bool>,
simd_json_builtins: Option<bool>,
/// Whether to enable the `TextEncoder` and `TextDecoder` APIs.
text_encoding: Option<bool>,
built: bool,
Expand All @@ -64,7 +64,7 @@ impl Default for Builder {
redirect_stdout_to_stderr: None,
javy_stream_io: None,
javy_json: None,
override_json_parse_and_stringify: None,
simd_json_builtins: None,
text_encoding: None,
provider_version: 3,
}
Expand Down Expand Up @@ -117,8 +117,8 @@ impl Builder {
self
}

pub fn override_json_parse_and_stringify(&mut self, enabled: bool) -> &mut Self {
self.override_json_parse_and_stringify = Some(enabled);
pub fn simd_json_builtins(&mut self, enabled: bool) -> &mut Self {
self.simd_json_builtins = Some(enabled);
self
}

Expand Down Expand Up @@ -157,7 +157,7 @@ impl Builder {
redirect_stdout_to_stderr,
javy_json,
javy_stream_io,
override_json_parse_and_stringify,
simd_json_builtins,
text_encoding,
built: _,
preload,
Expand Down Expand Up @@ -192,7 +192,7 @@ impl Builder {
redirect_stdout_to_stderr,
javy_json,
javy_stream_io,
override_json_parse_and_stringify,
simd_json_builtins,
text_encoding,
preload,
),
Expand Down Expand Up @@ -510,7 +510,7 @@ impl Runner {
redirect_stdout_to_stderr: &Option<bool>,
javy_json: &Option<bool>,
javy_stream_io: &Option<bool>,
override_json_parse_and_stringify: &Option<bool>,
simd_json_builtins: &Option<bool>,
text_encoding: &Option<bool>,
) -> Vec<String> {
let mut args = vec![
Expand Down Expand Up @@ -553,10 +553,10 @@ impl Runner {
));
}

if let Some(enabled) = *override_json_parse_and_stringify {
if let Some(enabled) = *simd_json_builtins {
args.push("-J".to_string());
args.push(format!(
"override-json-parse-and-stringify={}",
"simd-json-builtins={}",
if enabled { "y" } else { "n" }
));
}
Expand Down

0 comments on commit d886338

Please sign in to comment.