Summary
Complete removal of the EXPERIMENTAL preprocessor flag from the cisTEMx build system. This flag currently controls 3 programs and 1 GUI panel across 34 files. The mature simulation features will be promoted to standard while deprecated development features will be removed.
Features Being Promoted to Standard
simulate program - Electron microscopy image simulation
sum_all_power_spectra program - Power spectra aggregation utility
water.cpp/h - Water molecule simulation library
wave_function_propagator.cpp/h - Wave function propagation for simulate
Features Being Removed
refine_template_dev program - Development version superseded by main refine_template
- Experimental GUI panel and all associated UI components
experimental_icon.cpp - GUI asset no longer needed
Implementation Steps
Step 1: Fix Makefile.am Duplicate
Step 2: Remove Build System Conditionals
configure.ac
cistem_config.in
src/Makefile.am
Step 3: Remove Source Code Preprocessor Blocks
src/core/gui_core_headers.h
src/programs/projectx/projectx.cpp (11 blocks)
src/gui/MainFrame.cpp
src/gui/MyOverviewPanel.cpp
Step 4: Delete Experimental Files
Step 5: Update GitHub Actions Workflows
Remove --enable-experimental from global_configure_options:
Step 6: Update Development Configurations
Step 7: Update Documentation
Step 8: Testing
Impact Summary
- Files Modified: 16
- Files Deleted: 7
- Total Files Affected: 23
- Programs Promoted: 2 (simulate, sum_all_power_spectra)
- Programs Removed: 1 (refine_template_dev)
- GUI Components Removed: 2 panels + 1 icon
Notes
- The duplicate bin_PROGRAMS lines in Makefile.am (535-537, 545-547) is a pre-existing bug that will be fixed
- Intel compiler warning suppression (-wd1595) was only enabled with experimental flag - verify if still needed
- template_matching_data_sizer.h may already be compiled unconditionally via match_template program
Summary
Complete removal of the EXPERIMENTAL preprocessor flag from the cisTEMx build system. This flag currently controls 3 programs and 1 GUI panel across 34 files. The mature simulation features will be promoted to standard while deprecated development features will be removed.
Features Being Promoted to Standard
simulateprogram - Electron microscopy image simulationsum_all_power_spectraprogram - Power spectra aggregation utilitywater.cpp/h- Water molecule simulation librarywave_function_propagator.cpp/h- Wave function propagation for simulateFeatures Being Removed
refine_template_devprogram - Development version superseded by main refine_templateexperimental_icon.cpp- GUI asset no longer neededImplementation Steps
Step 1: Fix Makefile.am Duplicate
Step 2: Remove Build System Conditionals
configure.ac
cistem_config.in
src/Makefile.am
if EXPERIMENTAL_AMconditional blockswater.cppto unconditional libcore_a_SOURCESsimulateandsum_all_power_spectrato unconditional bin_PROGRAMSStep 3: Remove Source Code Preprocessor Blocks
src/core/gui_core_headers.h
src/programs/projectx/projectx.cpp (11 blocks)
src/gui/MainFrame.cpp
src/gui/MyOverviewPanel.cpp
Step 4: Delete Experimental Files
src/programs/refine_template_dev/refine_template_dev.cppsrc/gui/MyExperimentalPanel.cppsrc/gui/MyExperimentalPanel.hsrc/gui/RefineTemplateDevPanel.cppsrc/gui/RefineTemplateDevPanel.hsrc/gui/icons/experimental_icon.cppsrc/programs/match_template/template_matching_data_sizer.his used elsewhere, delete if notStep 5: Update GitHub Actions Workflows
Remove
--enable-experimentalfrom global_configure_options:.github/workflows/release_build.ymlline 12.github/workflows/debug_build.ymlline 12.github/workflows/release_build_cpu_only.ymlline 12.github/workflows/debug_build_cpu_only.ymlline 12.github/workflows/release_build_clang_noFastFFT.ymlline 12.github/workflows/release_build_GNU_mkl.ymlline 12Step 6: Update Development Configurations
.vscode/tasks.jsonline 12 - Remove--enable-experimentalscripts/linting/cpp_cuda/generate_compile_db.shline 25 - Remove flagStep 7: Update Documentation
docs/user-guide/simulation.mdline 209 - Remove note about needing experimental flagStep 8: Testing
Impact Summary
Notes