COMMON LISP JP > Archives > 2015/04/26

2015/04/26 00:08:31 UTCg000001
#
Linuxですが、SBCL、Lispworks、Allegro CL、CMUCL、CLISP、Clozure CL、ECL で試してみましたが、SLIMEから(sdl-examples:particles)を評価して動くようです。 なんとなくslimeとターミナルからの実行環境の違いが影響してそうですね。
#
もしかしたらslimeから起動している処理系がsbclでないということはないでしょうか。
#
CL-USER> (lisp-implementation-type )
;=> "LispWorks Personal Edition"
とすると確認できます。
#
ちなみに、ECLは、cffi_0.14.0だと %close-foreign-library を実装しないと動かないみたいです。
https://github.com/cffi/cffi/blob/master/src/cffi-ecl.lisp
2015/04/26 12:35:43 UTCimt
#
"SBCL"と表示されました、起動時も1.2.10となりますので間違っていないと思います。その後、いろいろ試したのですがターミナルからsbclでは、FLOATING-POINT-INEXACTを起こしまし、その後mandelbrotを実行すると似たようにタイトルバーにボタンが表示されなくなりました。 ターミナルの場合はボタンとタイトル文字が表示されないだけでタイトルバーは銀色に表示されましたが、これはまた別かもしれません。  恐らくslimeのconnectionがonだとCL-USER> と表示されるのですがconnectionを切っている * 表示の状態だと正しく動作するのでconnectoinかそうでないかの違いのようなのですが、connection 切っているとemacsからC-c C-kでコンパイルできないので結局ターミナルと変わらなくなってしまうのですよね……
2015/04/26 17:34:23 UTCg000001
#
(1) その後、いろいろ試したのですが…FLOATING-POINT-INEXACTの流れは、
(sdl-examples:mandelbrot)したらFLOATING-POINT-INEXACTが起きたということでしょうか
#
この場合は、
#
(sb-int:with-float-traps-masked
     (:invalid) (sdl-examples:mandelbrot))
#
とすれば良いようですが、自分手元では起きないですね sbcl 1.2.10 linuxですが。環境依存でしょうか。この件についてはMacOSXの人に試してもらう他ないですね
#
;; sdl-mandelbrot.lisp

(ql:quickload :lispbuilder-sdl)
(ql:quickload :lispbuilder-sdl-examples)


(sdl-examples:mandelbrot)
#
というファイルを作成し、sbcl --load sdl-mandelbrot.lisp で実行すると表示されます。
2015/04/26 17:44:01 UTCg000001
#
slimeのreplから(load "sdl-mandelbrot.lisp")を評価しても表示されます。(消すにはrepl上でc-c c-cしてqします)
#
(sdl-examples:particles)の方に話を戻すと、これは表示されたのでしょうか。これを表示するとFLOATING-POINT-INEXACTが起きているのでしょうか