[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Flavor bug



    Date: Sat, 21 May 88 19:22:43 CDT
    From: gavan@emx.utexas.edu (Gavan Duffy)

    Yes, about the debugger (and most anything else) not working after
    redefining length.  Maybe defflavor should check for this sort of thing
    before expanding.  If it were already a g-f, though, the intention might
    be to clobber an old definition.  But defflavor could check to see
    whether the g-f is already specified as a function, requiring an
    explicit FUNDEFINE before expansion.

There are actually two checks that should have caught this.  First, it
should have gotten the standard warning about a function being redefined
by a different file.  However, if the file with the defflavor was a
patch file, this warning would be suppressed.  Second, it should have
warned about an ordinary function being redefined as a generic function.
This works for me (well, I didn't use LENGTH -- I like this bootload) in
Genera 7.2:

Command: (defun foo (thing) (car thing))
FOO
Command: (defflavor frob (foo) () (:writable-instance-variables (foo foo)))
FOO is being implicitly redefined as a generic function.
If you answer "Yes", FOO will only accept instances as its first argument;
if FOO is a primitive function, your world will probably no longer be usable.
  Okay to redefine FOO?  (Yes or No) No
For Flavor FROB
  The old definition of FOO remains in effect.
  To redefine it so that you can perform generic operations, do an explicit DEFGENERIC.
  Otherwise, you must perform generic operations by (FUNCALL (FLAVOR:GENERIC FOO) ...)
FROB
Command:
                                                barmar