[esnacc-dev] ABI-change proposal

Aaron Conole aconole at bytheb.org
Tue Nov 22 14:36:51 UTC 2016


Sagara Wickramasekara <sagaraw at gmail.com> writes:

> Given we're making some other ABI changes, did you want to put this into 1.9 as well?

So far, we haven't made any ABI changes to 1.9;  I'm okay with doing
that if we also make it clear for downstream maintainers that we will be
breaking the ABI in the 1.9 release (which isn't scheduled currently,
but I'm hoping to get a few features tested and integrated by Jul 2017
for that release).

> On Thu, Nov 3, 2016 at 4:01 PM, Aaron Conole <aconole at bytheb.org> wrote:
>
>  So, for 1.10, I want to propose making a change to the esnacc lists ABI
>  for the C library.
>
>  Currently, the AsnListNode structure uses a data field as an extension
>  point of the structure.  This is used throughout the code as follows:
>
>    foo = (Foo **)AsnListAppend();
>    *foo = Malloc(sizeof Foo)
>    Foo *RealFoo = *foo;
>    ...
>
>  My guess is that the original authors ran into alignment issues, and
>  rather than figure out how to tell each compiler that the structure
>  needed to be aligned, they hacked it up and converted over to using
>  pointer-to-pointer and avoid the alignment problems completely.
>
>  Since this makes for unintuitive code, I think it best to make this ABI
>  incompatible change in the 1.10 release (so, basically, let folks know
>  that it will be deprecated, and make 1.10 a new ABI).
>
>  Any opposition?  Any support?  Thoughts?
>
>  -Aaron
>  _______________________________________________
>  dev mailing list
>  dev at lists.esnacc.org
>  http://mail.esnacc.org/mailman/listinfo/dev



More information about the dev mailing list