This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/daffodil-site.git
commit 39bb2ceda7a0afaf0853c7f5e5b5469159a98f8e Author: John Interrante <[email protected]> AuthorDate: Wed Apr 21 18:45:10 2021 +0000 Publishing from 87695529d8a231f40faf7f40d50d6263e0a37200 --- content/dev/design-notes/runtime2-todos/index.html | 97 ++++++++++++++++++---- 1 file changed, 80 insertions(+), 17 deletions(-) diff --git a/content/dev/design-notes/runtime2-todos/index.html b/content/dev/design-notes/runtime2-todos/index.html index 362c979..f5404db 100644 --- a/content/dev/design-notes/runtime2-todos/index.html +++ b/content/dev/design-notes/runtime2-todos/index.html @@ -113,6 +113,41 @@ in order to avoid duplication.</p> </div> </div> <div class="sect2"> +<h3 id="remove-dependence-on-argp-and-gcc">Remove dependence on argp and gcc</h3> +<div class="paragraph"> +<p>Update BUILD.md and the github actions to use clang instead of gcc. +Will have to find the correct steps on Fedora / Linux / Windows +and check they work (e.g., install clang-10 package on Ubuntu +and set CC=clang-10 and AR=llvm-ar-10 environment variables).</p> +</div> +<div class="paragraph"> +<p>Likewise, replace argp calls with getopt calls +in daffodil_main.c and daffodil_argp.c +even though it means giving up long options +and other nice features that argp has.</p> +</div> +</div> +<div class="sect2"> +<h3 id="report-hanging-problem-running-sbt-really-dev-dirs-from-msys2-on-windows">Report hanging problem running sbt (really dev.dirs) from MSYS2 on Windows</h3> +<div class="paragraph"> +<p>We need to open a issue with a reproducible test case +in the dev.dirs/directories-jvm project on GitHub. +Note that dev.dirs exhibits the problem +but they may or may not be responsible for it. +Their code which tries to run a Windows PowerShell script +using a Java subprocess call hangs +when run from MSYS2 on Windows +although it works fine when run from CMD on Windows. +Then we need to wait until +the hanging problem is fixed in the directories library, +coursier picks up the new directories version, +sbt picks up the new coursier version, +and daffodil picks up the new sbt version, +before we can remove the "echo >> $GITHUB_ENV" lines +from .github/workflows/main.yml.</p> +</div> +</div> +<div class="sect2"> <h3 id="reporting-errors-using-structs-not-strings">Reporting errors using structs, not strings</h3> <div class="paragraph"> <p>We have replaced error message strings @@ -184,8 +219,7 @@ We can implement fseek but we should have a good use case.</p> <div class="sect2"> <h3 id="javadoc-like-tool-for-c-code">Javadoc-like tool for C code</h3> <div class="paragraph"> -<p>We should consider adopting -one of the javadoc-like tools for C code +<p>We should consider adopting one of the javadoc-like tools for C code and structuring our comments that way.</p> </div> </div> @@ -193,30 +227,59 @@ and structuring our comments that way.</p> <h3 id="dsom-fixed-getter">DSOM "fixed" getter</h3> <div class="paragraph"> <p>Note: If we change runtime1 to validate "fixed" values -like runtime2 does, then we can resolve {% jira 117 %}.</p> +like runtime2 does, then we can resolve +<a href="https://issues.apache.org/jira/browse/DAFFODIL-117">DAFFODIL-117</a>.</p> </div> </div> <div class="sect2"> -<h3 id="update-to-tdml-runner">Update to TDML Runner</h3> +<h3 id="improve-tdml-runner">Improve TDML Runner</h3> <div class="paragraph"> -<p>We want to update the TDML Runner +<p>We want to improve the TDML Runner to make it easier to run TDML tests with both runtime1 and runtime2. We want to eliminate the need to configure a <code>daf:tdmlImplementation</code> tunable -in the TDML test using 12 lines of code. -The TDML Runner should configure itself -to run both/either runtime1 and/or runtime2 -just from seeing a root attribute -saying <code>defaultImplementations="daffodil runtime2"</code> -or a parser/unparseTestCase attribute saying <code>implementations="runtime2"</code>. -Maybe we also want to add an implementation attribute +in the TDML test using 12 lines of code.</p> +</div> +<div class="paragraph"> +<p>I had an initial idea which was that +the TDML Runner could run both runtime1 and runtime2 +automatically (in parallel or serially) +if it sees a TDML root attribute +saying <code>defaultImplementations="daffodil daffodil-runtime2"</code> +or a parser/unparseTestCase attribute +saying <code>implementations="daffodil daffodil-runtime2"</code>. +To make running the same test on runtime1/runtime2 easier +we also could add an implementation attribute to tdml:errors/warnings elements -saying which implementation they are for too. -If we do that, -we should tell the TDML Runner -runtime2 tests are not cross tests -so it will check their errors/warnings.</p> +saying which implementation they are for +and tell the TDML Runner to check errors/warnings +for runtime2 as well as runtime1.</p> +</div> +<div class="paragraph"> +<p>Then I had another idea which might be easier to implement. +If we could find a way to set Daffodil’s tdmlImplementation tunable +using a command line option or environment variable +or some other way to change TDML Runner’s behavior +when running both "sbt test" and "daffodil test" +then we could simply run "sbt test" or "daffodil test" twice +(first using runtime1 and then using runtime2) +in order to verify all the cross tests work on both. +I think this way would be easier than making TDML Runner +automatically run all the implementations it can find +in parallel or serially when running cross tests.</p> +</div> +<div class="paragraph"> +<p>If the second idea works as I hope it does, +then we can start the process of adding "daffodil-runtime2" +to some of the cross tests we have for daffodil and ibm. +We also chould change ibm’s ProcessFactory class +to have a different name than daffodil’s ProcessFactory class +and update TDML Runner’s match expression to use the new class name. +Then some developers could add the ibmDFDLCrossTester plugin +to their daffodil checkout permanently +instead of having to do & undo that change +each time they want to run daffodil/ibm cross tests.</p> </div> </div> <div class="sect2">
