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

Re: Foreign Function Warnin

Subject:   RE>>Foreign Function Warning
With respect to the included messages, wouldn't

(handler-bind ((warning (condition)
                           (muffle-warning condition)))
   (your-code xxx))

be a better way to get rid of the nuisance warning?  Actually, I would
recommend using (setf *break-on-signals* 'warning) to cause it to break,
check the type of warning generated (use the backtrace and look at the 
warn stack frame), and replace warning in my code with the exact condition
type so that it muffles the minimum set of warnings. (set 
*break-on-signals* to nil after the one test to prevent further interruptions.)

Date: 12/9/93 4:10 PM
From: Kalman Reti
Subject: Re: Foreign Function Warnings??

>;warning: Duplicate defninition for "memcpy"
>; while executing: ccl::ff-readobj

Unfortunately, there is no special variable to suppress these warnings.  You can
use the brute force approach, viz.:

(let ((old-warn (fdefinition 'warn)))
      (setf (fdefinition 'warn) #'(lambda (&rest ignore) ignore nil))
      ;;;Your code which loads the foreign function files goes here.
      ;;;you might also want to check in the dummy warn function that this is
      ;;;type of warning you expect, and funcall the old one if it isn't.
      (warn "This is a test"))
    (setf (fdefinition'warn) old-warn)))

Donald H. Mitchell             Domain:  dhm@pro-solution.com
Proactive Solutions Inc.         UUCP:  uunet!proact!dhm   
5314 S. Yale Ave., Suite 402    Voice:  918.492.5192
Tulsa, OK  74135                  FAX:  918.492.5193