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: >> • 3 signs your SCM is hindering your productivity >> • Requirements for releasing software faster >> • 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: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • 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
