Log of /branches/ROBW_XPLATFORM/escript/py_src
Directory Listing
Revision
673 -
Directory Listing
Modified
Sun Mar 26 07:16:42 2006 UTC
(14 years, 10 months ago)
by
robwdcock
+ Added some svn:ignore properties so .pyc files aren't reported during svn status and friends
+ Removed esys directory. Build system will create the pyinstall/esys target and touch the __init__.py file in it as part of the build process. This means you can now direct scons to perform an install of the python directly into your desired location rather than just in the root of the source tree.
Revision
668 -
Directory Listing
Modified
Sat Mar 25 13:27:27 2006 UTC
(14 years, 10 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, 10 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, 10 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, 10 months ago)
by
robwdcock
Creating a private branch so I can test and verify cross-platform build
Revision
614 -
Directory Listing
Modified
Wed Mar 22 01:37:07 2006 UTC
(14 years, 10 months ago)
by
elspeth
Original Path:
trunk/escript/py_src
Corrected spelling of 'license' in url so that the link actually points to the license.
Revision
608 -
Directory Listing
Modified
Tue Mar 21 09:46:06 2006 UTC
(14 years, 10 months ago)
by
elspeth
Original Path:
trunk/escript/py_src
moved "import numarray.linear_algebra" to function that uses it, in case it is not installed
Revision
587 -
Directory Listing
Modified
Fri Mar 10 02:26:50 2006 UTC
(14 years, 10 months ago)
by
gross
Original Path:
trunk/escript/py_src
eigenvalues_and_eigenvector fucntion added. test for 2D problem is added and is passed.
Revision
585 -
Directory Listing
Modified
Thu Mar 9 23:47:42 2006 UTC
(14 years, 10 months ago)
by
gross
Original Path:
trunk/escript/py_src
problem with eigenvalue of zero matrix fixed (thanks Dr Hale)
Revision
574 -
Directory Listing
Modified
Thu Mar 2 06:31:24 2006 UTC
(14 years, 10 months ago)
by
gross
Original Path:
trunk/escript/py_src
some modifications on eigenvalues to make it a bit more robust.
Revision
554 -
Directory Listing
Modified
Wed Feb 22 04:02:54 2006 UTC
(14 years, 11 months ago)
by
gross
Original Path:
trunk/escript/py_src
tests for tagged data fixed. test failing on maxval with segmenation fault (peinlich, peinlich)
Revision
531 -
Directory Listing
Modified
Wed Feb 15 08:11:10 2006 UTC
(14 years, 11 months ago)
by
gross
Original Path:
trunk/escript/py_src
a new version of lumping implemented (does not need a stiffness matrix)
Revision
529 -
Directory Listing
Modified
Wed Feb 15 03:58:50 2006 UTC
(14 years, 11 months ago)
by
gross
Original Path:
trunk/escript/py_src
small bugs in eigenvalues function fixed. 3x3 on data still given wrong results
Revision
442 -
Directory Listing
Modified
Fri Jan 20 04:39:43 2006 UTC
(15 years ago)
by
gross
Original Path:
trunk/escript/py_src
kronecker (and relatives) take now a FunctionSpace as argument and return a Data object in tthis functionspace
Revision
441 -
Directory Listing
Modified
Fri Jan 20 03:40:39 2006 UTC
(15 years ago)
by
gross
Original Path:
trunk/escript/py_src
and finally test for the divergence operator added. div() has been modified to take Symbol arguments
Revision
437 -
Directory Listing
Modified
Fri Jan 20 00:16:58 2006 UTC
(15 years ago)
by
gross
Original Path:
trunk/escript/py_src
comprehensive testing for integrate function added. tests for grad will be added in the next check in. GradTest is obsolete now.
Revision
430 -
Directory Listing
Modified
Wed Jan 11 06:40:50 2006 UTC
(15 years ago)
by
gross
Original Path:
trunk/escript/py_src
ILU has been replicated is called RILU (recursive ILU) now. ILU will now be reimplemented.
Revision
425 -
Directory Listing
Modified
Tue Jan 10 04:10:39 2006 UTC
(15 years ago)
by
gross
Original Path:
trunk/escript/py_src
The sparse solver can be called by paso now.
the building has been change to reduce some code redundancy:
now all scons SCscripts are importing scons/esys_options.py which
imports platform specific settings.
Revision
400 -
Directory Listing
Modified
Wed Dec 21 23:13:39 2005 UTC
(15 years, 1 month ago)
by
gross
Original Path:
trunk/escript/py_src
Some chnages required for oder numarray versions. mai problem is that
operations on array objects with rank 0 sometimes return float rather
than arrays. This problem seems to be fixed in newer releases.
Revision
390 -
Directory Listing
Modified
Tue Dec 20 03:39:24 2005 UTC
(15 years, 1 month ago)
by
gross
Original Path:
trunk/escript/py_src
os.loginname does not work under pbs. the exception is caught now
Revision
386 -
Directory Listing
Modified
Tue Dec 20 00:31:52 2005 UTC
(15 years, 1 month ago)
by
gross
Original Path:
trunk/escript/py_src
the number of problems to run is now the less or equal then len(scale) and less or equal number of problems. This allows easier control
Revision
364 -
Directory Listing
Modified
Thu Dec 15 04:38:28 2005 UTC
(15 years, 1 month ago)
by
gross
Original Path:
trunk/escript/py_src
a simple environment to run benchmarks (mainly for testing solvers)
Revision
352 -
Directory Listing
Modified
Wed Dec 14 02:21:37 2005 UTC
(15 years, 1 month ago)
by
jgs
Original Path:
trunk/escript/py_src
turns out Install() targets should also be made Default()
targets if you want them to actually reliably work!
Revision
341 -
Directory Listing
Modified
Mon Dec 12 05:26:10 2005 UTC
(15 years, 1 month ago)
by
gross
Original Path:
trunk/escript/py_src
some fixes to make the test to run for older numarray versions
Revision
329 -
Directory Listing
Modified
Wed Dec 7 04:42:43 2005 UTC
(15 years, 1 month ago)
by
gross
Original Path:
trunk/escript/py_src
fixing the problem that older versions of numarray don't have a sign method
Revision
312 -
Directory Listing
Modified
Mon Dec 5 07:01:00 2005 UTC
(15 years, 1 month ago)
by
gross
Original Path:
trunk/escript/py_src
reimplementation of maxval,minval and length. small bug in generalTensorProduct fixed
Revision
292 -
Directory Listing
Modified
Fri Dec 2 03:11:04 2005 UTC
(15 years, 1 month ago)
by
gross
Original Path:
trunk/escript/py_src
complete test set for generalTensorProduct and friends added.
Revision
288 -
Directory Listing
Modified
Fri Dec 2 01:55:04 2005 UTC
(15 years, 1 month ago)
by
jgs
Original Path:
trunk/escript/py_src
now automatically build unit tests as required based on dependencies
between unit tests and libraries
Revision
155 -
Directory Listing
Modified
Wed Nov 9 02:02:19 2005 UTC
(15 years, 2 months ago)
by
jgs
Original Path:
trunk/escript/py_src
move all directories from trunk/esys2 into trunk and remove esys2
Revision
124 -
Directory Listing
Modified
Wed Jul 20 06:14:58 2005 UTC
(15 years, 6 months ago)
by
jgs
Original Path:
trunk/esys2/escript/py_src
added ln(data) style wrapper for data.ln() - also added corresponding
implementation of Ln_Symbol class (not sure if this is right though)