1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-12-26 15:30:57 +01:00
phorge-arcanist/support/xhpast
epriestley 763ac445dc Revert xhpast changes that impacted builds under Bison 2.3
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
2020-04-07 14:29:19 -07:00
..
ast.hpp Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
astnode.hpp Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
build-xhpast.php Merge utility/support changes from "wilds" to "master" 2020-02-13 14:10:09 -08:00
generate_nodes.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
Makefile Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
parser.y Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
parser.yacc.cpp Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
parser.yacc.hpp Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
parser_nodes.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
README Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
scanner.l Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
scanner.lex.cpp Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
scanner.lex.hpp Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
xhpast.cpp Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00

= 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.