diff --git a/am/bootstrap.am b/am/bootstrap.am index acc00c762..2f5804fe1 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 e4cf55c4c..b15005372 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 bf36b65d8..53e87987a 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))))