This fix has been merged to master.

We'll have to watch carefully about runtime performance.

I tested against all schemas that can be easily tested and they all work. 
Compilation times are not "blink of an eye", but they're under 10 seconds even 
for larger schemas. That still means the tests for a big schema can take a bit, 
as often the schema gets compiled several times in variations for such tests.

I am still planning a fix that cleans up the various factories which insert 
backpointers, and removes all the unique-backpointer cruft which in principle 
isn't used anymore. That 's about cleanup and maintainability though, and I 
don't think waiting for it is critical.

The namespace minimization issue (which is a bug that we're not hitting in any 
tests nor schemas currently) and the isHidden issue (ditto on why we're not 
hitting it) still exist and need to be addressed.

...mikeb

________________________________
From: Beckerle, Mike <mbecke...@tresys.com>
Sent: Sunday, February 16, 2020 12:09 AM
To: dev@daffodil.apache.org <dev@daffodil.apache.org>
Cc: Sood, Harinder <hs...@tresys.com>
Subject: Re: progress on schema compiler space/speed issue

Compiler space/speed issue is *solved* to my satisfaction.

All tests pass. I also tested all DFDLSchemas from github, and all our FOUO 
schemas and they all work also.

The PR is ready for "real" review now. I removed the "WIP" status on it.

I have not yet updated the design notes to match the implementation.

The pending fixes to isHidden, and to namespace binding minimization - 
basically those fixes are needed, but we have no tests nor schemas that run 
into the problems.

E.g, for isHidden: we have no tests nor schemas where a single group is both 
hidden and non-hidden.

Similarly we have no tests nor schemas where namespace binding minimization 
must be different on two different inclusions of a common element.

We could *not fix* those issues and create JIRA tickets for lifting them. But 
we need tests to at least exercise the problems, so we can characterize what 
happens if we do these unimplemented things.

________________________________
From: Beckerle, Mike
Sent: Thursday, February 13, 2020 10:29 PM
To: dev@daffodil.apache.org <dev@daffodil.apache.org>
Subject: progress on schema compiler space/speed issue


See https://github.com/apache/incubator-daffodil/pull/324

I still have debugging to do, and I'm not happy with the non-type-safety, and 
maintainability headaches this creates, but I was able to get rid of the 
combinatorial explosion with a modest number of lines of code changed.

But most schemas work now, and schema compilation is faster, and is seemingly 
linear in schema size with these changes.


Reply via email to