Page 1 of 1

[fixed] ABI brown paper bag time ?

Posted: 2011-08-24T02:54:17-07:00
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

Re: ABI brown paper bag time ?

Posted: 2011-08-24T05:26:27-07:00
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.

Re: ABI brown paper bag time ?

Posted: 2011-08-24T19:08:50-07:00
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.

Re: ABI brown paper bag time ?

Posted: 2011-08-25T04:49:05-07:00
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

Re: ABI brown paper bag time ?

Posted: 2011-08-29T03:07:05-07:00
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.