#haskell #package #hackage
#хаскелл #пакет #хакерство
Вопрос:
Я работаю над пакетом Haskell с открытым исходным кодом и хочу использовать свой собственный пакет в качестве зависимости без утечки его исходного кода.
Одним из способов было бы скомпилировать его в двоичный файл и вызвать через System.Process.callCommand
, но это было бы излишне неэффективно.
Есть ли другой способ распространить пакет в двоичном формате или, по крайней мере, сильно запутанный?
Комментарии:
1. Вам нужен только исходный код, чтобы скомпилировать его в объектный файл, который компоновщик использует для создания окончательного исполняемого файла. Компоновщику все равно, был ли объектный файл создан локально или где-то еще.
2. @chepner, однако, это еще не вся история. Например, GHC хочет проверять вызовы типа и знать, какие имена экспортируются каждым модулем, и даже в некоторых случаях фактический код хочет перемещаться по границам модуля (например, встраивание или специализация).