[IronPython] Feedback needed for bug fix:Import pre-compiledmodules

Keith J. Farmer kfarmer at thuban.org
Tue Jan 23 03:24:33 CET 2007


the upgraded-ironpython scenario

>>> I do not think this is supported. The pre-compiled module has much dependency on IronPython.dll. Some emitted calls in those modules could be changed (or removed) in the next version of IronPython.dll.

 
That makes me itch...  I understand runtime dependencies, but the binaries-only deployment scenario just dropped in value if they are completely invalidated because the runtime undergoes a minor rev (or is otherwise touched).
 
Would it be possible for the runtime to query the assembly to determine if it's compatible or not?  Some sort of poor man's static analysis (eg, a manifest of API dependencies could be generated when the assembly is stored to disk, and if the runtime doesn't find any in the list that match any breaking change from the producing version, it accepts it).
 

________________________________

From: users-bounces at lists.ironpython.com on behalf of Haibo Luo
Sent: Mon 1/22/2007 4:44 PM
To: Discussion of IronPython
Subject: Re: [IronPython] Feedback needed for bug fix:Import pre-compiledmodules



If ironpython.dll is newer than lib.exe, and lib.py does not exist, we should expect an exception? 

>>> Yes

 

the upgraded-ironpython scenario

>>> I do not think this is supported. The pre-compiled module has much dependency on IronPython.dll. Some emitted calls in those modules could be changed (or removed) in the next version of IronPython.dll.

 

From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Keith J. Farmer
Sent: Monday, January 22, 2007 4:34 PM
To: Discussion of IronPython
Subject: Re: [IronPython] Feedback needed for bug fix: Import pre-compiledmodules

 

"""

"import lib" prefers loading lib.exe to lib.py,  if neither ironpython.dll nor lib.py is newer than lib.exe. 

"""

 

So:

    If lib.py doesn't exist, and lib.exe does, it'll import the exe.  

    If lib.py does exist, it'll load lib.exe if the .exe is newer. 

 

(Assuming in both cases that ironpython.dll is older than the exe.)

 

If ironpython.dll is newer than lib.exe, and lib.py does not exist, we should expect an exception?  How does this impact the upgraded-ironpython scenario for third-party dlls, or do you recommend sending source code to recompile with?

 

 

________________________________

From: users-bounces at lists.ironpython.com on behalf of Haibo Luo
Sent: Mon 1/22/2007 4:13 PM
To: users at lists.ironpython.com
Subject: [IronPython] Feedback needed for bug fix: Import pre-compiledmodules

We recently checked in a fix for codeplex work item# 358 (Implement import of pre-compiled modules <http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=358> ). If possible, please download the source, and try it with your scenarios to see whether it addresses your issue (since many of you voted for this item). 

 

Running ipy.exe with existing -X:SaveAssemlies switch saves all .py files to corresponding .exe files. For example, given 2 files, main.py, and lib.py

 

# lib.py

x = 10

 

# main.py

import lib

print lib.x

 

"ipy.exe -X:SaveAssemblies main.py" will result in the creation of lib.exe and main.exe.

 

Next time you run main.py (no switch necessary), "import lib" prefers loading lib.exe to lib.py,  if neither ironpython.dll nor lib.py is newer than lib.exe. 

This is also supposed to enable the binary deployment: you can copy only exe's (with the package structure) along with ironpython binaries to run your IronPython app.

 

A new switch "-X:NotImportCompiled" is provided to disable such pre-compiled module import.

 

Just a reminder, you can always vote on bugs in codeplex <http://www.codeplex.com/IronPython/WorkItem/List.aspx> . Thanks!

 




More information about the Ironpython-users mailing list