Is there a memory garbage collection?
All memory needed by a program is fully managed by the compiler. Memory allocation/deallocation is automatic and typically the programmer does not need to be concerned with it. All allocated memory will be eventually deallocated once it is not needed. The default memory management algorithm is very efficient with low overhead and is described in more detail in the FormulaOne language manual. However, there may be situations when eventually is not soon enough and the program runs out of all available memory before the memory is deallocated. In this case you can compile the program with a more aggressive garbage collection, using “Settings->Compiler->Enable Garbage Collection”. This setting overrides the default “lazy” garbage collection and causes memory deallocation as soon as possible. Note that this is not an issue with true predicates: true predicates free unused memory automatically as a byproduct of backtracking.