Dev:ETL replacement

From Synfig Studio :: Documentation
Jump to: navigation, search

At least the majority of the functionality implemented in the ETL is already implemented in the boost libraries, which have a very high quality, are broadly used, peer-reviewed and well tested. This effort is to replace the ETL with boost libraries, achieving simplified code with a more robust base.

The replacement will be done in the following order:

  1. command-line interface (ONGOING)
  2. synfig modules
  3. synfig library
  4. synfig studio library
  5. synfig studio

Along the way I can most probably simplify/improve some stuff and make synfig's code cleaner.

Follow the progress in this branch

Bug tracker issue

Here is a list of functions of the ETL and their replacement:

ETL Boost equivalent
etl::filename_extension boost::filesystem::path::extension()
etl::filename_sans_extension boost::filesystem::path: combination of parent_path(), stem() and extension()
etl::basename boost::filesystem::path: combination of stem() and extension()
etl::dirname boost::filesystem::path::parent_path()
etl::clock boost::chrono::system_clock or high_resolution_clock
etl::strprintf boost::format()