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

Programmatically generate language specifications #71

Open
mdpiper opened this issue Jul 10, 2020 · 5 comments
Open

Programmatically generate language specifications #71

mdpiper opened this issue Jul 10, 2020 · 5 comments
Labels
requirement Required for release
Milestone

Comments

@mdpiper
Copy link
Member

mdpiper commented Jul 10, 2020

The language specification files for C, C++, Fortran, and Python should be programmatically generated from the same source (such as the BMI SIDL file). They are currently created manually.

@mdpiper mdpiper added this to the BMI 2.1 milestone Jul 10, 2020
@mdpiper mdpiper added the requirement Required for release label Jul 10, 2020
@mdpiper
Copy link
Member Author

mdpiper commented Jul 10, 2020

Also do this for any other language we add (Julia, R, MATLAB/Octave).

@mdpiper
Copy link
Member Author

mdpiper commented Jul 10, 2020

If we start from the SIDL file, we'd have to write a parser for it. Instead, as @mcflugen suggests, describe the BMI in a YAML file and generate the language specs (as well as the SIDL file!) from it; e.g.,

name: get_component_name
args:
  - name: name
    type: str
    intent: out

name: get_value
args:
  - name: var
    intent: in
    type: str
  - name: buffer
    type: array[float]
    intent: in

@mdpiper
Copy link
Member Author

mdpiper commented Jul 24, 2020

This would also obviate a problem like csdms/bmi-python#6.

@mdpiper
Copy link
Member Author

mdpiper commented Mar 18, 2021

TOML is now the flavor of the day. Sorry, YAML.

@mdpiper mdpiper modified the milestones: BMI 2.1, BMI 3.0 Jun 22, 2022
@mdpiper
Copy link
Member Author

mdpiper commented Jun 22, 2022

This issue is a task in the CSDMS 4 proposal. Moving to the BMI 3.0 milestone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
requirement Required for release
Projects
None yet
Development

No branches or pull requests

1 participant