[
https://issues.apache.org/jira/browse/DAFFODIL-2202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Interrante updated DAFFODIL-2202:
--------------------------------------
Description:
We have built a C code generator and runtime2 backend for Daffodil on a
dedicated development branch. Currently the C code generator implements a
small but still functional subset of DFDL 1.0 for binary data:
- binary boolean, integer, and real numbers
- arrays of simple and complex elements
- choice groups using dispatch/branch keys
- validation of "fixed" attributes
- padding of explicit length complex elements with fill bytes
We have met the following acceptance criteria in order to submit a pull request
to merge the runtime2-2202 development branch into the main branch:
- [X] Works on "real" messages with sufficient complexity to demonstrate
functionality
- [X] Contains test schemas and TDML test cases covering all supported features
- [X] Fully integrates these tests into Daffodil's build process
- [X] Has instructions how to setup required C tool-chain elements on Linux and
Windows
We are documenting reviewer requested changes in [Runtime2
ToDos|https://daffodil.apache.org/dev/design-notes/runtime2-todos/]. We plan
to address these changes while continuing to build out the C code generator to
implement more of the "[Runtime
2|https://cwiki.apache.org/confluence/display/DAFFODIL/WIP%3A+Daffodil+Runtime+2]
Design" table. Build requirements and instructions are in the top-level
README.md and BUILD.md files.
was:
We have built an initial DFDL-to-C backend and code generator for Apache
Daffodil on a dedicated development branch. Currently the C code generator can
support binary boolean, integer, and real numbers, arrays of simple and complex
elements, choice groups using dispatch/branch keys, validation of "fixed"
attributes, and padding of explicit length complex elements with fill bytes. We
plan to continue building out the C code generator until it supports a minimal
subset of the DFDL 1.0 specification as described in Daffodil's Confluence here:
* [Runtime2
Design|https://cwiki.apache.org/confluence/display/DAFFODIL/WIP:+Daffodil+Runtime+2]
We have some runtime2 todos (changes requested by reviewers) here:
* [Runtime2 ToDos|https://daffodil.apache.org/dev/design-notes/runtime2-todos/]
The DFDL-to-C backend and code generator must meet the following acceptance
criteria before we can submit a pull request to merge its development branch
into the main branch:
* [x] Works on "real" messages with sufficient complexity to demonstrate
functionality
* [x] Contains test schemas and TDML test cases covering all supported features
* [x] Fully integrates these tests into 'sbt test' part of Daffodil's build
process
* [ ] Has instructions how to setup required C tool-chain elements on Linux
and Windows
We plan to convert an ever-increasing subset of Daffodil's DFDL 1.0
specification TDML tests to run these tests on both the Scala and C backends
too.
> Code Gen Framework
> ------------------
>
> Key: DAFFODIL-2202
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2202
> Project: Daffodil
> Issue Type: Improvement
> Components: Back End
> Affects Versions: 2.4.0
> Reporter: Mike Beckerle
> Assignee: John Interrante
> Priority: Minor
> Fix For: 3.1.0
>
>
> We have built a C code generator and runtime2 backend for Daffodil on a
> dedicated development branch. Currently the C code generator implements a
> small but still functional subset of DFDL 1.0 for binary data:
> - binary boolean, integer, and real numbers
> - arrays of simple and complex elements
> - choice groups using dispatch/branch keys
> - validation of "fixed" attributes
> - padding of explicit length complex elements with fill bytes
> We have met the following acceptance criteria in order to submit a pull
> request to merge the runtime2-2202 development branch into the main branch:
> - [X] Works on "real" messages with sufficient complexity to demonstrate
> functionality
> - [X] Contains test schemas and TDML test cases covering all supported
> features
> - [X] Fully integrates these tests into Daffodil's build process
> - [X] Has instructions how to setup required C tool-chain elements on Linux
> and Windows
> We are documenting reviewer requested changes in [Runtime2
> ToDos|https://daffodil.apache.org/dev/design-notes/runtime2-todos/]. We plan
> to address these changes while continuing to build out the C code generator
> to implement more of the "[Runtime
> 2|https://cwiki.apache.org/confluence/display/DAFFODIL/WIP%3A+Daffodil+Runtime+2]
> Design" table. Build requirements and instructions are in the top-level
> README.md and BUILD.md files.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)