1b5975d6bSopenharmony_ciThis file documents various major decisions which affect GLib development, 2b5975d6bSopenharmony_cigiving a brief rationale of each decision, plus a link to further discussion. 3b5975d6bSopenharmony_ci 4b5975d6bSopenharmony_ci 5b5975d6bSopenharmony_ci * Compiler attributes: https://bugzilla.gnome.org/show_bug.cgi?id=113075#c46 6b5975d6bSopenharmony_ci 7b5975d6bSopenharmony_ci GLib uses GIR annotations instead of compiler attributes. They are tidier, 8b5975d6bSopenharmony_ci already supported by GLib and GNOME tools, and accomplish the same task as 9b5975d6bSopenharmony_ci compiler attributes. GLib does not provide macros for attributes like 10b5975d6bSopenharmony_ci nonnull because it would not use them. 11b5975d6bSopenharmony_ci 12b5975d6bSopenharmony_ci * Main loop API: 13b5975d6bSopenharmony_ci 14b5975d6bSopenharmony_ci The ID-based mainloop APIs (g_idle_add, g_timeout_add, etc) are considered 15b5975d6bSopenharmony_ci legacy, and new features (such as g_source_set_static_name) will only be 16b5975d6bSopenharmony_ci added to the explicit GSource APIs. 17