[cling] Remove support for declarations without 'auto' keyword
This Pull request:
Removes the implicit auto keyword support added in: https://github.com/root-project/root/commit/071d08487ceea4f8f28231ea182ba350e6836e30 and https://github.com/root-project/root/commit/1f4a6dc0539acfc0ec58cea7443fe08a0a4479d4
Changes or fixes:
This feature was deprecated in: https://github.com/root-project/root/pull/14645
Will update LLVM and squash the commits here before the final merge/decision.
Checklist:
- [ ] tested changes locally
- [ ] updated the docs (if necessary)
This PR fixes #
Test Results
13 files 13 suites 3d 1h 26m 43s :stopwatch: 3 029 tests 3 027 :white_check_mark: 0 :zzz: 2 :x: 33 856 runs 33 854 :white_check_mark: 0 :zzz: 2 :x:
For more details on these failures, see this check.
Results for commit 7a463086.
:recycle: This comment has been updated with latest results.
This was deprecated in 6.32, i.e.
This was deprecated in 6.32, i.e.
Yes, but I don't think people will do every upgrade and especially not for old macros. This was discussed in the ROOT meeting back then when we agreed that it would only be removed for ROOT 7. I'm ok with revisiting this decision, but I'm against just merging a PR less than half a year after it was deprecated.
Why was this deprecation not mentioned in the 6.32 release notes? https://root.cern/doc/v632/release-notes.html
The standard procedure is: if you deprecate something, write it in the release notes, including the information on when it will be eventually removed (which is usually one release later). If we don't follow our own standard here, we'll have these discussions forever :(
including the information on when it will be eventually removed (which is usually one release later)
In this case it was discussed: It will be removed in ROOT 7.
Is that discussion documented somewhere?
Is that discussion documented somewhere?
Yes, in https://indico.cern.ch/event/1381548/
Regarding the deprecation
auto auto: will break a lot of unnamed old macros, we should wait with removing until ROOT 7. We will start issuing deprecation messages starting from ROOT 6.32.
I would like to link here this note https://github.com/root-project/root/pull/15368#issuecomment-2376010102 by @devajithvs : once this is merged, PR https://github.com/root-project/root/pull/15368 will have to be reverted.
What about a three-step nudge-approach?
- In ROOT 6.32, 6.34 and 6.36, 6.38 it emits a warning, as with current master.
- In ROOT 6.40, auto-injection support is disabled by default, so some users might be affected / an error triggered when upgrading, but they can rescue the old behavior by just putting in their
.rootrcsomething likeRint.AutoInject 1(would be 0 by default). Some of them might even start adapting their scripts to prevent accumulated work later on when going to ROOT7, rather than changing their rootrc. - In ROOT 7,
Rint.AutoInject 1disappears and one can finally drop the LLVM patches allowing auto-injection.
- In ROOT 6.40, auto-injection support is disabled by default, so some users might be affected / an error triggered when upgrading, but they can rescue the old behavior by just putting in their
.rootrcsomething likeRint.AutoInject 1(would be 0 by default). Some of them might even start adapting their scripts to prevent accumulated work later on when going to ROOT7, rather than changing their rootrc.
gentle ping, what do you think about this nudge approach?
