This changes the ABI, so already compiled XS modules may no longer function.

Really? const modifiers affect only compile-time checking.
Agreed, the const shouldn't affect anything in binary compatibility.
Does anyone know to the contrary?

I was thinking C++, where it does make a difference.

00000000 T _Z2aPKi
0000003a T _Z2bPi
0000001e T _Z2ci

void a1 ( const int * x ) {
void b ( int * const x ) {
void c ( const int x ) {

(Also, I meant the compiler level ABI - i.e. symbol naming - not the perl level of exported functions.)

But, since we're all C, most of the time, we're actually probably fine.

-R



Reply via email to