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 |