It is possible to mix object code, but not runtime, which is the problem
AFAIK. VS2003 and VS2005 have different  C runtimes (msvcrt7.1.dll
against msvcrt8.dll). The problem is (at least for me, who just go
through the pain for windows users :) ) that VS2003 is not available
anymore for free...



Exactly. Well, there is an ongoing discussion on Python-dev on this specific
point (VS2005 building).


> No, in this case, I want to build with icc and special compiler
> options. I tried by build by hand - and CMake - the libraries, it
> works like a charm and it is very very fast compared to gcc :(



Which libraries are you talking about ? Also, beware that ICC uses by
default some flags which are potentially dangerous (I don't know if this
is true anymore, but ICC used to use the equivalent of --ffast-math of
gcc by default:

http://david.monniaux.free.fr/dotclear/index.php/2006/03/17/4-l-art-de-calculer-le-minimum-de-deux-nombres
).
For libraries like atlas, I don't think there will be a huge difference
between ICC and gcc; if you use the mkl, then you don't care :)



My libraries on manifold learning ;) There is difference in performance
because of the -ipo and -xP flags.
I have to install the MKL, I just compiled Python from the svn trunk
yesterday.


This would mean building every other modules added - numpy, scipy,
> matplotlib, wxPython, ... -, doable, but I'd prefer not to do it, but
> if it is not possible, I would have to live with it...
I think it is important to separate different issues: object code
compatibility, runtime compatibility, etc... Those are different issues.
First, mixing ICC compiled code and gcc code *has* to be possible (I
have never tried), otherwise, I don't see much use for it under linux.



Exactly. They are binary compatible (C and C++), they use the same headers,
... it has to be possible. Well, it is possible with numpy.distutils, it
only missed to link with stdc++... but no specific compiler options :(


Then you have the problem of runtime services: I really doubt that ICC
runtime is not compatible with gcc, and more globally with the GNU
runtime (glibc, etc...); actually, ICC used to use the "standard" linux
runtime, and I would be surprised if that changed.



As I said, _my_ problem is that I'd like specific compiler options.


To say it simply: on linux at least, what should matter is whether the
runtime services are compatible (on windows, it looks like they are not:
official python is compiled with visual studio 2003, and you cannot use
VS 2005; note that mingw seems to work).



Some people reported that it is possible. The only catch seems to be that
everything allocated with a runtime should be destroyed by the same
allocator.

Matthieu
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to