This repository was archived by the owner on Aug 25, 2025. It is now read-only.
Releases: hhvm/hack-codegen
Releases · hhvm/hack-codegen
Support HHVM 3.29
This release supports HHVM 3.29.x with optional strict features enabled.
Support HHVM 3.28
v3.2.1 Update forward compatibility level, fix lint warnings
Support nightly builds of HHVM/Hack, target 3.27+
This release contains minimal changes to 3.0.8, however it updates the version requirement to 3.27, oo reduce maintenance cost. Further 3.0.x releases targeting earlier versions of HHVM/Hack may be made as-needed, but are not currently planned.
Relicense, support new versions of the HSL and FBExpect, support for optional shape fields and nested shapes
This release:
- is available under the MIT license
- allows usage of recent versions of the Hack Standard Library
- Adds support for optional shape fields via
CodegenShape_FUTURE(thanks to @mwildehahn )
Support experimental typechecker options in HHVM 3.25
v3.0.7 support additional experimental typechecker options
Support additional typechecker restrictions
This release supports:
safe_array=trueandsafe_vector_array=trueenable_experimental_tc_features=no_fallback_in_namespaces(nightlies, expected in 3.25)
v3.0.4 was mis-tagged from master, and should not be used.
Support file-level constants
Added CodegenFile::addConst()
Support HHVM 3.24, require HHVM 3.23+, and add `HackBuilderValues::code()`
Add HackBuilderValues::code() fixes #69
Fix regression in support for ImmMap/ImmDict/ImmVector
v3.0.1 fix support for Imm(Map|Set|Vector)
Increased consistency, support for vec/dict/keyset, support for HHVM 3.23
- adds support for the upcoming HHVM 3.23 release
- in general, methods that previously took collections will now take
TraversableorKeyedTraversableinstead, allowing them to be used with either Hack collections or Hack arrays - methods that returned collections now return Hack arrays
- added support for running
hackfmt-formatted output: addFacebook\HackCodegen\HackfmtFormatteras the formatter in your configuration object <?hh // strictis now the default for generated files- added CLI script to verify signatures - this should be available as
vendor/bin/hh-codegen-verify-signaturesin projects that depend onhack-codegen - renamed
addVar()(add a member variable) toaddProperty(), and addedaddProperties() - replaced
setGenericsDecl()withaddGenerics()andaddGeneric(), which take a string describing a generic HackCodegenConfigno longer takes parameters - instead, call->withRootDir($root)on the object to specify the root directory- consistency improvements:
addCase()now takes a value renderer as well as a valueendSwitch_()was renamed toendSwitch()- replaced
setserAttribute()withaddUserAttribute(), which takes a value renderer as well as a value, andaddEmptyUserAttribute() - renamed
setParameters()toaddParameters() - split
addComment()toaddComment()andaddCommentf() - split
addIf()toaddIf()andaddIff() - split
addLine()toaddLine()andaddLinef()