[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Recent self changes, and :CAR message to pathname
From: |
Eric Swenson |
Subject: |
Recent self changes, and :CAR message to pathname |
Date: |
Thu, 12 Dec 2024 21:28:29 -0800 |
Recent changes prevent QLD from working. What happens that there is an
unclaimed message error due to :CAR being sent to the “network/chaos/chuse”
pathname. This code
This stems from the (SETF (GETHASH (LIST FUNCTION-SPEC ARG2)
FUNCTION-SPEC-HASH-TABLE) ARG1) in FUNCTION-SPEC-DEFAULT-HANDLER. The apparent
culprit is (:METHOD HASH-TABLE :CASE :SET :GET-HASH)
The hash table in question is the EQUAL-HASH-TABLE set up in
CANONICALIZE-COLD-LOAD-PATHNAMES.
It appears we’re missing a DEFSETF for GETHASH. This appears in system 130,
but not in 301.
Here is a diff for the fix:
➜ sys-trunk fossil diff sys2/setf.lisp
Index: sys2/setf.lisp
==================================================================
--- sys2/setf.lisp
+++ sys2/setf.lisp
@@ -965,10 +965,14 @@
(defsetf get (object property &optional (default nil defaultp)) (value)
(let ((tem (if defaultp `(prog1 ,property ,default) property)))
`(setprop ,object ,tem ,value)))
(deflocf get get-location)
+
+(defsetf gethash (object hash-table &optional (default nil defaultp)) (value)
+ (let ((tem (if defaultp `(prog1 ,hash-table ,default) hash-table)))
+ `(sethash ,object ,tem ,value)))
(defsetf get-from-area (object property area &optional (default nil defaultp))
(value)
(let ((tem (if defaultp `(prog1 ,property ,default) property)))
`(setprop-in-area ,object ,tem ,value ,area)))
(deflocf get-from-area get-location-from-area)
Here is a patch that fixes the issue:
system-301-7.lisp
Description: Binary data
- Recent self changes, and :CAR message to pathname,
Eric Swenson <=