Skip to content

Commit 40efb06

Browse files
committed
Implement the features procedure
This involves issue #8
1 parent 2ced867 commit 40efb06

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

airship-scheme.asd

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#-sbcl
1717
:babel
1818
:float-features
19+
:trivial-features
1920
:zr-utils)
2021
:components ((:file "package")
2122
(:file "scheme-boolean")

standard-procedures.lisp

+33-1
Original file line numberDiff line numberDiff line change
@@ -788,4 +788,36 @@
788788
(define-scheme-procedure (jiffies-per-second)
789789
internal-time-units-per-second)
790790

791-
;;; (features)
791+
(define-scheme-procedure (features)
792+
'(r7rs
793+
exact-closed
794+
exact-complex
795+
;; CCL doesn't have this in *features*, but SBCL and ECL do.
796+
#+(or ccl ieee-floating-point) ieee-float
797+
;; TODO: other implementations might also have full Unicode
798+
#+(and sbcl sb-unicode) full-unicode
799+
ratios
800+
#+unix posix
801+
;; Features guaranteed by trivial-features
802+
#+unix unix
803+
#+windows windows
804+
#+linux linux
805+
#+bsd bsd
806+
#+darwin darwin
807+
#+x86 x86
808+
#+x86-64 x86-64
809+
#+ppc ppc
810+
#+32-bit 32-bit
811+
#+64-bit 64-bit
812+
#+big-endian big-endian
813+
#+little-endian little-endian
814+
;; Supported CL implementations for now
815+
#+sbcl sbcl
816+
#+ccl ccl
817+
#+ecl ecl
818+
;; Threads, if bordeaux-threads is loaded
819+
#+thread-support thread-support
820+
;; Features describing this Scheme
821+
airship
822+
airship-scheme
823+
airship-scheme-0))

0 commit comments

Comments
 (0)