From 3b2a698fb60a82be577f893e7c1e1987f45db809 Mon Sep 17 00:00:00 2001
From: Peter Bex
Date: Sat, 22 Apr 2017 21:37:25 +0200
Subject: [PATCH 1/2] Add chicken.platform module (incomplete)
---
README | 1 +
batch-driver.scm | 1 +
chicken-bug.scm | 1 +
chicken-install.scm | 1 +
chicken-syntax.scm | 4 +--
chicken.import.scm | 20 +++++++--------
csi.scm | 1 +
defaults.make | 5 ++--
distribution/manifest | 2 ++
eval.scm | 3 ++-
expand.scm | 7 ++---
extras.scm | 2 +-
library.scm | 65 ++++++++++++++++++++++++++++++-----------------
modules.scm | 4 ++-
pathname.scm | 3 ++-
posix.scm | 2 +-
read-syntax.scm | 2 +-
rules.make | 25 +++++++++++++++---
scripts/makedist.scm | 3 ++-
srfi-4.scm | 3 ++-
tests/apply-test.scm | 2 +-
tests/arithmetic-test.scm | 4 +--
tests/fixnum-tests.scm | 2 ++
tests/lolevel-tests.scm | 2 +-
tests/numbers-test.scm | 2 +-
tests/posix-tests.scm | 3 ++-
tests/version-tests.scm | 2 +-
types.db | 26 +++++++++++--------
28 files changed, 126 insertions(+), 72 deletions(-)
diff --git a/README b/README
index 360d2b6..633d364 100644
--- a/README
+++ b/README
@@ -308,6 +308,7 @@ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/
| | |-- chicken.lolevel.import.so
| | |-- chicken.memory.import.so
| | |-- chicken.pathname.import.so
+ | | |-- chicken.platform.import.so
| | |-- chicken.port.import.so
| | |-- chicken.posix.import.so
| | |-- chicken.pretty-print.import.so
diff --git a/batch-driver.scm b/batch-driver.scm
index 23a1db6..d57d5dd 100644
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@ -40,6 +40,7 @@
chicken.format
chicken.gc
chicken.pathname
+ chicken.platform
chicken.pretty-print
chicken.time
chicken.compiler.support
diff --git a/chicken-bug.scm b/chicken-bug.scm
index e2d294b..e097754 100644
--- a/chicken-bug.scm
+++ b/chicken-bug.scm
@@ -33,6 +33,7 @@
chicken.pathname
chicken.port
chicken.posix
+ chicken.platform
chicken.time)
(define-constant +bug-report-file+ "chicken-bug-report.~a-~a-~a")
diff --git a/chicken-install.scm b/chicken-install.scm
index d3d7558..7dfa68b 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -40,6 +40,7 @@
(import (chicken io))
(import (chicken time))
(import (chicken pathname))
+(import (chicken platform))
(import (chicken process))
(import (chicken pretty-print))
diff --git a/chicken-syntax.scm b/chicken-syntax.scm
index 4441055..c4d92e7 100644
--- a/chicken-syntax.scm
+++ b/chicken-syntax.scm
@@ -1357,6 +1357,4 @@
;; register features
-
-(eval-when (compile load eval)
- (register-feature! 'srfi-8 'srfi-11 'srfi-15 'srfi-16 'srfi-26 'srfi-31) )
+(chicken.platform#register-feature! 'srfi-8 'srfi-11 'srfi-15 'srfi-16 'srfi-26 'srfi-31)
diff --git a/chicken.import.scm b/chicken.import.scm
index 9af70ec..433001f 100644
--- a/chicken.import.scm
+++ b/chicken.import.scm
@@ -35,12 +35,12 @@
blob-size
blob?
blob=?
- build-platform
+ (build-platform . chicken.platform#build-platform)
call/cc
case-sensitive
char-name
(chicken-home . chicken.eval#chicken-home)
- chicken-version
+ (chicken-version . chicken.platform#chicken-version)
command-line-arguments
condition-predicate
condition-property-accessor
@@ -67,8 +67,8 @@
exit-handler
(expand . chicken.expand#expand)
(extension-information . chicken.eval#extension-information)
- feature?
- features
+ (feature? . chicken.platform#feature?)
+ (features . chicken.platform#features)
file-exists?
finite?
(fixnum-bits . chicken.fixnum#fixnum-bits)
@@ -123,8 +123,8 @@
(load-noisily . chicken.eval#load-noisily)
(load-relative . chicken.eval#load-relative)
(load-verbose . chicken.eval#load-verbose)
- machine-byte-order
- machine-type
+ (machine-byte-order . chicken.platform#machine-byte-order)
+ (machine-type . chicken.platform#machine-type)
make-blob
make-composite-condition
make-parameter
@@ -158,7 +158,7 @@
quotient&modulo
quotient&remainder
ratnum?
- register-feature!
+ (register-feature! . chicken.platform#register-feature!)
remprop!
rename-file
(repository-path . chicken.eval#repository-path)
@@ -173,8 +173,8 @@
signum
singlestep
sleep
- software-type
- software-version
+ (software-type . chicken.platform#software-type)
+ (software-version . chicken.platform#software-version)
string->blob
string->uninterned-symbol
(strip-syntax . chicken.expand#strip-syntax)
@@ -185,7 +185,7 @@
symbol-plist
(syntax-error . chicken.expand#syntax-error)
system
- unregister-feature!
+ (unregister-feature! . chicken.platform#unregister-feature!)
vector-resize
vector-copy!
void
diff --git a/csi.scm b/csi.scm
index ad9583b..c4da2e0 100644
--- a/csi.scm
+++ b/csi.scm
@@ -51,6 +51,7 @@ EOF
chicken.gc
chicken.keyword
chicken.io
+ chicken.platform
chicken.port
chicken.pretty-print
chicken.repl)
diff --git a/defaults.make b/defaults.make
index 675c5cd..51af1cd 100644
--- a/defaults.make
+++ b/defaults.make
@@ -266,8 +266,9 @@ CHICKEN_PROGRAM_OPTIONS += $(if $(PROFILE_OBJECTS),-profile)
PRIMITIVE_IMPORT_LIBRARIES = chicken chicken.csi chicken.foreign
DYNAMIC_IMPORT_LIBRARIES = srfi-4
DYNAMIC_CHICKEN_IMPORT_LIBRARIES = bitwise errno file.posix fixnum flonum \
- format gc io keyword locative memory posix pretty-print process \
- process.signal process-context random time time.posix
+ format gc io keyword locative memory platform posix \
+ pretty-print process process.signal process-context random \
+ time time.posix
DYNAMIC_CHICKEN_COMPILER_IMPORT_LIBRARIES = user-pass
DYNAMIC_CHICKEN_UNIT_IMPORT_LIBRARIES = continuation data-structures \
eval expand file files internal irregex lolevel pathname port \
diff --git a/distribution/manifest b/distribution/manifest
index 3698913..834a7b8 100644
--- a/distribution/manifest
+++ b/distribution/manifest
@@ -310,6 +310,8 @@ chicken.memory.import.scm
chicken.memory.import.c
chicken.pathname.import.scm
chicken.pathname.import.c
+chicken.platform.import.scm
+chicken.platform.import.c
chicken.port.import.scm
chicken.port.import.c
chicken.posix.import.scm
diff --git a/eval.scm b/eval.scm
index 7408914..2e410f4 100644
--- a/eval.scm
+++ b/eval.scm
@@ -63,7 +63,8 @@
(import chicken.expand
chicken.foreign
chicken.internal
- chicken.keyword)
+ chicken.keyword
+ chicken.platform)
(include "common-declarations.scm")
(include "mini-srfi-1.scm")
diff --git a/expand.scm b/expand.scm
index 3a6b436..9e6b1d5 100644
--- a/expand.scm
+++ b/expand.scm
@@ -52,7 +52,8 @@
expansion-result-hook)
(import scheme chicken
- chicken.keyword)
+ chicken.keyword
+ chicken.platform)
(include "common-declarations.scm")
@@ -1417,7 +1418,7 @@
(##sys#extend-macro-environment
'cond-expand
- '()
+ '((feature? . chicken.platform#feature?))
(##sys#er-transformer
(lambda (form r c)
(let ((clauses (cdr form))
@@ -1430,7 +1431,7 @@
x
(cons 'cond-expand clauses)) )
(define (test fx)
- (cond ((symbol? fx) (##sys#feature? (strip-syntax fx)))
+ (cond ((symbol? fx) (feature? (strip-syntax fx)))
((not (pair? fx)) (err fx))
(else
(let ((head (car fx))
diff --git a/extras.scm b/extras.scm
index afc0683..a49b96d 100644
--- a/extras.scm
+++ b/extras.scm
@@ -566,7 +566,7 @@
(module chicken.format
(format fprintf printf sprintf)
-(import scheme chicken)
+(import scheme chicken chicken.platform)
(define fprintf0
(lambda (loc port msg args)
diff --git a/library.scm b/library.scm
index 1063e40..9b62fb6 100644
--- a/library.scm
+++ b/library.scm
@@ -42,7 +42,8 @@
(not inline ##sys#user-read-hook ##sys#error-hook ##sys#signal-hook
##sys#sleep-hook ##sys#schedule ##sys#default-read-info-hook
##sys#infix-list-hook ##sys#sharp-number-hook
- ##sys#user-print-hook ##sys#user-interrupt-hook)
+ ##sys#user-print-hook ##sys#user-interrupt-hook
+ ##sys#windows-platform ##sys#features)
(foreign-declare #<
#include
@@ -4384,24 +4385,41 @@ EOF
;;; Platform configuration inquiry:
+(module chicken.platform
+ (build-platform chicken-version
+ feature? features software-type
+ software-version register-feature! unregister-feature!
+ machine-byte-order machine-type
+
+ ;;; TODO, move these from eval:
+ ;; chicken-home extension-information
+ ;; provide provided? repository-path
+
+ ;;; TODO, move these from posix:
+ ;; get-host-name system-information
+ )
+
+(import scheme chicken.fixnum chicken.foreign chicken.keyword)
+(import (only chicken when unless))
+
(define software-type
- (let ([sym (string->symbol ((##core#primitive "C_software_type")))])
+ (let ((sym (string->symbol ((##core#primitive "C_software_type")))))
(lambda () sym) ) )
(define machine-type
- (let ([sym (string->symbol ((##core#primitive "C_machine_type")))])
+ (let ((sym (string->symbol ((##core#primitive "C_machine_type")))))
(lambda () sym) ) )
(define machine-byte-order
- (let ([sym (string->symbol ((##core#primitive "C_machine_byte_order")))])
+ (let ((sym (string->symbol ((##core#primitive "C_machine_byte_order")))))
(lambda () sym) ) )
(define software-version
- (let ([sym (string->symbol ((##core#primitive "C_software_version")))])
+ (let ((sym (string->symbol ((##core#primitive "C_software_version")))))
(lambda () sym) ) )
(define build-platform
- (let ([sym (string->symbol ((##core#primitive "C_build_platform")))])
+ (let ((sym (string->symbol ((##core#primitive "C_build_platform")))))
(lambda () sym) ) )
(define ##sys#windows-platform
@@ -4411,10 +4429,10 @@ EOF
(define (chicken-version #!optional full)
(define (get-config)
- (let ([bp (build-platform)]
- [st (software-type)]
- [sv (software-version)]
- [mt (machine-type)] )
+ (let ((bp (build-platform))
+ (st (software-type))
+ (sv (software-version))
+ (mt (machine-type)) )
(define (str x)
(if (eq? 'unknown x)
""
@@ -4440,10 +4458,9 @@ EOF
(or (##sys#build-tag) "")))
##sys#build-version) )
-
;;; Feature identifiers:
-(define ##sys#->feature-id
+(define ->feature-id ; TODO: export this? It might be useful..
(let ()
(define (err . args)
(apply ##sys#signal-hook #:type-error "bad argument type - not a valid feature identifer" args) )
@@ -4467,7 +4484,7 @@ EOF
(let ((check (lambda (f)
(unless (eq? 'unknown f)
- (set! ##sys#features (cons (##sys#->feature-id f) ##sys#features))))))
+ (set! ##sys#features (cons (->feature-id f) ##sys#features))))))
(check (software-type))
(check (software-version))
(check (build-platform))
@@ -4488,27 +4505,26 @@ EOF
(set! ##sys#features
(let ((major (##sys#number->string (foreign-value "C_MAJOR_VERSION" int)))
(minor (##sys#number->string (foreign-value "C_MINOR_VERSION" int))))
- (cons (##sys#->feature-id (string-append "chicken-" major))
- (cons (##sys#->feature-id
- (string-append "chicken-" major "." minor))
+ (cons (->feature-id (string-append "chicken-" major))
+ (cons (->feature-id (string-append "chicken-" major "." minor))
##sys#features))))
(define (register-feature! . fs)
(for-each
(lambda (f)
- (let ([id (##sys#->feature-id f)])
+ (let ((id (->feature-id f)))
(unless (memq id ##sys#features) (set! ##sys#features (cons id ##sys#features))) ) )
fs)
(##core#undefined) )
(define (unregister-feature! . fs)
- (let ([fs (map ##sys#->feature-id fs)])
+ (let ((fs (map ->feature-id fs)))
(set! ##sys#features
- (let loop ([ffs ##sys#features])
+ (let loop ((ffs ##sys#features))
(if (null? ffs)
'()
- (let ([f (##sys#slot ffs 0)]
- [r (##sys#slot ffs 1)] )
+ (let ((f (##sys#slot ffs 0))
+ (r (##sys#slot ffs 1)) )
(if (memq f fs)
(loop r)
(cons f (loop r)) ) ) ) ) )
@@ -4517,13 +4533,14 @@ EOF
(define (features) ##sys#features)
(define (feature? . ids)
- (let loop ([ids ids])
+ (let loop ((ids ids))
(or (null? ids)
- (and (memq (##sys#->feature-id (##sys#slot ids 0)) ##sys#features)
+ (and (memq (->feature-id (##sys#slot ids 0)) ##sys#features)
(loop (##sys#slot ids 1)) ) ) ) )
-(define ##sys#feature? feature?)
+);chicken.platform
+(import chicken.platform)
;;; Access backtrace:
diff --git a/modules.scm b/modules.scm
index 91099db..292deda 100644
--- a/modules.scm
+++ b/modules.scm
@@ -41,7 +41,8 @@
(import chicken.expand
chicken.internal
- chicken.keyword)
+ chicken.keyword
+ chicken.platform)
(define-alias dd d)
(define-alias dm d)
@@ -964,6 +965,7 @@
(##sys#register-module-alias 'lolevel 'chicken.lolevel)
(##sys#register-module-alias 'memory 'chicken.memory)
(##sys#register-module-alias 'pathname 'chicken.pathname)
+(##sys#register-module-alias 'platform 'chicken.platform)
(##sys#register-module-alias 'port 'chicken.port)
(##sys#register-module-alias 'posix 'chicken.posix)
(##sys#register-module-alias 'pretty-print 'chicken.pretty-print)
diff --git a/pathname.scm b/pathname.scm
index 00ac0ac..6c3a480 100644
--- a/pathname.scm
+++ b/pathname.scm
@@ -49,7 +49,8 @@
(import chicken scheme
chicken.data-structures
- chicken.irregex)
+ chicken.irregex
+ chicken.platform)
(include "common-declarations.scm")
diff --git a/posix.scm b/posix.scm
index e3b2b18..7d6dc43 100644
--- a/posix.scm
+++ b/posix.scm
@@ -118,7 +118,7 @@
with-output-to-pipe process process* pipe/buf process-group-id
create-session)
-(import chicken scheme chicken.posix)
+(import chicken scheme chicken.posix chicken.platform)
;;; Like `system', but bombs on nonzero return code:
diff --git a/read-syntax.scm b/read-syntax.scm
index 6a97e07..9c002dd 100644
--- a/read-syntax.scm
+++ b/read-syntax.scm
@@ -32,7 +32,7 @@
(copy-read-table define-reader-ctor set-read-syntax!
set-sharp-read-syntax! set-parameterized-read-syntax!)
-(import scheme chicken)
+(import scheme chicken chicken.platform)
(include "common-declarations.scm")
diff --git a/rules.make b/rules.make
index 44dd0c4..a3d9757 100644
--- a/rules.make
+++ b/rules.make
@@ -510,6 +510,7 @@ $(eval $(call declare-emitted-import-lib-dependency,chicken.fixnum,library))
$(eval $(call declare-emitted-import-lib-dependency,chicken.flonum,library))
$(eval $(call declare-emitted-import-lib-dependency,chicken.gc,library))
$(eval $(call declare-emitted-import-lib-dependency,chicken.keyword,library))
+$(eval $(call declare-emitted-import-lib-dependency,chicken.platform,library))
$(eval $(call declare-emitted-import-lib-dependency,chicken.time,library))
$(eval $(call declare-emitted-import-lib-dependency,chicken.format,extras))
$(eval $(call declare-emitted-import-lib-dependency,chicken.io,extras))
@@ -538,6 +539,7 @@ batch-driver.c: batch-driver.scm mini-srfi-1.scm \
chicken.format.import.scm \
chicken.gc.import.scm \
chicken.pathname.import.scm \
+ chicken.platform.import.scm \
chicken.pretty-print.import.scm \
chicken.time.import.scm
c-platform.c: c-platform.scm mini-srfi-1.scm \
@@ -608,7 +610,8 @@ support.c: support.scm mini-srfi-1.scm \
modules.c: modules.scm \
chicken.expand.import.scm \
chicken.internal.import.scm \
- chicken.keyword.import.scm
+ chicken.keyword.import.scm \
+ chicken.platform.import.scm
csc.c: csc.scm \
chicken.data-structures.import.scm \
chicken.eval.import.scm \
@@ -621,6 +624,7 @@ csi.c: csi.scm \
chicken.format.import.scm \
chicken.gc.import.scm \
chicken.keyword.import.scm \
+ chicken.platform.import.scm \
chicken.io.import.scm \
chicken.port.import.scm \
chicken.pretty-print.import.scm \
@@ -631,6 +635,7 @@ chicken-bug.c: chicken-bug.scm \
chicken.io.import.scm \
chicken.keyword.import.scm \
chicken.pathname.import.scm \
+ chicken.platform.import.scm \
chicken.port.import.scm \
chicken.posix.import.scm \
chicken.time.import.scm
@@ -653,6 +658,7 @@ chicken-install.c: chicken-install.scm \
chicken.format.import.scm \
chicken.io.import.scm \
chicken.irregex.import.scm \
+ chicken.platform.import.scm \
chicken.pathname.import.scm \
chicken.port.import.scm \
chicken.posix.import.scm \
@@ -666,17 +672,21 @@ chicken-uninstall.c: chicken-uninstall.scm \
chicken.pathname.import.scm \
chicken.port.import.scm \
chicken.posix.import.scm
+chicken-syntax.c: chicken-syntax.scm \
+ chicken.platform.import.scm
srfi-4.c: srfi-4.scm \
chicken.bitwise.import.scm \
chicken.expand.import.scm \
chicken.foreign.import.scm \
- chicken.gc.import.scm
+ chicken.gc.import.scm \
+ chicken.platform.import.scm
posixunix.c: posixunix.scm \
chicken.bitwise.import.scm \
chicken.foreign.import.scm \
chicken.irregex.import.scm \
chicken.memory.import.scm \
chicken.pathname.import.scm \
+ chicken.platform.import.scm \
chicken.port.import.scm \
chicken.time.import.scm
posixwin.c: posixwin.scm \
@@ -685,12 +695,14 @@ posixwin.c: posixwin.scm \
chicken.irregex.import.scm \
chicken.memory.import.scm \
chicken.pathname.import.scm \
+ chicken.platform.import.scm \
chicken.port.import.scm \
chicken.time.import.scm
data-structures.c: data-structures.scm \
chicken.foreign.import.scm
expand.c: expand.scm \
chicken.keyword.import.scm \
+ chicken.platform.import.scm \
chicken.internal.import.scm
extras.c: extras.scm \
chicken.data-structures.import.scm \
@@ -699,7 +711,8 @@ eval.c: eval.scm \
chicken.expand.import.scm \
chicken.foreign.import.scm \
chicken.internal.import.scm \
- chicken.keyword.import.scm
+ chicken.keyword.import.scm \
+ chicken.platform.import.scm
repl.c: repl.scm \
chicken.eval.import.scm
file.c: file.scm \
@@ -715,9 +728,12 @@ lolevel.c: lolevel.scm \
chicken.foreign.import.scm
pathname.c: pathname.scm \
chicken.data-structures.import.scm \
- chicken.irregex.import.scm
+ chicken.irregex.import.scm \
+ chicken.platform.import.scm
port.c: port.scm \
chicken.io.import.scm
+read-syntax.c: read-syntax.scm \
+ chicken.platform.import.scm
tcp.c: tcp.scm \
chicken.foreign.import.scm \
chicken.port.import.scm \
@@ -736,6 +752,7 @@ library.c: $(SRCDIR)library.scm $(SRCDIR)banner.scm $(SRCDIR)common-declarations
-emit-import-library chicken.flonum \
-emit-import-library chicken.gc \
-emit-import-library chicken.keyword \
+ -emit-import-library chicken.platform \
-emit-import-library chicken.time
internal.c: $(SRCDIR)internal.scm $(SRCDIR)mini-srfi-1.scm
$(bootstrap-lib) -emit-import-library chicken.internal
diff --git a/scripts/makedist.scm b/scripts/makedist.scm
index 01898ba..22d9d09 100644
--- a/scripts/makedist.scm
+++ b/scripts/makedist.scm
@@ -1,7 +1,8 @@
;;;; makedist.scm - Make distribution tarballs
-(use data-structures files io irregex pathname posix setup-api (chicken process))
+(use data-structures files io irregex pathname posix setup-api
+ (chicken process) (chicken platform))
(include "mini-srfi-1.scm")
diff --git a/srfi-4.scm b/srfi-4.scm
index 3d532d8..22266c2 100644
--- a/srfi-4.scm
+++ b/srfi-4.scm
@@ -82,7 +82,8 @@ EOF
(import chicken.bitwise
chicken.expand
chicken.foreign
- chicken.gc)
+ chicken.gc
+ chicken.platform)
(include "common-declarations.scm")
diff --git a/tests/apply-test.scm b/tests/apply-test.scm
index eb9dd91..563effa 100644
--- a/tests/apply-test.scm
+++ b/tests/apply-test.scm
@@ -1,4 +1,4 @@
-(require-extension format)
+(use format (chicken platform))
(define (list-tabulate n proc)
(let loop ((i 0))
diff --git a/tests/arithmetic-test.scm b/tests/arithmetic-test.scm
index 9584c69..36e6c13 100644
--- a/tests/arithmetic-test.scm
+++ b/tests/arithmetic-test.scm
@@ -15,9 +15,7 @@
(else))
-(use pretty-print random)
-
-#+use-numbers (use numbers)
+(use pretty-print random (chicken platform))
(define range 2)
(define random-range 32000)
diff --git a/tests/fixnum-tests.scm b/tests/fixnum-tests.scm
index 3b4fb27..4464888 100644
--- a/tests/fixnum-tests.scm
+++ b/tests/fixnum-tests.scm
@@ -1,3 +1,5 @@
+(use (chicken platform))
+
(define (fxo+ x y) (##core#inline "C_i_o_fixnum_plus" x y))
(define (fxo- x y) (##core#inline "C_i_o_fixnum_difference" x y))
diff --git a/tests/lolevel-tests.scm b/tests/lolevel-tests.scm
index 7ec0554..1896b4c 100644
--- a/tests/lolevel-tests.scm
+++ b/tests/lolevel-tests.scm
@@ -1,6 +1,6 @@
;;;; Unit lolevel testing
-(use chicken.memory format locative lolevel srfi-4)
+(use chicken.memory chicken.platform format locative lolevel srfi-4)
(define-syntax assert-error
(syntax-rules ()
diff --git a/tests/numbers-test.scm b/tests/numbers-test.scm
index af415ab..d494f8f 100644
--- a/tests/numbers-test.scm
+++ b/tests/numbers-test.scm
@@ -2,7 +2,7 @@
(include "test.scm")
-(use bitwise flonum format posix)
+(use bitwise flonum format posix (chicken platform))
;; The default "comparator" doesn't know how to deal with extended number types
(current-test-comparator
diff --git a/tests/posix-tests.scm b/tests/posix-tests.scm
index ac4a36b..29cd2bc 100644
--- a/tests/posix-tests.scm
+++ b/tests/posix-tests.scm
@@ -1,6 +1,7 @@
(import (chicken pathname)
(chicken files)
- (chicken posix)
+ (chicken platform)
+ (chicken posix)
(chicken lolevel))
(define-syntax assert-error
diff --git a/tests/version-tests.scm b/tests/version-tests.scm
index f26d3d1..92b8f28 100644
--- a/tests/version-tests.scm
+++ b/tests/version-tests.scm
@@ -1,4 +1,4 @@
-(use data-structures irregex)
+(use data-structures irregex chicken.platform)
(let* ((version-tokens (string-split (chicken-version) "."))
(major (string->number (car version-tokens)))
diff --git a/types.db b/types.db
index 668862d..69bdfe8 100644
--- a/types.db
+++ b/types.db
@@ -955,11 +955,9 @@
(blob? (#(procedure #:pure #:predicate blob) blob? (*) boolean))
(blob=? (#(procedure #:clean #:enforce #:foldable) blob=? (blob blob) boolean))
-(build-platform (#(procedure #:pure) build-platform () symbol))
(call/cc (#(procedure #:enforce) call/cc ((procedure (*) . *)) . *))
(case-sensitive (#(procedure #:clean) case-sensitive (#!optional *) *))
(char-name (#(procedure #:clean #:enforce) char-name ((or char symbol) #!optional char) *)) ;XXX -> (or char symbol) ?
-(chicken-version (#(procedure #:pure) chicken-version (#!optional *) string))
(command-line-arguments (#(procedure #:clean) command-line-arguments (#!optional (list-of string)) (list-of string)))
(condition-predicate (#(procedure #:clean #:enforce) condition-predicate (symbol) (procedure ((struct condition)) boolean)))
(condition-property-accessor (#(procedure #:clean #:enforce) condition-property-accessor (symbol symbol #!optional *) (procedure ((struct condition)) *)))
@@ -1042,8 +1040,6 @@
(exit (procedure exit (#!optional fixnum) noreturn))
(exit-handler (#(procedure #:clean #:enforce) exit-handler (#!optional (procedure (fixnum) . *)) procedure))
(chicken.expand#expand (procedure chicken.expand#expand (* #!optional list) *))
-(feature? (#(procedure #:clean) feature? (#!rest symbol) boolean))
-(features (#(procedure #:clean) features () (list-of symbol)))
(file-exists? (#(procedure #:clean #:enforce) file-exists? (string) (or false string)))
(directory-exists? (#(procedure #:clean #:enforce) directory-exists? (string) (or false string)))
@@ -1220,6 +1216,22 @@
(chicken.keyword#keyword? (#(procedure #:pure) chicken.keyword#keyword? (*) boolean))
(chicken.keyword#string->keyword (#(procedure #:clean #:enforce) chicken.keyword#string->keyword (string) symbol))
+;; platform
+
+(chicken.platform#build-platform (#(procedure #:pure) chicken.platform#build-platform () symbol))
+(chicken.platform#chicken-version (#(procedure #:pure) chicken.platform#chicken-version (#!optional *) string))
+(chicken.platform#feature? (#(procedure #:clean) chicken.platform#feature? (#!rest symbol) boolean))
+(chicken.platform#features (#(procedure #:clean) chicken.platform#features () (list-of symbol)))
+(chicken.platform#software-type (#(procedure #:pure) chicken.platform#software-type () symbol))
+(chicken.platform#software-version (#(procedure #:pure) chicken.platform#software-version () symbol))
+(chicken.platform#register-feature! (#(procedure #:clean #:enforce) chicken.platform#register-feature! (#!rest symbol) undefined))
+(chicken.platform#unregister-feature! (#(procedure #:clean #:enforce) chicken.platform#unregister-feature! (#!rest symbol) undefined))
+(chicken.platform#machine-byte-order (#(procedure #:pure) chicken.platform#machine-byte-order () symbol))
+(chicken.platform#machine-type (#(procedure #:pure) chicken.platform#machine-type () symbol))
+
+
+
+
(getter-with-setter
(#(procedure #:clean #:enforce)
getter-with-setter
@@ -1236,8 +1248,6 @@
(struct transformer)))
(keyword-style (#(procedure #:clean) keyword-style (#!optional symbol) symbol))
-(machine-byte-order (#(procedure #:pure) machine-byte-order () symbol))
-(machine-type (#(procedure #:pure) machine-type () symbol))
(make-blob (#(procedure #:clean #:enforce) make-blob (fixnum) blob)
((fixnum) (##sys#make-blob #(1))))
@@ -1282,7 +1292,6 @@
(quit (procedure quit (#!optional *) noreturn))
-(register-feature! (#(procedure #:clean #:enforce) register-feature! (#!rest symbol) undefined))
(remprop! (#(procedure #:clean #:enforce) remprop! (symbol symbol) undefined))
(rename-file (#(procedure #:clean #:enforce) rename-file (string string) string))
(reset (procedure reset () noreturn))
@@ -1318,8 +1327,6 @@
((cplxnum) ((or float cplxnum)) (##sys#extended-signum #(1))))
(sleep (#(procedure #:clean #:enforce) sleep (fixnum) undefined))
-(software-type (#(procedure #:pure) software-type () symbol))
-(software-version (#(procedure #:pure) software-version () symbol))
(string->blob (#(procedure #:clean #:enforce) string->blob (string) blob))
(string->uninterned-symbol (#(procedure #:clean #:enforce) string->uninterned-symbol (string) symbol))
(chicken.expand#strip-syntax (#(procedure #:clean) chicken.expand#strip-syntax (*) *))
@@ -1342,7 +1349,6 @@
(chicken.expand#syntax-error (procedure chicken.expand#syntax-error (* #!rest) noreturn))
(system (#(procedure #:clean #:enforce) system (string) fixnum))
-(unregister-feature! (#(procedure #:clean #:enforce) unregister-feature! (#!rest symbol) undefined))
(vector-resize
(forall (a b) (#(procedure #:clean #:enforce) vector-resize ((vector-of a) fixnum #!optional b)
(vector-of (or a b)))))
--
2.1.4