Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This was also required because of Cereal.

Stdstd::auto_ptr has been replaced with std::unique_ptr, boost::regex has been replaced with std::regex.

...

Is used to provide the client/server serialisationsserializations, and uses JSON text. There was an option to use BINARY which is a lot faster. But then we lose the backward compatibility, and more importantly, the client/server communication may break due to byte order incompatibility. i.e when client/server are on different hardware.

It is highly advisable advised to subscribe to the CEREAL mailing lists. This allows notifications of the upcoming release of CEREAL, any performance improvements. It should be noted that we have already migrated to the new version, at least once.

Cereal is embedded into ecflow source code to avoid adding another dependency.

Currently, the latest intel compiler breaks with CEREAL. for more details see:   ECFLOW-1600

The web page is at: at https://uscilab.github.io/cereal/

...

ecflow uses many parts of the boost libs.

  • program options , provides provide the command-line options for both client and server, in addition, also provides the command line help.
  • asio : this provides the client/server communication protocol. based on TCP/IP and uses JSON(via CEREAL).
  • python. boost python provides the ecflow python API. The API is documented with SPHINX.
  • file system: use for all file and directory access.  
  • date and time: this is used in all the time base attributes and calendars
  • chrono: used for test timing.
  • test:  used to provide unit tests, and client/server and python tests. There are several hundred tests for client/server/python, however, there areis no test for the GUI.
  • spirit classic: this is used to provide the trigger expression parsing. This library is now legacy , and needs to be replaced with later boost libs.

...

Many of boost lib can be replaced with std equivalents over time. This has already been done with shared_ptrs. With C++17, we can additionally, replace:

Other possible use boost libs that were planned but not used, were boost exception. This would automatically add function, line number, etc. At the moment this is done manually. 

...