Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap for Code Generation in CLib API #220

Open
1 of 10 tasks
ischoegl opened this issue Jan 7, 2025 · 0 comments
Open
1 of 10 tasks

Roadmap for Code Generation in CLib API #220

ischoegl opened this issue Jan 7, 2025 · 0 comments
Labels
work-in-progress An enhancement that someone is currently working on

Comments

@ischoegl
Copy link
Member

ischoegl commented Jan 7, 2025

This issue aims to track the progress of the C interface portion of #39 with the objective of a complete transition as early as Cantera 3.2. The traditional CLib interface has been declared experimental in 3.1, while a first replacement prototype was discussed in #39 (comment), although it only created header files.

The roadmap involves the following:

  • Create working proof-of-concept for a clib-experimental API ... see Experimental clib from doxygen cantera#1835
  • Add remaining access functions and unit tests to reach parity with the traditional CLib API:
    • ThermoPhase, Kinetics and Transport … see Autogenerated clib core objects cantera#1842
    • zeroD, oneD
    • Implement access to C++ class member variables (needed for port of ctrpath)
    • Move sourcegen README.md file contents to main documentation (to a page in doc/sphinx/develop so we can have this as part of the HTML documentation and information on how Cantera works in one place).
  • Switch dependent APIs to clib-experimental (most functions will have drop-in replacements but include '3' in their name to avoid duplicate symbols):
    • .NET (no change of current approach for code generation)
    • experimental MATLAB (no code generation)
  • Rename clib_experimental to clib3 and deprecate (or remove?) the traditional CLib interface. Potentially move clib folder to interfaces. Docstrings should retain the experimental admonition until the API is fully stable (likely in Cantera 3.3).
  • Devise SCons/doxygen mechanism so auto-generated CLib docstrings become available in the documentation
  • Add new components not available in the traditional CLib, e.g. SolutionArray
@ischoegl ischoegl added the work-in-progress An enhancement that someone is currently working on label Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
work-in-progress An enhancement that someone is currently working on
Projects
None yet
Development

No branches or pull requests

1 participant