Can compiler macros make use of type declarations?
Antoniotti Marco
antoniotti.marco at disco.unimib.it
Thu Nov 9 08:39:18 UTC 2017
CMUCL and SBCL have the Environment API somewhat available (*)
You can see whether they store the inferred values in there.
Marco
(*) Again, you can have a look at CLAST to see how to access it; I know: it is a shameless plug.
> On Nov 9, 2017, at 09:18 , Chaitanya Gupta <mail at chaitanyagupta.com> wrote:
>
> So thanks to the replies on this I now know that most of the popular
> Lisps do support inspecting the environment to figure out declared
> types.
>
> But what about inferred types (e.g. in CMUCL, SBCL)? Do these Lisps
> provide a way to know the inferred type of a variable if no
> declaration was made explicitly?
>
> Chaitanya
>
> On 7 November 2017 at 02:13, Chaitanya Gupta <mail at chaitanyagupta.com> wrote:
>> Let's say I have created a function called `FOO`:
>>
>> (defun foo (x)
>> ...)
>>
>> To optimize this function, I write a compiler macro. Can I make use of
>> type declarations that users of `FOO` might have made for the argument
>> `X` that is passed in to it?
>>
>> That is, let's say `FOO` is used like this:
>>
>> (let ((a (something-that-returns-an-integer)))
>> (declare (integer a))
>> (foo a))
>>
>> The compiler macro for `FOO` cannot make any optimizations on the
>> value of `A`, but can it take advantage of the fact that `A` is
>> declared as in `INTEGER` here?
>>
>> Chaitanya
>
--
Marco Antoniotti, Associate Professor tel. +39 - 02 64 48 79 01
DISCo, Università Milano Bicocca U14 2043 http://bimib.disco.unimib.it
Viale Sarca 336
I-20126 Milan (MI) ITALY
Please check: http://troncopackage.org
Please note that I am not checking my Spam-box anymore.
Please do not forward this email without asking me first (cum grano salis).
More information about the pro
mailing list