Aaaaahh ...

Think I'll renew my Office 365 subscripton and pass on that one ;-)

Duck and run ...

Chris

-----Ursprüngliche Nachricht-----
Von: Dave Fisher <w...@apache.org> 
Gesendet: Donnerstag, 11. März 2021 21:55
An: dev@daffodil.apache.org
Betreff: [OFFTOPIC] Re: Acceptance criteria for merging DFDL-to-C backend 
(runtime2-2202)?

Hi Chris,

Try building OpenOffice … macOS, Windows, Linux,  and downstream FreeBSD, OS/2 
…. Older c++, two different build tools, patched dependencies.

;-)

Regards,
Dave

> On Mar 11, 2021, at 12:51 PM, Christofer Dutz <christofer.d...@c-ware.de> 
> wrote:
> 
> Hi John,
> 
> the script is here:
> https://github.com/apache/plc4x/blob/develop/src/main/script/prerequisiteCheck.groovy
> 
> And it's called from here:
> https://github.com/apache/plc4x/blob/develop/pom.xml#L644
> 
> Hope it helps ... I just know as soon as you leave the Java eco-system 
> software-development really gets tricky regarding checking all the stuff that 
> could be or be configured wrong, so I tend to automate as much as possible.
> It increases the user acceptance and it reduces the questions from annoyed 
> users ;.)
> 
> Chris
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: Interrante, John A (GE Research, US) <john.interra...@ge.com> 
> Gesendet: Donnerstag, 11. März 2021 20:51
> An: dev@daffodil.apache.org
> Betreff: RE: Acceptance criteria for merging DFDL-to-C backend 
> (runtime2-2202)?
> 
> Chris,
> 
> Yes, I think it would be nice if sbt called a Groovy or Scala script to check 
> that the C setup is correct.  Will you please tell me where to find PLC4X's 
> script and where it gets called from?
> 
> Thanks,
> John
> 
> -----Original Message-----
> From: Christofer Dutz <christofer.d...@c-ware.de> 
> Sent: Thursday, March 11, 2021 11:54 AM
> To: dev@daffodil.apache.org
> Subject: EXT: AW: Acceptance criteria for merging DFDL-to-C backend 
> (runtime2-2202)?
> 
> Hi all,
> 
> I would strongly suggest having some tooling to check the setup is correct.
> In PLC4X we have a groovy script that is executed by the build. Depending on 
> which parts you are building, it checks if required tools are installed in 
> sufficient versions. Not sure if sbt allows similar checks, but perhaps our 
> setup in PLC4X could help?
> 
> Otherwise with all these C, C++ tools it's really hard for newbies to find 
> what's going wrong.
> 
> Chris
> 
> -----Ursprüngliche Nachricht-----
> Von: Beckerle, Mike <mbecke...@owlcyberdefense.com> 
> Gesendet: Donnerstag, 11. März 2021 17:38
> An: dev@daffodil.apache.org
> Betreff: Re: Acceptance criteria for merging DFDL-to-C backend 
> (runtime2-2202)?
> 
> Setup of the C-toolchain as well as scala shoulnd't be a problem so long as 
> these are all no-cost tools.
> ________________________________
> From: Interrante, John A (GE Research, US) <john.interra...@ge.com>
> Sent: Thursday, March 11, 2021 11:34 AM
> To: dev@daffodil.apache.org <dev@daffodil.apache.org>
> Subject: RE: Acceptance criteria for merging DFDL-to-C backend 
> (runtime2-2202)?
> 
> Is that all?  :-).  I would add some criteria testing runtime2's conformance 
> to the DFDL 1.0 specification as well.  Here goes...
> 
> 1) Sufficient functionality to describe at least one example, of sufficient 
> message complexity to indicate that other similar "real" examples should be 
> possible
> 
>        Yup.  We have 7 schemas in 
> daffodil-test/src/test/resources/org/apache/daffodil/runtime2 that have 
> "real" examples of messages with sufficient complexity to indicate that other 
> real messages should be possible.
> 
> 2) contains built-in tests for one or several such examples, showing each 
> supported aspect working.
> 
>        Yup.  We have TDML tests and binary data/XML infoset files for each of 
> these 7 schemas.
> 
> 3) the tests are fully integrated - they run every time 'sbt test' is run on 
> daffodil.
> 
>        Yup.  We have Scala test classes for each of these 7 schemas' TDML 
> tests in daffodil-test/src/test/scala/org/apache/daffodil/runtime2.
> 
> 4) setup instructions for developers are there so that people know how to 
> insure the required C tool-chain elements are there. These need to work on 
> Linux and Windows.
> 
>        Needs work.  The top-level README lists daffodil-runtime2's build 
> requirements under Build Requirements and has a single sentence under Getting 
> Started telling developers that they will need a C toolchain in order to 
> build daffodil-runtime2.  However, I didn't make it clear in the README that 
> developers must setup a C toolchain as well as a Java/Scala toolchain and I 
> need to add a "C Setup and Notes" page to the Confluence Wiki with 
> step-by-step instructions showing developers how to setup a C toolchain on 
> Linux and Windows.  I hope developers won't mind if we make it mandatory to 
> setup both Java/Scala and C toolchains before building Daffodil.  I don't 
> like the idea of some developers building Daffodil without checking that the 
> C files compile successfully and the runtime2 tests pass successfully.  I 
> think it's sufficient to guarantee that end-users of Daffodil never have to 
> install a C toolchain to use Daffodil.  When end-users install Daffodil, they 
> will get a pure Scala Daffodil just like before.  The only user-visible 
> change is that this Daffodil will know how to generate, compile, and run C 
> code on the end-user's system if the user asks Daffodil to do that.
> 
> I also would add another criteria:
> 
> 5) A subset of Daffodil's DFDL 1.0 specification conformance TDML tests 
> modified to run on runtime2 as well as runtime1 during 'sbt test'.
> 
> We have lots and lots of TDML tests checking that Daffodil conforms to the 
> DFDL 1.0 specification.  We should be able to find a subset of these tests 
> that should pass on runtime2 as well and verify that they do keep passing 
> when run on both runtime1 and runtime2.  This step would go a long way to 
> ensure that people working on other aspects of Daffodil do not break the C 
> backend inadvertently without knowing it.  Note that this makes it even more 
> mandatory that Daffodil developers setup both Java/Scala and C toolchains.  
> What do you all think?
> 
> 
> -----Original Message-----
> From: Beckerle, Mike <mbecke...@owlcyberdefense.com>
> Sent: Thursday, March 11, 2021 9:27 AM
> To: dev@daffodil.apache.org
> Subject: EXT: Re: Acceptance criteria for merging DFDL-to-C backend 
> (runtime2-2202)?
> 
> Acceptance criteria to me:
> 
> 1) Sufficient functionality to describe at least one example, of sufficient 
> message complexity to indicate that other similar "real" examples should be 
> possible
> 
> 2) contains built-in tests for one or several such examples, showing each 
> supported aspect working.
> 
> 3) the tests are fully integrated - they run every time 'sbt test' is run on 
> daffodil.
> 
> 4) setup instructions for developers are there so that people know how to 
> insure the required C tool-chain elements are there. These need to work on 
> Linux and Windows.
> 
> I believe these things insure that people working on other aspects of 
> Daffodil will not be inadvertently breaking the C backend indetectably. 
> That's one major concern I would have.
> ________________________________
> From: Interrante, John A (GE Research, US) <john.interra...@ge.com>
> Sent: Wednesday, March 10, 2021 4:24 PM
> To: dev@daffodil.apache.org <dev@daffodil.apache.org>
> Subject: Acceptance criteria for merging DFDL-to-C backend (runtime2-2202)?
> 
> Thanks to Mike's suggestion, I have moved the Runtime2 ToDos (changes 
> requested by reviewers) from the 
> DAFFODIL-2202<https://issues.apache.org/jira/browse/DAFFODIL-2202> issue to 
> an AsciiDoc document in the dev/design-notes subtree of the Daffodil website 
> which you can read here:
> 
> https://daffodil.apache.org/dev/design-notes/runtime2-todos/
> 
> I would like to discuss which acceptance criteria the runtime2-2202 
> development branch must meet before I can submit a pull request to merge the 
> DFDL-to-C backend and code generator into the main branch.  I plan to address 
> the Runtime2 ToDos and I especially want to run some of Daffodil's TDML tests 
> on the new runtime2 backend as well as the runtime1 backend by adding 
> defaultImplementations="daffodil daffodil-runtime2" to certain TDML tests' 
> attributes.  (Although I suggest we use the shorter name "daf-c" or 
> "runtime2" because "daffodil daffodil-runtime2" is a lot of characters to put 
> into the defaultImplementations attribute.)
> 
> Daffodil's Confluence describes Runtime2's design here:
> 
> https://cwiki.apache.org/confluence/display/DAFFODIL/WIP:+Daffodil+Runtime+2
> 
> In particular, it suggests we divide the implementation of runtime2 into two 
> distinct phases:
> 
>  *   Phase 1 (aka Runtime2P1): No expressions. All lengths are fixed. All 
> arrays have fixed length.
>  *   Phase 2 (aka Runtime2P2): Adding the DFDL expression language, 
> lengthKind 'explicit', occursCountKind 'expression'.
> I think phase 1 is almost done but we need to run a subset of Daffodil's TDML 
> tests on runtime2 before we can really say for sure.
> Here is an initial set of discussion points - more questions and criteria are 
> welcome:
> 
> 
>  1.  Which Daffodil TDML tests do we need to run on runtime2 to assert that 
> phase 1 is complete?
>  2.  Can we merge runtime2 when these tests pass and then build out phase 2 
> in the main branch, hopefully with help from other developers once they see 
> how useful phase 1 is?
>  3.  Which of the Runtime2 ToDos need to be done before the merge as well?
> 
> Once we agree on a minimal set of acceptance criteria for the merge, I'll 
> copy the criteria to the JIRA issue.

Reply via email to