We recommend that users building from source use ./pate.sh to both build and invoke PATE. However, users familiar with typical Haskell project workflows may instead try to build PATE with cabal build pkg:pate or similar.
Unfortunately, running cabal build pkg:pate will cause subsequent executions of ./pate.sh to fail with a message that looks like:
<command line>: dlopen(/path/to/pate/dist-newstyle/build/aarch64-osx/ghc-9.6.5/pate-0.9.0/l/pate-repl-base-helper/build/pate-repl-base-helper/libHSpate-0.9.0-inplace-pate-repl-base-helper-ghc9.6.5.dylib, 0x0005): symbol not found in flat namespace '_patezm0zi9zi0zminplacezmpatezmreplzmbasezmhelper_Output_OutputElemList_con_info'
for which the issue and resolution (cabal clean ; ./pate.sh) are not obvious.
We should fix this such that cabal build does not cause issues for pate.sh.
Once fixed, we should also add the integration test (which uses ./pate.sh) to the CI build job (which uses cabal build) - see discussion on https://github.com/GaloisInc/pate/pull/417
We recommend that users building from source use
./pate.sh
to both build and invoke PATE. However, users familiar with typical Haskell project workflows may instead try to build PATE withcabal build pkg:pate
or similar.Unfortunately, running
cabal build pkg:pate
will cause subsequent executions of./pate.sh
to fail with a message that looks like:for which the issue and resolution (
cabal clean ; ./pate.sh
) are not obvious.We should fix this such that
cabal build
does not cause issues forpate.sh
.