2014-01-22 4 views
3

모드 데몬에서 기능을 실행하려면 sbcl에서 일부 lisp 코드를 작업하고 있습니다. 내가 함수 SB-thred를 사용할 때 문제는 : 다음과 같이 예를 들어, 스레드합니다실행중인 스레드 도움이 필요하십니까 SBCL

(sb-thread:make-thread (lambda() (progn (sleep 1) (when t (print "background action"))))) 

내가받을 다음과 같은 오류 메시지가

Not supported in unithread builds. [Condition of type SIMPLE-ERROR] 

에 어떤 문제가 있습니까? ... 도와 주셔서 감사합니다.

+4

SBCL이 멀티 스레딩 지원없이 빌드 된 것 같습니다. MacOS X를 사용하고 있습니까? 그렇다면 [이 기사] (http://haminhvuong.tumblr.com/post/22109095116/compile-sbcl-with-multi-thread-enabled-on-os-x)가 도움이 될 것입니다. –

+0

MacPorts에 대해 충분히 알지 못하지만 소스 기반 패키지 관리자처럼 보이므로 소스에서 빌드하는 것이 프로세스의 일부 여야하며 빌드 옵션을 지정하는 방법 만 찾아야합니다. 그것이 가치있는 일이라면, 내가 사용하는 리눅스 배포본 (Gentoo)은 같은 원칙을 기반으로하고 있으며'threads' USE 플래그를 설정하여 SBCL을 멀티 스레드화할 수 있습니다. –

+0

네 말이 맞아. 나는 Mac OS X mavericks를 사용하고있다. sbcl (버전 1.1.14)을 설치하기 위해 macports를 사용했습니다. 어떻게해야합니까? 아마 macports (???)로 sbcl을 제거한 다음 sbcl을 "수동으로"링크에 설명 된대로 설치해야합니까? ... 나는 그것을하기위한 또 다른 방법이 존재하기를 바랍니다 ... – yannics

답변

3

SBCL이 (현재 SBCL 사용) 스레드가 REPL

(member :sb-thread *features*) 

그렇지 않은 경우에 실행으로 구축 소스를 컴파일 할 경우 SBCL 확인하기 위해 맥 OS X에서 기본적으로 사용하지 않도록 스레드를 가지고있다. 설치에서

sh make.sh --with-sb-thread 
+0

컴파일이 끝날 때이 메시지는 다음과 같습니다 :'WARNING! 일부 contrib 모듈이 성공적으로 빌드되지 않았거나 자체 테스트를 통과하지 못했습니다. 기여하지 못했습니다 : sb-posix' – yannics

+0

문제점을보고했습니다 ([https://bugs.launchpad.net/sbcl/+bug/1272398](https://bugs.launchpad.net/sbcl/+bug/1272398 참조).)). 올바른 설정을 찾지 못했지만 여전히 sbcl을 sb-thread로 빌드 할 수 없습니다. – yannics