diff --git a/guile/gc.scm b/guile/gc.scm index c2505909..2f680b77 100644 --- a/guile/gc.scm +++ b/guile/gc.scm @@ -1,3 +1,29 @@ +;;; -*-scheme-*- + +;;; Mes --- Maxwell Equations of Software +;;; Copyright © 2016 Jan (janneke) Nieuwenhuizen +;;; +;;; mes.mes: This file is part of Mes. +;;; +;;; Mes is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; Mes is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with Mes. If not, see . + +;;; Commentary: + +;;; This is an early SICP stop-and-copy garbage collector playground, +;;; currently not used. + +;;; Code: (define-module (guile gc)) @@ -212,7 +238,7 @@ (if (eq? scan gc-free) (gc-flip) (let ((old (vector-ref new-cars scan))) (let ((new (gc-relocate old))) - (let ((old (gc-update-car scan new))) + (let ((old (gc-update-car scan new))) (let ((new (gc-relocate old))) (let ((scan (gc-update-cdr scan new))) (gc-loop scan)))))))) @@ -230,7 +256,7 @@ (define (gc-relocate old) ; old -> new (display "gc-relocate old=") (display old) (newline) (display "gc-relocate old is pair?=") (display (gc-pair? old)) (newline) - + (if (not (gc-pair? old)) old (let ((oldcr (vector-ref the-cars (cell-index old)))) (display "gc-relocate oldcr=") (display oldcr) (newline)