splatspace/uberlisp — Issue #3: Garbage Collection
Author: alandipert
Created: 2011-10-23 19:14:47+00:00
State: open

# Motivation

We have roughly 2kb available memory on the Uno. With an average object size of 6 bytes, not accounting for heap, we have the theoretical capacity for ~340 objects in memory at any given time. We'd like to be reclaim memory used by unreferenced objects so that Lisp programs on the Arduino can be bigger and run run longer with a lower chance of running out of memory.

# Dependencies

* environments and lexical scopes

# Criteria

* How will be keep track of object references?
* Which GC strategy is best?
* What process will initiate garbage collection?
** What's the best way to do this on the Arduino?
** Does the best way to do it on a PC differ?
* Create a branch and tickets that need doing once there's a plan