Hi,

I have to sadly report that currently the new blas infrastructure from the
science overlay is broken on at least OS X prefix. For example sage doesn't
start with the following message:
sage
----------------------------------------------------------------------
| Sage Version 4.7.2.alpha2, Release Date: 2011-08-24                |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
**********************************************************************
*                                                                    *
* Warning: this is a prerelease version, and it may be unstable.     *
*                                                                    *
**********************************************************************
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)

/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/IPython/ipmaker.pyc
in force_import(modname, force_reload)
     61         reload(sys.modules[modname])
     62     else:
---> 63         __import__(modname)
     64
     65

/Users/frb15/Desktop/Gentoo/usr/bin/ipy_profile_sage.py in ()
      5     preparser(True)
      6
----> 7     import sage.all_cmdline
      8     sage.all_cmdline._init_cmdline(globals())
      9

/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/all_cmdline.py
in ()
     12 try:
     13
---> 14     from sage.all import *
     15     from sage.calculus.predefined import x
     16     preparser(on=True)

/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/all.py in ()
     73 from time                import sleep
     74
---> 75 from sage.misc.all       import *         # takes a while
     76
     77 from sage.misc.sh import sh

/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/misc/all.py in
()
     79 from func_persist import func_persist
     80
---> 81 from functional import (additive_order,
     82                         sqrt as numerical_sqrt,
     83                         arg,

/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/misc/functional.py
in ()
     36
     37
---> 38 from sage.rings.complex_double import CDF
     39 from sage.rings.real_double import RDF, RealDoubleElement
     40

ImportError:
dlopen(/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/rings/complex_double.bundle,
2): Symbol not found: _cblas_caxpy
  Referenced from: /Users/frb15/Desktop/Gentoo/usr/lib/libgsl.0.dylib
  Expected in: dynamic lookup

The key word is dynamic lookup. On OS X most library have an install_name that
is losely speaking similar to a rpath. Library declare their install_name and
the install_name of all the libraries they depend on. But you can use "dynamic
look up" to get the kind of behavior you would expect on linux. For some reason switching to the new infrastructure break the dynamic look up of cblas for gsl, and probably scipy and other. I don't know if it is limited to python extension
(in OS X speak bundles, on linux they appear as .so but in fact they may have
more in common with plugins).

I also don't know if it is broken on other prefix, I suspect linux prefixes are
OK.

Francois



Reply via email to