[cmucl-imp] PCL::*OPTIMIZE-GF-CALLS-P* bug when GF name is shadowed lexically
Raymond Toy
toy.raymond at gmail.com
Thu Apr 22 18:57:42 CEST 2010
On 4/21/10 10:11 PM, Madhu wrote:
> |X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham
> | version=3.2.5
> |DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
> | d=gmail.com; s=gamma;
> | h=domainkey-signature:received:received:message-id:date:from
> | :user-agent:mime-version:to:cc:subject:references:in-reply-to
> | :x-enigmail-version:content-type:content-transfer-encoding;
> | bh=HbEfdRttazBaNje4REulqpPOEMOg/rgeqaLNq9800pw=;
> | b=Wfm7WI0AJqn8CKbGoRKdDZSwuAJ8Uo5g/wi9iOgcF1jXN6kuNkwpMklY4IspyvBIQ0
> | cK4F3Hx0E6JVBtfdSTkDPbxoI/RMZg5R1i1RVXVTdkZa4IhRHydUoI+8hLra0fBAIL6F
> | Sx4muc6ZU9UvO1HQKpzvphAOorW5v1AXUsdmY=
> |Date: Thu, 04 Mar 2010 07:52:53 -0500
> |From: Raymond Toy <toy.raymond at gmail.com>
> |MIME-Version: 1.0
> |CC: cmucl-imp at cons.org
> |Content-Type: text/plain; charset=ISO-8859-1
> |
> |On 2/18/10 8:49 PM, Madhu wrote:
> |> CMUCL does not correctly handle FLETs in DEFMETHOD bodies which use the
> |> same name as that of the generic function.
> |> An example might be:
> |>
> |> ; (setq pcl::*optimize-gf-calls-p* t)
> |> (defmethod foo (bar var) (format t "GENERICFOO ~S, ~S.%" bar var))
> |>
> |> (defclass fnarr ()())
> |>
> |> (defmethod foo ((bar fnarr) var)
> |> (flet ((foo (&optional arg)
> |> (foo var (class-of arg)))) ; gf FOO call
> |> (foo bar))) ; local function FOO call
> |>
> |> ;; (incorrect) Error when evaluating
> |> (foo (make-instance 'fnarr) t)
> |>
> |>
> |> Perhaps the immediate symptom can be treated in WALK-METHOD-LAMBDA as
> |> follows? -- Madhu
> |>
> |
> |I'm not familiar with PCL at all, but that looks reasonable. I'll check
> |it in shortly.
> |
> |Ray
>
> (I'm getting back to email in after a long vacation from the computer)
> I dont think these 2 fixs got checked in, from grepping the commit list.
>
Look at rev 1.74 of pcl/boot.lisp.
Ray
More information about the cmucl-imp
mailing list