<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -398,7 +398,7 @@
 (define-trivial-walker resolve-variables-aux (frames))
 
 (define (resolve-variable var frames)
-  (let* ((varrec (lassoc var frames)))
+  (let* ((varrec (symboltable-list-ref frames var)))
     (unless varrec (error &quot;unbound variable ~S&quot; var))
     varrec))
 
@@ -413,15 +413,22 @@
   (rplaca (cdr form) (resolve-variable var frames))
   (resolve-variables-aux val frames))
 
+(define (make-frame varrecs)
+  (let* ((frame (make-symboltable)))
+    (dolist (varrec varrecs)
+      (symboltable-set! frame (car varrec) varrec))
+    frame))
+
 (define-resolve-variables-aux (begin varrecs . body)
-  (resolve-variables-aux-recurse form (cons varrecs frames)))
+  (resolve-variables-aux-recurse form (cons (make-frame varrecs) frames)))
 
 (define-resolve-variables-aux (lambda attrs body)
-  (resolve-variables-aux body (cons (attr-ref attrs 'params) frames)))
+  (resolve-variables-aux body (cons (make-frame (attr-ref attrs 'params))
+                                    frames)))
 
 (define (resolve-variables form)
   (resolve-variables-aux form ()))
-            
+
 ;;; Classify all variables into read-only and (potentially)
 ;;; read-write, or early function (a read-only variable with a
 ;;; function value that is potential ready before its definition).</diff>
      <filename>compiler/compiler.pco</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>eba0e33d5be12aa8ee86be639ffa9105faf2dd87</id>
    </parent>
  </parents>
  <author>
    <name>David Wragg</name>
    <email>david@wragg.org</email>
  </author>
  <url>http://github.com/dpw/pachuco/commit/4bfd1a651e00ce146ee21f6a7d636c154b7ca56f</url>
  <id>4bfd1a651e00ce146ee21f6a7d636c154b7ca56f</id>
  <committed-date>2008-11-08T17:57:36-08:00</committed-date>
  <authored-date>2008-11-08T17:57:36-08:00</authored-date>
  <message>Convert the compiler's resolve-variables pass to symboltables</message>
  <tree>b33359f100c300f25b45e9f8d8931bfe915d9810</tree>
  <committer>
    <name>David Wragg</name>
    <email>david@wragg.org</email>
  </committer>
</commit>
