rpgoldman / europa-pso

Automatically exported from code.google.com/p/europa-pso
0 stars 0 forks source link

Review semantics for Timeline::constrain and Object::constrain #24

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
See [http://babelfish.arc.nasa.gov/trac/europa/changeset/5007]. 

If we already have A -> B, and Timeline:constrain is asked to put C between
A and B, it will call Object:constrain twice (there are two additional
constraints to add). If auto-propagation is on, the first can cause things
to be inconsisent.

Is this acceptable? Should Timeline:constrain check consistency before
going ahead with the extra constrain? How do we want Europa to behave now
that inconsistencies are allowed?

Original issue reported on code.google.com by tristanb...@gmail.com on 9 Sep 2009 at 11:58

GoogleCodeExporter commented 9 years ago

Original comment by javier.barreiro@gmail.com on 17 Aug 2011 at 8:26

GoogleCodeExporter commented 9 years ago

Original comment by javier.barreiro@gmail.com on 30 May 2012 at 5:26

GoogleCodeExporter commented 9 years ago
Object::constrain (and Timeline::constrain) seems like an operation that should 
be atomic, or at least not fail with half of the constraints in place.  A good 
analogy is a rule instance.  It shouldn't stop half-way through because it 
caused an inconsistency.  It should complete execution, result in an 
inconsistency, and then the client can figure out what to do about that.  

Original comment by miata...@gmail.com on 20 Sep 2014 at 8:18

GoogleCodeExporter commented 9 years ago
Tristan, I believe the changes in the linked changeset implement what I'm 
talking about.  Is that correct?  Shall I close this?

Original comment by miata...@gmail.com on 25 Sep 2014 at 4:23

GoogleCodeExporter commented 9 years ago
Which linked changeset?

Original comment by tristanb...@gmail.com on 26 Sep 2014 at 8:02

GoogleCodeExporter commented 9 years ago
The one in the original ticket.  r5007.

Original comment by miata...@gmail.com on 29 Sep 2014 at 10:06

GoogleCodeExporter commented 9 years ago
Ok, I see.  Yes, I think I agree that execution should complete even if there 
is an inconsistency discovered in the middle, so the removal of the assert does 
indeed allow that to happen.  I'll close this ticket.

Original comment by tristanb...@gmail.com on 1 Oct 2014 at 8:48