2017-02-20 29 views
0

Saving CLOS objects中的sds的註釋提供了對Common Lisp開放代碼集合(CLOCC)文件(closio.lisp)的引用,用於可讀地讀取編寫CLOS對象的&。有關安裝該軟件的說明,請參閱Installation of CLOCC。但是,以前沒有使用過CLOCC,我希望爲設置讀/寫CLOS對象設置一些額外的指導。以下是到目前爲止我的init文件(.clinit)的附加內容:安裝CLOCC&packages

(in-package :cl-user) 
(setq *clocc-root* "D:\\clocc\\") 
(load "D:\\clocc.fasl") 
(load 
    (compile-file ;warns about |make|::COMPILED-FILE-P being undefined 
    (translate-logical-pathname 
     "clocc:src;defsystem;defsystem"))) 
(dolist (s '("clocc:src;cllib;base" "clocc:src;port;sys")) 
    (mk:add-registry-location (translate-logical-pathname s))) 

有關如何添加下一個內容的說明,請重新參考。

+0

你遵循'安裝說明'你鏈接到一步一步的文件?你需要使用'mk:oos'編譯文件,然後加載你需要的任何文件,並且你很好。 – sds

+0

我試過的下兩個語句是: '(mk:oos「cllib」:compile)''和'(mk:oos「port」:compile)' 但它們產生一個錯誤 - 例如,找不到系統名爲「cllib」。另外,嘗試'(mk:oos「src \\ cllib」)'目錄所在的位置,但同樣的錯誤。 – davypough

回答

1

說明已過時。抱歉。

installation instructions現在說(我刪除你不需要的系統):

(compile-file "c:/gnu/clocc/clocc") ; or whatever ... 
(load *) 
;; * load the defsystem facility 
;; most lisps come with "asdf"; if this fails, get it yourself from 
;; https://common-lisp.net/project/asdf/ 
(require "asdf") 

;; * compile some systems 
(asdf:compile-system "port") 
(asdf:compile-system "cllib") 
... 

您將需要遵循asdf instructions

$ mkdir -p ~/.config/common-lisp/source-registry.conf.d/ 
$ echo '(:tree "c:/gnu/clocc/")' > asdf.conf 
+0

Doh,到二壘(使用Allegro CL)。編譯mop.lisp(在端口中)時,'slot-definition-initargs'是未定義的函數,可以選擇調用'mop:slot-definition-initargs'。這樣做會對'class-direct-slots'產生相同的錯誤。 – davypough

+0

看起來像'port:mop'需要爲最新的Allegro進行更新。我們需要一些來回。請用'port:mop.lisp'中第19行的':mop'替換':clos'。它現在工作嗎? – sds

+0

在第19行(對於allegro)將':clos'改爲':mop'對於'slot-definition-initargs'仍然會產生相同的錯誤。繼續使用'mop:slot-definition-initargs',然後用'mop:class-direct-slots',然後獲得錯誤:沒有方法適用於通用函數#)。 – davypough

相關問題