Может кто-нибудь помочь мне понять это?
$ stack exec -- mvm4x4_amf +RTS -sstderr
mvm4x4_amf: Most RTS options are disabled. Link with -rtsopts to enable them.
$ stack exec --profile -- mvm4x4_amf +RTS -sstderr
Executable named mvm4x4_amf not found on path: [{snip}]
Я нашел предложение для второй команды, испробованной выше здесь , в разделе Отладка . (10 из 13 соответствий для поискового запроса: "rts")
После перестройки моего Stack проекта с: stack build --profile
, я получаю:
$ stack exec --profile -- mvm4x4_amf +RTS -sstderr
mvm4x4_amf: Most RTS options are disabled. Link with -rtsopts to enable them.
Если я используйте вместо этого:
$ stack exec --profile mvm4x4_amf +RTS -sstderr
их моя программа запускает, но я не получаю никакой информации о профилировании.
Если я "дохожу" до каталога .stack-work/
и "выполняю" от руки "(как я рекомендовал в некоторых других публикациях, связанных с этой проблемой):
$ .stack-work/dist/x86_64-osx/Cabal-2.4.0.1/build/mvm4x4_amf/mvm4x4_amf +RTS -sstderr
mvm4x4_amf: Most RTS options are disabled. Link with -rtsopts to enable them.
тогда кажется, что мой исполняемый файл не был построен для профилирования. Но попытка явно перестроить его для профилирования не приводит к каким-либо действиям:
$ stack build --profile :mvm4x4_amf
$
О, это вообще помогает? Я заметил кое-что странное:
$ stack build --profile :mvm4x4_amf
luminous-0.5.0.0: unregistering (local file changes: luminous.cabal)
luminous> configure (lib + exe)
Configuring luminous-0.5.0.0...
luminous> build (lib + exe)
Preprocessing library for luminous-0.5.0.0..
Building library for luminous-0.5.0.0..
Preprocessing executable 'mvm4x4_amf' for luminous-0.5.0.0..
Building executable 'mvm4x4_amf' for luminous-0.5.0.0..
luminous> copy/register
Installing library in .../.stack-work/install/x86_64-osx/2428dc603454d346facf6484280fa92531e4d7789d3
3c4dd56c39cf70d79bd7e/8.6.5/lib/x86_64-osx-ghc-8.6.5/luminous-0.5.0.0-9ABiH0AyDmV25JxAv1cFEI
{snip}
Installing executable mvm4x4_amf in .../.stack-work/install/x86_64-osx/2428dc603454d346facf6484280fa
92531e4d7789d33c4dd56c39cf70d79bd7e/8.6.5/bin
{snip}
Registering library for luminous-0.5.0.0..
$ stack exec which mvm4x4_amf
.../.stack-work/install/x86_64-osx/9af8b70f7f84a02189b610f95c8d289ab7d743df5c23a5d5d43b30afe0c02b7c/
8.6.5/bin/mvm4x4_amf
Стек, похоже, обнаружил мой исполняемый файл mvm4x4_amf
в другом каталоге, чем тот, где он его устанавливает! Я правильно это читаю? Должен ли я быть обеспокоен?
О, для справки:
$ stack --version
Version 2.1.3, Git revision 0fa51b9925decd937e4a993ad90cb686f88fa282 (7739 commits) x86_64 hpack-0.31.2