guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 06/13: Read Scheme via read-syntax


From: Andy Wingo
Subject: [Guile-commits] 06/13: Read Scheme via read-syntax
Date: Thu, 25 Feb 2021 15:39:09 -0500 (EST)

wingo pushed a commit to branch master
in repository guile.

commit 03448b289d9804bb27b633b82e22cf7be55743c5
Author: Andy Wingo <wingo@pobox.com>
AuthorDate: Wed Feb 24 20:47:28 2021 +0100

    Read Scheme via read-syntax
    
    * module/language/scheme/spec.scm: Use read-syntax.
    * test-suite/tests/dwarf.test: Adapt expected source locations.
    * am/bootstrap.am (SOURCES): Add ice-9/read.
---
 am/bootstrap.am                 |  1 +
 module/language/scheme/spec.scm |  3 ++-
 test-suite/tests/dwarf.test     | 20 +++++++++++++-------
 3 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/am/bootstrap.am b/am/bootstrap.am
index acc00c7..2f5804f 100644
--- a/am/bootstrap.am
+++ b/am/bootstrap.am
@@ -102,6 +102,7 @@ SOURCES =                                   \
   ice-9/match.scm                              \
   ice-9/networking.scm                         \
   ice-9/posix.scm                              \
+  ice-9/read.scm                               \
   ice-9/rdelim.scm                             \
   ice-9/receive.scm                            \
   ice-9/regex.scm                              \
diff --git a/module/language/scheme/spec.scm b/module/language/scheme/spec.scm
index e4cf55c..b150053 100644
--- a/module/language/scheme/spec.scm
+++ b/module/language/scheme/spec.scm
@@ -21,6 +21,7 @@
 (define-module (language scheme spec)
   #:use-module (system base compile)
   #:use-module (system base language)
+  #:use-module (ice-9 read)
   #:use-module (language scheme compile-tree-il)
   #:use-module (language scheme decompile-tree-il)
   #:export (scheme))
@@ -37,7 +38,7 @@
                   ((or (and=> (and=> (module-variable env 'current-reader)
                                      variable-ref)
                               fluid-ref)
-                       read)
+                       read-syntax)
                    port))
 
   #:compilers   `((tree-il . ,compile-tree-il))
diff --git a/test-suite/tests/dwarf.test b/test-suite/tests/dwarf.test
index bf36b65..53e8798 100644
--- a/test-suite/tests/dwarf.test
+++ b/test-suite/tests/dwarf.test
@@ -1,6 +1,6 @@
 ;;;; dwarf.test                               -*- scheme -*-
 ;;;;
-;;;; Copyright 2013 Free Software Foundation, Inc.
+;;;; Copyright 2013, 2021 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -26,7 +26,7 @@
 
 (define prog
   (string-concatenate
-   ;; Every open parenthesis is a possible source location.
+   ;; The start of every datum is a possible source location.
    '("(define (qux f)\n" 
      ;^ 0:0
      "  (+ 32 (f)))\n"
@@ -37,6 +37,7 @@
      "  (lambda (a)\n"
      ;  ^ 4:2
      "    13))\n"
+     ;    ^ 5:4
      "'success\n")
    ))
 
@@ -81,10 +82,15 @@
      (error "unexpected sources" sources)))
 
   (match (find-program-sources (program-code bar))
-    ((source)
-     (pass-if-equal "foo.scm" (source-file source))
-     (pass-if-equal 4 (source-line source))
-     (pass-if-equal 5 (source-line-for-user source))
-     (pass-if-equal 2 (source-column source)))
+    ((s1 s2)
+     (pass-if-equal "foo.scm" (source-file s1))
+     (pass-if-equal 4 (source-line s1))
+     (pass-if-equal 5 (source-line-for-user s1))
+     (pass-if-equal 2 (source-column s1))
+
+     (pass-if-equal "foo.scm" (source-file s2))
+     (pass-if-equal 5 (source-line s2))
+     (pass-if-equal 6 (source-line-for-user s2))
+     (pass-if-equal 4 (source-column s2)))
     (sources
      (error "unexpected sources" sources))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]