[comp.sys.ti.explorer] COPY on defstructs break?

Victor@JOHN-JAMESON.DOCS.UU.SE (Bjorn Victor) (03/20/90)

      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 <Victor@John-Jameson.DoCS.UU.SE>

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): #<Class-description FROB>
    Arg 1 (HASH-TABLE): #<EQ-HASH-TABLE (Funcallable) T>
      --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): #<DTP-FUNCTION EQ 4147132>
    Local 4 (LEX-CURRENT-VECTOR-REG): NIL
    Local 5 (LEX-ALL-VECTORS-REG): NIL
    Local 6 (HASH-CODE): #<Class-description FROB>
    Local 7: NIL
    Local 8 (X): #<EQ-HASH-TABLE (Funcallable) T>
    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): #<DTP-LOCATIVE 71175555>
    Local 15 (KSIZE): NIL
    Local 16 (DELTA): NIL
    Local 17 (P): #<DTP-LOCATIVE 71175555>
    Local 18: NIL
    Local 19 (POINTER): #<DTP-LOCATIVE 71175464>
    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): #<EQ-HASH-TABLE (Funcallable) T>
    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): #<STANDARD-GENERIC-FUNCTION COPY>
    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): #<DTP-FUNCTION LOSE-FROB -61036512>
    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): #<DTP-FUNCTION EVALHOOK 7110470>
    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): #<LISP-LISTENER Lisp Listener 1 1202212 exposed>
    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  *
		    ********************************