On Sun, May 11, 2014 at 5:36 PM, Daniel Juyung Seo <[email protected]>wrote:

>
>
>
> 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


> 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.
>

This is done in
http://git.enlightenment.org/core/elementary.git/commit/?id=d000a25d19f1613898d31afa825f9c8613cb06bd
.

Thanks.

Daniel Juyung Seo (SeoZ)


>
> 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