[IronPython] ipy.exe as a Compiler

Pigneri, Rocco rpigneri at LavaStorm.com
Wed Feb 13 22:00:36 CET 2008


Dear all,
 
I am trying to use ipy.exe as a compiler to compile automatically
nightly builds using a make-like build tool, and I was having some
difficulty getting it to work.  First, I'll lay out what I am trying to
accomplish, and then lay out my questions.
 
I want to be able to organize a large product into different projects,
each located in a separate directory.  Projects that are made only to
serve another project are in subdirectories of the dependent project.
In other words, if A depends on B and C, B and C would be in separate
directories off of A's directory.  I would ideally like to compile B and
C into DLL's and A into an EXE assembly or compile them all into one
large executable assembly.
 
So, first question: is this a properly Pythonic way to go about doing
things?  I'm pretty new to Python so it's possible that I'm trying to
use my C#/Java experience in a negative way here.
 
Second, can I change the name of the target?  In other words, is there
an option like -o from gcc?
 
Third, can I create DLL's with ipy.exe or am I forced to always create
executable assemblies?  It would be nice if I could compile all my
subprojects into separate assemblies and then make the "top level" one
be the one EXE.
 
Fourth, can I reference assemblies in more than one directory when
building an EXE?  If A depends on only B, I can provide the path to B
via  -X:AssembliesDir directive, and then everything is built in one
assembly using whatever Python files are found in the AssembliesDir and
the current directory.  However, if A depends on B and C, then providing
two paths in the -X:AssembliesDir switch--separated by a colon or
semicolon--produces an error, and providing two switches means that only
the final one is used.
 
Fifth, using -X:AssembliesDir and -X:SaveAssembly always seems to run
the assemblies out of the AssembliesDir directory rather than the
current directory at the prompt.  Is this correct behavior?
 
Sixth, is there a way to compile a script without running it?  The
-X:SaveAssemblies option runs the script no matter what.  It would be
useful to turn this off in automated builds.
 
Seventh, there seems to be some sort of dependency built into IPY
assemblies regarding assembly names.  If A depends on B, for example,
then I can compile A and B separately (A complains that it cannot find
B), put all the assemblies in one directory, and run everything without
any problem.  I can even rename B.exe to B.dll and still run A.exe.
However, if I repeat the same process when A depends on B and C, A.exe
fails to run, regardless of the names of other assemblies.  Could
someone help me understand what is going on here?
 
Finally, is there documentation somewhere about all the -X compiler
switches?  Googling for a few of them seemed only to lead me to some
e-mails about them rather than to any formal documenation.
 
Sorry for the huge e-mail, but after searching for information for two
days, I have more questions than when I started :-).  I guess that means
I'm learning :-).
 
Thank you,
 
Rocco
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080213/86ac439a/attachment.html>


More information about the Ironpython-users mailing list