2015-11-27 2 views
0

Когда я использую Eclipse или Visual Studio или Xcode, структура проекта создается автоматически, и можно сразу начать работу.Структура проектов lisp

Теперь я пытаюсь создать проект в выпуске Allegro CL express, и если я собираю все файлы Lisp и запускаю его, он показывает ошибки пакета, которые, я считаю, связаны с тем, что файлы не выполняются в определенном порядке, поскольку пакеты должны быть созданный в некотором файле, который должен быть выполнен первым.

Я не могу понять, как подойти к этой проблеме. Нет никакой информации о создании крупных проектов в lisp и о том, как постепенно обрабатывать его размер и сложность.

Я хочу порт Maxima на Allegro CL. Могу ли я получить некоторую помощь здесь, а также, если можно объяснить этот разрыв кода в нескольких файлах и пакетах и ​​в основном как загрузить всю систему.

Я знаю основы lisp, но я не понимаю структуру проекта lisp.

+1

Я нашел очень полезным [Quickproject] (http://xach.livejournal.com/278047.html), инструмент, который вводит вас нежно в сложности стандартного способа построения Common Lisp, [ASDF] (https : //common-lisp.net/project/asdf/). – Renzo

+0

@Renzo: Я знаю об этом, но как его использовать. Я думаю, что он подходит только для небольших проектов. – Rorschach

+1

Итак, очевидный совет - прочитать ASDF [documentation] (https://common-lisp.net/project/asdf/#documentation), но я думаю, что было бы полезно скачать какой-то сложный проект из [Quicklisp] (http://quicklisp.org) и посмотрите, как он построен. В качестве примера можно привести множество проектов. Еще одно интересное чтение - статья о [последней версии системы] (http://fare.tunes.org/files/asdf3/asdf3-2014.html). – Renzo

ответ

6

Хорошая новость: у Maxima уже есть порт Allegro. Вы можете построить его с помощью ./configure --with-acl, затем введите make. Я не использовал это недавно, но я бы ожидал, что это сработает.

Если вы хотите узнать больше о том, как материал загружен, посмотрите на src/maxima.system. Это немного архаично, потому что написано для defsystem, которое теперь было заменено почти везде на asdf.

+0

Acl IDE заканчивается размером с кучу. Он создается с помощью acl, но автоматически не преобразуется в проект. – Rorschach

6

Ну, Maxima может быть скомпилирован через defsystem или asdf несколькими Lisps, включая Allegro. Подробности см. В INSTALL.lisp.

Единственное ограничение, о котором я знаю, это то, что версия Allegro Express не может скомпилировать код, полученный из SLATEC (функции, переведенные из Fortran, слишком велики или что-то в этом роде). Поэтому вам нужно будет прокомментировать материал SLATEC в maxima.system или maxima.asd.

Смежные вопросы