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
skal...@users.sourceforge.net
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
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to