Posté le 13/08/2007 à 18:22 Membre depuis le 10/06/2001, 40275 messages
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é
Posté le 13/08/2007 à 18:25 Membre depuis le 30/06/2001, 37149 messages
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.
Posté le 13/08/2007 à 23:47 Membre depuis le 30/10/2001, 31564 messages
oui enfin si tu as des dépendances circulaires ça n'apporte pas grand-chose ^^
Posté le 13/08/2007 à 23:55 Membre depuis le 11/06/2001, 19563 messages
Si tu as des dépendances circulaires, tu changes de conception pour ne plus en avoir.
Posté le 14/08/2007 à 00:06 Membre depuis le 30/10/2001, 31564 messages
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...
Posté le 14/08/2007 à 00:13 Membre depuis le 30/06/2001, 37149 messages
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.
Posté le 14/08/2007 à 00:14 Membre depuis le 11/06/2001, 19563 messages
oui
Posté le 14/08/2007 à 01:44 Membre depuis le 29/02/2004, 1956 messages
non sérieux, la récursivité est interdite ?
Posté le 14/08/2007 à 02:08 Membre depuis le 10/06/2001, 40275 messages
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é
Posté le 15/08/2007 à 01:43 Membre depuis le 30/10/2001, 31564 messages
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
Posté le 15/08/2007 à 11:53 Membre depuis le 10/06/2001, 1454 messages
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 !
Posté le 15/08/2007 à 12:05 Membre depuis le 28/10/2001, 7625 messages
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.
Posté le 15/08/2007 à 14:40 Membre depuis le 10/06/2001, 1454 messages
Rah faut bien que je regarde de temps en temps ce qui se fait wink
Posté le 27/09/2007 à 14:50 Membre depuis le 20/06/2003, 4879 messages
Heu la recurcivité peut etre maitrisée...
Mais bon de toute maniere dans l'aeronotique meme les malloc sont interdits lol
Posté le 27/09/2007 à 21:01 Membre depuis le 11/06/2001, 19563 messages
Pkoi lol ?
Posté le 27/09/2007 à 21:02 Membre depuis le 10/06/2001, 40275 messages
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é
Posté le 27/09/2007 à 21:12 Membre depuis le 10/06/2001, 20910 messages
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.
Posté le 27/09/2007 à 21:14 Membre depuis le 23/01/2004, 12372 messages
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.
Posté le 27/09/2007 à 21:14 Membre depuis le 10/06/2001, 40275 messages
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é
Posté le 28/09/2007 à 00:53 Membre depuis le 30/06/2001, 37149 messages
(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.
Posté le 28/09/2007 à 00:56 Membre depuis le 10/06/2001, 40275 messages
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é
Posté le 28/09/2007 à 00:58 Membre depuis le 30/06/2001, 37149 messages
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.
Posté le 28/09/2007 à 01:06 Membre depuis le 10/06/2001, 40275 messages
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é
Posté le 28/09/2007 à 09:03 Membre depuis le 20/06/2003, 4879 messages
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);
}

Posté le 28/09/2007 à 09:23 Membre depuis le 10/06/2001, 40275 messages
* 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é
Posté le 28/09/2007 à 09:43 Membre depuis le 20/06/2003, 4879 messages
Heu en embarqué niveau A, tu n'as pas le droit au free smile
Posté le 28/09/2007 à 09:47 Membre depuis le 10/06/2001, 40275 messages
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é
Posté le 28/09/2007 à 10:20 Membre depuis le 30/06/2001, 37149 messages
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.
Posté le 28/09/2007 à 11:38 Membre depuis le 20/06/2003, 4879 messages
Kevin, il faudrait que tu lises des livres sur la programmation par contrat.
Posté le 27/02/2011 à 18:11 Membre depuis le 27/02/2011, 6 messages
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.
Posté le 27/02/2011 à 18:27 Membre depuis le 18/06/2001, -26077 message
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) !