/[escript]/branches/ROBW_XPLATFORM/finley/py_src
ViewVC logotype

Log of /branches/ROBW_XPLATFORM/finley/py_src

View Directory Listing Directory Listing


Sticky Revision:

Revision 668 - Directory Listing
Modified Sat Mar 25 13:27:27 2006 UTC (14 years, 6 months ago) by robwdcock
+ finally figured out why the tests failed when the python extension libs were
  no longer sym links. The original setup for python extension modules was to
  have sym links in the esys/* directories named, for example escriptcpp.so.
  These would link to the actual libraries libescriptcpp.so. The lib*.so would
  link to each other. When you replaced the symlink with a copy of the lib*.so
  but renamed without the lib you would then get problems. In particular,
  py_tests would suddenly start failing.

  The problem appears (I've not been able to find documentary evidence to this
  case) to be that when, for example, you import bruce, brucecpp.so imports
  lib/libescriptcpp.so (which intialises escript python bits), bruce then
  imports escriptcpp.so (which also initialised escript python bits).

  Whether that is exactly correct or not is of interest but the important bit
  is you appear to get two versions. After thinking about this for a bit and
  reviewing a bunch of other examples of working python modules I noticed a
  pattern. NONE of the other examples ever included more than the python
  wrapper code in the python extension library. Instead they just link to
  the pure C++ library. This would avoid the duplicate load.

  So, I've refactored the code. If you consider escript the pattern in now:
  lib/libescript.so - which has all of escript EXCEPT the python escriptcpp.cpp
  esys/escript/escriptcpp.so - which has ONLY the escriptcpp.cpp and links to
                               lib/libescript.so
  
  Run the tests and low and behold they all pass again.

  Q: Why doesn't this problem occur with sym links?
  A: My guess is that python and the dynamic linker take a look at the actual
     absolute python of libraries to determine if its a "different" library.
     I did fine some discussions that seem to suggest this.

  Q: Why can't you just set LD_LIBRARY_PATH==PYTHONPATH and stick all the
     libs in that directory?
  A: I (in fact we, Peter Hornby was there) tried. With the renaming of the
     python module so it doesn't have a lib prefix you get problems with
     getting the shared libraries to be looked up in LD_LIBRARY_PATH. Do
     the opposite and use lib on the python modules and you have problems
     with windows which doesn't prepend the lib. Various combination
     in between were also tried but you end up in a catch 22 situation so far
     as I could tell

  Please if you know more about the ins and outs of python and shared
  libraries let me know if this isn't true. I'd really like to know if my
  guesses are correct. In any event, the fix is more consistent with the
  patterns I've seen

  Phew! this was a long log message, glad it is on a branch!




Revision 667 - Directory Listing
Modified Fri Mar 24 13:25:00 2006 UTC (14 years, 6 months ago) by robwdcock
+ OUCH ARGHH
+ Okay the wizzy linkHack doesn't work. Not sure why but py_tests fail
when the shared library is on the link line directly (without a -l)

+ Unfortunately we can't figure out how to use -l without it prepending
a lib prefix. Hence all the shareable objects in python now need to be
called libblah.so (and lib will need to be prepended on windows!!!!).
This is not the python way and its very annoying. Why do we have this
problem? Because the C++ shared libraries link with each other.



Revision 651 - Directory Listing
Modified Fri Mar 24 06:44:23 2006 UTC (14 years, 6 months ago) by robwdcock
+Python file now compile and install into pyinstall directory


Revision 622 - Directory Listing
Modified Wed Mar 22 14:00:08 2006 UTC (14 years, 6 months ago) by robwdcock
Creating a private branch so I can test and verify cross-platform build

Revision 616 - Directory Listing
Modified Wed Mar 22 02:46:56 2006 UTC (14 years, 6 months ago) by elspeth
Original Path: trunk/finley/py_src
Copyright added to more source files.


Revision 491 - Directory Listing
Modified Thu Feb 2 08:21:10 2006 UTC (14 years, 7 months ago) by gross
Original Path: trunk/finley/py_src
small  bug fixed

Revision 479 - Directory Listing
Modified Wed Feb 1 04:36:53 2006 UTC (14 years, 7 months ago) by gross
Original Path: trunk/finley/py_src
a few more benchmarks added

Revision 464 - Directory Listing
Modified Wed Jan 25 00:42:41 2006 UTC (14 years, 7 months ago) by gross
Original Path: trunk/finley/py_src
typo fixed: the anisotropic problems are returneing the correct answer now.

Revision 461 - Directory Listing
Modified Wed Jan 25 00:01:12 2006 UTC (14 years, 7 months ago) by gross
Original Path: trunk/finley/py_src
systems benchmarks run now

Revision 460 - Directory Listing
Modified Tue Jan 24 07:53:39 2006 UTC (14 years, 8 months ago) by gross
Original Path: trunk/finley/py_src
some mopre problems added

Revision 452 - Directory Listing
Modified Mon Jan 23 23:48:50 2006 UTC (14 years, 8 months ago) by gross
Original Path: trunk/finley/py_src
iter_max increased

Revision 448 - Directory Listing
Modified Mon Jan 23 03:04:06 2006 UTC (14 years, 8 months ago) by gross
Original Path: trunk/finley/py_src
small typy fixed

Revision 446 - Directory Listing
Modified Mon Jan 23 00:36:07 2006 UTC (14 years, 8 months ago) by gross
Original Path: trunk/finley/py_src
typo fixed

Revision 435 - Directory Listing
Modified Thu Jan 19 03:57:30 2006 UTC (14 years, 8 months ago) by gross
Original Path: trunk/finley/py_src
minor change

Revision 416 - Directory Listing
Modified Wed Jan 4 05:38:35 2006 UTC (14 years, 8 months ago) by gross
Original Path: trunk/finley/py_src
changes in Paso have been worked in

Revision 389 - Directory Listing
Modified Tue Dec 20 03:17:28 2005 UTC (14 years, 9 months ago) by gross
Original Path: trunk/finley/py_src
Laplace benchmarks added

Revision 384 - Directory Listing
Modified Mon Dec 19 06:11:32 2005 UTC (14 years, 9 months ago) by gross
Original Path: trunk/finley/py_src
finleybench is build now

Revision 383 - Directory Listing
Modified Mon Dec 19 06:10:45 2005 UTC (14 years, 9 months ago) by gross
Original Path: trunk/finley/py_src
Finley options added plus some other stuff

Revision 381 - Directory Listing
Modified Mon Dec 19 03:15:44 2005 UTC (14 years, 9 months ago) by gross
Original Path: trunk/finley/py_src
first version of a finley benchmark suite for test the paso solver

Revision 352 - Directory Listing
Modified Wed Dec 14 02:21:37 2005 UTC (14 years, 9 months ago) by jgs
Original Path: trunk/finley/py_src
turns out Install() targets should also be made Default()
targets if you want them to actually reliably work!


Revision 288 - Directory Listing
Modified Fri Dec 2 01:55:04 2005 UTC (14 years, 9 months ago) by jgs
Original Path: trunk/finley/py_src
now automatically build unit tests as required based on dependencies
between unit tests and libraries


Revision 268 - Directory Listing
Modified Wed Nov 30 01:39:47 2005 UTC (14 years, 9 months ago) by jgs
Original Path: trunk/finley/py_src
setup scons configuration to make and install python code


Revision 155 - Directory Listing
Modified Wed Nov 9 02:02:19 2005 UTC (14 years, 10 months ago) by jgs
Original Path: trunk/finley/py_src
move all directories from trunk/esys2 into trunk and remove esys2


Revision 154 - Directory Listing
Modified Mon Nov 7 05:51:17 2005 UTC (14 years, 10 months ago) by jgs
Original Path: trunk/esys2/finley/py_src
Merge of development branch dev-02 back to main trunk on 2005-11-07


Revision 149 - Directory Listing
Modified Thu Sep 1 03:31:39 2005 UTC (15 years ago) by jgs
Original Path: trunk/esys2/finley/py_src
Merge of development branch dev-02 back to main trunk on 2005-09-01


Revision 141 - Directory Listing
Modified Mon Jul 25 05:15:41 2005 UTC (15 years, 2 months ago) by jgs
Original Path: trunk/esys2/finley/py_src
fixed to work with new python source/install directory structure


Revision 139 - Directory Listing
Modified Mon Jul 25 00:05:12 2005 UTC (15 years, 2 months ago) by jgs
Original Path: trunk/esys2/finley/py_src
python init file for finley module


Revision 108 - Directory Listing
Modified Thu Jan 27 06:21:59 2005 UTC (15 years, 7 months ago) by jgs
Original Path: trunk/esys2/finley/py_src
*** empty log message ***


Revision 104 - Directory Listing
Modified Fri Dec 17 07:43:12 2004 UTC (15 years, 9 months ago) by jgs
Original Path: trunk/esys2/finley/py_src
*** empty log message ***


Revision 102 - Directory Listing
Added Wed Dec 15 07:08:39 2004 UTC (15 years, 9 months ago) by jgs
Original Path: trunk/esys2/finley/py_src
*** empty log message ***


  ViewVC Help
Powered by ViewVC 1.1.26