[fixed] ABI brown paper bag time ?

Post any defects you find in the released or beta versions of the ImageMagick software here. Include the ImageMagick version, OS, and any command-line required to reproduce the problem. Got a patch for a bug? Post it here.
Post Reply
broucaries
Posts: 467
Joined: 2008-12-21T11:51:10-07:00

[fixed] ABI brown paper bag time ?

Post by broucaries »

Hi,

You commited a new big abi mistake and subtle this time.
Changing enum value!

See http://linuxtesting.org/upstream-tracke ... k_Problems

Could you please revert this kind of change please ? Or it is a bug fix ?

I will stress a new one that you should use http://ispras.linux-foundation.org/inde ... ce_checker

You said in the front page that "The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory and thread error detection to prevent security vulnerabilities."

Unfortunatly it is not the case! Even between minor version

Please improve your workflow

Bastien
Last edited by broucaries on 2011-10-12T05:16:03-07:00, edited 1 time in total.
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: ABI brown paper bag time ?

Post by magick »

Anthony, can you explain the change in the enum values in distort.h? Is it possible to revert?

We'll start using the ABI compliance checker. We only recently heard of it.
User avatar
anthony
Posts: 8883
Joined: 2004-05-31T19:27:03-07:00
Authentication code: 8675308
Location: Brisbane, Australia

Re: ABI brown paper bag time ?

Post by anthony »

The enum values in distort.h is tricky as Distort and Sparse Colors methods actually have some values 'shared' between the two enums. This is needed so the two functions can call common polynomial matrix solving functions, distort for a x,y coordinate function, and sparse color for a r,g,b or how even many channels are being drawn.

If they did not do this then the common code can not be shared, or you need some mapping function (other than a simple type cast) to map the 'method' for the call.

NOTE that not all the methods are shared, and some do not even really require the common code at all.

It is also likely to become more complicated in that the structure being passed may become polymorphic. that is real structures (such as for triangular/grid meshes) may be needed, containing multiple distortion/sparse color functions for different areas of the image. Currently only a simple 'array of floats' (coefficients) is being used to hold a single 'solved' function to be applied across the whole image is returned.
Anthony Thyssen -- Webmaster for ImageMagick Example Pages
https://imagemagick.org/Usage/
broucaries
Posts: 467
Joined: 2008-12-21T11:51:10-07:00

Re: ABI brown paper bag time ?

Post by broucaries »

I do not care about simplication of code and all when I need one or two week of transition due to abi breakage.

Could you also consider to version your lib at least under elf supported target ? see this http://www.netfort.gr.jp/~dancer/column ... versioning

It will help to create compatibilty layer when you break abi and avoid to recompile all the depends when you made mistake like now

Bastien
User avatar
anthony
Posts: 8883
Joined: 2004-05-31T19:27:03-07:00
Authentication code: 8675308
Location: Brisbane, Australia

Re: ABI brown paper bag time ?

Post by anthony »

We could set the enum starting value for the sparse colors that is not shared at some higher but fixed starting point, that will prevent the enums changing expectantly when a new distort method is added. And I will be more careful of enum preservation in the future.

However what version of IM are you upgrading from, and to, that caused the enumeration problem?

It was some time ago that the last new distortion addition was added, (cylindrical). Before that it was a distort resize.
Anthony Thyssen -- Webmaster for ImageMagick Example Pages
https://imagemagick.org/Usage/
Post Reply