mbeckerle commented on code in PR #1479:
URL: https://github.com/apache/daffodil/pull/1479#discussion_r2070574619


##########
build.sbt:
##########
@@ -28,20 +28,13 @@ lazy val genTunablesDoc = taskKey[Seq[File]]("Generate 
tunables doc from dafext.
 
 lazy val daffodil = project
   .in(file("."))
-  .enablePlugins(JavaUnidocPlugin, ScalaUnidocPlugin)
+  .enablePlugins(ScalaUnidocPlugin)
   .aggregate(
     cli,
     codeGenC,
-    core,
-    io,
-    japi,
-    lib,

Review Comment:
   But in general the separation of core from runtime1 was not properly layered 
from the earliest days of this project. I'm culpable for much of that as I 
*think* I set up this Compiler -> ProcessorFactory -> DataProcessor stuff in 
2010 before I even joined Owl/Tresys. 
   
   I'm not opposed to merging core and runtime1 and runtime1-unparsers 
together, along with daffodil-lib even. 
   Scala 3's requirement that the top of a class taxonomy must be a Java 
interface if Java is to be able to call it,... requires a huge amount of 
refactoring that we didn't anticipate. 
   
   We could avoid this by implement the java api by way of delegation (aka 
proxy objects) but as with our prior japi/sapi, that's painful to maintain. I 
very much prefer to just define java interfaces at the top, and our classes 
implement the user API. 
   
   Splitting this back out into independent separable modules is a bunch of 
additional work, which is necessary eventually to support goals like 
non-XSD-based syntax for DFDL, and to properly support DFDL's DPath expressions 
in the C-code-generator, and allow for other backends than runtime1, and not 
require runtime1 when creating a different runtime like the C-code-generator.  
We have JIRA tix for that sort of work. But that kind of work is a substantial 
rewrite of large aspects of daffodil. 
   
   But the point I guess is until that refactoring work is done, having core, 
runtime1, runtime1-unparsers and lib as separate modules doesn't really add any 
value for users. They all ultimately depend on core which depends on the others 
so it's all pulled in anyway currently.
   
   And the split-out modules makes the scala 3 new Java API either impossible 
or quite difficult.
   
   So I'm not opposed to merging them for now. 
   
   I suggest this big merged module NOT be named "runtime1". But rather "core" 
is the name we should carry forward. 
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@daffodil.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to