Tags: gmx/hhvm
Tags
fix remaining pos mismatch Summary: - refreshed `aast_env` to match Ocaml - some typos Reviewed By: losvald Differential Revision: D20403762 fbshipit-source-id: 5a6dd0af0f57fa4ded4d9697ab487c8c3a916b31
Kill source mapping option across stack Summary: This option is explicitly set to true at every entry point to HackC, as well as in tests, but it's true by default in HHVM. It's also an outlier because it has 2 aliases when used as CLI argument: - hack.compiler.sourcemapping - eval.disassemblersourcemapping neither of which matches its JSON key: eval.disassembler_source_mapping. All of the abovee adds significant complexity, so kill it altogether. Reviewed By: shiqicao, alexeyt Differential Revision: D20295585 fbshipit-source-id: bed0040227143b6df122e2f11545bde909ace70e
update comment in ClientIdeIncremental Summary: Discussed with arxanas. The caller is the one who will update naming and reverse naming tables. Reviewed By: arxanas Differential Revision: D20349887 fbshipit-source-id: d8ee41aa1c292b3c4a6813fd1df394a72eb7f2dc
Add out-of-date header to all .md files Summary: This adds a header to all the .md files which says: NOTICE: This spec is currently very out of date and does not reflect the current version of Hack. Reviewed By: fredemmott, JoelMarcey Differential Revision: D20256978 fbshipit-source-id: 669f8c3c7012cc142e93bebc816ff60aca31d5a2
Fix multi-FramePtr phi-jump issue Summary: In optimized translations, we'll generate instructions like "Jmp t635:FramePtr, t645:FramePtr -> B535<Unlikely>" where we phi multiple FramePtrs. In particular, we'll do so when we guard multiple values while inlining multiple levels deep, because we share a single ReqBindJmp merge point for all the guards. This instruction is kind of weird, since the phijmp's dst defines the rvmfp() physical register twice. vasm-graph-color makes an exception for it. However, we'll crash if we later eliminate all but one of the guards, because we'll turn the phijmp into a copyargs and assert that it defines rvmfp() twice. We just have to fix the assertion. In the new unit test, we hit this edge case by inlining two frames and then guarding the result of "mixed_value". The more likely tracelet guards to InitNull; the less likely one guards to Arr and then to Arr=PackedKind, but we later eliminate the Arr guard using the RepoAuthType. (The "darray" option is needed so that the RepoAuthType is ?Arr instead of ?Varr.) Reviewed By: ricklavoie Differential Revision: D20322192 fbshipit-source-id: a70ebe5130a2d8ae0a6b9ab7fe333f9b242ab44e
Delete `Parser_options_provider` Summary: There's only a handful of places that use `Parser_options_provider.get ()`. Now that `popt` is inside the `Provider_context.t` which is threaded around mostly everywhere, we don't need to set the global parser options Reviewed By: 2BitSalute Differential Revision: D19870892 fbshipit-source-id: dff3dbc12379cff58049241156b51a10288609ca
Port generator Summary: As titled Reviewed By: shiqicao Differential Revision: D20295156 fbshipit-source-id: 4107b31088fd003862df1b636801ecf62372f56b
Get rid of unnecessary Stmt wrappers around Block in emit_statement Summary: When emitting the body block in for, foreach, while, and do loops, the OCaml version wraps the block into a Stmt(pos, block) and calls a helper on that Stmt. This wrapping step, when ported to Rust, requires cloning of the block, which is super expensive. The helper doesn't need the pos parameter, but only computes instructions from the block, so get rid of the wrapper to avoid cloning. Differential Revision: D20236751 fbshipit-source-id: c95b0f9ac09b278717114fea700f2ed734dbe812
Avoid some opens to simplify Rustification Summary: To simplify migration to Rust, use fully explicit paths for ADTs, without relying on shadowing after "import everything" open. Reviewed By: vsiles Differential Revision: D18145807 fbshipit-source-id: dc4c00b1c450057f0232f67548645ab812496609
PreviousNext