如何获得常用Lisp中使用的编译器?

时间:2019-01-22 19:57:28

标签: common-lisp

如何获得常用Lisp中使用的编译器?

虚构示例:

(defun get-compiler ()
    (RETURN-COMPILER-NAME))

(defun some-factory ()
    (cond ((string= (get-compiler) "SBCL") (some))
               ((string= (get-compiler) "CMU") (some))
               ((string= (get-compiler) "MCL") (some))
               ((string= (get-compiler) "EXCL") (some))))

2 个答案:

答案 0 :(得分:5)

您可以使用lisp-implementation-type(请参阅manual

CL-USER> (lisp-implementation-type)
"SBCL"

CL-USER> (lisp-implementation-type)
"Clozure Common Lisp"

请注意,该函数返回实现的名称,该实现不一定是编译器。一些Common Lisp实现可以包括解释器,编译器,另一种编程语言的翻译器等。

答案 1 :(得分:-1)

我是这样来的:

(defun get-implementation ()
  (lisp-implementation-type))

(defun some-factory ()
  (let ((name (get-implementation)))
    (cond ((string= name "SBCL") name)
          ((string= name "CMU") name)
          ((string= name "MCL") name)
          ((string= name "EXCL") name))))