On 12/04/2012, at 5:49 PM, john skaller wrote:
>
> DYNAMIC LIBRARY LOADING
> Unlike many other operating systems, Darwin does not locate dependent
> dynamic libraries via
> their leaf file name. Instead the full path to each dylib is
> used (e.g. /usr/lib/libSys-
> tem.B.dylib).
OMG. This is utter crap:
~/felix>otool -L
/usr/local/lib/felix/felix-1.1.7dev/lib/rtl/libflx_async_dynamic.dylib
/usr/local/lib/felix/felix-1.1.7dev/lib/rtl/libflx_async_dynamic.dylib:
build/release/lib/rtl/libflx_async_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_pthread_dynamic.dylib (compatibility
version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current
version 7.9.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.11)
in other words we have installed libraries that cannot work because they depend
on
the build directory?? GRRRRRR.
~/felix>otool -L test/pthread/pthread-1.02-0.dylib
test/pthread/pthread-1.02-0.dylib:
/Users/johnskaller/felix/test/pthread/pthread-1.02-0.dylib
(compatibility version 0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_gc_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libjudy_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_exceptions_dynamic.dylib (compatibility
version 0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_pthread_dynamic.dylib (compatibility
version 0.0.0, current version 0.0.0)
build/release/lib/rtl/libdemux_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libfaio_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_async_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current
version 7.9.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.11)
~/felix>flx test/pthread/pthread-1.02-0
Garbage collector world stop test
Start Thread number 1
Start Thread number 2
Thread 2 Sleep #5 for 7 sec
Thread 1 Sleep #5 for 7 sec
Start Thread number 3
Thread 3 Sleep #5 for 9 sec
Start Thread number 4
Start Thread number 5
Thread 4 Sleep #5 for 3 secMainline done!Thread 5 Sleep #5 for 8 sec
The question is: why does this run??????? It's just rubbish.
build/release has been deleted.
~/felix>/usr/local/lib/felix/felix-1.1.7dev/bin/flx_arun
test/pthread/pthread-1.02-0.dylib
dyld: Library not loaded: build/release/lib/rtl/libfaio_dynamic.dylib
Referenced from: /usr/local/lib/felix/felix-1.1.7dev/bin/flx_arun
Reason: image not found
Trace/BPT trap
~/felix>DYLD_LIBRARY_PATH=/usr/local/lib/felix/felix-1.1.7dev/lib/rtl
/usr/local/lib/felix/felix-1.1.7dev/bin/flx_arun
test/pthread/pthread-1.02-0.dylib
Garbage collector world stop test
Start Thread number 1
Thread 1 Sleep #5 for 7 sec
Start Thread number 2
Thread 2 Sleep #5 for 9 sec
Start Thread number 3
Thread 3 Sleep #5 for 3 sec
...
So the documentation is rubbish.
/usr/local/lib/felix/felix-1.1.7dev/bin/flx_arun:
build/release/lib/rtl/libfaio_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libdemux_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_pthread_dynamic.dylib (compatibility
version 0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_async_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_gc_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
build/release/lib/rtl/libflx_exceptions_dynamic.dylib (compatibility
version 0.0.0, current version 0.0.0)
build/release/lib/rtl/libjudy_dynamic.dylib (compatibility version
0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current
version 7.9.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.11)
~/felix>flx test/regress/rt/re2-01
Captures = 2
true
varray(Hello, , H)
So re2 works.
~/felix>DYLD_LIBRARY_PATH=/usr/local/lib/felix/felix-1.1.7dev/lib/rtl
/usr/local/lib/felix/felix-1.1.7dev/bin/flx_run test/regress/rt/re2-01.dylib
Captures = 2
true
varray(Hello, , H)
Similarly, the webserver "just works" if the DYLD_LIBRARY_PATH is set as above.
Contrary to the documentation.
--
john skaller
[email protected]
http://felix-lang.org
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language