Christian Heimes added the comment:

I like to apply the py3k_add_types_to_h.patch before the next alpha and
discuss the fate of pyvm after the alpha.

Added file: http://bugs.python.org/file8831/py3k_pyvm3.patch

__________________________________
Tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue1522>
__________________________________
Index: Modules/pyvm.c
===================================================================
--- Modules/pyvm.c	(Revision 0)
+++ Modules/pyvm.c	(Revision 0)
@@ -0,0 +1,92 @@
+/* pyvm module
+   Low level interface to Python's virtual machine and internal types.
+
+   Copyright (c) 2007 by Christian Heimes <[EMAIL PROTECTED]>
+   Licensed to PSF under a Contributor Agreement.
+   All rights reserved.
+*/
+
+#include "Python.h"
+#include "frameobject.h"
+
+typedef struct _typeinfo {
+	PyTypeObject *type;
+	char *name;
+} typeinfo;
+
+PyDoc_STRVAR(pyvm_doc,
+"Python Virtual Machine module\n");
+
+static PyMethodDef pyvm_methods[] = {
+	{NULL,		NULL}		/* sentinel */
+};
+
+PyMODINIT_FUNC
+initpyvm(void)
+{
+	char *name;
+	PyObject *mod;
+	typeinfo *ti;
+	typeinfo types[] = {
+		/* descriptors */
+		{&PyClassMethodDescr_Type, NULL},
+		{&PyGetSetDescr_Type, NULL},
+		{&PyMemberDescr_Type, NULL},
+		{&PyMethodDescr_Type, NULL},
+		{&PyWrapperDescr_Type, NULL},
+		/* functions */
+		{&PyCFunction_Type, "builtin_method"},
+		{&PyCFunction_Type, "builtin_function"}, /* alias */
+		{&PyFunction_Type, NULL},
+		{&PyMethod_Type, "instance_method"},
+		/* dict */
+		{&PyDictIterKey_Type, NULL},
+		{&PyDictIterValue_Type, NULL},
+		{&PyDictIterItem_Type, NULL},
+		{&PyDictKeys_Type, NULL},
+		{&PyDictItems_Type, NULL},
+		{&PyDictValues_Type, NULL},
+		{&PyDictProxy_Type, NULL},
+		/* iter */
+		{&PyBytesIter_Type, NULL},
+		{&PyCallIter_Type, "callable_iterator"},
+		{&PyLongRangeIter_Type, NULL},
+		{&PyListIter_Type, NULL},
+		{&PyListRevIter_Type, NULL},
+		{&PyRangeIter_Type, NULL},
+		{&PySeqIter_Type, NULL},
+		{&PySetIter_Type, NULL},
+		{&PyStringIter_Type, NULL},
+		{&PyTupleIter_Type, NULL},
+		{&PyUnicodeIter_Type, NULL},
+		/* other */
+		{&PyCObject_Type, NULL},
+		{&PyCode_Type, NULL},
+		{&PyFrame_Type, NULL},
+		{&PyGen_Type, NULL},
+		{&PyModule_Type, NULL},
+		{&PyTraceBack_Type, NULL},
+		{&PyCell_Type, NULL},
+		{&PyEnum_Type, NULL},
+		{&PyReversed_Type, NULL},
+		{&PySortWrapper_Type, NULL},
+		{&PyCmpWrapper_Type, NULL},
+		/* sentinel */
+		{NULL, NULL}
+	};
+
+	mod = Py_InitModule3("pyvm", pyvm_methods, pyvm_doc);
+	if (mod == NULL)
+		return;
+
+	ti = types;
+	while(ti->type != NULL) {
+		name = ti->name;
+		if (name == NULL)
+			name = (char*)ti->type->tp_name;
+		assert(name);
+		Py_INCREF(ti->type);
+		PyModule_AddObject(mod, name, (PyObject *)ti->type);
+		ti++;
+	}
+}

Eigenschaftsänderungen: Modules/pyvm.c
___________________________________________________________________
Name: svn:keywords
   + Id

Index: Modules/Setup.dist
===================================================================
--- Modules/Setup.dist	(Revision 59215)
+++ Modules/Setup.dist	(Arbeitskopie)
@@ -113,6 +113,7 @@
 errno errnomodule.c		# posix (UNIX) errno values
 pwd pwdmodule.c			# this is needed to find out the user's home dir
 				# if $HOME is not set
+pyvm pyvm.c			# Python VM low level interface
 _sre _sre.c			# Fredrik Lundh's new regular expressions
 _codecs _codecsmodule.c		# access to the builtin codecs and codec registry
 _fileio _fileio.c		# Standard I/O baseline
_______________________________________________
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to