~ 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