Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!ucsd!ucbvax!JOHN-JAMESON.DOCS.UU.SE!Victor From: Victor@JOHN-JAMESON.DOCS.UU.SE (Bjorn Victor) Newsgroups: comp.sys.ti.explorer Subject: COPY on defstructs break? Message-ID: <2846930884-6374393@Jack-Daniels.DoCS.UU.SE> Date: 20 Mar 90 14:08:04 GMT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: inet Organization: The Internet Lines: 288 EXPLORER (TM) BUG REPORT DATE-TIME : 20-Mar-90 15:02:02 PRIORITY : H (H)igh (M)edium (L)ow TYPE : B (B)ug (D)esign (M)anual MACHINE-TYPE: E (E)xplorer (M)icroExplorer DESCRIPTION-OF-PROBLEM: Using the function COPY on defstructs break? In release 6, given the following code: ;;; -*- Mode:Common-Lisp; Package:USER; Base:10 -*- (defstruct frob (foo 0) (bar t)) (defun frobnicate (frob) (copy frob)) (defun lose-frob () (frobnicate (make-frob :foo 1 :bar :baz))) Calling (LOSE-FROB) gives the error below. WORK-AROUND: Yes please!! CUSTOMER-ID: L2797 NAME : Bjvrn Victor LOCATION : ICU, Uppsala University, Sweden ADDRESS : Dept. of Computer Systems, Uppsala University, P.O. Box 520, S-751 20 UPPSALA, SWEDEN PHONE : +46 18 183169; fax +46 18 550225 NET-ADDRESS: Bjorn Victor BACKTRACE: >>Trap #o31574 (WRITE-IN-READ-ONLY M-T) There was an attempt to write into 15006516, which is a read-only address; the code was probably trying to modify a program constant. Backtrace from the debugger: Caller expects 2 values. Open catches in this frame for tag: T. GETHASH (P.C. = 279) (from SYS: KERNEL; HASH) Arg 0 (KEY): # Arg 1 (HASH-TABLE): # --Defaulted args:-- Arg 2 (DEFAULT-VALUE): NIL Local 0 (PREVIOUS-INHIBIT-SCHEDULING-FLAG): NIL Local 1 (HASH-FUNCTION): NIL Local 2 (LEX-PARENT-ENV-REG): NIL Local 3 (COMPARE-FUNCTION): # Local 4 (LEX-CURRENT-VECTOR-REG): NIL Local 5 (LEX-ALL-VECTORS-REG): NIL Local 6 (HASH-CODE): # Local 7: NIL Local 8 (X): # Local 9 (BLEN): 3 Local 10 (MOD): 16 Local 11 (FUNC-P): T Local 12 (.CASE.ITEM.): NIL Local 13 (PH): 0 Local 14 (P): # Local 15 (KSIZE): NIL Local 16 (DELTA): NIL Local 17 (P): # Local 18: NIL Local 19 (POINTER): # Local 20 (ALREADY-MINE): NIL Disassembled code: 276 SET-NIL PDL-PUSH 277 PUSH FEF|8 ; CURRENT-PROCESS 278 (MISC) TEST %STORE-CONDITIONAL => 279 BR-NOT-NULL 284 280 PUSH LOCAL|19 ; POINTER 281 PUSH FEF|8 ; CURRENT-PROCESS Names and values of specials bound in this frame: INHIBIT-SCHEDULING-FLAG: T Lexpr-funcalled. TICLOS::FIND-RIGHT-METHOD (P.C. = 24) (from SYS: PATCH.CLOS; PATCH-6-3) Arg 0 (HT): # Rest arg (ARGS): NIL Local 1 (ARG): #S(FROB :FOO 1 :BAR :BAZ) Local 2 (IGNOR): NIL Local 3 (X): NIL Disassembled code: 21 PUSH FEF|4 ; '36866 22 PUSH FEF|5 ; #'GETHASH 23 (AUX) COMPLEX-CALL-TO-PUSH ; 2 args, 2 values => 24 POP LOCAL|2 ; IGNOR 25 POP ARG|0 ; HT 26 BR-NOT-NULL 28 No specials bound in this frame TICLOS::PREPARE-EFFECTIVE-CODE (P.C. = 68) (from SYS: CLOS; METHOD-COMBINATION) Arg 0 (GEN-FUNCTION): # Rest arg (ARG-VALUES): (#S(FROB :FOO 1 :BAR :BAZ)) Local 1 (MLOC): NIL Local 2 (HANDLER): NIL Local 3 (CODE): NIL Local 4 (METHODS): NIL Local 5 (ARGLIST): NIL Local 6 (FN): NIL Local 7: NIL Local 8: NIL Local 9: NIL Local 10 (HANDLER): NIL Local 11: NIL No specials bound in this frame Values to be collected for MULTIPLE-VALUE-LIST. COPY (P.C. = 20) (from SYS: KERNEL; STORAGE-INTERNALS) Arg 0 (OBJECT): #S(FROB :FOO 1 :BAR :BAZ) Values to be collected for MULTIPLE-VALUE-LIST. FROBNICATE (P.C. = 10) (from JJ: VICTOR; CLOS-BUG) Arg 0 (FROB): #S(FROB :FOO 1 :BAR :BAZ) Values to be collected for MULTIPLE-VALUE-LIST. LOSE-FROB (P.C. = 22) (from JJ: VICTOR; CLOS-BUG) Values to be collected for MULTIPLE-VALUE-LIST. SYS:*EVAL (P.C. = 560) (from SYS: KERNEL; EVALUATOR) Arg 0 (FORM): (LOSE-FROB) Local 0 (HOOK-FUNCTION): NIL Local 1 (ENV): NIL Local 2 (VCELL): NIL Local 3: NIL Local 4 (FRAME): NIL Local 5 (VALUE): NIL Local 6 (FUNCTION-OBJ): # Local 7 (SPECIAL-FORM-ARGLIST): NIL Local 8 (LOCAL): NIL Local 9 (DBI): NIL Local 10 (QUOTE-DEGREE): NIL Local 11 (LAMBDA-NAME): NIL Local 12 (LAMBDA-BODY): NIL Local 13 (FUN): NIL Local 14: NIL Local 15: NIL Local 16 (NUMBER-OF-ARGS-PUSHED): 0 Local 17 (REST-UNEVALED-ARGS): NIL Local 18 (ARG): NIL Local 19 (QUOTEP): NIL Local 20 (FVAR): NIL Local 21 (ANCHOR): NIL Local 22 (LOC): NIL Local 23 (HOOKFCT): NIL Values to be collected for MULTIPLE-VALUE-LIST. EVALHOOK (P.C. = 43) (from SYS: KERNEL; EVALUATOR) Arg 0 (FORM): (LOSE-FROB) Arg 1 (EVALHOOKFN): NIL Arg 2 (APPLYHOOKFN): NIL Arg 3 (ENV): NIL Values to be collected for MULTIPLE-VALUE-LIST. SYS:*EVAL (P.C. = 560) (from SYS: KERNEL; EVALUATOR) Arg 0 (FORM): (EVALHOOK (QUOTE (LOSE-FROB)) NIL NIL (AND (BOUNDP #) UCL::*ENV*)) Local 0 (HOOK-FUNCTION): NIL Local 1 (ENV): NIL Local 2 (VCELL): NIL Local 3: NIL Local 4 (FRAME): NIL Local 5 (VALUE): NIL Local 6 (FUNCTION-OBJ): # Local 7 (SPECIAL-FORM-ARGLIST): NIL Local 8 (LOCAL): NIL Local 9 (DBI): NIL Local 10 (QUOTE-DEGREE): NIL Local 11 (LAMBDA-NAME): NIL Local 12 (LAMBDA-BODY): NIL Local 13 (FUN): NIL Local 14: NIL Local 15: ((QUOTE (LOSE-FROB)) NIL NIL (AND (BOUNDP #) UCL::*ENV*)) Local 16 (NUMBER-OF-ARGS-PUSHED): 4 Local 17 (REST-UNEVALED-ARGS): NIL Local 18 (ARG): NIL Local 19 (QUOTEP): NIL Local 20 (FVAR): NIL Local 21 (ANCHOR): NIL Local 22 (LOC): NIL Local 23 (HOOKFCT): NIL Values to be collected for MULTIPLE-VALUE-LIST. (:METHOD UCL::TOP-LEVEL-FUNCTIONS :EXECUTE) (P.C. = 84) (from SYS: UCL; TOP-LEVEL-MODES) (SELF is NIL) Arg 0 (.OPERATION.): :EXECUTE Arg 1 (IGNORE): # Local 0 (LL): (QUOTE (LOSE-FROB)) Local 1 (L): (EVALHOOK (QUOTE (LOSE-FROB)) NIL NIL (AND (BOUNDP #) UCL::*ENV*)) Local 2 (V): NIL Local 3: NIL Local 4: NIL Local 5: NIL Remainder of stack: (:METHOD UCL:BASIC-COMMAND-LOOP :EXECUTE-COMMAND) (P.C. = 44) UCL::PROCESS-TYPEIN (P.C. = 101) (:METHOD UCL:BASIC-COMMAND-LOOP :HANDLE-TYPEIN-INPUT) (P.C. = 28) (:METHOD UCL:BASIC-COMMAND-LOOP :HANDLE-KEY-INPUT) (P.C. = 70) (:METHOD UCL:BASIC-COMMAND-LOOP :FETCH-AND-EXECUTE) (P.C. = 72) (:METHOD W::LISP-LISTENER :LOOP) (P.C. = 114) (:METHOD UCL:COMMAND-LOOP-MIXIN :COMMAND-LOOP) (P.C. = 58) SYS::PROCESS-TOP-LEVEL (P.C. = 155) SYS:LISP-TOP-LEVEL (P.C. = 30) SOFTWARE-CONFIGURATION: With SYSTEM 6.15, VIRTUAL-MEMORY 6.1, EH 6.4, MAKE-SYSTEM 6.0, MICRONET 6.0, LOCAL-FILE 6.0, BASIC-PATHNAME 6.1, NETWORK-SUPPORT-COLD 6.0, BASIC-NAMESPACE 6.2, NETWORK-NAMESPACE 6.0, DISK-IO 6.1, DISK-LABEL 6.0, BASIC-FILE 6.2, MAC-PATHNAME 6.0, NETWORK-PATHNAME 6.0, COMPILER 6.10, TV 6.15, DATALINK 6.0, CHAOSNET 6.0, GC 6.3, MEMORY-AUX 6.0, NVRAM 6.1, SYSLOG 6.1, STREAMER-TAPE 6.4, UCL 6.0, INPUT-EDITOR 6.0, METER 6.1, ZWEI 6.5, DEBUG-TOOLS 6.3, NETWORK-SUPPORT 6.0, NETWORK-SERVICE 6.1, DATALINK-DISPLAYS 6.0, FONT-EDITOR 6.1, SERIAL 6.0, PRINTER 6.3, MAC-PRINTER-TYPES 6.1, PRINTER-TYPES 6.1, IMAGEN 6.0, SUGGESTIONS 6.0, MAIL-DAEMON 6.2, MAIL-READER 6.2, TELNET 6.0, VT100 6.0, NAMESPACE-EDITOR 6.0, PROFILE 6.1, VISIDOC 6.4, TI-CLOS 6.20, CLEH 6.5, IP 3.47, Experimental CLX 6.2, CLUE 6.10, X11M 6.13, RPC 6.1, NFS 3.9, Experimental NFS-PATCHES 2.10, DOCUMENTER 6.0, GRAPHICS-WINDOW 6.0, Experimental GED 6.1, TREE 6.0, Experimental ICU-DOCS 13.1, Experimental SYSTEM-ENHANCEMENTS 19.9, Experimental TCP-IMAGEN 10.0, Experimental TEXINFO 5.5, Experimental ICU-LIBRARY 14.3, Experimental DOMAIN 6.0, Experimental STUB-RESOLVER 3.0, Experimental SYSTEM-PATCHES 1.14, Experimental EH-PATCHES 1.2, Experimental ZWEI-PATCHES 1.18, Experimental COMPILER-PATCHES 1.4, Experimental IP-PATCHES 1.5, Experimental MAIL-DAEMON-PATCHES 1.1, Experimental MAKE-SYSTEM-PATCHES 1.2, Experimental BASIC-PATHNAME-PATCHES 1.3, Experimental TELNET-PATCHES 1.1, Experimental BASIC-FILE-PATCHES 1.5, Experimental STREAMER-TAPE-PATCHES 1.2, Experimental TV-PATCHES 1.3, Experimental SUGGESTIONS-PATCHES 1.1, Experimental PRINTER-PATCHES 1.1, Experimental BASIC-NAMESPACE-PATCHES 1.5, Experimental DEBUG-TOOLS-PATCHES 1.2, Experimental INPUT-EDITOR-PATCHES 1.1, Experimental MAIL-READER-PATCHES 1.1, Experimental NETWORK-SERVICE-PATCHES 1.2, Experimental CHAOSNET-PATCHES 1.2, Experimental LOCAL-FILE-PATCHES 1.4, Experimental NAMESPACE-EDITOR-PATCHES 1.1, Experimental NETWORK-SUPPORT-COLD-PATCHES 1.1, Experimental YP 2.0, microcode 602, Band Name: 6.15 w X11 & ICU, 900111/Vic, Host: Jack-Daniels HARDWARE-CONFIGURATION: SLOT 0. TYPE = NEC. PART # = 00002236400-0001. SERIAL # = 311400-200-7-24. REV = AF SLOT 2. TYPE = NPI. PART # = 00002238040-0001. SERIAL # = CB0000-200-6-53. REV = *U SLOT 4. TYPE = MEM. PART # = 00002243910-0003. SERIAL # = 871700-200-7-35. REV = *U SLOT 5. TYPE = SIB. PART # = 00002236645-0001. SERIAL # = 370000-200-6-64. REV = AE SLOT 6. TYPE = CPU. PART # = 00002243895-0001. SERIAL # = 921800-200-7-25. REV = AD ******************************** * Return to: * * * * EXPLORER BUG REPORTS * * c/o Explorer Project Manager* * TEXAS INSTRUMENTS, MS 2201 * * P.O. Box 149149 * * Austin, Texas 78714-9149 * ********************************