2017-07-20 41 views
1

我有一個奇怪的錯誤組合。無法與CL21一起平行安裝(?)CL21.CORE.FUNCTION失敗

我正在使用CL21,我在我的包中,我想安裝lparallel。不可能的:

(ql:quickload :lparallel) 
To load "lparallel": 
    Load 1 ASDF system: 
    lparallel 
; Loading "lparallel" 
; 
; caught ERROR: 
; DYNAMIC-EXTENT on a weird thing: (CL21.CORE.FUNCTION:FUNCTION #:BODY-FN1) 
; 
; compilation unit aborted 
; caught 2 fatal ERROR conditions 
; caught 1 ERROR condition 
; Evaluation aborted on #<UIOP/LISP-BUILD:COMPILE-FILE-ERROR {1008956C13}>. 

我可以重現它在一個新的會話,但它是一個有點怪異:如果我quickload lparallel在cl-user,它抱怨上沒有找到符號CL21.CORE.FUNCTION,即使我沒有做任何與CL21然後:

The name "CL21.CORE.FUNCTION" does not designate any package. 

所以我ql:quickload CL21,然後重試加載lparallel。我得到第一個錯誤。

但是,我嘗試了Portacle中的一個新的圖像,我不能重現這一點。

有什麼想法?這是cl21,lparallel,quicklispasdf

+0

看起來像cl21通過用它自己的版本替換'#''來替代標準的可讀表。在新鮮的圖像中嘗試'(ql:quickload:lparallel:force t)'來擺脫使用cl21加載的文件。 – jkiiski

+0

不用這個命令。事實上,cl21取代了'#''。 – Ehvince

+1

我也填寫了一個問題:https://github.com/cl21/cl21/issues/99,並且一個工作建議是使用'(asdf:operate'asdf:load-op:lparallel:force t)'(或to刪除.fasd文件)。你近了! – Ehvince

回答

2

cl21似乎用它自己的版本取代了標準閱讀器宏#',該版本與lparallel不兼容。當你想在一個新的圖像加載lparallel,航空自衛隊將從該用cl21加載編譯.fasl -files加載它,所以你必須刪除這些文件或之後lparallel是強制編譯,帶有

(asdf:operate 'asdf:load-op :lparallel :force t) 

加載cl21用標準語言編譯不應該導致相同的問題。

+0

很清楚謝謝你! (除了「當你試圖加載時試圖加載」=>「除外」?) – Ehvince