Am 17.12.2015 um 13:46 schrieb Colomban Wendling:<br>
><br>
> I agree with @codebrainz <https://github.com/codebrainz> (as I already <br>
> mentioned earlier).<br>
> Sure, there is a gray area on what's public and private inside <br>
> publicly accessible structures, as we (currently) don't have any way <br>
> to enforce privacy here.<br>
><br>
<br>
We do have FooStructPrivate, and use it in quite a few struct types. Now <br>
there is another way to introduce private fields, and this is quite news <br>
to me and quite awkward if you're used to the FooStructPrivate convention.<br>
<br>
> But we always stated that anything undocumented was /not/ part of the <br>
> API and could not be relied upon, so although in practice it was <br>
> possible, we explicitly said we didn't support that.<br>
<br>
Yea, only stuff that's documented is officially part of the API. That <br>
doesn't automatically make everything else strictly private, though. We <br>
can't just go and change or remove the so-called "private" members so <br>
because that breaks the ABI even for well-behaving plugins. So these <br>
"private" members are in fact part of the ABI and in practice public. We <br>
should simply document the fact and do not allow such grey areas to <br>
remain grey.<br>
<br>
If we really want private fields, that we can change freely, use <br>
FooStructPrivate. But we also have to accept that, documented or not, <br>
all public struct members are part of the ABI and subject to concerns <br>
before changing.<br>


<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany/commit/302b40e9778ff49407902f3ef9f272ed202f4547#commitcomment-15068227">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ5uhq1M8pYcx9Ys23gfbEg6-An6Oks5pRB68gaJpZM4G3NbP.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany/commit/302b40e9778ff49407902f3ef9f272ed202f4547#commitcomment-15068227"></link>
  <meta itemprop="name" content="View Commit"></meta>
</div>
<meta itemprop="description" content="View this Commit on GitHub"></meta>
</div>