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

Issue #91 progress. #194

Merged
merged 36 commits into from
Jun 7, 2021
Merged

Issue #91 progress. #194

merged 36 commits into from
Jun 7, 2021

Conversation

thirtytwobits
Copy link
Member

This is a checkpoint merge to put a firebreak in a growing change-set. Most all of these changes are behind the --experimental-language flag so there's little risk. There are a couple of fixes in the core python library that should not break anybody we know of.

Highlights:

  1. Mostly complete generation of PoD C++
  2. Significant progress on the variable-length-array problem. Included is a support library implementation that I'll hook up when creating the serialization routines.
  3. Testing using Python 3.9 is added.
  4. A new comment section in the C headers will document the python version and environment used to generated the types.

Copy link
Member

@pavel-kirienko pavel-kirienko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We started this conversation on Slack but it was never completed: can we ship a simple static allocator for use with variable-length arrays and make it the default? The bounded-size nature of DSDL makes it the most natural choice for virtually all cases (with the notable exclusion of #189).

docs/templates.rst Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/__init__.py Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/templates/base.j2 Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/templates/base.j2 Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/templates/_composite_type.j2 Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/support/VariableLengthArray.hpp Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/support/VariableLengthArray.hpp Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/support/VariableLengthArray.hpp Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/support/VariableLengthArray.hpp Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/support/VariableLengthArray.hpp Outdated Show resolved Hide resolved
@thirtytwobits
Copy link
Member Author

we ship a simple static allocator for use with variable-length arrays and make it the default?

Yeah. I think that makes sense.

@pavel-kirienko
Copy link
Member

Also, one thing I forgot to mention: can we please support at least a basic iterator API (pointer-based) for the variable array type? Otherwise, the class would be much less useful when interfacing with 3rd-party code.

@thirtytwobits
Copy link
Member Author

thirtytwobits commented May 11, 2021

Also, one thing I forgot to mention: can we please support at least a basic iterator API (pointer-based) for the variable array type? Otherwise, the class would be much less useful when interfacing with 3rd-party code.

I'd like to release this initially with the most minimal support needed for ser/des. Let's then analyze usage and expand as real use cases present themselves. I really don't want to provide a generalized container library from Nunavut. That doesn't seem like its competency.

@thirtytwobits
Copy link
Member Author

Also note that the CI will remain broken until we agree on the content of the PR as I'm restructuring the CI interface to better support parallelization going forward.

@pavel-kirienko
Copy link
Member

@thirtytwobits are you planning to further advance this or do you want it merged as-is?

@thirtytwobits
Copy link
Member Author

@thirtytwobits are you planning to further advance this or do you want it merged as-is?

I have more work to do to respond to all your comments.

@thirtytwobits
Copy link
Member Author

@pavel-kirienko , let me know if this is okay to merge as-is (i.e. the c++ work isn't done but we need to get all this change in) and I'll fix up the CI

src/nunavut/lang/cpp/__init__.py Outdated Show resolved Hide resolved
src/nunavut/lang/cpp/support/serialization.j2 Outdated Show resolved Hide resolved
@thirtytwobits thirtytwobits merged commit 3a14a34 into OpenCyphal:main Jun 7, 2021
@thirtytwobits thirtytwobits deleted the issue/91 branch June 13, 2021 04:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants