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/incubator-daffodil-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 5543223  Publishing from b15090f64c7c680da9ad0dcf24f179f47d6357b1
5543223 is described below

commit 5543223d7324fe70fb7f5dd89e198d1e09c66d1d
Author: Mike Beckerle <[email protected]>
AuthorDate: Fri Apr 3 23:19:01 2020 +0000

    Publishing from b15090f64c7c680da9ad0dcf24f179f47d6357b1
---
 .../term-sharing-in-schema-compiler/index.html     | 122 ---------------------
 1 file changed, 122 deletions(-)

diff --git 
a/content/dev/design-notes/term-sharing-in-schema-compiler/index.html 
b/content/dev/design-notes/term-sharing-in-schema-compiler/index.html
index 825bab5..c54356f 100644
--- a/content/dev/design-notes/term-sharing-in-schema-compiler/index.html
+++ b/content/dev/design-notes/term-sharing-in-schema-compiler/index.html
@@ -747,128 +747,6 @@ and that processor is referenced from the processor 
generated for the unshared t
 </div>
 </div>
 </div>
-<div class="sect1">
-<h2 id="transition-plan">Transition Plan</h2>
-<div class="sectionbody">
-<div class="admonitionblock important">
-<table>
-<tr>
-<td class="icon">
-<img src="/images/icons/important.png" alt="Important">
-</td>
-<td class="content">
-Once implemented this section can be deleted as it is describing transition 
from an older Daffodil version to one that implements the shared objects.
-</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>We can examine several of the context-dependent calculations below.</p>
-</div>
-<div class="sect3">
-<h4 
id="isalignmentfillneeded-isinitiatormtaneeded-isterminatormtaneeded-isprefixinfixseparatormtaneeded-ispostfixseparatormtaneeded">isAlignmentFillNeeded,
 isInitiatorMTANeeded, isTerminatorMTANeeded, isPrefixInfixSeparatorMTANeeded, 
isPostfixSeparatorMTANeeded</h4>
-<div class="paragraph">
-<p>These are the output of the analysis of alignments, and they turn on/off 
the presence of these regions.
-These are of particular importance to a streaming unparser since they can 
require suspension of unparsing until alignment can be determined at 
runtime.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="ispotentiallytrailing">isPotentiallyTrailing</h4>
-<div class="paragraph">
-<p>This is context dependent because a given term definition can be reused in 
multiple contexts, some of which where it is potentially trailing, and others 
of which where it is not.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="needsbitorderchange">needsBitOrderChange</h4>
-<div class="paragraph">
-<p>This is used to optimize out suspensions in the unparser. It is context 
dependent because whether the bit order is changing when the processor arrives 
on a term depends on what preceded it in the processing.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="isscanningfordelimiter">isScanningForDelimiter</h4>
-<div class="paragraph">
-<p>This is used to determine whether a delimiter stack combinator is used as 
part of the grammar. It is context dependent because a separator or terminator 
can be defined on an enclosing model group.</p>
-</div>
-<div class="paragraph">
-<p>TBD: It&#8217;s possible we don&#8217;t need to wrap this combinator around 
elements. Manipulating the delimiter stack should only be necessary when 
delimiters go into and out of scope. So that would mean once per model group, 
not per term within the model group.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="isscanningforterminator">isScanningForTerminator</h4>
-<div class="paragraph">
-<p>This determines whether the schema compiler will allow the entity "%ES;" as 
a runtime value for the expression value of a dfdl:terminator property.
-Specifically if we are scanning for a terminator then the "%ES;" entity is 
disallowed.</p>
-</div>
-<div class="paragraph">
-<p>This is context dependent because the terminator may be defined on an 
enclosing model group, not on an element that is within that model group.
-The element may have a position in the model group such that it may be last, 
and in that case if it has a length kind that does not use the terminator 
(e.g., dfdl:lengthKind='pattern') then that terminator is not being scanned 
for, and so it is allowable for it to be empty string at runtime.</p>
-</div>
-<div class="paragraph">
-<p>If this computation is done on the unshared term, it must inquire about 
many characteristics of the enclosing model group.
-It may be that this computation is best done on the model-group object.</p>
-</div>
-</div>
-<div class="sect3">
-<h4 id="initiatedcontent-check">initiatedContent Check</h4>
-<div class="paragraph">
-<p>When a model group has the dfdl:initiatedContent="yes" property, all 
represented term children must have a defined initiator.</p>
-</div>
-<div class="paragraph">
-<p>This is context dependent because a global element declaration or a global 
group definition may define an initiator, but the model group with initiated 
content may refer to these via an element reference or group reference.
-That is, the relationship is not one of lexical enclosure.
-The check must be done as part of the unshared term, or on the enclosing model 
group itself.</p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="refactoring-of-primary-dsom-classes">Refactoring of Primary DSOM 
Classes</h3>
-<div class="paragraph">
-<p>Implementing this sharing requires splitting the DSOM Term clases each into 
a unique and a shared part.</p>
-</div>
-<div class="paragraph">
-<p>This will be done by renaming each Term to SharedTerm, and introducing 
UniqueTerm.</p>
-</div>
-<div class="paragraph">
-<p>For example ElementBase will be renamed to SharedElementBase, and new 
abstract class UniqueElementBase will be created.</p>
-</div>
-<div class="paragraph">
-<p>This will occur uniformly across the DSOM Term subclasses/traits.</p>
-</div>
-<div class="paragraph">
-<p>Some of the mixins to these classes will go on only one or the other of the 
shared or unique parts.</p>
-</div>
-<div class="paragraph">
-<p>Many of the mixins will have to split into a mixin for the shared part and 
another mixin for the unique part.
-One example of this is the AlignedMixin. This currently deals with alignment 
regions that are found in unique parts and shared parts, and those
-methods must go on different objects.</p>
-</div>
-<div class="paragraph">
-<p>The unique term classes will utilize a central memoizing factory to 
allocate or find shared term instances based on having equivalent PropEnvs.</p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="testing-notes">Testing Notes</h3>
-<div class="sect3">
-<h4 id="compiler-instrumentation">Compiler Instrumentation</h4>
-<div class="paragraph">
-<p>Some standard compiler instrumentation that is dumped out based on options 
to daffodil compiler, to include:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>counters of number of distinct shared terms for each global def/decl.</p>
-</li>
-<li>
-<p>counters of number of inbound references to each shared term.</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>The point is to have metrics that can be compared and which will make it 
clear if under maintenance the sharing is somehow lost and we&#8217;re getting 
bad compile-time behavior again.</p>
-</div>
-</div>
-</div>
-</div>
-</div>
   </div>
 </div>
 

Reply via email to