eclipse-ocl / org.eclipse.ocl

Eclipse Public License 2.0
0 stars 0 forks source link

[cg] Activate child-stealing detector for CG model #1361

Open eclipse-ocl-bot opened 1 month ago

eclipse-ocl-bot commented 1 month ago

| --- | --- | | Bugzilla Link | 439603 | | Status | NEW | | Importance | P3 normal | | Reported | Jul 15, 2014 06:57 EDT | | Modified | Nov 09, 2022 08:18 EDT | | See also | 534421, Gerrit change 196744 | | Reporter | Ed Willink |

Description

Interesting rearrangments can occur in the CG tree.

It looks as if the sharing of inline prototypes may be suspect in the event of a CSE elimination.

A child-stealing detector will debug this.

eclipse-ocl-bot commented 1 month ago

By Ed Willink on Jul 15, 2014 12:33

CommonAnalysis.rewrite fails the child-stealing detector.

Some are ok since the replacement is a child within an over-elaborate expression.

Others are more suspect, references to local types variables. Maybe wrapping in CGTypeExp/CGConstantExp will do. A quick hack fails.

(Relevant tests are org.eclipse.ocl.examples.test.xtext.UsageTests)

eclipse-ocl-bot commented 1 month ago

By Ed Willink on Jul 29, 2014 13:58

Changing to clone inlined code in the AS before conversion to CG seems to allow the detector to be used without trouble (apart from the two ecluded cases).

eclipse-ocl-bot commented 1 month ago

By Ed Willink on Jan 29, 2022 03:57

(In reply to Ed Willink from comment #1)

(Relevant tests are org.eclipse.ocl.examples.test.xtext.UsageTests)

Relevant UsageTests no longer apparent.

(In reply to Ed Willink from comment #2)

Changing to clone inlined code in the AS before conversion to CG seems to allow the detector to be used without trouble (apart from the two ecluded cases).

The three way if tree was changed to have the same code on each brnach and has been in use without trouble for 7 years.


Introduction of foreign features for Bug 534421 hits a problem whereby the executorVariable is installed at the Operation root and seems to CommonAnalysis.rewrite to process an orphan CSE.

This may cause the orognal bug to be solved.

eclipse-ocl-bot commented 1 month ago

By Ed Willink on Jun 25, 2022 07:30

The PivotObjectImpl/CGEl;ementImpl child stealing detectors seem to have been weakened to tolerate re-use for fee within an eResource-free tree. This may be safer but it has all the same hazards of ill-considered rewrites accounting for strange undiagnosed developments.

Strengthening back to precisely eInternalContainer()==null forces use of resetContainer(), for optimization rewrites in the AnalysisVisitor and inliner as well as finding some distinctly smelly code.

eclipse-ocl-bot commented 1 month ago

Nov 09, 2022 08:18

New Gerrit change created: https://git.eclipse.org/r/c/ocl/org.eclipse.ocl/+/196744