| Commit message (Collapse) | Author | Age | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Handle memory compaction in places where we've got pointers into the
heap across an allocation operation. Either re-compute the values from
managed global references or add new roots across the allocation.
Signed-off-by: Keith Packard <keithp@keithp.com>
 | 
| | 
| 
| 
| 
| 
|  | 
Not working yet
Signed-off-by: Keith Packard <keithp@keithp.com>
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Use a boolean array to note cons cells which would otherwise recurse,
then loop until that array is empty.
Signed-off-by: Keith Packard <keithp@keithp.com>
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Pass reference to move API so it can change the values in-place, then
let it return '1' when the underlying object has already been moved to
shorten GC times.
Signed-off-by: Keith Packard <keithp@keithp.com>
 | 
| | 
| 
| 
|  | 
Signed-off-by: Keith Packard <keithp@keithp.com>
 | 
|   
  
  
  
  
  
  
  
  
  
   | 
This enables changing values of atoms declared as constants, should
enable lets, and with some work, even lexical scoping.
this required changing the constant computation to run
ao_lisp_collect() before dumping the block of constant data, and that
uncovered some minor memory manager bugs.
Signed-off-by: Keith Packard <keithp@keithp.com>
 |