The API
特になし。
*FEATURES* and Read-Time Conditionalization
- read-time conditionalization とは、処理系毎に異なるコードを走らせることによって、総体としては処理系に渡ってポータブルなコードとなる機構である。
- *FEATURES*を評価していみると、
CL-USER> *FEATURES*
(:ALLEGRO-CL-EXPRESS :ALLEGRO-CL-TRIAL :IPV6 :ACL-SOCKET :HIPER-SOCKET
:PROFILER :MULTIPROCESSING :FLAVORS :LITTLE-ENDIAN :GSGC :COMPILER
:USE-STRUCTS-IN-COMPILER :CLOS :DYNLOAD :DLFCN :UNIX :LINUX :REDHAT9
:LINUX86 :X86 :VERIFY-STACK :VERIFY-CAR-CDR :ENCAPSULATING-EFS
:RELATIVE-PACKAGE-NAMES :MODULE-VERSIONS :IEEE :IEEE-FLOATING-POINT
:CONFORMING-IEEE :ICS :COMMON-LISP :ANSI-CL :DRAFT-ANSI-CL-2 :X3J13
:ALLEGRO :EXCL :FRANZ-INC :ALLEGRO-VERSION>= :ALLEGRO-VERSION=
:NEW-ENVIRONMENTS :SYMBOL-VALUE-VECTOR :PROCESS7 :USE-THREAD-LIBS
:DYNLOAD-ACL-LIBRARY :ALLEGRO-V8.1 :TLSVALUES :TLSBNP :SSL-SUPPORT)
CL-USER>
UbuntuなのにREDHAT9と出ているところが気になる。
別のシステムでも取ってみる。
CL-USER> *FEATURES*
(:ALLEGRO-CL-ENTERPRISE :IPV6 :ACL-SOCKET :HIPER-SOCKET :PROFILER
:MULTIPROCESSING :FLAVORS :LITTLE-ENDIAN :GSGC :COMPILER
:USE-STRUCTS-IN-COMPILER :CLOS :DYNLOAD :DLFCN :UNIX :LINUX :AMD64
:LINUX86-64 :X86-64 :ENCAPSULATING-EFS :RELATIVE-PACKAGE-NAMES
:MODULE-VERSIONS :IEEE :IEEE-FLOATING-POINT :CONFORMING-IEEE :ICS
:COMMON-LISP :ANSI-CL :DRAFT-ANSI-CL-2 :X3J13 :ALLEGRO :EXCL
:FRANZ-INC :ALLEGRO-VERSION>= :ALLEGRO-VERSION= :NEW-ENVIRONMENTS
:SYMBOL-VALUE-VECTOR :PROCESS7 :DYNLOAD-ACL-LIBRARY :ALLEGRO-V8.1
:64BIT :TLSVALUES :TLSBNP :SSL-SUPPORT)
CL-USER>
逆にこっちは、CentOSなのだがREDHATはない。。。
まあ、*BSDと言われているわけではないので深掘りしない。
パッケージのところがわかりにくい。メモをとりながら。
- どのようなパッケージが存在するかは、処理系毎に異なる。
- *FEATURES*に含まれるsymbolsは、通常keywordsである。
- feature expressionsを読んでいる間は、the readerは、KEYWORDパッケージに*PACKAGE*をbinds(する)。
- "Thus, a name with no package qualification will be read as a keyword symbol." なんじゃこりゃ?
うーん。何がいいたいのか。パッケージの章をやった後、再度考えることにする。
Listing a Directory
この本、その場での説明なしにCLの関数を利用することが増えてきた。
そこで、SLIMEのC-cC-dhでhyperspecを参照することにする。
デフォルトでは、mozillaを立ち上げようとするので、w3mに変更する。
(setq browse-url-browser-function 'w3m-browse-url)
(autoload 'w3m-browse-url "w3m" "Ask a WWW browser to show a URL." t)
(global-set-key "¥C-xm" 'browse-url-at-point)
(defadvice browse-url-at-point
(around change-browse-url-browser-function activate compile)
(let ((browse-url-browser-function
(if (eq major-mode 'w3m-mode)
'browse-url-netscape
'w3m-browse-url)))
ad-do-it))
SLIMEがもっている調査機能はここ。
http://common-lisp.net/project/slime/doc/html/Documentation.html#Documentation
うーん、別frameにw3mが立ち上がるようにしたい。elispをいつか勉強するということで。
Testing a File's Existence
- labelsはlocal functions and macrosを定義。(HyperSpec)
0 件のコメント:
コメントを投稿