-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Maintain experimental branches #6204
Draft
Paul-Licameli
wants to merge
30
commits into
audacity:master
Choose a base branch
from
Paul-Licameli:Maintain-experimental-branches
base: master
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Maintain experimental branches #6204
Paul-Licameli
wants to merge
30
commits into
audacity:master
from
Paul-Licameli:Maintain-experimental-branches
+1,318
−15,454
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Paul-Licameli
added
the
code quality
Type safety, elimination of warnings, modernizing C++ idioms, etc.
label
Apr 2, 2024
Paul-Licameli
requested review from
rbdannenberg,
crsib,
vsverchinsky and
saintmatthieu
April 2, 2024 22:12
Paul-Licameli
force-pushed
the
Maintain-experimental-branches
branch
6 times, most recently
from
April 5, 2024 15:29
17a4a34
to
7ceed82
Compare
Rebased and resolved conflicts with wave-clip-refactoring |
Paul-Licameli
force-pushed
the
Maintain-experimental-branches
branch
from
April 5, 2024 16:30
7ceed82
to
3343eb6
Compare
... See also commit b25994a. Finishing the cleanup of unused fftSkipPoints.
Paul-Licameli
force-pushed
the
Maintain-experimental-branches
branch
3 times, most recently
from
April 15, 2024 18:28
d6f231b
to
243780d
Compare
... DeviceManager now ALWAYS inherits DeviceChangeHandler but that class now checks the Experimental in its constructor.
... This (partly) reverts commit e3bea17. But don't restore the old build files. Instead update CMakeLists.txt.
Paul-Licameli
force-pushed
the
Maintain-experimental-branches
branch
from
April 15, 2024 21:11
24dbe11
to
68349f0
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves: (direct link to the issue)
Depends on
Expect more commits, but review may commence now.
Eliminate Experimental.cmake, and instead introduce namespace Experimental, which may be scattered.
The intention is that all experimentals are governed by
constexpr
booleans in a namespaceExperimental
which need not be defined all in one widely included header, but a textual scanof the source code can easily find all of them.
EXPERIMENTAL_EQ_SSE_THREADED will be removed (using pffft is the more promising thing for
better single-threaded EQ performance) but the rest will be repaired to keep them buildable.
This even includes the ScoreAlign experiment of @rbdannenberg which @saintmatthieu may also
find interesting.
I pass no judgment on the rest of them -- whether they were good or bad, they have simply been
forgotten and neglected. Maybe there is something of value in some of them to be rediscovered.
History: Experimental.cmake was introduced to error-proof the copy-paste of code containing
EXPERIMENTAL_* switches. Doing that but neglecting to
#include "Experimental.h"
couldcause unintended changes of behavior. Instead I introduced Experimental.cmake, to inject a -D
compiler option for every .cpp file for enabled experiments.
This was fool-proof, but introduced the inconvenience, that changing Experimental.cmake would
cause everything to recompile in one's own development build.
This alternative should allow switching experimentals on, and waiting less time to build.
And better, it will prevent the un-committed experimentals from falling into an un-buildable state
of disrepair, if instead, the C++17
if contexpr
construct is used. The branch that is false (andknown false at compile time) is still required to pass compilation checks, so other changes to function
signatures will force updates of those disabled branches too to keep a successful build.
Recommended: