From: Armin R. <ar...@us...> - 2002-09-30 13:05:42
|
Update of /cvsroot/psyco/psyco/c/Modules In directory usw-pr-cvs1:/tmp/cvs-serv21051/c/Modules Modified Files: parray.c pmath.c Log Message: real Python 2.3 support and a few other features Index: parray.c =================================================================== RCS file: /cvsroot/psyco/psyco/c/Modules/parray.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** parray.c 15 Feb 2002 12:46:36 -0000 1.1 --- parray.c 30 Sep 2002 13:05:09 -0000 1.2 *************** *** 218,224 **** /* array creation: we know the result is of type ArrayType. ! Maybe we should also decode a constant-time description character. */ DEF_KNOWN_RET_TYPE_2(pa_array, cimpl_array, CfReturnRef|CfPyErrIfNull, arraytype) ! /***************************************************************/ --- 218,227 ---- /* array creation: we know the result is of type ArrayType. ! XXX we should also decode a constant-time description character. */ DEF_KNOWN_RET_TYPE_2(pa_array, cimpl_array, CfReturnRef|CfPyErrIfNull, arraytype) ! #if NEW_STYLE_TYPES /* Python >= 2.2b1 */ ! DEF_KNOWN_RET_TYPE_3(parray_new, arraytype->tp_new, ! CfReturnRef|CfPyErrIfNull, arraytype) ! #endif /***************************************************************/ *************** *** 243,248 **** /* map array.array() to its meta-implementation pa_array() */ ! cimpl_array = Psyco_DefineModuleFn(md, "array", METH_VARARGS, ! &pa_array); } Py_XDECREF(md); --- 246,251 ---- /* map array.array() to its meta-implementation pa_array() */ ! cimpl_array = Psyco_DefineModuleC(md, "array", METH_VARARGS, ! &pa_array, &parray_new); } Py_XDECREF(md); Index: pmath.c =================================================================== RCS file: /cvsroot/psyco/psyco/c/Modules/pmath.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** pmath.c 18 Mar 2002 19:04:22 -0000 1.4 --- pmath.c 30 Sep 2002 13:05:09 -0000 1.5 *************** *** 24,28 **** ! #include "math.h" #define CIMPL_MATH_FUNC1(funcname, func, libfunc) \ --- 24,28 ---- ! #include <math.h> #define CIMPL_MATH_FUNC1(funcname, func, libfunc) \ *************** *** 49,80 **** * on invalid args is different */ ! #define PMATH_CONVERT_TO_DOUBLE(vobj, v1, v2) \ ! switch (Psyco_TypeSwitch(po, vobj, &psyfs_int_long_float)) { \ ! case 0: \ ! result = array_new(2); \ ! psyco_generic_call(po, cimpl_fp_from_long, CfNoReturnValue|CfPure, \ ! "va", PsycoInt_AS_LONG(po, vobj), result); \ ! v1 = result->items[0]; \ ! v2 = result->items[1]; \ ! array_release(result); \ ! break; \ ! case 1: \ ! if (!PsycoLong_AsDouble(po, vobj, &v1, &v2)) \ ! return NULL; \ ! break; \ ! case 2: \ ! v1 = PsycoFloat_AS_DOUBLE_1(po, vobj); \ ! v2 = PsycoFloat_AS_DOUBLE_2(po, vobj); \ ! if (v1 == NULL || v2 == NULL) \ ! return NULL; \ ! vinfo_incref(v1); \ ! vinfo_incref(v2); \ ! break; \ ! default: \ ! if (PycException_Occurred(po)) \ ! return NULL; \ ! PycException_SetString(po, PyExc_TypeError, \ ! "bad argument type for built-in operation"); \ ! return NULL; \ } --- 49,62 ---- * on invalid args is different */ ! #define PMATH_CONVERT_TO_DOUBLE(vobj, v1, v2) \ ! switch (psyco_convert_to_double(po, vobj, &v1, &v2)) { \ ! case true: \ ! break; /* fine */ \ ! case false: \ ! return NULL; /* error or promotion */ \ ! default: \ ! PycException_SetString(po, PyExc_TypeError, \ ! "bad argument type for built-in operation"); \ ! return NULL; \ } |