~ chicken-core (chicken-5) cfbb5d8d038815ce2398bbaca30df581d7f2f1c6
commit cfbb5d8d038815ce2398bbaca30df581d7f2f1c6 Author: Peter Bex <peter@more-magic.net> AuthorDate: Sat Jun 29 17:02:01 2019 +0200 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Fri Jul 12 20:57:29 2019 +1200 Define a srfi-88 module as a subset of chicken.keyword This module contains only keyword?, keyword->string and string->keyword. Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/NEWS b/NEWS index 60e7551b..99e2e86e 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,11 @@ quoted empty prefixes or suffixes like ||abc: and abc:|| will be read correctly as symbols now (fixes #1625, thanks to Andy Bennett). +- Core libraries + - There is now a srfi-88 module which contains just the three + procedures from the (chicken keyword) module defined by the SRFI. + - A feature identifier named "srfi-88" is now registered. + - Compiler - Fixed a bug in lfa2 pass which caused "if" or "cond" nodes to be incorrectly unboxed if the "else" branch had a flonum result type diff --git a/library.scm b/library.scm index 4e34d6ec..7e69e598 100644 --- a/library.scm +++ b/library.scm @@ -6490,7 +6490,8 @@ static C_word C_fcall C_setenv(C_word x, C_word y) { (define ##sys#features '(#:chicken - #:srfi-6 #:srfi-12 #:srfi-17 #:srfi-23 #:srfi-30 #:srfi-39 #:srfi-62 #:full-numeric-tower)) + #:srfi-6 #:srfi-8 #:srfi-12 #:srfi-17 #:srfi-23 #:srfi-30 + #:srfi-39 #:srfi-62 #:srfi-88 #:full-numeric-tower)) ;; Add system features: diff --git a/manual/Module (chicken keyword) b/manual/Module (chicken keyword) index 72038fa1..0d05ed0f 100644 --- a/manual/Module (chicken keyword) +++ b/manual/Module (chicken keyword) @@ -17,6 +17,10 @@ either compatible to Common LISP, or to DSSSL. As long as this parameter is set to {{#:suffix}}, CHICKEN conforms to [[http://srfi.schemers.org/srfi-88/srfi-88.html|SRFI-88]]. +There is also a {{srfi-88}} or {{(srfi 88)}} module which only +includes the standard procedures from the SRFI document, without the +CHICKEN extensions. {{(chicken keyword)}} offers the complete set of +procedures, both CHICKEN-specific and standard SRFI-88. ==== get-keyword diff --git a/modules.scm b/modules.scm index c1442a03..a7fb3f18 100644 --- a/modules.scm +++ b/modules.scm @@ -1109,6 +1109,12 @@ (##sys#register-primitive-module 'srfi-55 '() (se-subset '(require-extension) ##sys#chicken.base-macro-environment)) +(##sys#register-core-module + 'srfi-88 'library + '((keyword? . chicken.keyword#keyword?) + (keyword->string chicken.keyword#keyword->string) + (string->keyword chicken.keyword#string->keyword))) + (##sys#register-core-module 'srfi-98 'posix '((get-environment-variable . chicken.process-context#get-environment-variable)Trap