File: software.lisp

package info (click to toggle)
cl-environment 1%3A1.3-2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 196 kB
  • ctags: 137
  • sloc: lisp: 856; makefile: 43; sh: 28
file content (134 lines) | stat: -rw-r--r-- 3,533 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
;;; -*- Mode: Lisp -*-

;;; software.lisp --
;;;
;;; Copyright (c) 2000-2005 Marco Antoniotti, all rights reserved.
;;; This software is released under the terms of the GNU Lesser General
;;; Public License (LGPL, see file COPYRIGHT for details).

(in-package "CL.ENVIRONMENT")

(defclass software ()
  ((type :initarg :type :reader software-type)
   (version :initarg :version :reader software-version)
   )
  (:documentation "The CL.ENVIRONMENT Software Class."))


;;; Known CL implementations.
;;; The hierarchy is rather arbitrary, representing "derivation".

(defclass generic-common-lisp-implementation (software
					      feature-tagged-type-class)
  ((type :reader common-lisp-implementation-type)
   (version :reader common-lisp-implementation-version)
   (tag :reader common-lisp-implementation-feature-tag
	:reader cl-feature-tag
	:type symbol)
   )
  (:documentation "The CL.ENVIRONMENT Common Lisp Implementation Class.")
  (:default-initargs :type (lisp-implementation-type)
                     :version (lisp-implementation-version)))


;;; Tags for CL implementations
;;; CMUCL	:cmucl
;;; SBCL	:sbcl
;;; ACL		:allegro
;;; CLISP       :clisp
;;; LW		:lispworks
;;; Corman Lisp	:corman-lisp
;;; ECLS	:ecl
;;; etc etc
;;; See below!!!

(defclass cmucl (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :cmu))

(defclass sbcl (cmucl)
  ()
  (:default-initargs :feature-tag :sbcl))

(defclass allegro (generic-common-lisp-implementation)
  ((case-sensitive :type boolean :initarg :case-sensitive
		   :reader software-case-sensitive)
   (characters-16bits :type boolean :initarg :characters-16bits
		      :reader software-characters-16bits))
  (:default-initargs :feature-tag :allegro))

(defclass lispworks (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :lispworks))

(defclass clisp (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :clisp))

(defclass kcl (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :kcl))

(defclass ibcl (kcl)
  ()
  (:default-initargs :feature-tag :ibcl))

(defclass akcl (kcl)
  ()
  (:default-initargs :feature-tag :akcl))

(defclass ecolisp (kcl)
  ()
  (:default-initargs :feature-tag :ecolisp))

(defclass ecl (ecolisp)
  ()
  (:default-initargs :feature-tag :ecl))

(defclass gcl (kcl)
  ()
  (:default-initargs :feature-tag :gcl))

(defclass mcl (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :mcl))

(defclass lucid (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :lucid))

(defclass lcl (lucid)
  ()
  (:default-initargs :feature-tag :lcl))

(defclass scl (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :genera)) ; Symbolics Genera.

(defclass corman (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :corman-lisp))

(defclass eclipse (generic-common-lisp-implementation)
  ()
  (:default-initargs :feature-tag :eclipse))


;;; The default binary directory name is the lowercase of the feature tag

(defgeneric software-binary-directory-name (software))

(defmethod software-binary-directory-name ((software software))
  (string-downcase (symbol-name (cl-feature-tag software))))


;;; A generic function that allows for the specification of a "default
;;; source extension".

(defgeneric software-source-file-extension (sw)
  )

(defmethod software-source-file-extension ((sw generic-common-lisp-implementation))
  "lisp")

;;; end of file -- software.lisp --