|
From: William S. <ws...@gm...> - 2009-09-28 15:56:11
|
On Mon, Sep 28, 2009 at 8:47 AM, John Hunter <jd...@gm...> wrote:
> ---------- Forwarded message ----------
> From: Tony S Yu <ts...@gm...>
> Date: Mon, Sep 28, 2009 at 8:41 AM
> Subject: Re: [matplotlib-devel] Fwd: OS X 10.6 port
> To: John Hunter <jd...@gm...>
> Cc: matplotlib development list <mat...@li...>
>
>
>
> On Sep 28, 2009, at 2:14 AM, John Hunter wrote:
>
>> in case anyone has some suggestions, I'm forwarding this from the sage list
>>
>>
>> ---------- Forwarded message ----------
>> From: William Stein <ws...@gm...>
>> Date: Sun, Sep 27, 2009 at 10:51 PM
>> Subject: OS X 10.6 port
>> To: sage-devel <sag...@go...>, John Hunter <jd...@gm...>
>>
>>
>> Hi,
>>
>> I spent several hours yesterday trying to get matplotlib for Sage to
>> work on OS X 10.6. On my laptop everything works perfectly, but on
>> another test machine (bsd.math) the workaround from my laptop doesn't
>> work. So at this point Sage still does not support OS X 10.6.
>>
>> The problem is in matplotlib's C++ wrapper for freetype2. It's a
>> Python extension module implemented directly in C++, and it simply
>> doesn't work correctly at all. For example, whenever it tries to
>> raise a Python exception, it just terminates Python with
>>
>> "11713 Abort trap sage-ipython "$@" -i"
The stack trace looks like this:
#4 0x000000010cd907e2 in ~PythonExtension [inlined] () at
/Users/was/build/sage-4.1.2.alpha4/spkg/build/matplotlib/trunk/matplotlib/CXX/Extensions.hxx:778
#5 0x000000010cd907e2 in FT2Font::FT2Font (this=0x10baf2b10,
facefile=@0x10bab6da0) at src/ft2font.cpp:778
#6 0x000000010cd90e98 in ft2font_module::new_ft2font (this=<value
temporarily unavailable, due to optimizations>, args=<value
temporarily unavailable, due to optimizations>) at src/ft2font.cpp:778
#7 0x000000010cd94912 in
Py::ExtensionModule<ft2font_module>::invoke_method_varargs
(this=0x10ce05f10, name=@0x7fff5fbf7030, args=@0x7fff5fbf6fe0) at
Extensions.hxx:422
#8 0x000000010cda3190 in method_varargs_call_handler
(_self_and_name_tuple=<value temporarily unavailable, due to
optimizations>, _args=<value temporarily unavailable, due to
optimizations>) at CXX/cxx_extensions.cxx:1403
...
> I thought I'd chime in since I recently upgraded to OSX 10.6. I don't
> think I ever got this error, so I probably didn't have the same issue,
> but just in case...
>
> I reinstalled freetype2, but I'm not sure if I needed to. I also made
> a change to setupext.py so that the setup script could find freetype2,
> but this doesn't seem to be your problem because your errors don't
> occur during the build.
>
> Did you happen to build on top of an old install? I had to clean out
> the old compiled extensions before everything would build properly. I
> had to clean out the build directory (obviously), but there are also
> *.so files in lib/matplotlib and lib/matplotlib/backends.
>
> I should note that I'm built on top of the system python (2.6.1) and I
> did not use make.osx.
>
I did a 100% clean build from source of Sage, which means building
Python and essentially all dependencies (including freetype) in a
single self-contained directory. I've replicated this on maybe 5 or
6 different OS X 10.6 machines. It is a total show stopper for
releasing the next version of Sage, and is in fact the only problem
left (of many) in porting Sage to OS X 10.6
I used the latest version of XCode, which comes with OS X 10.6:
gcc version 4.2.1 (Apple Inc. build 5646)
The version of Python is:
Python 2.6.2 (r262:71600, Sep 27 2009, 13:41:53)
The Abort trap appears when building the font cache the moment an
exception is raised in C++ code. By hacking around that exception
getting raised, the Abort trap happens when some exception somewhere
else happens in Matplotlib's C++ code. Etc.
I'm going to try looking into pyCXX now, since that seems the best hope.
William
|