- Factors out (and deprecates) `Command`
- Deprecates certain free functions
- Adds better error handling
- Adds more free functions
- Refactors file handling
- Improves documentation
Notes on file loading (and general file handlers):
The interpreter command `.L` will load files but appears to not fail if
the file isn't source code or a library.
Calling `gSystem->Load()` will load a given library but not source file,
and appears to not accept paths (which will be needed for pluggables).
Because `gInterpreter->LoadFile("path")` will load either a source file
or library by given "path", and is consistent with `dfi`'s approach to
path handling, this function appears to be the winner (for now).
- Refactor using common types that were once internal
- Removes ancient macro approaches to C++20 solutions
- Changes `Exception` message type to use std::string
* std::string_view isn't worthwhile in this context
- Factor out respective common from macro and apply to all scopes
* `dfi::common`
* `dfi::macro::common`
* `dfi::plugin::common`
- Add deprecation warnings in `dfi::macro::common`
* Common functionality (not macro specific) is now in `dfi::common`
- Add convenience wrappers to inner common impl, where appropriate
* Allows for backwards compatibility
- Add/update/clarify code docs and Doxygen definitions
- Related refactoring
NOTE: all changes are backward compatible (no need to bump major).