On Saturday, 1 September 2012 at 02:52:23 UTC, bearophile wrote:
One more comment, a quotation from the DIP18:

Currently, all functions can use garbage collected memory. Threads that call those functions must be managed by the garbage collector, which may occasionally suspend them to perform collection. This can lead to unwanted pauses, that are not acceptable in some situations, mainly real-time audio/video processing, gaming, and others.<

C heap functions like malloc(), calloc(), realloc() have the same problem, their run-time is not deterministic, so if you don't want pauses a @noheap is useful.

@noheap is not meant to forbid calling low-level system-specific memory allocation functions.

Bye,
bearophile

It looks very much that several annotations are actually directed at the compiler or the runtime for specific optimisations. The @ could be used (or are used) as local compiler switches or runtime hints.

Reply via email to