Ceci dit, il y a un endroit où cette convention est sensée: une librairie statique! Parce que 1 fichier source => 1 fichier objet et la granularité du linking est normalement par fichier objet. TIGCCLIB utilise essentiellement cette convention pour cette raison (mais avec des exceptions: si des fonctions sont toujours utilisées ensemble, autant les regrouper; et il y a aussi les fameuses fonctions à 2 points d'entrée, un hack qu'on ne peut se permettre qu'en assembleur wink).
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
C'est sensé dès que tu as à écrire du code qui doit être validé, testé unitairement, certifié, maintenu et réutilisé aussi hehe
avatarQue cache le pays des Dieux ? - Ximoon's Box - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
oui enfin si tu as des dépendances circulaires ça n'apporte pas grand-chose ^^
Si tu as des dépendances circulaires, tu changes de conception pour ne plus en avoir.
tu m'expliques comment faire (par exemple) un générateur de code sans dépendance circulaire ? si tu veux éviter de faire une énorme fonction de plusieurs milliers de lignes il faut bien avoir des fonctions mutuellement récursives...
La récursivité est interdite aussi embarrassed

(solution : ne pas embarquer de générateur de code dans des avions trinon)
avatarQue cache le pays des Dieux ? - Ximoon's Box - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
oui
non sérieux, la récursivité est interdite ?
Dans l'aérospatial, souvent oui.

1. Imagine l'avion:
* fonction f, que doit faire le moteur?
* fonction f, que doit faire le moteur?
* fonction f, que doit faire le moteur?
* fonction f, que doit faire le moteur?
* fonction f, que doit faire le moteur?
* fonction f, que doit faire le moteur?
boum! (Trop tard!) Le temps est critique, et il est plus difficile de prévoir le temps de réponse pour une fonction récursive que pour une fonction itérative (avec des conditions sur les types de boucles aussi, mais ces conditions font aussi partie des conventions à respecter!). Il est impossible dans le cas général de prouver qu'un code termine, donc si on ne peut pas le prouver pour ton code, à toi de le changer. grin

2. Imagine aussi cet avion:
* fonction f, que doit faire le moteur?
* Stack overflow!
Oups... boum! La consommation de pile est aussi difficile à prévoir en récursif. (C'est pour ça que tu vas probablement te faire gueuler dessus par la LKML aussi si tu essaies de faire du récursif dans le noyau Linux avec ses piles de 4 KO. hehe)

Ximoon pourra sans doûte t'en dire plus sur les contraintes de l'aérospatial, ayant vécu ça en première personne. smile
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Ximoon (./35) :
La récursivité est interdite aussi embarrassed

(solution : ne pas embarquer de générateur de code dans des avions trinon)

oui dans ce contexte-là (triso), mais c'est pas le seul contexte dans lequel on peut être amené à "écrire du code qui doit être validé, testé unitairement, certifié, maintenu et réutilisé aussi hehe" happy
Seule chose que je regrette dans ce projet, enfin, pour tout dire je n'ai essaye que les premieres demos, mais la maniabilité ne me plaisait pas du tout sad
Il faudrait que j'essaye la version actuelle.
Pour le reste c'est clair qu'il y a un sacre boulot !
Tiens, salut FlashZ wink
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.
Rah faut bien que je regarde de temps en temps ce qui se fait wink
Heu la recurcivité peut etre maitrisée...
Mais bon de toute maniere dans l'aeronotique meme les malloc sont interdits lol
Pkoi lol ?
Parce que l'allocation peut échouer ou prendre plus de temps que prévu. Tu es censé savoir à l'avance combien de mémoire il te faut dans un logiciel "mission-critical".
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Comment on fait pour stocker des données en mémoire sans malloc ?
avatarUn site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.
Que de l'absolu? cheeky
avatarMon journal de bord <flux rss manuel> asTI68k : WIP </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.
Tableaux globaux de taille fixe. Et moins de données on stocke, mieux c'est, parce qu'on trouve des RAMs très petites, parfois moins d'un KO, dans ces domaines.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
(un autre problème du malloc, outre le fait qu'il puisse échouer, est que (sauf algorithme spéciaux) dans la majorité des cas, son temps d'exécution n'est pas connu)
Mais comme dit, dans un système fermé et maîtrisé, le malloc est inutile.
avatarQue cache le pays des Dieux ? - Ximoon's Box - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Ximoon (./49) :
(un autre problème du malloc, outre le fait qu'il puisse échouer, est que (sauf algorithme spéciaux) dans la majorité des cas, son temps d'exécution n'est pas connu)

Je l'ai dit. tongue
Kevin Kofler (./45) :
Parce que l'allocation peut échouer ou prendre plus de temps que prévu.

avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Oui mais justement, on ne peut pas prévoir grin Donc ça n'a aucun sens de dire que quelque chose prend plus de temps que prévu, lorsque l'évênement est imprévisible happy M'enfin on est d'accord sur le fond oui
avatarQue cache le pays des Dieux ? - Ximoon's Box - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
J'aurais dû mettre "plus de temps que prévu par le programmeur incompétent qui se contente d'estimations sans garantie alors qu'il est censé coder du hard real time". wink "Prévu" n'implique pas forcément une garantie, mais évidemment dans le domaine de l'avionique, une prévision sans garantie ne sert à rien, tu as entièrement raison de le rappeler.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Sans compter la fragmentation etc...
Bon pour le moment je fais mon codeur crade car j'utilise un faux malloc:
// Runtime pour la gestion de la mémoire
static void *heap_malloc(unsigned int size){
	void *pReturn= (void*)&heap_datas[heap_size];
	REQUIRE(size+heap_size<heap_maxSize);
	heap_size += size + (~(size-1)&0x3); 
	return pReturn; 	
}
void heap_free(void *ptr){
	ASSERT(1);
}

* Tu ne libères jamais rien? sick Dans un programme qui tourne longtemps, ça épuisera vite ton heap (sauf si tu alloues une taille immense, ce qui n'est pas possible sur tous les systèmes, et là où c'est possible, c'est parce que l'OS n'alloue réellement la mémoire que quand tu y écris la première fois, donc ton programme consomme de plus en plus de mémoire plus il tourne sick).
* Si tu fais ça sur TI (68k), tu as au maximum un heap de 65520 octets, ce qui n'est qu'un tiers de la RAM disponible au total.

Bref, utilisez toujours les fonctions malloc et free du système, elles existent pour une raison!
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Heu en embarqué niveau A, tu n'as pas le droit au free smile
Ah OK, c'est toujours dans ce contexte, ça explique les choses, mais ton heap_malloc n'est pas une bonne idée non plus (et ça me surprend qu'on te le laisse passer): REQUIRE(size+heap_size<heap_maxSize); et si ce test échoue? L'avion explose? grin (Ou le réacteur nucléaire? grin)
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Kevin Kofler (./52) :
J'aurais dû mettre "plus de temps que prévu par le programmeur incompétent qui se contente d'estimations sans garantie alors qu'il est censé coder du hard real time". wink "Prévu" n'implique pas forcément une garantie, mais évidemment dans le domaine de l'avionique, une prévision sans garantie ne sert à rien, tu as entièrement raison de le rappeler.

Surtout que tous les documents (et les sources) sont relus par des tierces personnes, tu ne peux pas te contenter d'une estimation à la louche grin (enfin si tu peux, mais t'as intérêt à faire large alors cheeky)

Sinon, pour l'embarqué "niveau A" (de quoi ? la DO 178 B ?), je ne sais pas si elle interdit explicitement le free, mais souvent les normes de codages informatiques internes à une boîte sont plus contraignantes.
avatarQue cache le pays des Dieux ? - Ximoon's Box - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Kevin, il faudrait que tu lises des livres sur la programmation par contrat.
Je viens d'envoyer le dossier sur ma ti mais lorsque je veux faire fonctionner le programme dans home, j'ai un message d'erreur indiquant erreur d'argument. Mon problème doit vous paraître futile mais si vous pouviez m'expliquer.. Merci.
S'il y a des arguments à passer au programme, ça doit être écrit dans sa documentation ce qu'il faut passer. T'as regardé ?
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !