[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: #403: Remove per-property "inheritance" from cached objects
Hello, The problem here is that the properties merging feature we envisioned is, among other things, subject to a classic issue: additive changes are relatively straightforward but dealing with default values is not (particularly in a SARIF SDK
_expression_ in a language such as C# or Java). To account for this, we would have needed to consider making all properties on cacheable types nullable, to allow for a ‘present but null’ signal to indicate something in the merge operation (such as ‘clear this
value’). And so we made the call to remove the property inheritance and to support object inheritance only. One correction: in order to minimize churn in the format, particularly as we’re in the end game when the TC can’t meet to discuss, we will
retain the index properties for address and logicalLocation. And so, the proposal can be simplified to: support object inheritance only for all cacheable types (and drop poorly thought through property level merging). These types are : thread flow locations, logical locations, addresses, web requests
and web responses. Thanks! After we merge the spec chance around the “language” property (thanks for the comment, Jim!), we will provide David with the doc for the eballot. PLEASE NOTE: if we absolutely need to, we can identify a document change that’s required and reset the ballot. Every time we do this, we reset the ballot clock, and so of course we’re hoping to avoid it entirely. If you need to pull the
alarm bell for some reason, please try to do it sooner than later. :) Michael From: sarif@lists.oasis-open.org <sarif@lists.oasis-open.org>
On Behalf Of Larry Golding (Myriad Consulting Inc) Michael identified a problem with our mechanism for inheriting individual properties from cached objects.
It breaks the SDK in ways that Michael will explain in a follow-on email. I pushed and merged a change that fixes the problem. We can still
reuse cached objects (so that, for example,
threadFlowLocations can be reused in multiple thread flows, satisfying Yekaterina’s scenario), but we do not
inherit individual properties from the cached object: As part of this change, we removed the
index properties from the address object and the
logicalLocation object. These “hierarchical” objects have a
parentIndex, and that, not
index, is what establishes a connection to the cache. These objects are very small (in contrast to
threadFlowLocation, which can be huge if it includes a stack), so the benefit of caching the “leaf objects” is small. As always, the provisional draft and its HTML version are up to date: https://github.com/oasis-tcs/sarif-spec/blob/master/Documents/ProvisionalDrafts/sarif-v2.0-csd02-provisional.docx Please take a look. The plan is still to open the CSD 2 ballot on Monday. This is it. We have no more open issues except the question Michael asked this morning about this choice of which standard to cite for the
run.language property. Thanks, Larry |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]