On Tue, May 6, 2014 at 8:51 PM, Stefan Schmidt <[email protected]>wrote:

> Hello.
>
> On Wed, 2014-04-30 at 16:11, Tom Hacohen wrote:
> > Hey,
> >
> > As promised, these are my ABI reports. There's a bit of noise because of
> > the switch to Eo2 and the fact that our object's Eo API is not always
> > ifdefed out in the headers (the Eo api is though, so they can't be used
> > without the define). Also, obviously, the symbols exposed in the binary
> > that can not be turned off. I think though, that it's easy enough to
> > scan through the noise and find the issues.
> >
> > Here's the new index for all the scans:
> > http://enlightenment.org/~tasn/abi/
> >
> >
> > Please have a look and share if you see anything suspicious.
>
> I like to have some more people looking over this. The list out of my
> head would be raster, cedric and k-s as they have expenrience with
> this but obviously everyone is welcome.
>
> > A good example would be:
> >   [+] elm_widget_focus_highlight_geometry_get ( Evas_Object const* obj,
> > Evas_Coord* x, Evas_Coord* y, Evas_Coord* w, Evas_Coord* h ) (1)
> >
> > But I guess that's "fine" because it's internal.
>
> The application linked against the old lib and now switching to the
> new one should still work with this. A problem arises this new
> parameter changes the behaviour if not set. Its available through
> elm_widget.h so its not really internal.
>
> I spent some time going through this and want to share and discuss my
> doubts. Starting with elm, efl is below.
>
> Elementary:
> -----------
>
> o 1359 new symbols added. The Majority it due to eolian/eo2 and thus
> not so relevant until we declare them stable.
>
> o There are some other symbols added though which one can easily miss.
> Listing them here and I would like to hear comments if we are fine
> with maintaining these new APIs
>
> Newly added symbols:
>
> elm_config.h, libelementary.so.1.10.0
> elm_config_accel_preference_get ( )
> elm_config_accel_preference_set ( char const* pref )
> elm_config_atspi_mode_get ( )
> elm_config_atspi_mode_set ( Eina_Bool is_atspi )
> elm_config_color_classes_list_free ( Eina_List* list )
> elm_config_color_classes_list_get ( )
> elm_config_color_overlay_apply ( )
> elm_config_color_overlay_list_get ( )
> elm_config_color_overlay_set ( char const* color_class, int r, int g, int
> b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3 )
> elm_config_color_overlay_unset ( char const* color_class )
>

Hi


> elm_config_focus_auto_scroll_bring_in_enabled_get ( )
> elm_config_focus_auto_scroll_bring_in_enabled_set ( Eina_Bool enabled )
>

I would like to change this API to
elm_config_focus_autoscroll_mode_get/set() and add
Elm_Focus_Autoscroll_Mode enum.
The main reason is that this bring_in_enabled_get/set() APIs are too
restricted and thus not flexible.
I got more requirements for the focus autoscrolling such as none, wholely
visible not just bring_in and show.
So it is correct to add mode_set/get() APIs for the focus auto scrolling.
Thanks god, we've found this before the release :)

And auto_scroll -> autoscroll. This must be trivial.

Thanks.

Daniel Juyung Seo (SeoZ)



> elm_config_focus_highlight_clip_disabled_get ( )
> elm_config_focus_highlight_clip_disabled_set ( Eina_Bool disable )
> elm_config_focus_move_policy_get ( )
> elm_config_focus_move_policy_set ( enum Elm_Focus_Move_Policy policy )
> elm_config_item_select_on_focus_disabled_get ( )
> elm_config_item_select_on_focus_disabled_set ( Eina_Bool enabled )
>
> elm_focus.h, libelementary.so.1.10.0
> elm_object_focused_item_get ( Evas_Object const* obj )
> elm_object_item_focus_get ( Elm_Object_Item const* it )
> elm_object_item_focus_set ( Elm_Object_Item* it, Eina_Bool focused )
>
> elm_scroll.h, libelementary.so.1.10.0
> elm_object_scroll_item_loop_enabled_get ( Evas_Object const* obj )
> elm_object_scroll_item_loop_enabled_set ( Evas_Object* obj, Eina_Bool
> enable )
>
> elm_widget.h, libelementary.so.1.10.0
> _elm_widget_item_focus_get ( Elm_Widget_Item const* item )
> _elm_widget_item_focus_get_hook_set ( Elm_Widget_Item* item,
> Elm_Widget_Focus_Get_Cb func )
> _elm_widget_item_focus_set ( Elm_Widget_Item* item, Eina_Bool focused )
> _elm_widget_item_focus_set_hook_set ( Elm_Widget_Item* item,
> Elm_Widget_Focus_Set_Cb func )
> elm_widget_focus_highlight_enabled_get ( Evas_Object const* obj )
> elm_widget_focus_highlight_focus_part_geometry_get ( Evas_Object const*
> obj, Evas_Coord* x, Evas_Coord* y, Evas_Coord* w, Evas_Coord* h )
> elm_widget_focused_item_get ( Evas_Object const* obj )
> elm_widget_item_loop_enabled_get ( Evas_Object const* obj )
> elm_widget_item_loop_enabled_set ( Evas_Object* obj, Eina_Bool enable )
> elm_gengrid.eo.legacy.h, libelementary.so.1.10.0
> elm_gengrid_wheel_disabled_get ( Eo const* obj )
> elm_gengrid_wheel_disabled_set ( Eo* obj, Eina_Bool disabled )
>
>
> I also wonder why we have some newly added symbols in the generated legacy
> headers. Should they not cover what we already had thus legacy?
>
>
> elm_gengrid_legacy.h, libelementary.so.1.10.0
> elm_gengrid_reorder_mode_start ( Evas_Object* obj, Ecore_Pos_Map
> tween_mode )
> elm_gengrid_reorder_mode_stop ( Evas_Object* obj )
>
> elm_photo.eo.legacy.h, libelementary.so.1.10.0
> elm_photo_editable_get ( Eo const* obj )
> elm_photo_fill_inside_get ( Eo const* obj )
> elm_photo_size_get ( Eo const* obj )
>
> elm_route.eo.legacy.h, libelementary.so.1.10.0
> elm_route_emap_set ( Eo* obj, void* emap )
>
> o Removed symbols seem only to come from the eo2 change which we have
> declared unstable right now. But please have another look if that is
> correct:
>
> elm_atspi_object_eo.h, libelementary.so.1.9.3
> elm_atspi_component_interface_get ( )
> elm_atspi_obj_class_get ( )
> elm_atspi_widget_obj_class_get ( )
> elm_atspi_window_interface_get ( )
>
> elm_interface_fileselector.h, libelementary.so.1.9.3
> elm_fileselector_interface_get ( )
>
> elm_interface_scrollable.h, libelementary.so.1.9.3
> elm_obj_pan_eo_class_get ( )
> elm_scrollable_interface_get ( )
>
> elm_web_legacy.h, libelementary.so.1.9.3
> elm_web_uri_get ( Evas_Object const* obj )
>
> ^^^^ This one looks suspicious to me. Can our elm and webkit people please
> comment on this removal?
>
>
> elm_widget.h, libelementary.so.1.9.3
> elm_widget_class_get ( )
>
> o Other problems
>
> elm_map_legacy.h, libelementary.so.1.9.3
> [−] elm_map_canvas_to_region_convert ( Evas_Object const* obj, Evas_Coord
> const x, Evas_Coord const y, double* lon, double* lat ) (2)
> changed to:
> elm_map_canvas_to_region_convert ( Eo const* obj, Evas_Coord x, Evas_Coord
> y, double* lon, double* lat )
>
> The removal of the const here can cause us trouble or am I wrong?
>
> o We also have tons of changes in all legacy headers from Evas_Object
> to Eo, but I guess that might be ok in the legacy headers.
>
> o Many constants have been changed but from what I have seen only in
> the generated eo code
>
>
> EFL:
> ----
> o Ignoring all eo based added symbols I see the following new ones.
> Are we fine with maintaining those?
>
> Ecore_Evas.h, libecore_evas.so.1.10.0
> ecore_evas_aux_hint_add ( Ecore_Evas* ee, char const* hint, char const*
> val )
> ecore_evas_aux_hint_del ( Ecore_Evas* ee, int const id )
> ecore_evas_aux_hint_val_set ( Ecore_Evas* ee, int const id, char const*
> val )
> ecore_evas_aux_hints_allowed_get ( Ecore_Evas const* ee )
> ecore_evas_aux_hints_supported_get ( Ecore_Evas const* ee )
>
> Ecore_X_Atoms.h, libecore_x.so.1.10.0
> ECORE_X_ATOM_E_WINDOW_AUX_HINT [data]
> ECORE_X_ATOM_E_WINDOW_AUX_HINT_ALLOWED [data]
> ECORE_X_ATOM_E_WINDOW_AUX_HINT_SUPPORT [data]
> ECORE_X_ATOM_E_WINDOW_AUX_HINT_SUPPORTED_LIST [data]
>
> Edje_Common.h, libedje.so.1.10.0
> edje_object_part_object_name_get ( Evas_Object const* obj )
>
> Eet.h, libeet.so.1.10.0
> eet_data_image_colorspace_get ( Eet_File* ef, char const* name, char
> const* cipher_key, Eet_Colorspace const** cspaces )
> eet_data_image_decode_to_cspace_surface_cipher ( void const* data, char
> const* cipher_key, int size, unsigned int src_x, unsigned int src_y,
> unsigned int* d, unsigned int w, unsigned int h, unsigned int row_stride,
> Eet_Colorspace cspace, int* alpha, int* comp, int* quality,
> Eet_Image_Encoding* lossy )
> eet_data_image_read_to_cspace_surface_cipher ( Eet_File* ef, char const*
> name, char const* cipher_key, unsigned int src_x, unsigned int src_y,
> unsigned int* d, unsigned int w, unsigned int h, unsigned int row_stride,
> Eet_Colorspace cspace, int* alpha, int* comp, int* quality,
> Eet_Image_Encoding* lossy )
> eet_data_read_cipher_buffer ( Eet_File* ef, Eet_Data_Descriptor* edd, char
> const* name, char const* cipher_key, char* buffer, int buffer_size )
>
> Eeze.h, libeeze.so.1.10.0
> eeze_udev_get ( )
> eeze_udev_syspath_check_property ( char const* syspath, char const*
> property, char const* value )
> eeze_udev_syspath_check_sysattr ( char const* syspath, char const*
> sysattr, char const* value )
> eeze_udev_syspath_get_parent_filtered ( char const* syspath, char const*
> subsystem, char const* devtype )
>
> eina_accessor.h, libeina.so.1.10.0
> eina_accessor_clone ( Eina_Accessor* accessor )
>
> eina_hash.h, libeina.so.1.10.0
> eina_hash_list_append ( Eina_Hash* hash, void const* key, void const* data
> )
> eina_hash_list_prepend ( Eina_Hash* hash, void const* key, void const*
> data )
> eina_hash_list_remove ( Eina_Hash* hash, void const* key, void const* data
> )
>
> eina_inarray.h, libeina.so.1.10.0
> eina_inarray_resize ( Eina_Inarray* array, unsigned int new_size )
>
> eina_log.h, libeina.so.1.10.0
> eina_log_domain_registered_level_set ( int domain, int level )
>
> Eio.h, libeio.so.1.10.0
> eio_memory_burst_limit_get ( )
> eio_memory_burst_limit_set ( size_t limit )
>
> Evas_Common.h, libevas.so.1.10.0
> evas_font_path_global_append ( char const* path )
> evas_font_path_global_clear ( )
> evas_font_path_global_list ( )
> evas_font_path_global_prepend ( char const* path )
>
> o Same question why we have new symbols listed in legacy as I raised in elm
>
> evas.eo.legacy.h, libevas.so.1.10.0
> evas_event_feed_key_down_with_keycode ( Eo* obj, char const* keyname, char
> const* key, char const* string, char const* compose, unsigned int
> timestamp, void const* data, unsigned int keycode )
> evas_event_feed_key_up_with_keycode ( Eo* obj, char const* keyname, char
> const* key, char const* string, char const* compose, unsigned int
> timestamp, void const* data, unsigned int keycode )
>
> evas_image.eo.legacy.h, libevas.so.1.10.0
> evas_object_image_mmap_get ( Eo const* obj, Eina_File const** f, char
> const** key )
> evas_object_image_scene_get ( Eo const* obj )
> evas_object_image_scene_set ( Eo* obj, Evas_3D_Scene* scene )
>
> o Removed symbols have only been in EO headers
>
> o Again some Evas_Object to Eo changes inEO legacy headers.
>
> o Some changes in eet public APIs from int to Eet_Image_Encoding enum
>
> Eet.h, libeet.so.1.9.3
> [+] eet_data_image_decode ( void const* data, int size, unsigned int* w,
> unsigned int* h, int* alpha, int* compress, int* quality, int* lossy ) (1)
> [+] eet_data_image_decode_cipher ( void const* data, char const*
> cipher_key, int size, unsigned int* w, unsigned int* h, int* alpha, int*
> compress, int* quality, int* lossy ) (1)
> [+] eet_data_image_decode_to_surface ( void const* data, int size,
> unsigned int src_x, unsigned int src_y, unsigned int* d, unsigned int w,
> unsigned int h, unsigned int row_stride, int* alpha, int* compress, int*
> quality, int* lossy ) (1)
> [+] eet_data_image_decode_to_surface_cipher ( void const* data, char
> const* cipher_key, int size, unsigned int src_x, unsigned int src_y,
> unsigned int* d, unsigned int w, unsigned int h, unsigned int row_stride,
> int* alpha, int* compress, int* quality, int* lossy ) (1)
> [+] eet_data_image_encode ( void const* data, int* size_ret, unsigned int
> w, unsigned int h, int alpha, int compress, int quality, int lossy ) (1)
> [+] eet_data_image_encode_cipher ( void const* data, char const*
> cipher_key, unsigned int w, unsigned int h, int alpha, int compress, int
> quality, int lossy, int* size_ret ) (1)
> [+] eet_data_image_header_decode ( void const* data, int size, unsigned
> int* w, unsigned int* h, int* alpha, int* compress, int* quality, int*
> lossy ) (1)
> [+] eet_data_image_header_decode_cipher ( void const* data, char const*
> cipher_key, int size, unsigned int* w, unsigned int* h, int* alpha, int*
> compress, int* quality, int* lossy ) (1)
> [+] eet_data_image_header_read ( Eet_File* ef, char const* name, unsigned
> int* w, unsigned int* h, int* alpha, int* compress, int* quality, int*
> lossy ) (1)
> [+] eet_data_image_header_read_cipher ( Eet_File* ef, char const* name,
> char const* cipher_key, unsigned int* w, unsigned int* h, int* alpha, int*
> compress, int* quality, int* lossy ) (1)
> [+] eet_data_image_read ( Eet_File* ef, char const* name, unsigned int* w,
> unsigned int* h, int* alpha, int* compress, int* quality, int* lossy ) (1)
> [+] eet_data_image_read_cipher ( Eet_File* ef, char const* name, char
> const* cipher_key, unsigned int* w, unsigned int* h, int* alpha, int*
> compress, int* quality, int* lossy ) (1)
> [+] eet_data_image_read_to_surface ( Eet_File* ef, char const* name,
> unsigned int src_x, unsigned int src_y, unsigned int* d, unsigned int w,
> unsigned int h, unsigned int row_stride, int* alpha, int* compress, int*
> quality, int* lossy ) (1)
> [+] eet_data_image_read_to_surface_cipher ( Eet_File* ef, char const*
> name, char const* cipher_key, unsigned int src_x, unsigned int src_y,
> unsigned int* d, unsigned int w, unsigned int h, unsigned int row_stride,
> int* alpha, int* compress, int* quality, int* lossy ) (1)
> [+] eet_data_image_write ( Eet_File* ef, char const* name, void const*
> data, unsigned int w, unsigned int h, int alpha, int compress, int quality,
> int lossy ) (1)
> [+] eet_data_image_write_cipher ( Eet_File* ef, char const* name, char
> const* cipher_key, void const* data, unsigned int w, unsigned int h, int
> alpha, int compress, int quality, int lossy ) (1)
>
> Somehow in the back of my head I have a note that enums are not int
> everywhere.
> Are we care about these cases?
>
> o More constants changes in EO legacy headers
>
>
> This concludes what I have found. In summary I think most issues are
> noise from EO and get be ignored right now but we should have another
> look at the newly added APIs to make sure we are happy with them. Also
> the removal of elm_web_uri_get() strikes me odd and I would like to
> hear about it.
>
> regards
> Stefan Schmidt
>
>
> ------------------------------------------------------------------------------
> Is your legacy SCM system holding you back? Join Perforce May 7 to find
> out:
> &#149; 3 signs your SCM is hindering your productivity
> &#149; Requirements for releasing software faster
> &#149; Expert tips and advice for migrating your SCM now
> http://p.sf.net/sfu/perforce
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to