[pypy-svn] r45633 - in pypy/dist/pypy/lang/scheme: . test
jlg at codespeak.net
jlg at codespeak.net
Mon Aug 13 17:57:41 CEST 2007
Author: jlg
Date: Mon Aug 13 17:57:40 2007
New Revision: 45633
Modified:
pypy/dist/pypy/lang/scheme/object.py
pypy/dist/pypy/lang/scheme/test/test_continuation.py
Log:
cleanup
Modified: pypy/dist/pypy/lang/scheme/object.py
==============================================================================
--- pypy/dist/pypy/lang/scheme/object.py (original)
+++ pypy/dist/pypy/lang/scheme/object.py Mon Aug 13 17:57:40 2007
@@ -845,6 +845,7 @@
if not isinstance(lst, W_Pair):
raise SchemeSyntaxError
local_ctx = ctx.copy()
+ body = Body(lst.cdr)
w_formal = lst.car
while isinstance(w_formal, W_Pair):
w_def = w_formal.get_car_as_pair()
@@ -853,7 +854,7 @@
local_ctx.sput(w_def.car, w_val)
w_formal = w_formal.cdr
- return Body(lst.cdr).eval_tr(local_ctx)
+ return body.eval_tr(local_ctx)
class LetStar(W_Macro):
_symbol_name = "let*"
@@ -865,7 +866,6 @@
w_formal = lst
while isinstance(w_formal, W_Pair):
w_def = w_formal.get_car_as_pair()
- #evaluate the values in local ctx
w_val = w_def.get_cdr_as_pair().car.eval_cf(ctx, \
self, lst.cdr, [elst[0], w_def.car], 2)
ctx.sput(w_def.car, w_val)
@@ -904,6 +904,7 @@
if not isinstance(lst, W_Pair):
raise SchemeSyntaxError
local_ctx = ctx.copy()
+ body = Body(lst.cdr)
map_name_expr = {}
map_name_symb = {}
w_formal = lst.car
@@ -922,7 +923,7 @@
for (name, w_val) in map_name_val.items():
local_ctx.ssete(map_name_symb[name], w_val)
- return Body(lst.cdr).eval_tr(local_ctx)
+ return body.eval_tr(local_ctx)
def quote(sexpr):
return W_Pair(W_Symbol('quote'), W_Pair(sexpr, w_nil))
Modified: pypy/dist/pypy/lang/scheme/test/test_continuation.py
==============================================================================
--- pypy/dist/pypy/lang/scheme/test/test_continuation.py (original)
+++ pypy/dist/pypy/lang/scheme/test/test_continuation.py Mon Aug 13 17:57:40 2007
@@ -211,6 +211,7 @@
assert w_result.to_number() == 10
def test_pitfall_1_1():
+ py.test.skip("letrec not cf")
ctx = ExecutionContext()
w_result = eval_(ctx, """
(let ((cont #f))
@@ -222,9 +223,9 @@
(set! x 1)
(set! y 1)
(c 0))
- (+ x y))))""")
+ (+ x y 1))))""")
- assert w_result.to_number() == 0
+ assert w_result.to_number() == 1
def test_pitfall_1_2():
py.test.skip("(cond ...) and (procedure? ...) not implemented")
More information about the Pypy-commit
mailing list