[chimera-dev] numpy library compiled to run with other libraries inside Chimera
Greg Couch
gregc at cgl.ucsf.edu
Tue Jul 12 15:59:19 PDT 2011
On 07/12/2011 01:02 PM, Terry Lang wrote:
> I use Chimera as a back end library for a bunch of my code. I
> occasionally run into a function that an external library, scipy for
> example, has already implemented. I have found the chimera flag that
> allows me to import python libraries for use. However, because numpy is
> already distributed with Chimera, importing libraries that depend on
> numpy is almost _impossible_. We run into a variety of version and
> compiler issues that are very difficult to work around. Would it be
> possible to get more transparent documentation on how the numpy library
> is compiled and when it will be upgraded in a particular release?
> (NOTE: We actually have this problem right now, so even an email with a
> description of the current nightly build set up would be SUPER helpful!)
So as you can tell, it's has not been a priority for chimera to be
binary compatible with other software packages. And if you are
installing your own Python packages to work with chimera, it is much
easier to install them with chimera's Python into chimera's Python
library (using chimera --noguil --script "setup.py ...") and use
"chimera --nogui" to run scripts that use both chimera and other
packages. Python packages, that have C code in them, should work, but
ones that have C++ and Fortran code might not work.
numpy is updated on an ad hoc basis. We are generally conservative
about updating it, but it can be updated for any reason (bug fixes, new
version of Python needs new version, some other foreign package needs a
newer version, etc.). And that can be said for any of the 30+ foreign
software packages that are included with chimera. In the near term, I
don't anticipate any updates unless we get requests for them (hint),
except possibly for updating Python to the latest 2.7 version. The
version numbers of the foreign packages are found in
http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/foreign.make,
except for Python, Tcl/Tk, Tix, and Togl, which are in
http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/config.make.
And configuration options for the foreign packages are in the
per-package GNUmakefile in
http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/foreign/
<http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/foreign>.
The compiler flags for various platforms are found in
http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/mk/os.make. The
compiler versions used are not documented and may change. That said, on
Windows, we use Microsoft Visual Studio 2008 because that is what the
python.org version uses. On Mac OS X we use the standard compiler for
the OS version, so the 32-bit version is built on Mac OS X 10.5.8 with
Xcode 3.1.2 and the 64-bit version on Mac OS X 10.6 with Xcode 3.2.6.
And then there's Linux. There are so many different versions of Linux
that we build on a lowest common denominator system to get the
forward-compatibility advantage of linking with an older C runtime.
Currently, we are building 32-bit Linux binaries on a Debian 4 system
with gcc 4.1.2 and plan to move the 64-bit builds to a Debian 4 64-bit
system, but currently build on Red Hat Enterprise Linux 5.6 system with
gcc 4.2.3. I don't see us changing from Debian 4 for a long time, but
we might update our version of gcc to get C++0x features and other
improvements -- no timetable for that though.
Our nightly build setup checks out a fresh copy of chimera on each
platform every evening and then compiles everything and builds a chimera
installer. The "mother" process waits for each build to complete and
decides if the build was a success if the installer was built or not.
Then the successful builds are added to the web site. The identical
mechanism is used to build releases by adding an argument saying what
kind of release it is. For the gory details, start with
http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/tools/build_chimera.
HTH,
Greg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-dev/attachments/20110712/067c7d12/attachment.html>
More information about the Chimera-dev
mailing list