Автоматически создавать файлы ASDF для проекта Common Lisp - PullRequest
4 голосов
/ 07 ноября 2008

Есть ли какие-нибудь библиотеки, которые делают это? Играя с Common Lisp кажется, что это было бы одной из самых полезных вещей для снижения барьера входа для новичков. Кажется, ASDF в основном предназначен для развертывания, а не для быстрого прототипирования и разработки. Следуя потокам на comp.lang.lisp, кажется, что люди согласны с тем, что система пакетов CL мощна, но ей не хватает легкости чего-то вроде мертвой простой системы модулей Python. Это НЕВОЗМОЖНО в том смысле, что оно предназначено для власти, а не для удобства использования.

Рад знать, если я ошибаюсь. Если я прав, я ошеломлен тем, что никто не пытался построить систему, подобную модулю Python, поверх ASDF.

Ответы [ 7 ]

5 голосов
/ 11 июля 2013

Зак Бин написал , как он в настоящее время запускает новые проекты Common Lisp, используя Quicklisp и Quickproject. Это может быть так, как вы хотите.

3 голосов
/ 07 ноября 2008

Не уверен, готов ли он в прайм-тайм или соответствует ли он вашим требованиям, но вот ссылка на XCVB .

1 голос
/ 17 февраля 2009

Сейчас есть Грязевые шарики .

Если вы ищете программное обеспечение для добавления этой функции, то это хорошая ставка.

1 голос
/ 07 ноября 2008

Я не знаю. В основном я использую ASDF для моих потребностей в компиляции. Как только вы заметите, что получите выгоду от нескольких исходных файлов, откройте .asd, добавьте шаблон базового определения системы ASDF и начните вводить имена файлов. Как и когда вы заметите зависимость между файлами, обновите зависимость список.

Но затем я использую тот же метод, что и Makefile (да, я знаю, что есть автоматические средства проверки зависимостей, которые могут сделать это за вас, но, поскольку я в основном пишу код самостоятельно, проще просто изменить Makefile / Определение ASDF на ходу).

В SBCL есть ловушка для REQUIRE, которая проверяет системы ASDF, так что в итоге вы получаете что-то такое же удобное, как импорт Python, но я почему-то подозреваю, что это не то, что вы имели в виду.

1 голос
/ 07 ноября 2008

Возможно, это не тот ответ, который вам нужен, но ясно, что у вас есть представление о том, что вы хотите в модульной системе. Рассматривали ли вы создать его самостоятельно? То есть, взяв свой ограниченный домен, свои ограниченные требования, свою среду и просто определив, какие абстракции быстро сделают вашу жизнь проще?

Это одно из ключевых преимуществ Lisp, которое, я уверен, вы знаете, заключается в том, что эти простые абстракции и небольшие инструменты обычно очень легко создавать в Lisp.

Я не предлагаю решать всем, у кого есть проблемы с системой пакетов или ASDF, я просто предлагаю решить вашу собственную проблему в том виде, в каком вы ее понимаете, что, вероятно, проще и меньше, чем какой-то более мощный больший объем.

0 голосов
/ 25 января 2019

Если вам нужен инструмент командной строки, который просто использует bash для генерации нового общего каталога проекта lisp и макетов файлов, вы можете найти один, который я создал для себя, полезный: lispproject . Если он не соответствует вашим потребностям, продолжайте в том же духе и раскройте его или выберите репозиторий, из которого он получает шаблоны: lisp-project-template . Посмотрите на файл sh в репозитории lispproject, чтобы увидеть, как используются шаблоны. Также обратите внимание, что вам может потребоваться настроить вызовы sed для соответствия вашей платформе, поскольку я использую это в macOS. Альтернативные вызовы sed находятся в основном скрипте, но просто закомментированы, если они вам нужны.

0 голосов
/ 07 ноября 2008

это разработано для власти, а не удобства использования

так нравится большинству гуру Лисп.

...