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
9 tasks
ischoegl opened this issue Jan 7, 2025 · 0 comments
Open
9 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
    • zeroD
    • oneD
  • 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. 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