33Fermer35
PolluxLe 13/05/2008 à 12:08
Kevin Kofler (./32) :
Pollux (./26) :
l'alignement de toutes les structures est le même

C'est faux, du moins avec GCC. Par exemple, struct foo {char x;}; a une taille et un alignement de 1 dans TIGCC.

C'est pas contraire à C99 ?
Norme C99 :
All pointers to structure types shall have the same representation and alignment requirements as each other.

Alors peut-être que j'interprète mal et que ça veut en fait dire "All pointers to a given structure type shall have...", mais ça m'étonnerait bcp ?!
The fact of avoiding any name collision (between function and type) is let to the user.
Ca pose un problème d'évolutivité, qu'est-ce qui se passe si je définis une fonction digamma et qu'elle est implémentée dans une version future de maylib ?
Ton programme va boguer, exactement comme en TI-BASIC.

Oui mais le TI-BASIC n'est pas fait pour être robuste à ce genre de choses : si j'écris un programme en C par contre c'est possible de faire en sorte que ça ne bugge pas (et de fait, je crois pas qu'il y ait de collision possible sous AMS, à moins de s'amuser à parser des chaînes bien sûr).
On peut toujours rajouter des flags sans casser la compatibilité ascendante, il suffit de les rajouter à la fin de la structure. Et la compatibilité descendante, je ne connais pas un grand nombre de libs qui la gèrent. AMHA, c'est normal qu'il faille au moins la version de MAY de laquelle on a pris le header. Et puis vu que la lib est encore en développement, la compatibilité ascendante ne doit pas forcément être garantie non plus à l'heure actuelle, c'est à PpHd de voir.

Ben ça voudrait dire que MAY 0.9 (ou PedroM 3.1) est incompatible avec les programmes compilés pour MAY 0.8 (ou PedroM 3.0), c'est dommage et c'est pas du tout le cas sous AMS par exemple.