Re: Runtime macros
- From: "Coby Beck" <cbeck@xxxxxxxxxxxxx>
- Date: Mon, 27 Jun 2005 02:01:26 GMT
"Randall Randall" <randall@xxxxxxxxxxxxxxxxxx> wrote in message
news:42bf16b5$1_2@xxxxxxxxxxxxxxxxxxxxx
> Coby Beck wrote:
>> "Randall Randall" <randall@xxxxxxxxxxxxxxxxxx> wrote in message
>> news:42bedf36$1_4@xxxxxxxxxxxxxxxxxxxxx
>>
>>>be a static type to the programmer). Runtime macros with optional
>>>replacement would allow DEFUN forms, for example, to register the
>>>"function"
>>>as a macro rather than a function, and at runtime, the macro could
>>>examine
>>>the actual arguments it got, in addition to their names, and provide
>>>appropriate declarations in its output, and then ask the compiler to
>>>replace it with the function in question. The programmer need not write
>>>declarations again (except for those cases where it wouldn't be possible
>>>to figure out the proper declaration from a single example), and yet,
>
>> When is a single example *ever* going to tell you what to expect
>> everytime? ISTM, if there are cases where you as a programmer can know
>> that the first type seen indicates it is always that type that that can
>> only be an artifact of some implementation detail about your whole
>> system, eg harware, or third party code etc.
>
> Is it really the case that most people write most functions such
> that they can either take, for example, an integer, cons, or array
> for a given argument? I would expect to use CLOS methods for that,
> in CL, but maybe I'm odd.
No, not so often, *but* this is something you usually know at programming
time, which is usually before compile time.
>> You could have a special defun type form that checks if it has yet been
>> called, if this is the first time, check the types of its arguments, put
>> the declarations into the body of its code, compile it and them setf the
>> symbol-function so that next time it just proceeds.
>
> It's true that that's an alternative way of doing the example
> use of what I was talking about. I'll have to think about it
> some more.
I can't help thinking that this is a case of very premature optimization
though. Usually declarations are the kind of thing you do well after
everything is settled and humming along and you need to fix a bottleneck.
In such a case surely you would know why you might get one type or
another...
--
Coby Beck
(remove #\Space "coby 101 @ bigpond . com")
.
- Follow-Ups:
- Re: Runtime macros
- From: Randall Randall
- Re: Runtime macros
- References:
- Runtime macros
- From: Randall Randall
- Re: Runtime macros
- From: Coby Beck
- Re: Runtime macros
- From: Randall Randall
- Runtime macros
- Prev by Date: Re: Buying a MacIvory
- Next by Date: Re: Comments, questions, gripes, or rants about the ALU?
- Previous by thread: Re: Runtime macros
- Next by thread: Re: Runtime macros
- Index(es):
Relevant Pages
|