mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +01:00
763ac445dc
Summary: Fixes T9753. Changes some time ago (in D13970 + D13974) improved XHPAST build compile-time warning behavior under Bison 3. However, macOS still ships with Bison 2.3 and these changes prevent XHPAST from building with Bison 2.3. The changes didn't introduce version detection, so Bison 2.3 builds fail somewhat mysteriously without obvious next steps. It's relatively easy to install Bison 3 on macOS via Homebrew, but the Bison 3 changes aren't terribly substantive and XHPAST doesn't actually depend on any Bison 3 features, so just return to Bison 2.3 for now. It would be reasonable to undo this again and retarget Bison 3 in the future, but ideally we should wait until macOS ships with Bison 3 or we have a specific reason to bump the minimum required version to 3. If/when we do, we should version-detect Bison and raise a clear error message. Test Plan: Built xhpast under Bison 2.3 on a default macOS install using "make cleanall && make install". Maniphest Tasks: T9753 Differential Revision: https://secure.phabricator.com/D21063 |
||
---|---|---|
.. | ||
ast.hpp | ||
astnode.hpp | ||
build-xhpast.php | ||
generate_nodes.php | ||
Makefile | ||
parser.y | ||
parser.yacc.cpp | ||
parser.yacc.hpp | ||
parser_nodes.php | ||
README | ||
scanner.l | ||
scanner.lex.cpp | ||
scanner.lex.hpp | ||
xhpast.cpp |
= Building = Normally, you can build `xhpast` by running `make`, which will create a binary in this directory: xhpast/ $ make You can run `make install` to copy that binary to the right place in libphutil so that libphutil, Phabricator, Diviner, etc., can use xhpast. If you are developing `xhpast`, you need to `make parser scanner xhpast` instead to regenerate the parser and scanner: xhpast/ $ make parser scanner xhpast We ship the generated parser and scanner and do not rebuild them by default to prevent users from needing to install flex and bison and fiddle around with flex versions.