2015-04-18 2 views
1

загрузить шепелявость источника CC3.lisp начал сКак использовать скачана лисповский источник или библиотеку (с не-уверен, как-это работает Asdf подход)

(if (not (find-package "CC3")) 
    (defpackage "CC3")) 
(in-package "CC3") 

(export '(true false bogus rd sunday monday tuesday wednesday)) 

и другими.

Я хотел бы написать test.lisp, чтобы проверить его вычисления.

Можно сказать, что ASDF является новичком и просто хочет использовать один lisp-файл, который кажется чрезмерным, не говоря уже о том, что я нашел связь с загрузкой, пакетом, системой, модулями, ASDF, быстрым переполнением ,

Любой намек, как написать несколько сценариев, чтобы начать меня. Я подозреваю, что это будет связано

  • загружать файлы
  • (в-упаковке ...)

и т.д.

Однако, если ASDF/Quick-Лисп единственный выход, пожалуйста скажите мне также.

Спасибо.

=== Я сумел взломать Asdf рабочий процесс, как это под CCL (Mac OS X):

Получить исходный файл в Asdf каталоге:

(require 'asdf) 

;;; but no central-registry 

(setf asdf:*central-registry* 
    ;; Default directories, usually just the ``current directory'' 
    '(*default-pathname-defaults* 
    ;; Additional places where ASDF can find 
    ;; system definition files 
    #p"/Users/.../CC3-asdf/" 
    #p"/usr/share/common-lisp/systems/")) 

Тогда кажется, нужно работать только один раз

Мне это нужно (но не знаю, как это связано с asdf даже с использованием .asd, просто используйте его как lisp-файл и выполните все в редакторе CCL).

astro.asd

(defpackage #:astro-asd 
    (:use :cl :asdf)) 

(in-package :astro-asd) 

(defsystem astro 
    :name "astro" 
    :serial t ;; the dependencies are linear. 
    :components ((:file "cc3.0.cl-loadpackage") 
       (:file "cc3.0.cl") 
       (:file "cc3.0.cl-testing"))) 

После выполнения вышеуказанного файла как шепелявость под редактор CCL (выполнить все), а затем

Выполнить эту команду под CCL Listener

(asdf:operate 'asdf:load-op 'astro) 

После этого я могу выполните файл, который использует этот пакет, как это (увидев, что ему нравится в How can I specify the package name when launching a Lisp program from the command line?), но на самом деле не уверен, как все это сработало.

cc3-testing.lisp:

cc3::ujjain 
(cc3::hindu-sine-table 12) 
(format T "sunset ~a~%" (CC3::sunset (CC3::fixed-from-gregorian (CC3::gregorian-date 1996 CC3::february 25)) CC3::jerusalem)) 
;;; (use-package "CC3") not working ... conflict ... 
(in-package "CC3") ;;; work 
(format T "~a~%" (sunset (fixed-from-gregorian (gregorian-date 1996 february 25)) jerusalem)) 

Каталога теперь

--astro-asdf 
    --- astro-load-central-registory.lisp 
    --- astro.asd 
    --- cc3-... other lisp. 
    --- cc3-testing.lisp 

я должен загрузить astro.ad каждый раз, а затем выполнить эту команду Asdf. Затем я использую cc3-testing.lisp для тестирования системы cc3.

Это звук правильно?

ответ

1

Это похоже на старый совет до ASDF2.

1- для переносимости в CLISP, используйте (требуется «asdf»), а не (требуется «asdf»).

2- не нужно обусловливать вашу defpackage.

3- не нужно депакетировать и упаковывать в ваш .asd-файл.

4- вызов вашего файла package.lisp, cc3.lisp, test.lisp и ваших компонентов «пакет», «cc3», «test». тест

5- двигаться к своей собственной (defsystem "cc3/тест": зависит-на ("CC3"): компоненты (: файл "тест"))

+0

6- загрузить, поместить все в подкаталоге из ~/common-lisp/и use (asdf: load-system "cc3") –

+0

7- Я предполагаю, что ваша реализация обеспечивает ASDF 3.1.2 или новее. –

+0

Спасибо. Попытайтесь сегодня утром, но не совсем работайте ... повторите попытку сегодня вечером после работы. Не уверен в отношении cc3/test, а также не обязательно зависит от: синтаксиса компонента. Не удается найти cc3. Кажется, это не то же самое, что в руководстве asdf3. https://common-lisp.net/project/asdf/asdf.html#Loading-a-system –

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

  • Нет связанных вопросов^_^