D vs. ISRs (interrupt service routines) or Which D language features implictly allocate memory?
Unknown W. Brackets
unknown at simplemachines.org
Sat May 5 00:10:30 PDT 2007
Well, slicing will not. Splicing will. Sorry to be pedantic.
-[Unknown]
> Forest Ray wrote:
>> One of D's intended uses is systems level programming. These tasks
>> include implementing ISR (interrupt service routines). Generally
>> speaking it is a very bad idea to allocate memory within an ISR,
>> unless your memory system is reentrant. Many memory managers,
>> especially in the embedded environment, are not reentrant. What
>> language features of D implicitly allocate or resize memory? I assume
>> dynamic arrays, associative arrays, splicing, and concatenation will,
>> but what else? Obviously "new" allocates memory, but that is an
>> explicit request by the programmer, not an implicit request as a side
>> effect of a D language feature. It would be very useful to have the
>> ability to tag a scope of code as "native" or "pure" or
>> "some_better_keyword" so the D compiler would issue an error for any
>> expressions or statements within that scope that implicitly
>> allocate/resized memory. Thoughts, comments?
>>
>> Forest
>
> 'new', concatenation and adding elements to associative arrays allocate
> memory. Those are the only language features that do (AFAIK)
>
> Of the ones you assumed did, notably splicing does not.
>
> - Gregor Richards
More information about the Digitalmars-d
mailing list