Skip to content
New issue

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

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

Already on GitHub? # 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.

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

No branches or pull requests

1 participant