[Python-3000] pyvm module - low level interface to Python's VM

James Y Knight foom at fuhm.net
Thu Nov 29 17:55:49 CET 2007


On Nov 29, 2007, at 11:33 AM, Christian Heimes wrote:

> Shorah!
>
> I've started to work on a pyvm module patch today. The new
> module is going to contain low level interfaces to Python's VM and  
> some
> low level types, too. So far my first version contains only a bunch of
> types.


I'd like to quote some of a thread I started in Aug 2004, subject  
"Classes that claim to be defined in __builtin__ but aren't". I  
haven't rerun the script that generated this list (I have to find it  
again, first, or rewrite it...), but assuming these types are still  
lying about their location, most seem likely candidates for putting in  
a pyvm module.

It might also be a nice idea to require types to have an explicit  
module defined (that is: require tp_name to have a '.' in it) so that  
types can't accidently claim to be defined in the __builtin__ module.

I wrote:
> There's a fair number of classes that claim they are defined in  
> __builtin__, but do not actually appear there.
>


> Okay, so, I don't have a patch, but I have made a script to examine  
> the situation. It seems the problem is a little more widespread than  
> I had realized. I grepped through the python C source to find all  
> the type objects, and then verified their existence. Just looking at  
> Objects/*.c, there are 31 classes without appropriate bindings.  
> Additionally, some aren't even valid identifier names. It seems like  
> there's 4 categories here: iterators, descrobject stuffs, list  
> comparison wrappers, and other. I'm not sure it's a good idea to add  
> all these names to the builtins -- perhaps only the ones in the  
> 'other' group?
>
> For {Modules,Mac,PC,RISCOS,Python}/*.c, most seem like they could  
> relatively straightforwardly be added to their module, but I haven't  
> examined them too closely. Some likely ought to have constructors  
> added (e.g. the dl.dl('file') could be equivalent to dl.open('file')).
>
> __builtin__.dictionary-keyiterator   not found (./Objects/ 
> dictobject.c)
> __builtin__.dictionary-valueiterator   not found (./Objects/ 
> dictobject.c)
> __builtin__.dictionary-itemiterator   not found (./Objects/ 
> dictobject.c)
> __builtin__.tupleiterator   not found (./Objects/tupleobject.c)
> __builtin__.rangeiterator   not found (./Objects/rangeobject.c)
> __builtin__.iterator   not found (./Objects/iterobject.c)
> __builtin__.callable-iterator   not found (./Objects/iterobject.c)
> __builtin__.listiterator   not found (./Objects/listobject.c)
> __builtin__.listreverseiterator   not found (./Objects/listobject.c)
>
> __builtin__.method_descriptor   not found (./Objects/descrobject.c)
> __builtin__.classmethod_descriptor   not found (./Objects/ 
> descrobject.c)
> __builtin__.member_descriptor   not found (./Objects/descrobject.c)
> __builtin__.getset_descriptor   not found (./Objects/descrobject.c)
> __builtin__.wrapper_descriptor   not found (./Objects/descrobject.c)
> __builtin__.method-wrapper   not found (./Objects/descrobject.c)
>
> __builtin__.sortwrapper   not found (./Objects/listobject.c)
> __builtin__.cmpwrapper   not found (./Objects/listobject.c)
>
> __builtin__.ellipsis   not found (./Objects/sliceobject.c)    
> types.EllipsisType
> __builtin__.builtin_function_or_method   not found (./Objects/ 
> methodobject.c)   types.BuiltinFunctionType types.BuiltinMethodType
> __builtin__.dictproxy   not found (./Objects/descrobject.c)    
> types.DictProxyType
> __builtin__.generator   not found (./Objects/genobject.c)    
> types.GeneratorType
> __builtin__.PyCObject   not found (./Objects/cobject.c)
> __builtin__.classobj   not found (./Objects/classobject.c)    
> types.ClassType
> __builtin__.instance   not found (./Objects/classobject.c)    
> types.InstanceType
> __builtin__.instancemethod   not found (./Objects/classobject.c)    
> types.MethodType types.UnboundMethodType
> __builtin__.cell   not found (./Objects/cellobject.c)
> __builtin__.NoneType   not found (./Objects/object.c)   types.NoneType
> __builtin__.NotImplementedType   not found (./Objects/object.c)    
> types.NotImplementedType
> __builtin__.frame   not found (./Objects/frameobject.c)    
> types.FrameType
> __builtin__.function   not found (./Objects/funcobject.c)    
> types.FunctionType types.LambdaType
> __builtin__.module   not found (./Objects/moduleobject.c)    
> types.ModuleType
>
>
> (the Mac ones I checked on my mac w/ python 2.3.0)
> _Qt.IdleManager   not found (./Mac/Modules/qt/_Qtmodule.c)
> _Qt.SGOutput   not found (./Mac/Modules/qt/_Qtmodule.c)
> module _OSA not installed (./Mac/Modules/osa/_OSAmodule.c)
> Nav.NavReplyRecord   not found (./Mac/Modules/Nav.c)
> _Scrap.Scrap   not found (./Mac/Modules/scrap/_Scrapmodule.c)
> module waste not installed (./Mac/Modules/waste/wastemodule.c)
> MacOS.ResourceFork   not found (./Mac/Modules/macosmodule.c)
> icglue.ic_instance   not found (./Mac/Modules/icgluemodule.c)
>
>
> __builtin__.PyHKEY   not found (./PC/_winreg.c)
> __builtin__.drawf   not found (./RISCOS/Modules/drawfmodule.c)
> __builtin__.block   not found (./RISCOS/Modules/swimodule.c)
> __builtin__.traceback   not found (./Python/traceback.c)    
> types.TracebackType
> __builtin__.code   not found (./Python/compile.c)   types.CodeType
> __builtin__.symtable entry   not found (./Python/symtable.c)
> __builtin__.tktimertoken   not found (./Modules/_tkinter.c)
> __builtin__.tkapp   not found (./Modules/_tkinter.c)
> __builtin__.arrayiterator   not found (./Modules/arraymodule.c)
> _curses_panel.curses panel   not found (./Modules/_curses_panel.c)
> linuxaudiodev.linux_audio_device   not found (./Modules/ 
> linuxaudiodev.c)
> module fl not installed (./Modules/flmodule.c)
> __builtin__.DB   not found (./Modules/_bsddb.c)
> __builtin__.DBCursor   not found (./Modules/_bsddb.c)
> __builtin__.DBEnv   not found (./Modules/_bsddb.c)
> __builtin__.DBTxn   not found (./Modules/_bsddb.c)
> __builtin__.DBLock   not found (./Modules/_bsddb.c)
> sha.SHA   not found (./Modules/shamodule.c)
> module sv not installed (./Modules/svmodule.c)
> itertools._grouper   not found (./Modules/itertoolsmodule.c)
> itertools.tee_dataobject   not found (./Modules/itertoolsmodule.c)
> rotor.rotor   not found (./Modules/rotormodule.c)
> module cl not installed (./Modules/clmodule.c)
> _sre.SRE_Pattern   not found (./Modules/_sre.c)
> _sre.SRE_Match   not found (./Modules/_sre.c)
> _sre.SRE_Scanner   not found (./Modules/_sre.c)
> socket.SSL   not found (./Modules/_ssl.c)
> _curses.curses window   not found (./Modules/_cursesmodule.c)
> parser.st   not found (./Modules/parsermodule.c)
> cStringIO.StringO   not found (./Modules/cStringIO.c)
> cStringIO.StringI   not found (./Modules/cStringIO.c)
> module sunaudiodev not installed (./Modules/sunaudiodev.c)
> module dbm not installed (./Modules/dbmmodule.c)
> dl.dl   not found (./Modules/dlmodule.c)
> module fm not installed (./Modules/fmmodule.c)
> regex.regex   not found (./Modules/regexmodule.c)
> pyexpat.xmlparser   not found (./Modules/pyexpat.c)
> __builtin__.MultibyteCodec   not found (./Modules/cjkcodecs/ 
> multibytecodec.c)
> __builtin__.MultibyteStreamReader   not found (./Modules/cjkcodecs/ 
> multibytecodec.c)
> __builtin__.MultibyteStreamWriter   not found (./Modules/cjkcodecs/ 
> multibytecodec.c)
> bsddb.bsddb   not found (./Modules/bsddbmodule.c)
> module cd not installed (./Modules/cdmodule.c)
> cPickle.Pdata   not found (./Modules/cPickle.c)
> module al not installed (./Modules/almodule.c)
> __builtin__.deque_iterator   not found (./Modules/collectionsmodule.c)
> __builtin__.deque_reverse_iterator   not found (./Modules/ 
> collectionsmodule.c)
> thread.lock   not found (./Modules/threadmodule.c)
> zlib.Compress   not found (./Modules/zlibmodule.c)
> zlib.Decompress   not found (./Modules/zlibmodule.c)
> gdbm.gdbm   not found (./Modules/gdbmmodule.c)
> ossaudiodev.oss_audio_device   not found (./Modules/ossaudiodev.c)
> ossaudiodev.oss_mixer_device   not found (./Modules/ossaudiodev.c)


More information about the Python-3000 mailing list