2015-04-26 1 views
13

Итак, я сижу здесь, задаваясь вопросом, почему, черт возьми, я не могу найти функцию, которую я ищу, и оказывается, что ее нет в версии пакета, который у меня есть установлен.Найти самую раннюю версию пакета с функцией X

Итак, как мне сделать Hackage, скажите мне, какую версию эта функция была добавлена?

(в частности, так что я могу указать правильные границы пакета в моем описании Кабал.)

+0

Вы прочитали https://wiki.haskell.org/Package_versioning_policy? –

+0

@BenjaminGruenbaum я сделал. Как это помогает мне узнать, какая из нескольких десятков версий добавила функцию, которую я хочу? – MathematicalOrchid

+0

Итак, чтобы быть понятным, вы хотите получить минимальную версию библиотеки, содержащей определенную функцию с данной сигнатурой? –

ответ

1

hackage-diff, вероятно, инструмент, который вы ищете.

N.B. Я никогда не пробовал это сам.

+0

Это хорошая находка ... хотя я должен сказать, что этот инструмент выглядит немного грубой силой, потому что он должен вызывать 'cabal' во временных каталогах. – leftaroundabout

+0

Очевидно, что это не идеально, но это единственный частичный подход, о котором я знаю. Лучше всего было бы сопровождать добавление * Поскольку x.y.z * аннотации к новому экспорту. – phadej

+0

Я не уверен ... Я бы предпочел просто просмотреть [git repo] (http://hdiff.luite.com/cgit/), чтобы найти конкретное изменение. С 'hackage-diff' вам в основном нужно вручную делить пополам с этой целью, и когда ему всегда нужно полностью построить пакет, который не слишком приятен. – leftaroundabout