If I don't see negative comments until 10 am UTC on Saturday (Oct 19, 2024) at noon
I'll prepare the release as written above for Sunday (likely afternoon).
Hi all, FLTK developers and users,
I'd like to release FLTK 1.4.0 RC1 on Sunday Oct 20, 2024.
Great. Please document the differences (notably
incompatible API) between FLTK 1.3.9 and FLTK 1.4.0
--
You received this message because you are subscribed to the Google Groups "fltk.general" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkgeneral...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkgeneral/bbf6cf9f-3a92-4059-afa6-d79c4643d417%40aljus.de.
-- Basile STARYNKEVITCH <bas...@starynkevitch.net> 8 rue de la Faïencerie 92340 Bourg-la-Reine mobile: +33 6 8501 2359 France http://starynkevitch.net/Basile/
Please document the differences (notably incompatible API) between FLTK 1.3.9 and FLTK 1.4.0
On 10/16/24 07:38, 'Albrecht Schlosser' via fltk.general wrote:
Hi all, FLTK developers and users,
I'd like to release FLTK 1.4.0 RC1 on Sunday Oct 20, 2024.
Has the ABI checker been run yet to check for API issues?
I figure results of that should be shown and resolved before
an RC.
I just gave it a casual run, and got this:
Wed 10/16/24 08:40:05 /usr/local/src/fltk-1.4.x.git
[erco@harris] 370 : abi-compliance-checker -lib fltk -old fltk-1.3.9.xml -new fltk-1.4.x.xml
Preparing, please wait ...
Using GCC 9 (x86_64-linux-gnu, target: x86_64)
WARNING: May not work properly with GCC 4.8.[0-2], 6.* and higher due to bug #78040 in GCC. Please try other GCC versions with the help of --gcc-path=PATH option or create ABI dumps by ABI Dumper tool instead to avoid using GCC. Test selected GCC version first by -test and -gcc-path options.
Checking header(s) 1.3.9 ...
Checking header(s) 1.4.x ...
Comparing ABIs ...
Comparing APIs ...
Creating compatibility report ...
Binary compatibility: 33%
Source compatibility: 91.6%
Total binary compatibility problems: 527, warnings: 198
Total source compatibility problems: 322, warnings: 89
Report: compat_reports/fltk/1.3.9_to_1.4.x/compat_report.html
Has the ABI checker been run yet to check for API issues?
I figure results of that should be shown and resolved before an RC.
I just gave it a casual run, and got this:
Wed 10/16/24 08:40:05 /usr/local/src/fltk-1.4.x.git
[erco@harris] 370 : abi-compliance-checker -lib fltk -old fltk-1.3.9.xml -new fltk-1.4.x.xml
...
Binary compatibility: 33%
Source compatibility: 91.6%
Total binary compatibility problems: 527, warnings: 198
Total source compatibility problems: 322, warnings: 89
Report: compat_reports/fltk/1.3.9_to_1.4.x/compat_report.html
I put a copy of my report here:
https://www.seriss.com/people/erco/tmp/fltk-1.3.9-vs-1.4.x-compat-report.html
On 10/16/24 10:30, 'Albrecht Schlosser' via fltk.general wrote:
On 10/16/24 17:46 Greg Ercolano wrote:
Has the ABI checker been run yet to check for API issues?
I figure results of that should be shown and resolved before an RC.
Short answer: no, I didn't use the ABI checker (yet) because FLTK 1.4 definitely breaks the ABI (that's what minor version changes in FLTK are intended and allowed to do). Hence, why bother? ...
Longer answer: I'm not sure if you really meant "to check for API issues" which is a totally different question but an interesting byproduct of the ABI checker.
New docs online, generated by doxygen 1.12.0 on Oct 15:
HTML: https://www.fltk.org/doc-1.4/
PDF: https://www.fltk.org/doc-1.4/fltk.pdf
New docs online, generated by doxygen 1.12.0 on Oct 15:
HTML: https://www.fltk.org/doc-1.4/
PDF: https://www.fltk.org/doc-1.4/fltk.pdf
I scanned through quickly: First comment I like the Light/Dark option.
The link to the Frequently Asked Questions does not currently work.
I left a lot of TODO comments in the UTF-8 chapter years ago whenthe docs had their last major update because I don't wok with non-ASCIIcharacters and had no experience of working with exotic characters.This chapter should be reviewed by someone with that experience.
You can also remove my name from the credits: I did very little.
New docs online, generated by doxygen 1.12.0 on Oct 15:
HTML: https://www.fltk.org/doc-1.4/
PDF: https://www.fltk.org/doc-1.4/fltk.pdf
The link to the Frequently Asked Questions does not currently work.
It does for me: I mean the link from the main page of the HTML docs below "Appendices": FAQ (Frequently Asked Questions) to the FAQ within the HTML docs: https://www.fltk.org/doc-1.4/FAQ.html
You can also remove my name from the credits: I did very little.
Which "credits"? The list of "By ..." on the main page?
The link to the Frequently Asked Questions does not currently work.
It does for me: I mean the link from the main page of the HTML docs below "Appendices": FAQ (Frequently Asked Questions) to the FAQ within the HTML docs: https://www.fltk.org/doc-1.4/FAQ.html
Sorry, I should have been clearer.
I was navigating through using the Next buttonsat the bottom of the main pages, and the Next [FAQ] at the bottom of examples.htmlfails with "The requested URL /doc-1.4/faq.html was not found".
Note that I have not been through checking all of the Prev/Next buttons at the bottoms of pages.
You can also remove my name from the credits: I did very little.Which "credits"? The list of "By ..." on the main page?
Yes, at the top of the FLTK Programming Manual. I was surprised when my nameappeared and it still makes me a bit uncomfortable. It makes it look like I'm an activecore developer, but in fact all I've ever done is update the Resizing and Unicode docs.
Thanks, Albrecht. I am really looking forward to getting RC1 out. I don't have anything the must be fixed before Sunday, just minor stuff, maybe some FLUID documentation, but nothing that would stop RC1.
I just updated the FLUID documentation on fltk.org . They are nice the way they are. I may want to add two or three undocumented features, but there is no rush to do that.
In one of the descriptions, you mention that the box types no longer need the underscore and that the box types were simplified. Unfortunately this patch did not stay in master for some reasons that I forgot. I believe I went too far with some other enums and needed up reverting everything because I thought it was too drastic. The boxtype changes did work fine though. Question: do you want me to reapply the boxtype underscore changes before Sunday? Or do you want to keep things as they are and just remove the mentions?
On 10/17/24 15:18 'Matthias Melcher' via fltk.general wrote:
I just updated the FLUID documentation on fltk.org . They are nice the way they are. I may want to add two or three undocumented features, but there is no rush to do that.I just updated the FLUID documentation on fltk.org once again after my recent changes (commit cb6ee39852d2a3ddeba1a68fab3086c487b998bc). Some of my fixes apply to fluid (docs), hence I uploaded my latest docs.
Please check if anything is wrong with my version of the fluid docs: I saw some fluid windows popping up while creating the docs, and I suspect that the "autodoc" feature might create screenshots on the running system. You may want to check if my screenshots broke any of yours which were obviously created on macOS.
If this is the case we need to find out how I can create the distribution tarballs w/o having to use my Mac or whatever we need...
On 10/17/24 17:08 'Albrecht Schlosser' via fltk.general wrote:
> On 10/17/24 15:18 'Matthias Melcher' via fltk.general wrote:
>> In one of the descriptions, you mention that the box types no longer
>> need the underscore and that the box types were simplified.
I'm lost. I can't find a commit that reverts anything related in
FL/Enumerations.H and the original mention of Fl_Boxtype in CHANGES.txt
is really, really old (maybe in 2017 or older).
--
You received this message because you are subscribed to the Google Groups "fltk.general" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkgeneral...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkgeneral/346ef7e4-9383-4c11-b2f2-d428c6f627a1n%40googlegroups.com.
On 10/18/24 06:32, Eric Sokolowsky wrote:
In the flags field of the Fl_Menu_Item class, I often use conditionals to change the behavior of the program menus (sometimes some menu items are inactive, for example). However, under gcc 13.2.1 this started to throw errors because of narrowing types (unsigned int to int). Here's an example:
FL_Menu_Item menu_[] = {...{Ca&talog", 0, 0, playlist_catalog_menu_items, (show_all ? FL_MENU_INACTIVE : FL_SUBMENU_POINTER), FL_NORMAL_LABEL, 0, 14, 0 },...}
I had to cast the flags field back to int to get it to compile without errors.
Hmm, in this context it should have to do with the underlying
type of an enum,
and as far as I know, under normal circumstances that
should reduce to an int.
FL_MENU_INACTIVE and FL_SUBMENU_POINTER are defined as enums:
..and the 5th element in the Fl_Menu_Item struct is 'int flags;'.enum { // values for flags:
FL_MENU_INACTIVE = 1, ///< Deactivate menu item (gray out)
FL_MENU_TOGGLE = 2, ///< Item is a checkbox toggle (shows checkbox for on/off state)
FL_MENU_VALUE = 4, ///< The on/off state for checkbox/radio buttons (if set, state is 'on')
FL_MENU_RADIO = 8, ///< Item is a radio button (one checkbox of many can be on)
FL_MENU_INVISIBLE = 0x10, ///< Item will not show up (shortcut will work)
FL_SUBMENU_POINTER = 0x20, ///< Indicates user_data() is a pointer to another menu array
FL_SUBMENU = 0x40, ///< Item is a submenu to other items
FL_MENU_DIVIDER = 0x80, ///< Creates divider line below this item. Also ends a group of radio buttons
FL_MENU_HORIZONTAL = 0x100, ///< ??? -- reserved, internal (do not use)
FL_MENU_RESERVED = 0xffffff00 ///< These bits are reserved for internal or future usage (do not use)
};
On 10/16/24 10:30, 'Albrecht Schlosser' via fltk.general wrote:
On 10/16/24 17:46 Greg Ercolano wrote:
Has the ABI checker been run yet to check for API issues?
I figure results of that should be shown and resolved before an RC.
Short answer: no, I didn't use the ABI checker (yet) because FLTK 1.4 definitely breaks the ABI (that's what minor version changes in FLTK are intended and allowed to do). Hence, why bother? ...
Longer answer: I'm not sure if you really meant "to check for API issues" which is a totally different question but an interesting byproduct of the ABI checker.
Yes, that's why I mentioned it -- it makes note of API breaking changes as well,
and lists removals of any public function/method/structs/etc.
I suspect that the change in reporting of this as an error is because of the compiler upgrade.I was able to make some type casts in my code and my application now compiles and runs with 1.4.0.
--
You received this message because you are subscribed to the Google Groups "fltk.general" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkgeneral...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkgeneral/a3876039-6abb-4bd6-b7d4-4239908afc76%40seriss.com.
On 10/18/24 20:26, Eric Sokolowsky wrote:
Greg,
Your response seems to be correct to me. Either of the two fixes mentioned (changing the value of FL_MENU_RESERVED or eliminating it altogether) would fix the problem. If this is not changed in the FLTK source, I'll just continue to use type casting for that parameter, but I'd rather not have to do that.
Kudos to the FLTK developers! This minor point is all I had to change to get my program to go from 1.3.x to 1.4.
Wouldn't it make more sense to set the FL_MENU_RESERVED to 0x0000ffff, for example, reserving the bottom 16 bits for FLTK use and giving the top 15 (16) bits to the user? Why reserve *all* bits for core? And why are those bits that core already uses not part of the mask? Maybe there is something I don't get?
Greg,
Your response seems to be correct to me. Either of the two fixes mentioned (changing the value of FL_MENU_RESERVED or eliminating it altogether) would fix the problem. If this is not changed in the FLTK source, I'll just continue to use type casting for that parameter, but I'd rather not have to do that.
Kudos to the FLTK developers! This minor point is all I had to change to get my program to go from 1.3.x to 1.4.
Note for future development: IMHO we should not touch the existing Fl_Menu code any more: it can't be fixed easily, and all efforts would be wasted time. As discussed before we should rather add a completely new menu code in 1.5.0 where we can use std::vector and other "modern" ;-) C++ stuff which would maintain the menu "arrays" automatically w/o needing such complicated stuff as in the current code that led to issue #332.
Please not another data structure or array arrangement. We have a widget system that can build hierarchies, and that same system should be used for menus, just as it is used for windows.
But that's all for later... .
sizeof(Fl_Widget) = 120 sizeof(Fl_Menu_Item) = 56--> Fl_Widget is twice as big as Fl_Menu_Item.
--
You received this message because you are subscribed to the Google Groups "fltk.general" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkgeneral...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkgeneral/f0ea0b78-8d73-4a52-aa95-586fd4ea4559%40aljus.de.