[rdnzl-announce] New version 0.9.3 (Was: (no subject))

Edi Weitz edi at agharta.de
Fri Feb 17 13:15:32 UTC 2006


On Fri, 17 Feb 2006 00:49:16 -0500, "Dan Muller" <s8ctxw402 at sneakemail.com> wrote:

> My first post to this list...

Hi... :)

> Direct3D uses single floats throughout its interface, but in
> LispWorks for Windows, all floating point types are equivalent to
> double-float. So I've got this rather difficult situation, where
> RDNZL can never find a method if it takes a single float argument!
> Even if it could find it, a down-conversion from double to single
> float would be needed, which probably shouldn't occur implicitly.
>
> I tried explicitly calling System.Convert.ToSingle, but by the time
> I can get my hands on the return value, it has been turned back into
> a double! I haven't been able to figure out a way around this
> without modifying RDNZL, or writing some sort of .NET function that
> returned a boxed single. But I'm not sure that the latter wouldn't
> be unboxed, or that it would give the correct type for the method
> lookup in RDNZL.

Yeah, tough call.  I don't see an easy general solution but for the
moment I've uploaded version 0.9.3 which offers the following
workaround:

  <http://weitz.de/rdnzl/#*coerce-double-floats-to-single*>

You should be able to (temporarily) rebind this variable to T for
single float arguments.  Well, UNLESS your .NET method's signature
contains both System.Single /and/ System.Double.

Let me know if that helps or if you have a better idea.

Cheers,
Edi.



More information about the rdnzl-announce mailing list