~ chicken-core (chicken-5) 5946057ddd5556ea47f7c9ff6738d018b18b5b18
commit 5946057ddd5556ea47f7c9ff6738d018b18b5b18 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Tue May 11 13:05:12 2010 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Tue May 11 13:05:12 2010 +0200 added feature id for chicken-MAJOR.MINOR diff --git a/chicken.h b/chicken.h index 73de3b55..563c0f8f 100644 --- a/chicken.h +++ b/chicken.h @@ -37,6 +37,7 @@ #define ___CHICKEN #define C_MAJOR_VERSION 4 +#define C_MINOR_VERSION 5 /* * N.B. This file MUST not rely upon "chicken-config.h" diff --git a/library.scm b/library.scm index 1ebd40f5..29afef98 100644 --- a/library.scm +++ b/library.scm @@ -234,7 +234,7 @@ EOF (define (argc+argv) (##sys#values main_argc main_argv)) (define ##sys#make-structure (##core#primitive "C_make_structure")) (define ##sys#ensure-heap-reserve (##core#primitive "C_ensure_heap_reserve")) -(define (##sys#fudge fudge-factor) (##core#inline "C_fudge" fudge-factor)) +(define (##sys#fudge index) (##core#inline "C_fudge" index)) (define ##sys#call-host (##core#primitive "C_return_to_host")) (define return-to-host ##sys#call-host) (define ##sys#file-info (##core#primitive "C_file_info")) @@ -3318,8 +3318,7 @@ EOF [else (err x)] ) ) ) ) (define ##sys#features - '(#:chicken #:chicken-4 - #:srfi-23 #:srfi-30 #:srfi-39 #:srfi-62 #:srfi-17 #:srfi-12 #:srfi-88 #:srfi-98)) + '(#:chicken #:srfi-23 #:srfi-30 #:srfi-39 #:srfi-62 #:srfi-17 #:srfi-12 #:srfi-88 #:srfi-98)) ;; Add system features: @@ -3337,6 +3336,15 @@ EOF (when (##sys#fudge 28) (set! ##sys#features (cons #:ptables ##sys#features))) (when (##sys#fudge 39) (set! ##sys#features (cons #:cross-chicken ##sys#features))) +(set! ##sys#features + (let ((major (##sys#string-append "chicken-" (##sys#number->string (##sys#fudge 41))))) + (cons (##sys#->feature-id major) + (cons (##sys#->feature-id + (string-append + major "." + (##sys#number->string (##sys#fudge 43)))) + ##sys#features)))) + (define (register-feature! . fs) (for-each (lambda (f) diff --git a/runtime.c b/runtime.c index 65e3960a..968e1aed 100644 --- a/runtime.c +++ b/runtime.c @@ -4169,6 +4169,9 @@ C_regparm C_word C_fcall C_fudge(C_word fudge_factor) return C_fix(0); #endif + case C_fix(43): + return C_fix(C_MINOR_VERSION); + default: return C_SCHEME_UNDEFINED; } } diff --git a/scripts/setversion b/scripts/setversion index af580cde..5fa3e22f 100644 --- a/scripts/setversion +++ b/scripts/setversion @@ -39,24 +39,37 @@ exec csi -s "$0" "$@" (string-match (rx "(\\d+)\\.(\\d+)\\.(\\d+)(.*)") v) ) (define (main args) - (cond ((member "-set" args) => - (lambda (a) (set! buildversion (cadr a))) ) - ((not (member "-noinc" args)) - (let* ((v (parse-version buildversion)) - (maj (cadr v)) - (min (caddr v)) - (pl (cadddr v)) - (huh (car (cddddr v)))) - (set! buildversion (conc maj "." min "." (add1 (string->number pl)) huh)) ) ) ) - (with-output-to-file "buildversion" (cut display buildversion) binary:) - (with-output-to-file "version.scm" - (lambda () - (write `(define-constant +build-version+ ,buildversion)) - (newline) ) - binary:) - (system* "cat version.scm") - (let ([vstr (sprintf "version ~A" buildversion)]) - (for-each (cut patch <> (rx "version [0-9][-.0-9a-zA-Z]+") vstr) files) ) - 0) + (let ((major #f) + (minor #f)) + (cond ((member "-set" args) => + (lambda (a) (set! buildversion (cadr a))) ) + ((not (member "-noinc" args)) + (let* ((v (parse-version buildversion)) + (maj (cadr v)) + (min (caddr v)) + (pl (cadddr v)) + (huh (car (cddddr v)))) + (set! major maj) + (set! minor min) + (set! buildversion + (conc maj "." min "." (add1 (string->number pl)) huh)) ) ) ) + (with-output-to-file "buildversion" (cut display buildversion) binary:) + (with-output-to-file "version.scm" + (lambda () + (write `(define-constant +build-version+ ,buildversion)) + (newline) ) + binary:) + (system* "cat version.scm") + (let ([vstr (sprintf "version ~A" buildversion)]) + (for-each (cut patch <> (rx "version [0-9][-.0-9a-zA-Z]+") vstr) files) ) + (patch + "chicken.h" + (rx "C_MAJOR_VERSION[ \\t]+[0-9]+") + (sprintf "C_MAJOR_VERSION ~a" major)) + (patch + "chicken.h" + (rx "C_MINOR_VERSION[ \\t]+[0-9]+") + (sprintf "C_MINOR_VERSION ~a" minor)) + 0)) (main (command-line-arguments))Trap