On Tue, Jul 15, 2008 at 9:41 PM, Emmanuel Stapf [ES] <
manus@...> wrote:
>> Are you saying that this is not a bug, but intended behaviour? I think
>> it is a *very* serious drawback that one can't build .so libraries on
>> Linux/Unix as easily as one can build .dll:s on Windows with
>> EiffelStudio, especially as this worked fine in 5.6.
>
> It is certainly not the intended behavior but it looks like unlike Windows,
> Unix
> shared libraries do not have a standardized way to have some initialization
> code
> being called before any access to the shared library.
Ok. That sounds a bit strange. Are you talking about different *nix
object file formats here, ie. ELF, COFF etc? Can't that be solved by
having #ifdef:s for different os:s and architectures?
>> Do you have a pointer to the relevant and updated documentation for
>> CECIL? There is no documentation included in the installation on
>> Linux.
>
> It is in your documentation in $ISE_EIFFEL/docs or at
>
http://docs.eiffel.com. The
> CECIL pages are at:
>
http://docs.eiffel.com/eiffelstudio/technologies/cecilOk. Thanks. I was slightly put of by the copyright 2006 and no
indication to whether that information was updated.
>> Another problem is that that the dynamic libraries on Linux export all
>> the generated (mangled) C symbols in the system which leads to symbol
>> clashes when building systems with more that one Eiffel-based .so
>> file.
>
> That's correct, but I'm not sure if there is a way to prevent this on all
> platforms. Looks like there are some GCC specific extensions that could
> allow that
> but I'm not sure if they work on all versions of GCC.
Ok. We have a working solution to that for gcc/linux, but it is an annoyance.
Also, in the EiffelStudio implementation of shared libraries a root
object is created for each call to the library. Is there any
particular reason for that? I assume it has to do with how the GC
works. However any effective features declared as once in the root
class remain alive over multiple calls, That's how state can be
handled in shared libraries.
It would be more efficient from a performance perspective if the root
object could remain alive until the library is unloaded from memory.
Any comments?
/Paul
--
Paul Cohen
mobile: +46 730 787 035
e-mail:
paul.cohen@...
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/eiffel_software/<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/eiffel_software/join (Yahoo! ID required)
<*> To change settings via email:
mailto:
eiffel_software-digest@...
mailto:
eiffel_software-fullfeatured@...
<*> To unsubscribe from this group, send an email to:
eiffel_software-unsubscribe@...
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/