[IronPython] Writing new modules

Nick Bastin nbastin at opnet.com
Mon Aug 16 10:47:07 PDT 2004


On Aug 16, 2004, at 1:14 PM, Jim Hugunin wrote:

> Nick Bastin wrote:
>> I'd like to take a hack at implementing _random, but I am a bit
>> confused as to how it works, so I have a few questions.  Keep in mind
>
> You should look at the existing modules such as math and re for some
> examples of how this can be done.  I believe this is a VERY simple 
> process.

Ok, just making sure it was as simple as it appeared.. :-)

>> It seems as if a module is available to the interpreter merely by
>> existing in IronPython.Modules.  Is this correct?
>
> This is mostly correct; however, the module also needs to be visible 
> to the
> interpreter, which for now probably means building it as part of
> IronPython.dll.  This is a configuration issue that will be resolved 
> moving
> forward.

That's fine, since that's technically how we build CPython as well.  
This actually generates another question - I don't have VC.NET, but 
rather am using Mono.  Is there any build system set up for non-VC 
builds, or do I have to make one?

>> sys.modules appears to be completely non-functional.  Is this a matter
>> of just not having an implementation, or is there a technical hurdle
>> here?
>
> I believe that sys.modules is only being used today for imports from 
> Python
> source code to avoid the circular import danger.  It's probably 
> completely
> non-functional for "builtin" modules.

It's functional for built-in modules, although hopefully built-in 
modules don't create the problem that it solves (C modules could still 
introduce a circular dependency, and it does solve that, but doing it 
in the standard distribution would be Bad(tm)).  It also allows for 
some rather nifty introspection by running programs to determine their 
environment (and allows you to solve the 'Reload everything that's been 
loaded since I started' problem).

--
Nick



More information about the users-ironpython.com mailing list