Log of /branches/ROBW_XPLATFORM/bruce
Directory Listing
Revision
676 -
Directory Listing
Modified
Sun Mar 26 10:13:34 2006 UTC
(17 years ago)
by
robwdcock
+ Modified test SConscript dependencies to remove redundant call to explicit dependency
+ Modified scon_extensions.py - run unit tests (py and C++) now use scons::Execute rather than python os.system. This ensures the development environment
is used rather than the users environment to run the tests
+ SConstruct file now sets up LD_LIBRARY_PATH and PYTHONPATH to point to the current builds pyinstall and libinstall paths as required.
IT IS NO LONGER NECESSARY TO SET LD_LIBRARY_PATH and PYTHONPATH to point at your build outputs. Much safer in the presence of multiple checked out builds.
Under these circumstances you are better of using scons to run the tests rather than doing so directly. Easiest way to do this is to build the test output target for the test you want:
e.g. scons build/posix/bruce/test/python/ImportTest.passed
or if you prefer
cd build/posix/bruce/test/python
scons -u ImportTest.passed
Revision
673 -
Directory Listing
Modified
Sun Mar 26 07:16:42 2006 UTC
(17 years 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
670 -
Directory Listing
Modified
Sat Mar 25 14:56:39 2006 UTC
(17 years ago)
by
robwdcock
+ Changed include paths to no longer require the cpp suffix (missed in earlier
commit)
+ modified tests so they no longer install to #/lib
Revision
668 -
Directory Listing
Modified
Sat Mar 25 13:27:27 2006 UTC
(17 years 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
(17 years 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
666 -
Directory Listing
Modified
Fri Mar 24 11:29:40 2006 UTC
(17 years ago)
by
robwdcock
+ Fix up python esys area:
+ libraries are named without lib prefix on posix platforms (python standard)
+ libraries are now installed into the pyinstall area (python standard)
+ symlinks removed, no longer required
+ LD_LIBRARY_PATH is now optional for PYTHON programs (still required for c++)
+ lib PREFIX removal NOTES:
+ removing the lib prefix is non-standard for the linker. As such we've created a
custom function sharedLinkHack to specify the .so on the link command line
(as opposed to using -l<archive> which will prepend the lib). This has a
a small slight of hand for scons which was being to "helpful". Scons
verifies that when creating a shared libray all objects specified are
created shareable (e.g. ensure objects are compiler with -fPIC). Since
we are linking a .so out of the blue we had to wrap it up in a File note
and flag it as shared.
Easily done, once you know how. Thankfully this is all wrapped
up in a simple function (sharedLinkHack) that looks like ordinary scons so
you will never know!
Revision
661 -
Directory Listing
Modified
Fri Mar 24 09:13:00 2006 UTC
(17 years ago)
by
robwdcock
+py_tests now runs. Be patient, it is all of them!!
Revision
651 -
Directory Listing
Modified
Fri Mar 24 06:44:23 2006 UTC
(17 years ago)
by
robwdcock
+Python file now compile and install into pyinstall directory
Revision
648 -
Directory Listing
Modified
Fri Mar 24 06:04:57 2006 UTC
(17 years ago)
by
robwdcock
+Finely unit tests now running in build system
All C++ tests run and compile on Altix, I expect the same result for Linux so you may not see another log message for that.
Revision
642 -
Directory Listing
Modified
Thu Mar 23 14:03:49 2006 UTC
(17 years ago)
by
robwdcock
+ Bruce unit tests consolidated and added to build system
Revision
640 -
Directory Listing
Modified
Thu Mar 23 13:45:12 2006 UTC
(17 years ago)
by
robwdcock
+Preparing for unit test consolidation
Revision
623 -
Directory Listing
Modified
Wed Mar 22 14:11:03 2006 UTC
(17 years ago)
by
robwdcock
Beginning of a fully cross-platform (win32+intelc, linux+g++, altix+intelc)
scons build system
WORK IN PROGRESS NOT COMPLETE
+Incorporates ideas from trunks scons build system and the RW_WIN32 branch
+New Header layout as include/<modulename>, hence the changes to the headers
+Not all modules or features from trunk build system are fully implemented
-Removes need for intermediary SConstruct files - the top SConstruct is more complex but handle cross-platform better AND the SConscript are a LOT simpler
and only differ slightly. It should be simpler to maintain
-Options are now handled via either a: config file supplied on command line, a config file in the scons/hostname_options.py, or as individual command line arguments
-Need help with options: scons -h will give you a list of options and their current settings
Revision
622 -
Directory Listing
Modified
Wed Mar 22 14:00:08 2006 UTC
(17 years ago)
by
robwdcock
Creating a private branch so I can test and verify cross-platform build
Revision
522 -
Directory Listing
Modified
Tue Feb 14 05:53:52 2006 UTC
(17 years, 1 month ago)
by
gross
Original Path:
trunk/bruce
now done by test_utilOnBruce.py
Revision
481 -
Directory Listing
Modified
Wed Feb 1 05:57:50 2006 UTC
(17 years, 2 months ago)
by
jgs
Original Path:
trunk/bruce
add mechanism to install .h files to inc directories
(still need to specify full lists of .h files to install)
Revision
480 -
Directory Listing
Modified
Wed Feb 1 05:15:12 2006 UTC
(17 years, 2 months ago)
by
jgs
Original Path:
trunk/bruce
rationalise #includes and forward declarations
Revision
474 -
Directory Listing
Modified
Mon Jan 30 04:23:44 2006 UTC
(17 years, 2 months ago)
by
jgs
Original Path:
trunk/bruce
restructure escript source tree
move src/Data/* -> src
remove inc
modify #includes and cpppath settings accordingly
Revision
468 -
Directory Listing
Modified
Wed Jan 25 06:50:39 2006 UTC
(17 years, 2 months ago)
by
jgs
Original Path:
trunk/bruce
reorganised esysUtils to remove inc directory
Revision
465 -
Directory Listing
Modified
Wed Jan 25 01:08:17 2006 UTC
(17 years, 2 months ago)
by
jgs
Original Path:
trunk/bruce
reorganise bruce source tree:
move all from src/Bruce -> src
remove inc
adjust all #includes appropriately
Revision
457 -
Directory Listing
Modified
Tue Jan 24 06:13:03 2006 UTC
(17 years, 2 months ago)
by
jgs
Original Path:
trunk/bruce
fix installation to directories specified by pyinstall and libinstall
Revision
455 -
Directory Listing
Modified
Tue Jan 24 04:36:54 2006 UTC
(17 years, 2 months ago)
by
jgs
Original Path:
trunk/bruce
minor comment and formatting changes
Revision
450 -
Directory Listing
Modified
Mon Jan 23 05:04:45 2006 UTC
(17 years, 2 months ago)
by
jgs
Original Path:
trunk/bruce
remove old make based build system
Revision
444 -
Directory Listing
Modified
Sun Jan 22 23:56:14 2006 UTC
(17 years, 2 months ago)
by
gross
Original Path:
trunk/bruce
required modifications to get the tests going
Revision
425 -
Directory Listing
Modified
Tue Jan 10 04:10:39 2006 UTC
(17 years, 2 months ago)
by
gross
Original Path:
trunk/bruce
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
423 -
Directory Listing
Modified
Fri Jan 6 08:09:43 2006 UTC
(17 years, 2 months ago)
by
gross
Original Path:
trunk/bruce
some modifications in visualization to get equidistant output
Revision
372 -
Directory Listing
Modified
Fri Dec 16 01:12:41 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
explicitly initialise integer members to zero
Revision
362 -
Directory Listing
Modified
Thu Dec 15 02:07:55 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
removed unit-test runner scripts as unit-tests now run from scons
Revision
357 -
Directory Listing
Modified
Wed Dec 14 05:41:24 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
add explicit target to run unit tests
Revision
355 -
Directory Listing
Modified
Wed Dec 14 05:05:31 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
add explicit target for building of unit tests
Revision
352 -
Directory Listing
Modified
Wed Dec 14 02:21:37 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
turns out Install() targets should also be made Default()
targets if you want them to actually reliably work!
Revision
340 -
Directory Listing
Modified
Mon Dec 12 05:10:45 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
pass in pyinstall value from top-level scons script and add
correct suffix in module level scons scipr
Revision
325 -
Directory Listing
Modified
Wed Dec 7 02:08:17 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
now determine hostname via socket.gethostname() as HOSTNAME
environment variable is apparently not set on all platforms
Revision
324 -
Directory Listing
Modified
Wed Dec 7 01:10:36 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
add symlinks to include files - previously added by hand as cvs couldn't
handle them
Revision
319 -
Directory Listing
Modified
Tue Dec 6 04:25:37 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
temporary unit tests scripts
Revision
310 -
Directory Listing
Modified
Mon Dec 5 02:52:38 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
don't automatically run bruce unit tests on build for now
Revision
309 -
Directory Listing
Modified
Mon Dec 5 01:59:58 2005 UTC
(17 years, 3 months ago)
by
jgs
Original Path:
trunk/bruce
now load default options - by default!
Revision
297 -
Directory Listing
Modified
Fri Dec 2 04:57:48 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
bruce tests cases are now automatically run whenever they are rebuilt
Revision
295 -
Directory Listing
Modified
Fri Dec 2 03:53:35 2005 UTC
(17 years, 4 months ago)
by
gross
Original Path:
trunk/bruce
test for symbol.py on bruce
Revision
289 -
Directory Listing
Modified
Fri Dec 2 03:08:26 2005 UTC
(17 years, 4 months ago)
by
gross
Original Path:
trunk/bruce
new test for util.py on bruce
Revision
288 -
Directory Listing
Modified
Fri Dec 2 01:55:04 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
now automatically build unit tests as required based on dependencies
between unit tests and libraries
Revision
277 -
Directory Listing
Modified
Wed Nov 30 04:52:39 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
explicitly define dependencies between modules
Revision
268 -
Directory Listing
Modified
Wed Nov 30 01:39:47 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
setup scons configuration to make and install python code
Revision
252 -
Directory Listing
Modified
Tue Nov 29 05:58:03 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
pass in platform specific libraries via options files now
Revision
248 -
Directory Listing
Modified
Tue Nov 29 04:58:23 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
add top level scons config files to allow building
of all unit tests for each module at once
Revision
246 -
Directory Listing
Modified
Tue Nov 29 04:27:00 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
allow compile options to be loaded from a config
file specified on the command line to scons
Revision
242 -
Directory Listing
Modified
Mon Nov 28 06:20:51 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
draft toplevel unit test scons script for bruce unit tests
Revision
241 -
Directory Listing
Modified
Mon Nov 28 06:14:47 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
if usegcc=1 is set on command line, load compiler options
fropm scons/gcc_options.py
Revision
239 -
Directory Listing
Modified
Mon Nov 28 05:49:32 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
read names of python and boost libraries from config file now
Revision
235 -
Directory Listing
Modified
Mon Nov 28 04:36:16 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
change scons config files for escript unit tests to read
compiler options from option file now
Revision
226 -
Directory Listing
Modified
Fri Nov 25 01:40:04 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
import compile options into bruce unit test builds from options file now
Revision
224 -
Directory Listing
Modified
Fri Nov 25 00:33:27 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
implement switching of debug compiler options based on command line flag 'debug'
Revision
223 -
Directory Listing
Modified
Thu Nov 24 23:12:13 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
pass in cc/cxx settings from config file
Revision
216 -
Directory Listing
Modified
Thu Nov 24 06:35:14 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
first pass at importing compile options from an external file'
Revision
214 -
Directory Listing
Modified
Thu Nov 24 05:15:26 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
collect all information needed to determine build
configuration (ie: debug/nodebug, host, platform etc)
Revision
195 -
Directory Listing
Modified
Tue Nov 22 00:31:11 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
first draft of scons construct file for BruceFactory unit tests
Revision
193 -
Directory Listing
Modified
Mon Nov 21 06:41:30 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
add draft SConstruct file for Bruce unit_tests
Revision
192 -
Directory Listing
Modified
Mon Nov 21 04:52:14 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
pass in top level install directory for finley/escript/bruce/paso
libraries when building via top level scons script
Revision
191 -
Directory Listing
Modified
Mon Nov 21 04:10:12 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
push platform dependent compiler flags and include directories up to library level scons files - these will eventually be brought in from external config files
Revision
190 -
Directory Listing
Modified
Mon Nov 21 03:27:42 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
pass in value for esysroot and use this to determine include file locations
Revision
188 -
Directory Listing
Modified
Mon Nov 21 01:20:26 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
explicitly add -fpic option to all compiler options lists
to ensure relocatable code is generated
Revision
177 -
Directory Listing
Modified
Fri Nov 18 02:50:20 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
reformatted list of source files
Revision
176 -
Directory Listing
Modified
Fri Nov 18 01:49:12 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/bruce
first draft of scons config/construct files to build brucecpp.so library
Revision
154 -
Directory Listing
Modified
Mon Nov 7 05:51:17 2005 UTC
(17 years, 4 months ago)
by
jgs
Original Path:
trunk/esys2/bruce
Merge of development branch dev-02 back to main trunk on 2005-11-07
Revision
153 -
Directory Listing
Modified
Tue Oct 25 01:51:20 2005 UTC
(17 years, 5 months ago)
by
jgs
Original Path:
trunk/esys2/bruce
Merge of development branch dev-02 back to main trunk on 2005-10-25
Revision
151 -
Directory Listing
Modified
Thu Sep 22 01:55:00 2005 UTC
(17 years, 6 months ago)
by
jgs
Original Path:
trunk/esys2/bruce
Merge of development branch dev-02 back to main trunk on 2005-09-22
Revision
150 -
Directory Listing
Modified
Thu Sep 15 03:44:45 2005 UTC
(17 years, 6 months ago)
by
jgs
Original Path:
trunk/esys2/bruce
Merge of development branch dev-02 back to main trunk on 2005-09-15
Revision
149 -
Directory Listing
Added
Thu Sep 1 03:31:39 2005 UTC
(17 years, 7 months ago)
by
jgs
Original Path:
trunk/esys2/bruce
Merge of development branch dev-02 back to main trunk on 2005-09-01