From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Camm Maguire <camm@debian.org>
Date: Apr, 13 2026 17:26:39 +0000
Subject: [PATCH] <short summary of the patch>

TODO: Put a short summary on the line above and replace this paragraph
with a longer explanation of this change. Complete the meta-information
with other relevant fields (see below for details). To make it easier, the
information below has been extracted from the changelog. Adjust it or drop
it.

---
The information above should follow the Patch Tagging Guidelines, please
checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
Bug: <upstream-bugtracker-url>
Bug-<Vendor>: <vendor-bugtracker-url>
Forwarded: (no|not-needed|<patch-forwarded-url>)
Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
Reviewed-By: <name and email of someone who approved/reviewed the patch>

--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp
+++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp
@@ -87,6 +87,10 @@
 		  (let ((val (symbol-value form)))
 		    (or 
 		     (c1constant-value val nil)
+		     (when (functionp val)
+		       (multiple-value-bind (s c n) (fle val)
+			 (declare (ignore c))
+			 (c1function (list (or n s)))))
 		     `(location ,(make-info :type (object-type val)) (VV ,(add-constant form))))))
 					;                 ((c1var form))))
                  ((c1expr-avct (c1var form))))) ;FIXME pcl
--- gcl27-2.7.1.orig/git.tag
+++ gcl27-2.7.1/git.tag
@@ -1 +1 @@
-"Version_2_7_2pre14"
+"Version_2_7_2pre15"
--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp
+++ gcl27-2.7.1/lsp/gcl_iolib.lsp
@@ -406,14 +406,12 @@
       (d pd (cdr pd)))
     (values ps created)))
 
-(defun get-byte-stream-nchars (s)
-  (let* ((tp (stream-element-type s))(ctp (cmp-norm-tp tp)))
-    (labels ((ts (i) (when (<= i 32)
-		       (if (tp<= ctp (cmp-norm-tp `(unsigned-byte ,(* i char-length))))
-			   i (ts (1+ i))))))
-      (cond ((tp<= ctp #tcharacter) 1)
-	    ((ts 0))
-	    (1)))))
+(defun get-byte-stream-nchars (s);restricted
+  (let* ((tp (stream-element-type s)))
+    (typecase tp
+	((cons (member signed-byte unsigned-byte) (cons (integer 0) null))
+	 (values (ceiling (cadr tp) 8)))
+	(t 1))))
 
 (defun parse-integer (s &key start end (radix 10) junk-allowed)
   (declare (optimize (safety 1)))
--- gcl27-2.7.1.orig/o/print.d
+++ gcl27-2.7.1/o/print.d
@@ -1068,7 +1068,7 @@ print_symbol_name_body(object x,int pp)
     write_ch('|');
 
   for (lw=i=0;i<VLEN(x);i++) {
-    j = x->st.st_self[i];
+    j = (uchar)x->st.st_self[i];
     if (PRINTescape && (j == '|' || j == '\\'))
       write_ch('\\');
     fc=convertible_upper(j) ? 1 : 
