Я работаю над собственным плагином ghc< /а>. Чтобы проверить это, я хочу запустить его на каждом пакете hackage. Я сталкиваюсь с двумя трудностями с этим.
Во-первых, мне нужно передать параметр -fplugin=MyPlugin
в ghc при установке пакетов. Единственный способ, который я нашел для этого, — создать файл myghc.sh
, который содержит:
#!/bin/sh
ghc -fplugin=MyPlugin $@
А затем запустите cabal install --with-compiler=./myghc.sh
. Но потом, когда я запускаю эту команду, я получаю сообщение об ошибке
Could not find module 'MyPlugin'
it is a member of the hidden package...
Итак, есть ли специальный флаг, который я могу передать cabal install
, чтобы использовать мой плагин без необходимости изменять файл клики каждого пакета?
Во-вторых, я хочу, чтобы мой плагин записывал информацию о компилируемом пакете, поэтому мне нужен способ, чтобы мой пакет знал эту информацию.
Кажется, что может быть несколько способов сделать это, но вот что я придумал до сих пор. Я хочу, чтобы список хакерских пакетов был упорядочен так, чтобы все зависимости пакета гарантированно стояли перед ним в списке? Затем, когда я запускаю cabal install
, я могу передать подключаемому модулю имя устанавливаемого пакета. Поскольку зависимости уже установлены, мне не придется беспокоиться о том, что они будут установлены под неправильным именем.