;;; -*- mode: Lisp; Syntax: Common-Lisp; -*- ;;; ;;; Copyright (c) 2009 by the authors. ;;; ;;; See LICENCE for details. (in-package :hu.dwim.excosy) ;;;;;; ;;; Tradeoffs ;;; ;;; precise vs. conservative ;;; moving/compacting vs. non-moving ;;; explicit vs. implicit reclamation phase ;;; stopping vs. incremental vs. concurrent ;;; generational vs. non-generational ;;; ;;; selected properties: precise, compacting, incremental, implicit reclamation, concurrent, generational (def class* heap () ((generations :type list))) (def class* heap-generation () ((age :type integer) (segments :type list))) (def class* heap-segment () ((size :type integer) (root-objects :type list))) (def class* object () ((location :type integer) (size :type integer) (referenced-objects :type list))) (def function map-heap-segments (heap function)) (def function heap-segment-generation (heap-segment)) (def function map-root-objects (heap-segment function)) (def function map-referenced-objects (object function)) (def function map-marked-objects (color)) (def function mark-object (object color)) (def function copy-object (object)) (def function allocate-object (size)) (def function free-object (object)) ;;;;;; ;;; collect-garbage (def function collect-garbage (heap))