30

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).
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

31

C'est sensé dès que tu as à écrire du code qui doit être validé, testé unitairement, certifié, maintenu et réutilisé aussi hehe
avatar
Que cache le pays des Dieux ? - 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.

32

oui enfin si tu as des dépendances circulaires ça n'apporte pas grand-chose ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

33

Si tu as des dépendances circulaires, tu changes de conception pour ne plus en avoir.

34

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...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

35

La récursivité est interdite aussi embarrassed

(solution : ne pas embarquer de générateur de code dans des avions trinon)
avatar
Que cache le pays des Dieux ? - 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.

36

oui

37

non sérieux, la récursivité est interdite ?

38

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
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

39

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

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

40

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 !
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

41

Tiens, salut FlashZ wink
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

42

Rah faut bien que je regarde de temps en temps ce qui se fait wink
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

43

Heu la recurcivité peut etre maitrisée...
Mais bon de toute maniere dans l'aeronotique meme les malloc sont interdits lol

44

Pkoi lol ?

45

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".
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

46

Comment on fait pour stocker des données en mémoire sans malloc ?
avatar
Un 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.

47

48

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.
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

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)
Mais comme dit, dans un système fermé et maîtrisé, le malloc est inutile.
avatar
Que cache le pays des Dieux ? - 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.

50

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.

avatar
Mes news pour calculatrices TI: Ti-Gen
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é

51

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
avatar
Que cache le pays des Dieux ? - 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.

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.
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

53

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);
}

54

* 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!
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

55

Heu en embarqué niveau A, tu n'as pas le droit au free smile

56

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)
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

57

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.
avatar
Que cache le pays des Dieux ? - 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.

58

Kevin, il faudrait que tu lises des livres sur la programmation par contrat.

59

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.

60

S'il y a des arguments à passer au programme, ça doit être écrit dans sa documentation ce qu'il faut passer. T'as regardé ?