img
Fr  En     
Vous cherchez des forums, un endroit pour discuter ? C'est ici ! Actualité, blogs, bd, ciné, programmation, jeux vidéo, consoles, pockets, calculettes TI, études ... y'a too :) Attention ... addictif ! :D
Partenaires  
UpToTech Forum discussions Pixel Invaders Web-Tricheur Alvasoft.net : Hardware & TI ACBM Pockett
^
@_ö
(14:25)  Bienvenue ! - Inscrivez vous pour poster ! -
@Boo + 5 inconnu(s)

Login :
Mot de passe :   
Se souvenir de moi. Mot de passe perdu ?

/!\:: Cliquez ici pour vous inscrire et poster, créer des sujets ou des forums ! ::/!\
 « Précédent - 4/6 - Suivant » :: Pages
 Index » Time To Team » Beta Tests OS (152r) » ld-tigcc - Flash OS BSS Special
./89 - REPRISE AUTOMATIQUE DU MESSAGE PRECEDENT
23.01.2004 - 12375
19:29  Folco_ - Posté : 29-03-2008  M

PpHd (./88) :
le support pour le timestamp de compilation

Qu'est-ce que c'est? %)


Mon 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.
./Publicité AdSense
./90
16.06.2001 - 34919
20:50  squalyl - Posté : 29-03-2008  M

un symbole qui contient le timestamp unix de l'appel a gcc?


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki ~ TI68k/z80 RSA factoring project
./91
23.01.2004 - 12375
21:58  Folco_ - Posté : 29-03-2008  M

Encore eût-il fallut que je sachasse ce que fûte un timestamp ^^


Mon 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.
./92
30.06.2001 - 28630
21:59  Ximoon - Posté : 29-03-2008  M

une date+heure+truc par exemple ? %)


Que 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.
./93
16.06.2001 - 34919
22:12  squalyl - Posté : 29-03-2008  M

le nb de secondes depuis le 1er janvier 1970 en général #oui# (et oui, ça foutra la merde sur tous les systèmes 32 bits en 2038 ^^)


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki ~ TI68k/z80 RSA factoring project
./94
10.06.2001 - 28525
01:35  Kevin Kofler - Posté : 30-03-2008  M

AMHA, ce n'est pas très pratique de devoir écrire "zs" à chaque fois qu'on veut faire un calcul. Le calcul formel est mieux intégré dans AMS.


Mainteneur de TIGCC (le vrai)
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (UTF-8)
CalcForge – le nouvel hébergement de CalcForgeLP (ex TiLP) et Emu-TIGCC (ex TiEmu)
Participez à la reprise de Ti-Gen!
./95
28.08.2003 - 7719
08:16  Sasume - Posté : 30-03-2008  M

C'est clair, PpHd tu ne fais aucun effort vraiment, on dirait que tu fous rien...


« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »
./96
16.06.2001 - 34919
10:15  squalyl - Posté : 30-03-2008  M

franchement, ça craint, c'est clair :D ( #triso# )


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki ~ TI68k/z80 RSA factoring project
./97
11.06.2001 - 18617
10:51  @PpHd - Posté : 30-03-2008  M

Kevin Kofler (./94) :
AMHA, ce n'est pas très pratique de devoir écrire "zs" à chaque fois qu'on veut faire un calcul. Le calcul formel est mieux intégré dans AMS.


La prochaine tu liras tout ou tu te coucheras avant si tu es fatigué, avant d'écrire.


Cinq font un et un font cinq : le tout est UNITE
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi , et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.
./98
10.06.2001 - 28525
11:03  Kevin Kofler - Posté : 30-03-2008  M

Sasume (./95) :
C'est clair, PpHd tu ne fais aucun effort vraiment, on dirait que tu fous rien...

Hé, ce n'est pas ça que je voulais dire!


Mainteneur de TIGCC (le vrai)
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (UTF-8)
CalcForge – le nouvel hébergement de CalcForgeLP (ex TiLP) et Emu-TIGCC (ex TiEmu)
Participez à la reprise de Ti-Gen!
./99
28.10.2001 - 6188
12:32  Lionel Debroux - Posté : 30-03-2008  M

./93: c'est cela, si ce n'est que TI a choisi une date de départ différente, à savoir le 1er janvier 1997, 00h00 dans un certain fuseau horaire :D

J'ai écrit "timestamp de compilation", mais en réalité, c'est plus probablement le timestamp de la signature cryptographique par TI (parce que les FlashApps ont également un timestamp).
Sur AMS 2.05 89, le cert field du timestamp (0x326 0x904 0xnnnnnnnn) est stocké à ROM_BASE+0x12033-0x1203A, et le timestamp vaut 0x0699b9e2, c'est à dire qu'il représente le 07/05/2000 (mm/jj/yyyy) 16h31m30s (dans un certain fuseau horaire).
Le timestamp d'OurWorld 1.0 est 0x0df33de3.

(Rassurez-vous, je ne calcule pas tout ça à la main: quand ils sont appelés avec les bons paramètres, ROM_CALL_504 et ROM_CALL_58E font le boulot à ma place. J'ai documenté au moins le deuxième.)


Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI, TIEmu (le vrai) et TILP (le vrai).
./100
23.01.2004 - 12375
13:58  Folco_ - Posté : 30-03-2008  M

Merci à tous. :)


Mon 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.
./101
28.10.2001 - 6188
16:08  Lionel Debroux - Posté : 30-03-2008  M

Au passage, ./98: on le sait à peu près tous que tu n'as pas voulu signifier cela :D

A la limite, sans la deuxième phrase, la remarque ./94 n'aurait été que redondante: cf. ma remarque, sur un mode plus humoristique, en ./80 et la réponse de PpHd en ./81.
Mais avec la deuxième phrase, le post devient pas constructif: c'est irréaliste d'attendre de PedroM une aussi bonne intégration du CAS que dans AMS, alors que l'introduction du CAS dans PedroM est très récente.
D'où les réactions. Pas plus compliqué que cela.


Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI, TIEmu (le vrai) et TILP (le vrai).
./102
11.06.2001 - 18617
11:54  @PpHd - Posté : 06-04-2008  M

Build de PedroM avec la suite de tests de MPFR:
Program Statistics: Program Variable Name: main\pedrom Program Variable Size: 944205 Bytes BSS Size: 12358 Bytes Absolute Relocs: 0 Natively Emitted Relocs: 0 Relocs Removed by Branch Optimization: 1688 Relocs Removed by Move Optimization: 2236 Relocs Removed by Test Optimization: 12 Relocs Removed by Calc Optimization: 13 Relocs Removable by F-Line Jumps: 86169 Space Saved by Range-Cutting: 8016 Bytes

Temps pris par ld-tigcc : 10 MINUTES ! #sick#


Cinq font un et un font cinq : le tout est UNITE
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi , et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.
./103
10.06.2001 - 28525
12:32  Kevin Kofler - Posté : 06-04-2008  M

Ton Flash OS a presque la taille de AMS là, il ne faut pas t'attendre à ce que ld-tigcc le linke rapidement. :p Surtout si tu y mets une test suite qui doit avoir je ne sais pas combien de fichiers objet (probablement beaucoup plus que AMS, même si je ne peux pas le dire exactement parce que les sources de AMS ne sont pas disponibles). (Pour moi, une test suite est quelque chose qu'on rm -rf immédiatement parce que ça met trop longtemps à compiler. #gni# C'est ce que je fais avec celles dans GCC et Binutils en tout cas. #gni# ) N'oublie pas que ld-tigcc est conçu primairement pour les programmes de <= 64 KO.


Mainteneur de TIGCC (le vrai)
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (UTF-8)
CalcForge – le nouvel hébergement de CalcForgeLP (ex TiLP) et Emu-TIGCC (ex TiEmu)
Participez à la reprise de Ti-Gen!
./104
16.06.2001 - 34919
13:56  squalyl - Posté : 06-04-2008  M

c'est clair #hehe#

sinon c'est un bon stress test pour ld-tigcc :)


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki ~ TI68k/z80 RSA factoring project
./105
23.01.2004 - 12375
14:58  Folco_ - Posté : 06-04-2008  M

PpHd (./102) :
Relocs Removable by F-Line Jumps: 86169

Quand meme ! #eek#


Mon 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.
./106
11.06.2001 - 18617
16:27  @PpHd - Posté : 06-04-2008  M

Kevin Kofler (./103) :
C'est ce que je fais avec celles dans GCC et Binutils en tout cas

C'est surtout que dans le cadre de tigcc, et d'une cross compilation, ca n'est jamais simple de lancer les tests...

Kevin Kofler (./103) :
Ton Flash OS a presque la taille de AMS là, il ne faut pas t'attendre à ce que ld-tigcc le linke rapidement.

Parce que tu crois que le linkeur GNU ld, met 10 minutes pour linker un programme de 10 Mo.

Kevin Kofler (./103) :
Pour moi, une test suite est quelque chose qu'on rm -rf immédiatement parce que ça met trop longtemps à compiler.

C'est essentiellement utile pour les développeurs.

Edité par PpHd le 06-04-2008 à 22:28:39.

Cinq font un et un font cinq : le tout est UNITE
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi , et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.
./107
28.10.2001 - 6188
20:10  Lionel Debroux - Posté : 06-04-2008  M

Parce que tu crois que le linkeur GNU line, met 10 minutes pour linker un programme de 10 Mo.

Pas faux, ça...

Un des meilleurs profileurs est callgrind - mais là, 10 minutes en natif, c'est un peu trop long pour qu'il soit facile de faire exécuter le linking à callgrind avec simulation des caches et du HW prefetch. Ca ralentit de plus de deux ordres de grandeur sur ma machine...


Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI, TIEmu (le vrai) et TILP (le vrai).
./108
10.06.2001 - 28525
20:25  Kevin Kofler - Posté : 06-04-2008  M

Bah, il n'y a pas grand chose à profiler, la seule structure de données dans ld-tigcc (à part à un endroit du réordonnement de sections qui n'est pas activé ici, où des tableaux sont utilisés) est la liste chaînée. #gni# La table de hachage est un concept totalement inconnu de ld-tigcc. #gni# Bref, ce n'est pas la peine de chercher longtemps pourquoi ça prend tout ce temps. #gni#


Mainteneur de TIGCC (le vrai)
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (UTF-8)
CalcForge – le nouvel hébergement de CalcForgeLP (ex TiLP) et Emu-TIGCC (ex TiEmu)
Participez à la reprise de Ti-Gen!
./109
10.06.2001 - 28525
20:29  Kevin Kofler - Posté : 06-04-2008  M

Voilà le code qui va chercher un symbole par son nom:
// Point the location to the appropriate symbol, if one is found. SYMBOL *ResolveLocation (PROGRAM *Program, SECTION *Section, LOCATION *Location) { if (Location->Symbol) return Location->Symbol; else { SECTION *CurSection; // For each section... for_each (CurSection, Program->Sections) { SYMBOL *CurSymbol; // For each symbol... for_each (CurSymbol, CurSection->Symbols) { // If the name matches, we have found the right symbol. if (CurSymbol->Exported && (!(strcmp (Location->SymbolName, CurSymbol->Name)))) { // Set up the reloc accordingly, freeing its // destination string. Location->Symbol = CurSymbol; FreeLocationSymbolName (Section, Location); return CurSymbol; } } } return NULL; } }

(et la macro for_each fait exactement ce que vous craignez :p ).


Mainteneur de TIGCC (le vrai)
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (UTF-8)
CalcForge – le nouvel hébergement de CalcForgeLP (ex TiLP) et Emu-TIGCC (ex TiEmu)
Participez à la reprise de Ti-Gen!
./110
23.01.2004 - 12375
22:26  Folco_ - Posté : 06-04-2008  M

Et t'en es fier? %)


Mon 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.
./111
11.06.2001 - 18617
22:45  @PpHd - Posté : 06-04-2008  M

Petit profile:
Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 45.35 205.93 205.93 366848 0.00 0.00 FindRelocAtPos 44.98 410.19 204.26 351120 0.00 0.00 FindSymbolAtPos 4.18 429.19 19.00 3979 0.00 0.01 CutRange 4.01 447.40 18.21 21057 0.00 0.00 ResolveLocation 0.62 450.23 2.83 432366 0.00 0.00 FindSegmentAtPos 0.56 452.79 2.56 1432 0.00 0.24 MergeSections 0.15 453.49 0.70 52765585 0.00 0.00 AdjustLocationForRangeCut 0.04 453.66 0.17 28669 0.00 0.00 DisableRangeCutting 0.02 453.75 0.09 388974 0.00 0.00 M68kFixReloc 0.02 453.82 0.07 394 0.00 0.88 M68kFixCodePreMerge 0.01 453.86 0.04 374531 0.00 0.00 FindSegment 0.01 453.89 0.03 458178 0.00 0.00 GetLocationOffset 0.01 453.92 0.03 305108 0.00 0.00 IsBinaryDataRange 0.00 453.94 0.02 308893 0.00 0.00 FindLibCallAtPos 0.00 453.96 0.02 308893 0.00 0.00 FindROMCallAtPos 0.00 453.98 0.02 3 0.01 2.82 ImportAmigaOSFile 0.00 453.99 0.01 308893 0.00 0.00 FindRAMCallAtPos 0.00 454.00 0.01 227304 0.00 0.00 ReadTI4 0.00 454.01 0.01 117537 0.00 0.00 ResolveReloc 0.00 454.02 0.01 78949 0.00 0.00 FreeLocationSymbolName 0.00 454.03 0.01 57837 0.00 0.00 InsertReloc 0.00 454.04 0.01 29167 0.00 0.00 GetCalcBuiltinLocationValue 0.00 454.05 0.01 28668 0.00 0.00 FixupRelativeReloc 0.00 454.06 0.01 374 0.00 0.00 ImportSymbolFromArchive 0.00 454.07 0.01 1 0.01 0.21 ExportFlashOSFile 0.00 454.07 0.00 423488 0.00 0.00 IsCodeRange 0.00 454.07 0.00 187208 0.00 0.00 ReadTI1 0.00 454.07 0.00 126478 0.00 0.00 ReadTI2 0.00 454.07 0.00 116147 0.00 0.00 HandleLocation 0.00 454.07 0.00 86507 0.00 0.00 ReadSTI 0.00 454.07 0.00 57837 0.00 0.00 FreeReloc 0.00 454.07 0.00 57837 0.00 0.00 FreeRelocRelation 0.00 454.07 0.00 57837 0.00 0.00 WriteTI 0.00 454.07 0.00 57835 0.00 0.00 GetFileName 0.00 454.07 0.00 57809 0.00 0.00 IncRefCounts 0.00 454.07 0.00 43162 0.00 0.00 HandleSpecialSymbol 0.00 454.07 0.00 40590 0.00 0.00 InsertSymbol 0.00 454.07 0.00 33871 0.00 0.00 HandleInsertion 0.00 454.07 0.00 31325 0.00 0.00 M68kIsRelocOptimizable 0.00 454.07 0.00 29237 0.00 0.00 GetCalcBuiltinValues 0.00 454.07 0.00 29167 0.00 0.00 EmitCalcBuiltinValue 0.00 454.07 0.00 29167 0.00 0.00 GetCalcBuiltinValue 0.00 454.07 0.00 29141 0.00 0.00 FindMatchingReloc 0.00 454.07 0.00 28670 0.00 0.00 AddTI 0.00 454.07 0.00 28670 0.00 0.00 IsZeroDataRange 0.00 454.07 0.00 28668 0.00 0.00 FindCompatibleReloc

Je crois que ce qu'il faut optimiser est évident :)

0.00 0.00 1/305108 M68kRemoveTrailingNOP [56] 0.00 1.36 1189/305108 M68kFixCodePreMerge [4] 0.00 30.86 26998/305108 M68kIsRelocOptimizable [15] 0.03 316.54 276920/305108 M68kFixReloc [6] [2] 76.8 0.03 348.76 305108 IsBinaryDataRange [2] 177.49 0.00 305108/351120 FindSymbolAtPos [8] 171.22 0.00 305014/366848 FindRelocAtPos [7] 0.02 0.00 304902/308893 FindROMCallAtPos [42] 0.02 0.00 304902/308893 FindLibCallAtPos [41] 0.01 0.00 304902/308893 FindRAMCallAtPos [43] ----------------------------------------------- 0.00 346.51 20/20 main [1] [3] 76.3 0.00 346.51 20 MergeAllSections [3] 2.56 335.20 1432/1432 MergeSections [5] 0.00 8.75 10/12 M68kFixCode [20] 0.00 0.00 5/1437 HandleSectionContents [26] ----------------------------------------------- 0.00 10.50 12/394 M68kFixCode [20] 0.07 334.29 382/394 MergeSections [5] [4] 75.9 0.07 344.79 394 M68kFixCodePreMerge [4] 0.09 334.61 388974/388974 M68kFixReloc [6] 0.00 6.25 1025/3984 M68kCutOrFillRange [16] 0.00 2.46 423488/423488 IsCodeRange [24] 0.00 1.36 1189/305108 IsBinaryDataRange [2] 0.03 0.00 399871/458178 GetLocationOffset [39] ----------------------------------------------- 2.56 335.20 1432/1432 MergeAllSections [3] [5] 74.4 2.56 335.20 1432 MergeSections [5] 0.07 334.29 382/394 M68kFixCodePreMerge [4] 0.00 0.83 1432/1437 HandleSectionContents [26] 0.00 0.00 1432/1434 FreeSection [52] 0.00 0.00 1/28669 DisableRangeCutting [37] 0.00 0.00 2864/2864 CreateSectionSegment [77] 0.00 0.00 1431/1431 GetPaddedSize [81] 0.00 0.00 190/195 FinalizeRangeCutting [86] ----------------------------------------------- 0.09 334.61 388974/388974 M68kFixCodePreMerge [4] [6] 73.7 0.09 334.61 388974 M68kFixReloc [6] 0.03 316.54 276920/305108 IsBinaryDataRange [2] 0.00 18.03 2959/3984 M68kCutOrFillRange [16] 0.00 0.00 5/6 CutSection [53] ----------------------------------------------- 0.00 0.00 6/366848 FindMatchingReloc [54] 0.00 0.00 6/366848 CanShrinkSection [51] 0.00 0.00 6/366848 CutSection [53] 2.23 0.00 3979/366848 CutRange [17] 32.47 0.00 57837/366848 InsertReloc [13] 171.22 0.00 305014/366848 IsBinaryDataRange [2] [7] 45.4 205.93 0.00 366848 FindRelocAtPos [7] 0.00 0.00 6/351120 CanShrinkSection [51] 0.84 0.00 1437/351120 HandleSectionContents [26] 2.31 0.00 3979/351120 CutRange [17] 23.61 0.00 40590/351120 InsertSymbol [18] 177.49 0.00 305108/351120 IsBinaryDataRange [2] [8] 45.0 204.26 0.00 351120 FindSymbolAtPos [8] ----------------------------------------------- 0.01 94.82 117537/117537 ResolveRelocs [10] [9] 20.9 0.01 94.82 117537 ResolveReloc [9] 0.00 65.59 374/375 ImportArchiveObject [12] 18.21 0.00 21057/21057 ResolveLocation [19] 0.00 11.00 20612/57809 IncRefCounts [14] 0.01 0.00 374/374 ImportSymbolFromArchive [49] 0.00 0.00 445/445 ResolveSpecialSymbolRelocTarget [60] 0.00 0.00 445/445 TranslateSpecialExternalSymbol [85] ----------------------------------------------- 0.00 94.83 3/3 main [1] [10] 20.9 0.00 94.83 3 ResolveRelocs [10] 0.01 94.82 117537/117537 ResolveReloc [9] ----------------------------------------------- 0.00 1.75 10/385 main [1] 0.00 65.77 375/385 ImportArchiveObject [12] [11] 14.9 0.00 67.52 385 ImportCOFFFile [11] 0.01 46.37 51256/57837 InsertReloc [13] 0.00 21.13 36323/40590 InsertSymbol [18] 0.01 0.00 204310/227304 ReadTI4 [44] 0.00 0.00 298/29141 FindMatchingReloc [54] 0.00 0.00 163589/187208 ReadTI1 [64] 0.00 0.00 95688/126478 ReadTI2 [65] 0.00 0.00 51256/86507 ReadSTI [67] 0.00 0.00 41951/43162 HandleSpecialSymbol [69] 0.00 0.00 2826/2831 CreateSectionSymbol [78] 0.00 0.00 1413/1416 InsertSection [83] 0.00 0.00 1413/1416 GetStartupSectionNumber [82] 0.00 0.00 298/116147 HandleLocation [66] 0.00 0.00 17/17 MakeCommonSymbol [89] ----------------------------------------------- 0.00 0.18 1/375 CheckGlobalImport [34] 0.00 65.59 374/375 ResolveReloc [9] [12] 14.5 0.00 65.77 375 ImportArchiveObject [12] 0.00 65.77 375/385 ImportCOFFFile [11] 0.00 0.00 375/388 ImportObjectFile [62] ----------------------------------------------- 0.00 5.95 6581/57837 ImportAmigaOSFile [21] 0.01 46.37 51256/57837 ImportCOFFFile [11] [13] 11.5 0.01 52.33 57837 InsertReloc [13] 32.47 0.00 57837/366848 FindRelocAtPos [7] 0.00 19.86 37197/57809 IncRefCounts [14] 0.00 0.00 115674/116147 HandleLocation [66]



Cinq font un et un font cinq : le tout est UNITE
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi , et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.
./112
10.06.2001 - 28525
22:52  Kevin Kofler - Posté : 06-04-2008  M

Bah, le code, il est là:
http://tigcc-linux.cvs.sourceforge.net/tigcc-linux/tigcc/ld-tigcc/manip.c?revision=1.10&view=markup
Challenge: trouvez les fonctions FindRelocAtPos et FindSymbolAtPos. #gni# Indice: une recherche ne les trouve pas, et pourtant le code est là-dedans. #gni# Autre indice: j'ai déjà plusieurs fois montré le code en question comme exemple sur ce forum. Je vous laisse chercher. :p


Mainteneur de TIGCC (le vrai)
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (UTF-8)
CalcForge – le nouvel hébergement de CalcForgeLP (ex TiLP) et Emu-TIGCC (ex TiEmu)
Participez à la reprise de Ti-Gen!
./113
30.06.2001 - 28630
22:58  Ximoon - Posté : 06-04-2008  M

342 // Find the item preceding or following the given location. May return NULL. 343 #define DefineFindItemAtPos(Type,Item,LocationSuffix) \ 344 Type *Find##Item##AtPos (const SECTION *Section, OFFSET Location, BOOLEAN Following) \ 345 { \ 346 /* Find the place so that Item->Location is always less than Location */ \ 347 /* and Next##Item->Location is always greater or equal. */ \ 348 Type *Item = NULL, *Next##Item = NULL; \ 349 if (Location > Section->Size >> 1) \ 350 { \ 351 Item = GetLast (Section->Item##s); \ 352 while (Item && (Item->Location LocationSuffix >= Location)) \ 353 { \ 354 Next##Item = Item; \ 355 Item = GetPrev (Item); \ 356 } \ 357 } \ 358 else \ 359 { \ 360 Next##Item = GetFirst (Section->Item##s); \ 361 while (Next##Item && (Next##Item->Location LocationSuffix < Location)) \ 362 { \ 363 Item = Next##Item; \ 364 Next##Item = GetNext (Next##Item); \ 365 } \ 366 } \ 367 /* If we are looking for something that follows, the case is clear. */ \ 368 /* Otherwise, we need to check whether the next item is also OK. */ \ 369 if (Following || (Next##Item && (Next##Item->Location LocationSuffix <= Location))) \ 370 return Next##Item; \ 371 else \ 372 return Item; \ 373 } 374 375 DefineFindItemAtPos (SYMBOL, Symbol, ); 376 DefineFindItemAtPos (RELOC, Reloc, ); 377 DefineFindItemAtPos (ROM_CALL, ROMCall, ); 378 DefineFindItemAtPos (RAM_CALL, RAMCall, ); 379 DefineFindItemAtPos (LIB_CALL, LibCall, ); 380 DefineFindItemAtPos (SEGMENT, Segment, .Start->Location); 381 382 #undef DefineFindItemAtPos


?

edit : ça me rend malade tout ça, pas envie d'en lire plus :p


Que 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.
./114
28.10.2001 - 6188
08:04  Lionel Debroux - Posté : 07-04-2008  M

Je savais très bien que la seule structure de données de ld-tigcc était la liste chaînée, mais je voulais savoir à quel point c'était un carnage. Maintenant, avec les chiffres de ./111, je sais :D

Vu que 90% du temps est passé dans les fonctions de liste chaînée, une accélération de 5x ne semble pas irréaliste ^^
Un arbre binaire ordonné qui reste assez équilibré sans être trop coûteux (red-black, par exemple) améliorerait déjà les choses, mais sur des grands volumes de données, ils ne peuvent pas rivaliser avec une hashtable...


Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI, TIEmu (le vrai) et TILP (le vrai).
./115
10.06.2001 - 11016
08:39  Pen^2 - Posté : 07-04-2008  M

beaucoup plus que 5x, c'est plus la même complexité de toutes façons.
Nan mais qu'est ce qu'il y a de compliqué à utiliser une hashmap sans déconner ??? (même à faire c'est pas du tout compliqué, j'en ai fait une dans mon premier programme C, un éditeur/optimiseur de tiles, et pourtant je n'y connaissais vraiment rien #triso# )
Après, que le programme ne soit pas lisible c'est autre chose, mais au niveau algo y'a vraiment rien de compliqué quand même, je ne comprend pas (au pire, si y'a des effets de bords partout, il suffit de convertir la liste en hashmap juste pour les fonctions qui posent problème, non ?)


Cinq font un et un font cinq : le tout est UNITE
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi , et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.
./116
28.10.2001 - 6188
09:55  Lionel Debroux - Posté : 07-04-2008  M

Je donnais 5x comme borne inférieure (= si on n'arrive pas à accélérer le linker d'au moins cette quantité, c'est qu'on ne s'applique pas) ;)
C'est clair qu'avec une hash table de taille bien choisie (=> taux de remplissage pas trop élevé; si on sait dès le début combien de sections il y a, on pourrait même peut-être adapter la taille de la table et la fonction de hash au nombre de sections), on peut faire mieux que ça.


Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI, TIEmu (le vrai) et TILP (le vrai).
./117
10.06.2001 - 28525
16:24  Kevin Kofler - Posté : 07-04-2008  M

Ximoon (./113)

Voilà notre gagnant! :) Dommage que tu ne gagnes rien. :p

Lionel Debroux (./114) :
Un arbre binaire ordonné qui reste assez équilibré sans être trop coûteux (red-black, par exemple) améliorerait déjà les choses, mais sur des grands volumes de données, ils ne peuvent pas rivaliser avec une hashtable...

Les fonctions qui consomment le plus de temps dans le profile de PpHd sont des fonctions qui recherchent des symboles par position, pas par nom, donc l'idée de l'arbre équilibré m'a l'air meilleure.


Mainteneur de TIGCC (le vrai)
(Co-)Administrateur du Forum TICT et TIGCC (anglophone)
Modérateur sur MobiFiles (germanophone)
Fondateur de #tigcc sur irc.freequest.net (UTF-8)
CalcForge – le nouvel hébergement de CalcForgeLP (ex TiLP) et Emu-TIGCC (ex TiEmu)
Participez à la reprise de Ti-Gen!
./118
11.06.2001 - 18617
20:17  @PpHd - Posté : 07-04-2008  M

Kevin Kofler (./117) :
Les fonctions qui consomment le plus de temps dans le profile de PpHd sont des fonctions qui recherchent des symboles par position, pas par nom, donc l'idée de l'arbre équilibré m'a l'air meilleure.


A mon avis aussi.


Cinq font un et un font cinq : le tout est UNITE
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi , et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.
./119
28.10.2001 - 6188
10:08  Lionel Debroux - Posté : 18-04-2008  M

Quelqu'un s'est amusé à implémenter l'utilisation d'arbres équilibrés à la place de l'utilisation de listes chaînées ? :D

Je suis en train de faire un miroir Git du repository CVS TIGCC, pour essayer l'import depuis CVS et pour pouvoir bosser avec un vrai SCM quand je reprendrai et finirai les patches pour le support du timestamp de compilation...
C'est affreusement lent, au mieux une révision d'un fichier donné par seconde #sick# #couic#
Ce n'est pas ma connexion Internet qui limite: j'ai encore fait du téléchargement d'ISO de distros ce matin, en parallèle sur 8 serveurs européens, à plus de 9000 kilo-octets/s pendant des périodes de plusieurs secondes (interrompues parce que mon disque n'est pas capable d'avaler ça)...

[EDIT: yeah, presque deux heures d'import pour 479 révisions...
A la fin, le pack Git comprend 7720 objets et le répertoire .git, quand le pack est généré avec des settings un peu agressifs, consomme moins de 5 MB.]

[EDIT2: j'ai importé également les modules "tigcc-linux" et "ktigcc".
J'ai vu que mon import a rendu le repository nettement plus populaire: le nombre de lectures indiqué à http://sourceforge.net/projects/tigcc-linux/ est passé de moins de 500 à plus de 8500 :D
(et le nombre indiqué de commits est super faux, il y a plus de 750 commits rien que pour le module ktigcc)]


Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI, TIEmu (le vrai) et TILP (le vrai).
./Publicité AdSense
 « Précédent - 4/6 - Suivant » :: Pages
 Index » Time To Team » Beta Tests OS (152r) » ld-tigcc - Flash OS BSS Special

./Poster un nouveau message. - Ouvrir dans une nouvelle fenêtre
Login : Mot de passe :

url   image   google  
hr   panneau  
pre   spoiler   cite  
media   flash   YouTube  





  Smileys - Smileys perso
Désactiver les smileys  

Joindre un fichier ou une image

Sondages - Ajouter un code source
     Flood control (?) :    
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

»  yN ©1624 - Aide / Charte
Etat serveur SQL   547ms | Statistiques