[pypy-commit] lang-scheme default: fix compile on windows, add nicer error when file not found
timfel
noreply at buildbot.pypy.org
Sun Nov 10 19:19:02 CET 2013
Author: Tim Felgentreff <timfelgentreff at gmail.com>
Branch:
Changeset: r45:b1d5a1b8744f
Date: 2013-11-10 19:15 +0100
http://bitbucket.org/pypy/lang-scheme/changeset/b1d5a1b8744f/
Log: fix compile on windows, add nicer error when file not found
diff --git a/scheme/execution.py b/scheme/execution.py
--- a/scheme/execution.py
+++ b/scheme/execution.py
@@ -137,4 +137,3 @@
return loc
return None
-
diff --git a/scheme/targetscheme.py b/scheme/targetscheme.py
--- a/scheme/targetscheme.py
+++ b/scheme/targetscheme.py
@@ -2,6 +2,7 @@
A simple standalone target for the scheme interpreter.
"""
+import os
import sys
from rpython.rlib.streamio import open_file_as_stream
from rpython.rlib.parsing.makepackrat import BacktrackException
@@ -14,13 +15,23 @@
def entry_point(argv):
if len(argv) == 2:
- code = open_file_as_stream(argv[1]).readall()
+ path = argv[1]
+ try:
+ f = open_file_as_stream(path, buffering=0)
+ except OSError as e:
+ os.write(2, "%s -- %s (LoadError)\n" % (os.strerror(e.errno), path))
+ return 1
+ try:
+ code = f.readall()
+ finally:
+ f.close()
+
try:
t = parse(code)
except BacktrackException, e:
(line, col) = e.error.get_line_column(code)
#expected = " ".join(e.error.expected)
- print "parse error in line %d, column %d" % (line, col)
+ os.write(2, "parse error in line %d, column %d" % (line, col))
return 1
#this should not be necessary here
@@ -51,4 +62,3 @@
if __name__ == '__main__':
entry_point(sys.argv)
-
More information about the pypy-commit
mailing list