Next: , Previous: Type specifiers, Up: Declarations


8.3 Treatment of Type Declarations

ECL uses several runtime stacks.

Arguments to functions, lexical and temporary variables are allocated on the C stack. Temporary values saved on the C stack may sometimes be represented as raw data instead of pointers to heap-allocated cells. Accessing such raw data on the C stack results in faster compiled code, partly because no pointer dereferencing operation is necessary, and partly because no cell is newly allocated on the heap when a new object is created. This is particularly helpful for numeric code which computes with floating point numbers.

ECL uses a conservative garbage collector to scan the C stack and find references to live object.