Open reteprelief opened 8 years ago
As to synchronous being the default: V1 was silent on the topic and assumed synchronous behavior. In V2 I introduced the notation of reference time to explicitly specify different time domains. As to changing the default, I will bring this up in the committee.
Here is my take on it:
Synchronous is default against an unspecified time domain.
As you introduce time domain instances, you may map a subset of the components to those domains.
You may have identified a reference time for only a subset of the system. We can either have a consistency check to tell you where reference time is missing. Or they are part of the default (universal) time domain.
Similarly, when we introduce time drift as property, we will need a reference point to express the drift. Either you identify another user defined time domain, or the default (universal) time domain is the reference point.
From Steve Vestal: As long as you're fiddling with this, the committee might discuss whether globally synchronous or globally asynchronous semantics is the more natural default. Is it easier and more natural to declare islands of asynchrony within a globally synchronous system, or easier and more natural to declare islands of synchrony within a globally asynchronous system? For example, the latter would be more natural for the (fairly common) GALS architecture pattern (which is sort of what we did).