Page 1 of 1

[Not a bug]STOP STOP ans STOP ABI breaking

Posted: 2012-01-19T05:44:32-07:00
by broucaries
For the hell could you stop to break ABI

And use the tool I mentionned previously see http://upstream-tracker.org/versions/imagemagick.html

You break ABI between 6.7.4.0 and 6.7.4.2 see http://upstream-tracker.org/compat_repo ... k_Problems

Could you revert the kernInfo struct change please ?

You could keep it for 7.0 but please stop breaking ABI between minor version.

I am trying to package 6.7.4.0 for debian and I my stuck because my release team is not willing to recompile reverse depend. They think at your rate it is surely better for your distrib to remove imagemagick. And therefore I am waiting since 20 days a full recompile. And because you break ABI, I need to do the same thing for the next version.

So please be more strict about ABI.

Bastien

Re: STOP STOP ans STOP ABI breaking

Posted: 2012-01-19T05:55:48-07:00
by magick
MagickRealType is defined as
  • typedef double MagickRealType;
Note, also, KernelInfo is an opaque structure. API users do not operate on it directly. Instead they use AcquireKernelInfo() to create it.
Therefore we see no ABI breakage. If you anticipate a case where it does break the ABI, let us know and we will revert our patch.

Re: STOP STOP ans STOP ABI breaking

Posted: 2012-01-19T06:07:45-07:00
by broucaries
Ok if it is an internal structure. Will file bug to every user that use it. Could be possible to protect this type from a API point of view for 7.0 version ?

Bastien

Re: [Not a bug]STOP STOP ans STOP ABI breaking

Posted: 2012-01-19T06:09:43-07:00
by broucaries
Notice that typedef double MagickRealType; is not sufficient in certain case particularly if you export this symbols to C++ ABi it will give you different mangling.

In this case because it is internal and structure member it is safe but only because the two conditions are met.

Bastien

Re: [Not a bug]STOP STOP ans STOP ABI breaking

Posted: 2012-01-19T06:19:03-07:00
by magick
We've incorporated a number of your suggestions into the ImageMagick V7 distribution. For example, we're using visibility as you suggested (public and private methods). In addition, we are moving many structures out of the public headers and using getters / setters instead to avoid ABI breakage in 7.0 when its released (in a year or two). In case we have forgotten to thank you-- thanks. ImageMagick is much improved based on your many suggestions.

Re: [Not a bug]STOP STOP ans STOP ABI breaking

Posted: 2012-01-19T06:22:51-07:00
by magick
Most folks use Magick++ when coding with C++ and C with the MagickCore library and given its an opaque structure the risk of problems is so very small-- however, we'll go ahead and revert and release ImageMagick 6.7.4-8 with the patch by this weekend. Thanks.