diff --git a/hhvm-patch.diff b/hhvm-patch.diff index cd12288c..909959a6 100644 --- a/hhvm-patch.diff +++ b/hhvm-patch.diff @@ -1,5 +1,5 @@ diff --git a/hphp/hack/src/decl/cargo/rust_decl_ffi/Cargo.toml b/hphp/hack/src/decl/cargo/rust_decl_ffi/Cargo.toml -index 48eff2109c7..c191982d7c7 100644 +index 1436cf15b33..3913cf0079b 100644 --- a/hphp/hack/src/decl/cargo/rust_decl_ffi/Cargo.toml +++ b/hphp/hack/src/decl/cargo/rust_decl_ffi/Cargo.toml @@ -20,7 +20,6 @@ crossbeam = "0.8" @@ -12,14 +12,14 @@ index 48eff2109c7..c191982d7c7 100644 oxidized = { version = "0.0.0", path = "../../../oxidized" } @@ -28,3 +27,6 @@ oxidized_by_ref = { version = "0.0.0", path = "../../../oxidized_by_ref" } parser_core_types = { version = "0.0.0", path = "../../../parser/cargo/core_types" } - rayon = "1.2" + rayon = "1.9.0" relative_path = { version = "0.0.0", path = "../../../utils/rust/relative_path" } + +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] +ocamlrep_caml_builtins = { version = "0.1.0", git = "https://github.com/facebook/ocamlrep/", branch = "main" } \ No newline at end of file diff --git a/hphp/hack/src/deps/rust/file_info.rs b/hphp/hack/src/deps/rust/file_info.rs -index e3a025dc023..ad6d2a54f61 100644 +index 826c113cdfd..a82821573fd 100644 --- a/hphp/hack/src/deps/rust/file_info.rs +++ b/hphp/hack/src/deps/rust/file_info.rs @@ -13,7 +13,7 @@ use no_pos_hash::NoPosHash; @@ -37,10 +37,10 @@ index e3a025dc023..ad6d2a54f61 100644 pub name: String, - pub decl_hash: Option, + pub decl_hash: Option, + pub sort_text: Option, } - #[derive( -@@ -236,7 +236,7 @@ pub struct Id { +@@ -237,7 +237,7 @@ pub struct Id { )] #[rust_to_ocaml(attr = "deriving eq")] #[repr(C)] @@ -49,7 +49,7 @@ index e3a025dc023..ad6d2a54f61 100644 #[derive( Clone, -@@ -287,7 +287,7 @@ pub struct FileInfo { +@@ -288,7 +288,7 @@ pub struct FileInfo { pub comments: Option>, } @@ -188,10 +188,10 @@ index 8768bd5b52a..b595a7444d0 100644 pub struct Names { diff --git a/hphp/hack/src/oxidized/aast_visitor/node_impl_gen.rs b/hphp/hack/src/oxidized/aast_visitor/node_impl_gen.rs -index 9ea618b9305..fa8991f71ae 100644 +index dcf873d5350..8711189f36d 100644 --- a/hphp/hack/src/oxidized/aast_visitor/node_impl_gen.rs +++ b/hphp/hack/src/oxidized/aast_visitor/node_impl_gen.rs -@@ -2223,7 +2223,6 @@ impl Node

for Typedef { +@@ -2237,7 +2237,6 @@ impl Node

for Typedef { self.file_attributes.accept(c, v)?; self.mode.accept(c, v)?; self.vis.accept(c, v)?; @@ -200,10 +200,10 @@ index 9ea618b9305..fa8991f71ae 100644 self.emit_id.accept(c, v)?; self.is_ctx.accept(c, v)?; diff --git a/hphp/hack/src/oxidized/aast_visitor/node_mut_impl_gen.rs b/hphp/hack/src/oxidized/aast_visitor/node_mut_impl_gen.rs -index 6c05fab4b51..1f84e3466da 100644 +index 1ccda1e73c1..4044c8b757e 100644 --- a/hphp/hack/src/oxidized/aast_visitor/node_mut_impl_gen.rs +++ b/hphp/hack/src/oxidized/aast_visitor/node_mut_impl_gen.rs -@@ -2223,7 +2223,6 @@ impl NodeMut

for Typedef { +@@ -2237,7 +2237,6 @@ impl NodeMut

for Typedef { self.file_attributes.accept(c, v)?; self.mode.accept(c, v)?; self.vis.accept(c, v)?; @@ -232,7 +232,7 @@ index 2252858a312..e640c206d4e 100644 pretty_assertions = { version = "1.2", features = ["alloc"], default-features = false } serde_json = { version = "1.0.100", features = ["float_roundtrip", "unbounded_depth"] } diff --git a/hphp/hack/src/oxidized_by_ref/gen/file_info.rs b/hphp/hack/src/oxidized_by_ref/gen/file_info.rs -index 89410c84e9d..d4770e9b5fb 100644 +index e82ff539cd2..f397949759a 100644 --- a/hphp/hack/src/oxidized_by_ref/gen/file_info.rs +++ b/hphp/hack/src/oxidized_by_ref/gen/file_info.rs @@ -14,7 +14,6 @@ use no_pos_hash::NoPosHash; @@ -249,10 +249,10 @@ index 89410c84e9d..d4770e9b5fb 100644 #[serde(deserialize_with = "arena_deserializer::arena", borrow)] - pub decl_hash: Option<&'a Int64>, + pub decl_hash: Option<&'a u64>, + #[serde(deserialize_with = "arena_deserializer::arena", borrow)] + pub sort_text: Option<&'a str>, } - impl<'a> TrivialDrop for Id<'a> {} - arena_deserializer::impl_deserialize_in_arena!(Id<'arena>); -@@ -202,7 +201,7 @@ arena_deserializer::impl_deserialize_in_arena!(Id<'arena>); +@@ -204,7 +203,7 @@ arena_deserializer::impl_deserialize_in_arena!(Id<'arena>); #[rust_to_ocaml(attr = "deriving eq")] #[repr(C)] pub struct HashType<'a>( @@ -261,7 +261,7 @@ index 89410c84e9d..d4770e9b5fb 100644 ); impl<'a> TrivialDrop for HashType<'a> {} arena_deserializer::impl_deserialize_in_arena!(HashType<'arena>); -@@ -268,7 +267,7 @@ pub struct FileInfo<'a> { +@@ -270,7 +269,7 @@ pub struct FileInfo<'a> { impl<'a> TrivialDrop for FileInfo<'a> {} arena_deserializer::impl_deserialize_in_arena!(FileInfo<'arena>); @@ -400,7 +400,7 @@ index 0f58d4d92df..7a324fa3189 100644 } } diff --git a/hphp/hack/src/parser/aast_parser.rs b/hphp/hack/src/parser/aast_parser.rs -index 01413aba90c..3f6e56749f0 100644 +index e6c37c898fd..0763ed61193 100644 --- a/hphp/hack/src/parser/aast_parser.rs +++ b/hphp/hack/src/parser/aast_parser.rs @@ -5,7 +5,7 @@ @@ -412,9 +412,9 @@ index 01413aba90c..3f6e56749f0 100644 use bumpalo::Bump; use hash::HashSet; -@@ -92,11 +92,11 @@ impl<'src> AastParser { - return Ok(err); - } +@@ -89,11 +89,11 @@ impl<'src> AastParser { + if let Some(err) = Self::verify_utf8(indexed_source_text) { + return Ok(err); } - let start_t = Instant::now(); + //let start_t = Instant::now(); @@ -426,7 +426,7 @@ index 01413aba90c..3f6e56749f0 100644 let parse_peak = stack_limit::peak(); let mut pr = Self::from_tree_with_namespace_env( env, -@@ -110,8 +110,8 @@ impl<'src> AastParser { +@@ -107,8 +107,8 @@ impl<'src> AastParser { )?; pr.profile.parse_peak = parse_peak as u64; @@ -437,7 +437,7 @@ index 01413aba90c..3f6e56749f0 100644 Ok(pr) } -@@ -172,7 +172,7 @@ impl<'src> AastParser { +@@ -169,7 +169,7 @@ impl<'src> AastParser { tree: PositionedSyntaxTree<'src, 'arena>, default_unstable_features: HashSet, ) -> Result { @@ -446,7 +446,7 @@ index 01413aba90c..3f6e56749f0 100644 match language { Language::Hack => {} _ => return Err(Error::NotAHackFile()), -@@ -193,14 +193,14 @@ impl<'src> AastParser { +@@ -190,14 +190,14 @@ impl<'src> AastParser { ); stack_limit::reset(); let ret = lower(&mut lowerer_env, tree.root()); @@ -463,7 +463,7 @@ index 01413aba90c..3f6e56749f0 100644 stack_limit::reset(); let syntax_errors = Self::check_syntax_error( env, -@@ -213,7 +213,7 @@ impl<'src> AastParser { +@@ -210,7 +210,7 @@ impl<'src> AastParser { let lowerer_parsing_errors = lowerer_env.parsing_errors().to_vec(); let errors = lowerer_env.hh_errors().to_vec(); let lint_errors = lowerer_env.lint_errors().to_vec(); @@ -472,7 +472,7 @@ index 01413aba90c..3f6e56749f0 100644 Ok(ParserResult { file_mode: mode, -@@ -225,9 +225,9 @@ impl<'src> AastParser { +@@ -222,9 +222,9 @@ impl<'src> AastParser { lint_errors, profile: ParserProfile { lower_peak, @@ -508,10 +508,10 @@ index ab9bf36c7c6..05b6f906190 100644 } _ => { diff --git a/hphp/hack/src/parser/lowerer/lowerer.rs b/hphp/hack/src/parser/lowerer/lowerer.rs -index f3ff8398f7c..4d7a7f9bd32 100644 +index 2395863809d..2c77bacf25e 100644 --- a/hphp/hack/src/parser/lowerer/lowerer.rs +++ b/hphp/hack/src/parser/lowerer/lowerer.rs -@@ -3294,12 +3294,12 @@ fn p_markup<'a>(node: S<'a>, env: &mut Env<'a>) -> Result { +@@ -3319,12 +3319,12 @@ fn p_markup<'a>(node: S<'a>, env: &mut Env<'a>) -> Result { let markup_hashbang = &c.hashbang; let markup_suffix = &c.suffix; let pos = p_pos(node, env); @@ -613,13 +613,13 @@ index 671fb6c2b3e..2fe88b076d4 100644 impl<'arena> DeserializeInArena<'arena> for &'arena str { fn deserialize_in_arena(arena: &'arena Bump, deserializer: D) -> Result diff --git a/hphp/hack/src/utils/eq_modulo_pos/Cargo.toml b/hphp/hack/src/utils/eq_modulo_pos/Cargo.toml -index 191268eb7de..b6fdb9a49d2 100644 +index 0e7204eb561..6e7bf3cbbbf 100644 --- a/hphp/hack/src/utils/eq_modulo_pos/Cargo.toml +++ b/hphp/hack/src/utils/eq_modulo_pos/Cargo.toml @@ -16,4 +16,6 @@ bstr = { version = "1.4.0", features = ["serde", "std", "unicode"] } eq_modulo_pos_derive = { version = "0.0.0", path = "../eq_modulo_pos_derive" } hcons = { version = "0.0.0", path = "../../hcons" } - indexmap = { version = "2.1.0", features = ["arbitrary", "rayon", "serde"] } + indexmap = { version = "2.2.6", features = ["arbitrary", "rayon", "serde"] } + +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] ocamlrep_caml_builtins = { version = "0.1.0", git = "https://github.com/facebook/ocamlrep/", branch = "main" } diff --git a/src/aast_utils/lib.rs b/src/aast_utils/lib.rs index b3f39e9e..8f4339f6 100644 --- a/src/aast_utils/lib.rs +++ b/src/aast_utils/lib.rs @@ -32,10 +32,10 @@ pub fn get_aast_for_path_and_contents( let indexed_source_text = IndexedSourceText::new(text.clone()); let mut parser_env = AastParserEnv::default(); - parser_env.parser_options.po_disable_hh_ignore_error = 0; + parser_env.parser_options.disable_hh_ignore_error = 0; parser_env.include_line_comments = true; parser_env.scour_comments = true; - parser_env.parser_options.po_enable_xhp_class_modifier = true; + parser_env.parser_options.enable_xhp_class_modifier = true; let mut parser_result = match aast_parser::AastParser::from_text( &parser_env, diff --git a/third-party/hhvm b/third-party/hhvm index 2b313667..8f6b4b63 160000 --- a/third-party/hhvm +++ b/third-party/hhvm @@ -1 +1 @@ -Subproject commit 2b313667489f8b9316efbfbc4fbfd1ca4cca4fa0 +Subproject commit 8f6b4b63254b963f79aef7a400fd1a553a6d498b