Skip to content

Tags: gazzola/hhvm

Tags

nightly-2021.05.18

Toggle nightly-2021.05.18's commit message
Adding hhi definition for get_proxygen_headers

Reviewed By: fredemmott

Differential Revision: D27969757

fbshipit-source-id: bf80c437669ec9bd6f51b9e032f2751158c64856

HHVM-4.110.0

Toggle HHVM-4.110.0's commit message

Verified

This commit was signed with the committer’s verified signature. The key has expired.
jjergus Ján
Releasing 4.110.0

nightly-2021.05.17

Toggle nightly-2021.05.17's commit message
Use a priority-based traversal in HotCFG region former

Summary:
This diff switches the HotCFG region formation algorithm to use a priority-based traversal of the TransCFG instead of a depth-first search (DFS). The DFS approach can lead to pathological behavior when the TransCFG is too large and the region is truncated due to the bytecode-size limit. The problem is that, if you go too deep on a path in the CFG without traversing many of the predecessors that can reach the blocks in that path, and then truncate the region before getting a chance to visit those predecessors, regionizeFunc will then have to create other large region that duplicate that long, deep path because one region cannot jump into the middle of another.

This diff addresses that problem by inserting blocks in the region giving priority to blocks that already had all their predecessors visited. To avoid issues with loops, backedge sources are not included in the set or predecessors that needs to be visited prior to visiting a block. Among all the blocks that are eligible to be visited (i.e. considered for inclusion in the region), we give priority to blocks with higher profile counts. One other potential issue with this approach is that blocks may no be included in the region if they have very low weights and, yet, we don't want them to prevent their successors from being included in the region. This is addressed by visiting even blocks that will not be inserted in the region.

Reviewed By: paulbiss

Differential Revision: D28401526

fbshipit-source-id: 6fd833b89d069684670ca686f776b0d3060ed190

nightly-2021.05.16

Toggle nightly-2021.05.16's commit message
Use a priority-based traversal in HotCFG region former

Summary:
This diff switches the HotCFG region formation algorithm to use a priority-based traversal of the TransCFG instead of a depth-first search (DFS). The DFS approach can lead to pathological behavior when the TransCFG is too large and the region is truncated due to the bytecode-size limit. The problem is that, if you go too deep on a path in the CFG without traversing many of the predecessors that can reach the blocks in that path, and then truncate the region before getting a chance to visit those predecessors, regionizeFunc will then have to create other large region that duplicate that long, deep path because one region cannot jump into the middle of another.

This diff addresses that problem by inserting blocks in the region giving priority to blocks that already had all their predecessors visited. To avoid issues with loops, backedge sources are not included in the set or predecessors that needs to be visited prior to visiting a block. Among all the blocks that are eligible to be visited (i.e. considered for inclusion in the region), we give priority to blocks with higher profile counts. One other potential issue with this approach is that blocks may no be included in the region if they have very low weights and, yet, we don't want them to prevent their successors from being included in the region. This is addressed by visiting even blocks that will not be inserted in the region.

Reviewed By: paulbiss

Differential Revision: D28401526

fbshipit-source-id: 6fd833b89d069684670ca686f776b0d3060ed190

nightly-2021.05.15

Toggle nightly-2021.05.15's commit message
Compute flags for internal compiler with macros

Summary:
When adding a new parser/hhbc flag, there are quite a few spots you need to change in the same way. Hackc has a mapping from these flags to bits that needs to match the mapping in hhvm land.

- This diff consolidates two of them and is easier to maintain
- Also updates a couple sites where there are inconsistencies

Reviewed By: shiqicao

Differential Revision: D28436337

fbshipit-source-id: 26017e0ccbb14307e36de7da14164752eb4c60d4

nightly-2021.05.14

Toggle nightly-2021.05.14's commit message
Improve the error message on empty method bodies

Summary: When the body of a non-abstract method is empty, the current error message is either unclear or redundant. To improve it, the message is replaced by a constant string "A method must have a body or be marked `abstract`".

Reviewed By: Wilfred

Differential Revision: D28355460

fbshipit-source-id: 80fea0c7d1bad20a3e7040a5ef7e25a47a9b9644

nightly-2021.05.13

Toggle nightly-2021.05.13's commit message
Autocomplete shape keys for literals in function calls

Summary:
If the user is writing a shape literal in a function call position, offer shape field names.

```
takes_shape_2nd_arg("foo", shape("AUTO332"));
```

With this code, we know the type of `takes_shape_2nd_arg`, so we can offer the shape field names in code completion.

Reviewed By: ljw1004

Differential Revision: D26093599

fbshipit-source-id: 894ddc89eb9a08f028d7adbc8fb61ad4ffc8c456

nightly-2021.05.12

Toggle nightly-2021.05.12's commit message
hhconfig_version and rollout_flags in more places

Differential Revision: D28325508

fbshipit-source-id: 4def1af773bda3479b3ee62b3b7ecb3033b05800

nightly-2021.05.11

Toggle nightly-2021.05.11's commit message
Add HH\Readonly\as_mut as a special builtin to HackC

Summary:
This diff adds a special builtin function HH\\Readonly\\as_mut, which converts a value type like int to mutable from readonly.

Only readonly integers and other value types should be able to be passed into this function, but we haven't built the support for that yet. That will come in a diff on top of that for the typechecker.

Reviewed By: oulgen

Differential Revision: D28073468

fbshipit-source-id: 00995cb1086f62e0c1169b45118387ee475f108a

HHVM-4.109.0

Toggle HHVM-4.109.0's commit message

Unverified

The committer email address is not verified.
Releasing 4.109.0