Move lalapps/src/pulsar/ codes to LALPulsar

Merged Karl Wette requested to merge ANU-CGA/lalsuite:move-lalapps-src-pulsar-to-lalpulsar into master


This MR moves all codes under lalapps/src/pulsar/ to lalpulsar/bin/.

Executables under lalpulsar/bin/ are renamed as follows (to avoid duplicate pulsars in the name):

  • lalapps_pulsar_crosscorr_v2 is renamed to lalpulsar_crosscorr_v2
  • lalapps_pulsar_frequency_evolution is renamed to lalpulsar_frequency_evolution
  • lalapps_heterodyne_pulsar is renamed to lalpulsar_heterodyne
  • lalapps_pulsar_parameter_estimation_nested is renamed to lalpulsar_parameter_estimation_nested
  • lalapps_run_pulsar_crosscorr_v2 is renamed to lalpulsar_run_crosscorr_v2
  • All other executables with lalapps_... prefixes are renamed to lalpulsar_... prefixes

The renames are also documented in the Doxygen HTML documentation, see here

For backward compatibility LALApps will continue to provide executable stubs with the former lalapps_... names, at least until the completion of O4 analyses. The lalapps_... stubs will print a warning message (on standard error) for scripts to be updated to use the new lalpulsar_... names, before calling the new lalpulsar_... executable, e.g.:

$ lalapps_ComputeFstatistic_v2 ...

WARNING: 'lalapps_ComputeFstatistic_v2' has been renamed to 'lalpulsar_ComputeFstatistic_v2'
WARNING: please update your scripts

... calls lalpulsar_ComputeFstatistic_v2 ...

Notes for Developers

Once the MR is merged, you may want to run make clean and git clean -di to clean up old build products.

Top-level ./configure options for building CW codes:

  • To build most CW codes, configure with --disable-all-lal --enable-lalpulsar (i.e. build just LAL and LALPulsar)
  • To add the ability to read/write Frame files, add --enable-lalframe
  • To build the backward compatibility lalapps_... stubs for codes formerly under lalapps/src/pulsar, add --enable-lalapps
  • To build the known pulsar code under lalpulsar/bin/HeterodyneSearch, configure with --enable-all-lal (the known pulsar code requires LALSimulation and LALInference, which ultimately depend on all other LALSuite libraries)

Notes for Package Users

Provided that both LALPulsar and LALApps packages are installed (which is expected on LVK clusters) pipelines should continue to work, as the old lalapps_... executable names will still work. You should however see warning messages as above to update scripts to use the new lalpulsar_... names.

Notes for Maintainers

This MR shouldn't introduce any package conflicts, since the old lalapps_... executable names provided by LALApps and the new lalpulsar_... executable names provided by LALPulsar are distinct.

LALApps still contains an --enable-lalpulsar option; this exists only to enable whether to build the old lalapps_... stubs in lalapps/src/pulsar/. This should continue to be enabled in package builds.

API Changes and Justification

Backwards Compatible Changes

  • This change does not modify any class/function/struct/type definitions in a public C header file or any Python class/function definitions
  • This change adds new classes/functions/structs/types to a public C header file or Python module

Backwards Incompatible Changes

  • This change modifies an existing class/function/struct/type definition in a public C header file or Python module
  • This change removes an existing class/function/struct/type from a public C header file or Python module

Review Status

Closes #540 (closed) #420 (closed) #557 (closed)

cc @david-keitel @adam-mercer @duncanmmacleod

Edited by Karl Wette

Merge request reports