Writing this from my laptop I do not currently have all the various checkouts to look at the exact changes myself. But enquiring based on the reports I have read.
http://bugs.freepascal.org/view.php?id=23523
Show quoted text 10 lines
I could not find any remarks on the user changes for trunk
It appears this change breaks existing units. Technically easy to fix, it complicates user code by adding a need for fidef in the uses clause, so that compiling on windows includes the windows unit (which would break compiling on none windows.)
I understand that code duplication should be avoided. Given that before registry code only required one unit, and no undef, I did wonder if a simple forward declaration (as replacement) was considered, and if so, why if was not chosen.
That is as an example in 2.4 the include file in unit registry defines it's own
HKEY_LOCAL_MACHINE = HKEY($80000002);That of course is not good, as it duplicates the define in windows, with the risk of not being updated, should the value change.
But it could have defined
HKEY_LOCAL_MACHINE = windows.HKEY_LOCAL_MACHINE
Then the compilation of other units would not have been broken
