Re: [E-devel] Time for efl-one

2020-05-28 Thread Tom Hacohen
Hey,

On 28/05/2020 15:17, Marcel Hollerbach wrote:
> 
> Yeah, something like that was planned in the future, or building small
> stubs without code that are just dragging in efl-one.so This way we do
> not have to worry about platforms with problems about symlinks etc.
> The problem is that the parts that are outside efl-one.so are still
> linking to the smaller .so's and not to efl-one.so as that is a little
> bit harder to realize,
> and I first want to ensure that we *really* have a working efl-one.so
> which totally works before investing more time into that.

That actually makes so much more sense than my suggestion. :facepalm:

> 
> The plan for getting everything on efl-one.so looks a little different
> to me:
> - Maybe move ecore_wayland and ecore_drm to a deprecated folder, that is
> not handled as normal efl subproject anymore
> - Move elua to lua bindings and or build it from there
> - Find out what to do about ecore_avahi
> 
> After that our normal code and build structure is in a state where
> everything natively links to efl-one.so simply by calling subdir(...) in
> another directory. We then can also automatically generate the
> "declare_dependency" and "library" calls and shrink down the lib
> meson.build files even more, which should simplify everything overall
> quite a bit.
> 
> But thats for the future, first lets find out how this works out :)

Sure, just wanted to share my thoughts in case it would be too late
later on, but it looks like you are already on it. :)

> efl.pc is sadly not beta anymore, shipped, and used.
> 
> I basically just really want to ensure that everyone understands that
> this is not yet another subproject within efl, but the overall library
> including a lot but not everything. And in the end, its just a name ... :)
> 

Makes sense. :)

Anyhow, again, great job!

--
Tom


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Time for efl-one

2020-05-28 Thread Tom Hacohen
On 27/05/2020 12:34, Marcel Hollerbach wrote:
> Hi,
> 
> after quite a big amount of work we have successfully landed this
> morning a update to our build system which enables to build efl as a
> single big .so instead of multiple seperated .so's. The layout is that
> every single .so is merged into efl-one.so except:
> - eolian: no normal app would benefit from it, and it would make our
> build *a lot* more complex
> - ecore_avahi: there is no real user for this within efl, in general i
> dont think anyone is going to benefit from it
> - efl_canvas_wl: This is also not beneficial to a standard efl application
> - elua: This is only for bindings.
> - ecore_drm / wayland : These are deprecated libs, not to confuse with
> ecore_wl2 / ecore_drm2, which is included in efl-one
> - exactness: Not useful for a normal efl app.
> 
> To build efl-one you need to pass: "-Defl-one=true" to meson. After this
> is done, additionally to all the smaller libs, efl-one.so will be build.
> The modules of ecore / evas etc. and all the binaries will link to
> efl-one.so not to the smaller libraries. However, for compatibility
> reasons, and complexity reasons, the small .so's are still build and
> installed.

Great job!

Maybe instead of building small .so's we can just symlink them all to
the efl-one.so? Or would that cause symbol duplications if multiple ones
are used?

If it works though we can just use the efl.so name and not have to call
it efl-one.so.

> 
> If you have an app that you want to test out with efl-one: There is now
> a efl-one.pc file installed, which can be used to link to the correct
> libraries, no other efl dependency is then required.

Why not just efl.pc? Did we ever ship efl.pc/was it ever used? I think
all of the API there was beta anyway.

> 
> From some early profiling: this saves ~1MB of memory when running a efl
> app, i have so far not tested out what impact it has on runtime
> performance or first frame numbers.
> 

Super cool!

--
Tom


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Time for efl-one

2020-05-28 Thread Marcel Hollerbach

Hi,

On 5/28/20 1:32 PM, Tom Hacohen wrote:

On 27/05/2020 12:34, Marcel Hollerbach wrote:

Hi,

after quite a big amount of work we have successfully landed this
morning a update to our build system which enables to build efl as a
single big .so instead of multiple seperated .so's. The layout is that
every single .so is merged into efl-one.so except:
- eolian: no normal app would benefit from it, and it would make our
build *a lot* more complex
- ecore_avahi: there is no real user for this within efl, in general i
dont think anyone is going to benefit from it
- efl_canvas_wl: This is also not beneficial to a standard efl application
- elua: This is only for bindings.
- ecore_drm / wayland : These are deprecated libs, not to confuse with
ecore_wl2 / ecore_drm2, which is included in efl-one
- exactness: Not useful for a normal efl app.

To build efl-one you need to pass: "-Defl-one=true" to meson. After this
is done, additionally to all the smaller libs, efl-one.so will be build.
The modules of ecore / evas etc. and all the binaries will link to
efl-one.so not to the smaller libraries. However, for compatibility
reasons, and complexity reasons, the small .so's are still build and
installed.


Great job!

Maybe instead of building small .so's we can just symlink them all to
the efl-one.so? Or would that cause symbol duplications if multiple ones
are used?


Yeah, something like that was planned in the future, or building small 
stubs without code that are just dragging in efl-one.so This way we do 
not have to worry about platforms with problems about symlinks etc.
The problem is that the parts that are outside efl-one.so are still 
linking to the smaller .so's and not to efl-one.so as that is a little 
bit harder to realize,
and I first want to ensure that we *really* have a working efl-one.so 
which totally works before investing more time into that.


The plan for getting everything on efl-one.so looks a little different 
to me:
- Maybe move ecore_wayland and ecore_drm to a deprecated folder, that is 
not handled as normal efl subproject anymore

- Move elua to lua bindings and or build it from there
- Find out what to do about ecore_avahi

After that our normal code and build structure is in a state where 
everything natively links to efl-one.so simply by calling subdir(...) in 
another directory. We then can also automatically generate the 
"declare_dependency" and "library" calls and shrink down the lib 
meson.build files even more, which should simplify everything overall 
quite a bit.


But thats for the future, first lets find out how this works out :)



If it works though we can just use the efl.so name and not have to call
it efl-one.so.



If you have an app that you want to test out with efl-one: There is now
a efl-one.pc file installed, which can be used to link to the correct
libraries, no other efl dependency is then required.


Why not just efl.pc? Did we ever ship efl.pc/was it ever used? I think
all of the API there was beta anyway.


efl.pc is sadly not beta anymore, shipped, and used.

I basically just really want to ensure that everyone understands that 
this is not yet another subproject within efl, but the overall library 
including a lot but not everything. And in the end, its just a name ... :)






 From some early profiling: this saves ~1MB of memory when running a efl
app, i have so far not tested out what impact it has on runtime
performance or first frame numbers.



Super cool!

--
Tom




___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Time for efl-one

2020-05-28 Thread Marcel Hollerbach



On 5/27/20 6:30 PM, Marcel Hollerbach wrote:

Hi,

On 5/27/20 6:23 PM, Ross Vandegrift wrote:

On Wed, May 27, 2020 at 11:34:57AM +0200, Marcel Hollerbach wrote:
after quite a big amount of work we have successfully landed this 
morning a
update to our build system which enables to build efl as a single big 
.so
instead of multiple seperated .so's. The layout is that every single 
.so is

merged into efl-one.so except:
- eolian: no normal app would benefit from it, and it would make our 
build

*a lot* more complex
- ecore_avahi: there is no real user for this within efl, in general 
i dont

think anyone is going to benefit from it
- efl_canvas_wl: This is also not beneficial to a standard efl 
application


Isn't this required by E with Wayland support?  If so, it might be worth
including - assuming there aren't other downsides.


Yeah, good point actaully, that totally slipped my mind for now. I will 
see how much that adds to libefl-one.so and see what we can/need to do. 
Thanks!


Included now, thank you for pointing it out :)






- elua: This is only for bindings.
- ecore_drm / wayland : These are deprecated libs, not to confuse with
ecore_wl2 / ecore_drm2, which is included in efl-one
- exactness: Not useful for a normal efl app.

To build efl-one you need to pass: "-Defl-one=true" to meson. After 
this is
done, additionally to all the smaller libs, efl-one.so will be build. 
The
modules of ecore / evas etc. and all the binaries will link to 
efl-one.so

not to the smaller libraries. However, for compatibility reasons, and
complexity reasons, the small .so's are still build and installed.


If this works out, will this be the default at some point?  And I assume
that libefl-one will be the final name to avoid confusion with the
existing libefl?


I think we cannot say for sure if this will get the default build or not 
at this point. Right now we are more in the "try it out" stage, need to 
see how much it helps / improves the things overall, and see what 
negative things might show up.
I also do not know how many projects are out there that only use the 
stack up to ecore, or only eina / eo. For them something like this might 
be a nightmare.

And yes: the name libefl-one is taken to not be confused with libefl.

Greetings,
    bu5hm4n



Ross


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel




___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel