Author: Maciej Fijalkowski <fij...@gmail.com> Branch: Changeset: r376:df788d5d8fff Date: 2013-07-09 11:16 +0200 http://bitbucket.org/pypy/stmgc/changeset/df788d5d8fff/
Log: implement cons diff --git a/duhton/glob.c b/duhton/glob.c --- a/duhton/glob.c +++ b/duhton/glob.c @@ -527,6 +527,14 @@ return DuCons_Cdr(obj); } +DuObject *du_cons(DuObject *cons, DuObject *locals) +{ + DuObject *obj1, *obj2; + _du_getargs2("cons", cons, locals, &obj1, &obj2); + + return DuCons_New(obj1, obj2); +} + DuObject *du_not(DuObject *cons, DuObject *locals) { DuObject *obj; @@ -627,6 +635,7 @@ DuFrame_SetBuiltinMacro(Du_Globals, "defun", du_defun); DuFrame_SetBuiltinMacro(Du_Globals, "car", du_car); DuFrame_SetBuiltinMacro(Du_Globals, "cdr", du_cdr); + DuFrame_SetBuiltinMacro(Du_Globals, "cons", du_cons); DuFrame_SetBuiltinMacro(Du_Globals, "not", du_not); DuFrame_SetBuiltinMacro(Du_Globals, "transaction", du_transaction); DuFrame_SetBuiltinMacro(Du_Globals, "sleepms", du_sleepms); diff --git a/duhton/test/test_cons.py b/duhton/test/test_cons.py --- a/duhton/test/test_cons.py +++ b/duhton/test/test_cons.py @@ -5,6 +5,7 @@ assert run("(print ())") == "None\n" assert run("(print None)") == "None\n" assert run("(print (quote (1 2 3)))") == "( 1 2 3 )\n" + assert run("(print (cons 1 2))") == "( 1 . 2 )\n" def test_car_cdr(): assert run("(print (car (quote (2 3))))") == "2\n" _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit