~ chicken-core (chicken-5) 7a872acdac1a5f5038c29065886a40ac5a5e0bdd


commit 7a872acdac1a5f5038c29065886a40ac5a5e0bdd
Author:     felix <felix@y.(none)>
AuthorDate: Fri Mar 19 22:51:35 2010 +0100
Commit:     felix <felix@y.(none)>
CommitDate: Fri Mar 19 22:51:35 2010 +0100

    symbol beginning with #%... is readable

diff --git a/compiler-namespace.scm b/compiler-namespace.scm
index 109887c4..2ba2b752 100644
--- a/compiler-namespace.scm
+++ b/compiler-namespace.scm
@@ -132,7 +132,6 @@
  external-protos-first
  external-to-pointer
  external-variables
- extract-mutable-constants
  file-io-only
  file-requirements
  final-foreign-type
diff --git a/library.scm b/library.scm
index 382822bb..4ff37799 100644
--- a/library.scm
+++ b/library.scm
@@ -2951,27 +2951,30 @@ EOF
 		    (loop (fx+ i 1)) ) ) ) ) )
 
 	(define (sym-is-readable? str)
-	  (let ([len (##sys#size str)])
-	    (and (fx> len 0)
-		 (if (eq? len 1)
-		     (case (##core#inline "C_subchar" str 0)
-		       ((#\. #\#) #f)
-		       (else #t) ) )
-		 (not (eq? (##core#inline "C_subchar" str 0) #\#))
-		 (let loop ((i (fx- len 1)))
-		   (if (eq? i 0)
-		       (let ((c (##core#inline "C_subchar" str 0)))
-			 (cond ((or (char-numeric? c)
-				    (eq? c #\+)
-				    (eq? c #\-)
-				    (eq? c #\.) )
-				(not (##sys#string->number str)) )
-			       ((specialchar? c) #f)
-			       (else #t) ) )
-		       (let ([c (##core#inline "C_subchar" str i)])
-			 (and (or csp (not (char-upper-case? c)))
-			      (not (specialchar? c))
-			      (loop (fx- i 1)) ) ) ) ) ) ) )
+	  (let ((len (##sys#size str)))
+	    (cond ((eq? len 0) #f)
+		  ((eq? len 1)
+		   (case (##core#inline "C_subchar" str 0)
+		     ((#\. #\#) #f)
+		     (else #t) ) )
+		  (else
+		   (let loop ((i (fx- len 1)))
+		     (if (eq? i 0)
+			 (let ((c (##core#inline "C_subchar" str 0)))
+			   (cond ((or (char-numeric? c)
+				      (eq? c #\+)
+				      (eq? c #\-)
+				      (eq? c #\.) )
+				  (not (##sys#string->number str)) )
+				 ((and (eq? c #\#)
+				       (not (eq? #\% (##core#inline "C_subchar" str 1))))
+				  #f)
+				 ((specialchar? c) #f)
+				 (else #t) ) )
+			 (let ((c (##core#inline "C_subchar" str i)))
+			   (and (or csp (not (char-upper-case? c)))
+				(not (specialchar? c))
+				(loop (fx- i 1)) ) ) ) ) ) ) ) )
 
 	(let out ([x x])
 	  (cond ((eq? x '()) (outstr port "()"))
Trap