Page MenuHomeDevCentral

arcanist doesn't work on PHP 8.4
Open, NormalPublic

Description

We can't use arc with PHP 8.4:

$ arc paste P369
PHP Deprecated:  Constant E_STRICT is deprecated in /opt/phabricator/arcanist/support/init/init-script.php on line 18

Deprecated: Constant E_STRICT is deprecated in /opt/phabricator/arcanist/support/init/init-script.php on line 18
[2025-03-27 18:31:15] EXCEPTION: (Exception) Error while loading file "/opt/phabricator/arcanist/src/future/FutureProxy.php": FutureProxy::__construct(): Implicitly marking parameter $proxied as nullable is deprecated, the explicit nullable type must be used instead at [<arcanist>/src/init/lib/PhutilBootloader.php:275]
arcanist(head=production, ref.master=e50d1bc4eaba, ref.production=a1c7b85f1358), shellcheck-linter(head=main, ref.main=402dcb215451)
  #0 __phutil_autoload(string) called at [<arcanist>/src/conduit/ConduitFuture.php:3]
  #1 include_once(string) called at [<arcanist>/src/init/lib/PhutilBootloader.php:247]
  #2 PhutilBootloader::executeInclude(string) called at [<arcanist>/src/init/lib/PhutilBootloader.php:207]
  #3 PhutilBootloader::loadLibrarySource(string, string) called at [<arcanist>/src/symbols/PhutilSymbolLoader.php:423]
  #4 PhutilSymbolLoader::loadSymbol(array) called at [<arcanist>/src/symbols/PhutilSymbolLoader.php:277]
  #5 PhutilSymbolLoader::selectAndLoadSymbols() called at [<arcanist>/src/init/init-library.php:23]
  #6 __phutil_autoload(string) called at [<arcanist>/src/conduit/ConduitClient.php:180]
  #7 ConduitClient::callMethod(string, array) called at [<arcanist>/src/conduit/ArcanistConduitEngine.php:47]
  #8 ArcanistConduitEngine::newFuture(string, array) called at [<arcanist>/src/conduit/ConduitSearchFuture.php:107]
  #9 ConduitSearchFuture::newFuture() called at [<arcanist>/src/conduit/ConduitSearchFuture.php:59]
  #10 ConduitSearchFuture::isReady() called at [<arcanist>/src/future/Future.php:63]
  #11 Future::updateFuture() called at [<arcanist>/src/future/Future.php:159]
  #12 Future::start() called at [<arcanist>/src/future/FutureIterator.php:403]
  #13 FutureIterator::moveFutureToWork(string) called at [<arcanist>/src/future/FutureIterator.php:374]
  #14 FutureIterator::updateWorkingSet() called at [<arcanist>/src/future/FutureIterator.php:206]
  #15 FutureIterator::next() called at [<arcanist>/src/future/FutureIterator.php:190]
  #16 FutureIterator::rewind() called at [<arcanist>/src/hardpoint/ArcanistHardpointEngine.php:213]
  #17 ArcanistHardpointEngine::updateFutures() called at [<arcanist>/src/hardpoint/ArcanistHardpointEngine.php:176]
  #18 ArcanistHardpointEngine::waitForRequests(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:858]
  #19 ArcanistRuntime::loadHardpoints(array, ArcanistHardpointRequestList) called at [<arcanist>/src/ref/symbol/ArcanistSymbolEngine.php:94]
  #20 ArcanistSymbolEngine::loadRefsForSymbols(ArcanistPasteSymbolRef, array) called at [<arcanist>/src/ref/symbol/ArcanistSymbolEngine.php:68]
  #21 ArcanistSymbolEngine::loadPastesForSymbols(array) called at [<arcanist>/src/ref/symbol/ArcanistSymbolEngine.php:63]
  #22 ArcanistSymbolEngine::loadPasteForSymbol(string) called at [<arcanist>/src/workflow/ArcanistPasteWorkflow.php:94]
  #23 ArcanistPasteWorkflow::runWorkflow(PhutilArgumentParser) called at [<arcanist>/src/workflow/ArcanistWorkflow.php:227]
  #24 ArcanistWorkflow::executeWorkflow(PhutilArgumentParser) called at [<arcanist>/src/toolset/ArcanistPhutilWorkflow.php:21]
  #25 ArcanistPhutilWorkflow::execute(PhutilArgumentParser) called at [<arcanist>/src/parser/argument/PhutilArgumentParser.php:492]
  #26 PhutilArgumentParser::parseWorkflowsFull(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:171]
  #27 ArcanistRuntime::executeCore(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:37]
  #28 ArcanistRuntime::execute(array) called at [<arcanist>/support/init/init-arcanist.php:6]
  #29 require_once(string) called at [<arcanist>/bin/arc:10]

$ php -v
PHP 8.4.4 (cli) (built: Feb 11 2025 15:36:20) (NTS)
Copyright (c) The PHP Group
Built by Homebrew
Zend Engine v4.4.4, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.4, Copyright (c), by Zend Technologies

Event Timeline

dereckson triaged this task as High priority.Thu, Mar 27, 18:33
dereckson created this task.
dereckson lowered the priority of this task from High to Normal.Thu, Mar 27, 19:28
dereckson updated the task description. (Show Details)

Decreased priority as it was on my local laptop, WindRiver is still 8.3.16.

dereckson renamed this task from arcanist doesn't work on PHP 8,4 to arcanist doesn't work on PHP 8.4.Thu, Mar 27, 21:10
dereckson added a subscriber: DorianWinty.

Next one:

[2025-04-05 14:03:48] EXCEPTION: (Exception) Error while loading file "/opt/phabricator/arcanist/src/future/FutureProxy.php": FutureProxy::__construct(): Implicitly marking parameter $proxied as nullable is deprecated, the explicit nullable type must be used instead at [<arcanist>/src/init/lib/PhutilBootloader.php:275]
arcanist(head=production, ref.master=e50d1bc4eaba, ref.production=a1c7b85f1358), shellcheck-linter(head=main, ref.main=402dcb215451)
  #0 __phutil_autoload(string) called at [<arcanist>/src/conduit/ConduitFuture.php:3]
  #1 include_once(string) called at [<arcanist>/src/init/lib/PhutilBootloader.php:247]
  #2 PhutilBootloader::executeInclude(string) called at [<arcanist>/src/init/lib/PhutilBootloader.php:207]
  #3 PhutilBootloader::loadLibrarySource(string, string) called at [<arcanist>/src/symbols/PhutilSymbolLoader.php:423]
  #4 PhutilSymbolLoader::loadSymbol(array) called at [<arcanist>/src/symbols/PhutilSymbolLoader.php:277]
  #5 PhutilSymbolLoader::selectAndLoadSymbols() called at [<arcanist>/src/init/init-library.php:23]
  #6 __phutil_autoload(string) called at [<arcanist>/src/conduit/ConduitClient.php:180]
  #7 ConduitClient::callMethod(string, array) called at [<arcanist>/src/conduit/ConduitClient.php:65]
  #8 ConduitClient::callMethodSynchronous(string, array) called at [<arcanist>/src/workflow/ArcanistWorkflow.php:489]
  #9 ArcanistWorkflow::authenticateConduit() called at [<arcanist>/scripts/arcanist.php:389]
<<< [1] (+143) <exec> 143,530 us

Next one detected during arc land:

[2025-04-05 14:10:40] EXCEPTION: (Exception) Error while loading file "/opt/phabricator/arcanist/src/repository/marker/ArcanistMarkerRef.php": ArcanistMarkerRef::attachRemoteRef(): Implicitly marking parameter $ref as nullable is deprecated, the explicit nullable type must be used instead at [<arcanist>/src/init/lib/PhutilBootloader.php:275]
arcanist(head=production, ref.master=e50d1bc4eaba, ref.production=a1c7b85f1358), shellcheck-linter(head=main, ref.main=402dcb215451)
  #0 PhutilBootloader::executeInclude(string) called at [<arcanist>/src/init/lib/PhutilBootloader.php:207]
  #1 PhutilBootloader::loadLibrarySource(string, string) called at [<arcanist>/src/symbols/PhutilSymbolLoader.php:423]
  #2 PhutilSymbolLoader::loadSymbol(array) called at [<arcanist>/src/symbols/PhutilSymbolLoader.php:277]
  #3 PhutilSymbolLoader::selectAndLoadSymbols() called at [<arcanist>/src/init/init-library.php:23]
  #4 __phutil_autoload(string) called at [<arcanist>/src/repository/marker/ArcanistGitRepositoryMarkerQuery.php:171]
  #5 ArcanistGitRepositoryMarkerQuery::newRemoteRefMarkers(ArcanistRemoteRef) called at [<arcanist>/src/repository/marker/ArcanistRepositoryMarkerQuery.php:45]
  #6 ArcanistRepositoryMarkerQuery::execute() called at [<arcanist>/src/land/engine/ArcanistGitLandEngine.php:981]
  #7 ArcanistGitLandEngine::confirmOntoRefs(array) called at [<arcanist>/src/land/engine/ArcanistLandEngine.php:1124]
  #8 ArcanistLandEngine::execute() called at [<arcanist>/src/workflow/ArcanistLandWorkflow.php:344]
  #9 ArcanistLandWorkflow::runWorkflow(PhutilArgumentParser) called at [<arcanist>/src/workflow/ArcanistWorkflow.php:227]
  #10 ArcanistWorkflow::executeWorkflow(PhutilArgumentParser) called at [<arcanist>/src/toolset/ArcanistPhutilWorkflow.php:21]
  #11 ArcanistPhutilWorkflow::execute(PhutilArgumentParser) called at [<arcanist>/src/parser/argument/PhutilArgumentParser.php:492]
  #12 PhutilArgumentParser::parseWorkflowsFull(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:171]
  #13 ArcanistRuntime::executeCore(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:37]
  #14 ArcanistRuntime::execute(array) called at [<arcanist>/support/init/init-arcanist.php:6]
  #15 require_once(string) called at [<arcanist>/bin/arc:10]

After arc land is successful:

[2025-04-05 14:12:00] EXCEPTION: (RuntimeException) exit(): Passing null to parameter #1 ($status) of type string|int is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=production, ref.master=e50d1bc4eaba, ref.production=a1c7b85f1358), shellcheck-linter(head=main, ref.main=402dcb215451)
  #0 PhutilErrorHandler::handleError(integer, string, string, integer)
  #1 exit(NULL) called at [<arcanist>/src/parser/argument/PhutilArgumentParser.php:493]
  #2 PhutilArgumentParser::parseWorkflowsFull(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:171]
  #3 ArcanistRuntime::executeCore(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:37]
  #4 ArcanistRuntime::execute(array) called at [<arcanist>/support/init/init-arcanist.php:6]
  #5 require_once(string) called at [<arcanist>/bin/arc:10]