Padre::Config contains a series of feature settings, stored in the
feature_* configuration namespace. These settings are intended to allow
the optional removal of unwanted features (and their accompanying bloat),
and the optional inclusion of experimental features (and their accompanying
To allow both the removal and inclusion of option features to be done
efficiently, Padre checks the configuration at startup time and cooks these
preferences down into constants in the Padre::Feature namespace.
With this mechanism the code for each feature can be compiled away entirely when
it is not in use, making Padre faster and recovering the memory that these
features would otherwise consume.
The use of a dedicated module for this purpose ensures this config to constant
compilation is done in a single place, and provides a module dependency target
for modules that use this system.