|
|
|
|
|
by liamilan
1025 days ago
|
|
Crumb is garbage collected (there is no need to manually allocated/deallocate memory)... though there is no background "garbage collector" process running... The interpreter for Crumb is a tree-walk interpreter, and it just frees memory whenever it can... Crumb frees memory in the following cases: 1) When a function is finished, all memory related to the scope of that runtime is freed. 2) When an value is not returned out of a statement, or assigned to a variable, said value is freed. 3) When a function is applied, if an argument has no reference (it is not stored in a variable), it is freed. 4) Additionally, if the function itself has no reference (such as in the case of an immediately invoked function), it is freed. Hope that clarifies things a bit :D |
|