The Eulora.Vtools.Diff discussion

Tuesday, 01 June, Year 13 d.Tr. | Author: Mircea Popescu

It goes like so :

diana_coman am cam lamurit in sfarsit ce ma zapacea de cap acolo - in fapt mai era o bucata pitita in io.c de n-o luasem intai in calcul dar e importanta (si de altfel acum daca am luat-o ieri la puricat pana am chiar priceput ce fac ei acolo, cam stiu si de ce "vai da' nu face si drege pe wide chars"): la citirea fisierului, diff al unix face in fapt un fel de histograma ("equivalence classes" le zic ei in cod) practic pe baza unui ad-hoc hash care e calculat insa byte cu byte.
diana_coman concret, ce fac ei acolo: 1. fisierul e citit cu totul intr-o bucata 2. e tocat dupa '\n' 3. fiecare linie e luata byte cu byte pt calculul unui hash h si dupa valoarea rezultata pusa intr-un grup de "echivalenta" (direct asa, adica e in grupul h mod n_buckets, n-are nici o jena), ideea acolo fiind ca dupa aceasta procesare initiala, tot restul ce mai face se uita *doar* la acele clase de echivalenta, nicidecum la linia in sine cum ar veni
diana_coman mircea_popescu: intrebarea pt noi ar fi daca chiar vrem ori avem nevoie de exact aceasta abordare.
diana_coman la ora actuala inca nu pot zice ca am idee si de altfel eu as cam prefera sa-l construiesc pas cu pas adica nu m-as agita din start musai cu asta dar pot vedea de ce e acolo.
diana_coman in tot cazul, altminteri, acum fiind lumina prin hatisuri pe acolo, eu am inceput sa-i cam pun baza si anume am implementat frumos acel algoritm al lui Myers pt lcs (longest common sequence) chiar pastrand abordarea din diff pt ca imi pare ca se cam potriveste cu aplicatia altminteri cum ar veni. L-am facut insa Ada-style adica el e pachet generic si NU ii pasa *ce* compari ca nici nu are de ce sa-i pese: il instantiezi cu ce vrei sa fie test si ce vrei sa cheme pt un insert/delete si gata, ca algoritmul n-are treaba
diana_coman pt linistea mea si folosul ulterior, i-am scris si un test minimal, mai mult sa-l vad eu ca merge - asta o mai fi de extins da' deocamdata zic ca e ok.
diana_coman mircea_popescu: singura chestie aici si in fine, generala altminteri e ca per total limita de dimensiune imi pare ca va fi intai de toate una data de ...tipul de date pt indecsi. E cam enervant asa pt ca diverse cam forteaza sa folosesc Integer care nici macar nu e musai si intotdeauna pe 64 biti ca depinde unde rulezi - in orice caz, practic o limita clara si absoluta asa e cum ar veni asta - daca ai in fisier mai multe linii decat Integer'Last (ca e 2^32 ori 2^64, tot exista ca limita), atunci ai pus-o, adica singura chestie de-o vad ar fi sa lucreze cu fisierul pe bucati, nu prea vad ce alta (transparent pt utilizator asa la rulare, sigur, da' in fine, in principiu nu e musai la fel de transparent in rezultate,sunt niste fineturi pe acolo)
diana_coman e drept ca si 2^32 nu-i chiar putin asa da' in fine, naiba stie ce gigabytes de fisier o vrea careva sa treaca prin V
mircea_popescu sal
mircea_popescu pai tu ai o f buna solutie cu keccak acolo. ca el e chiar perfect pentru fix asta, digerat linii de cod.
mircea_popescu deci sinergiile abunda
mircea_popescu diana_coman, eu cred ca abordarea dupa hasuri e corecta, pentru ca iti ofera proprietatea valoroasa ca compari numere de aceeasi dimensiune
mircea_popescu concepte precum = au sens, ceea ce e esential; ; ai posibilitatea sa construiesti chiar si trees, pentru ca > functioneaza de asemenea. eu zic ca e un cistig.
mircea_popescu nu concep ca e util sa ai un fisier cu peste 2^64 linii ; oamenii care inca lucreaza cu integer de 32 biti is idioti.
mircea_popescu deci omul care vrea sa treaca fisier mare prin eulora.diff isi cumpara frumos un computer de 64. chiar daca nu il foloseste la altceva, is citeva sute de para. daca nu-si permite sute de para NU ARE NEVOIE de ce fisier vorbeste el. ca asa e viata.
mircea_popescu iar omul care vrea sa treace fisier mai mare de 18446744073709551616 linii prin eulora.diff construieste un computer de 128 sau citi biti vrea.
mircea_popescu costa citevs zeci de miliarde de para acolo, nimica. daca nu isi permite...

Sa v-o zic si-n engleza ?

Category: S.MG
Comments feed : RSS 2.0. Leave your own comment below, or send a trackback.

3 Responses

  1. Only now I noticed that it's precisely one week later, ha!

  2. Mircea Popescu`s avatar
    2
    Mircea Popescu 
    Tuesday, 1 June 2021

    Half of two weeks even.

  1. [...] previously hinted, we here at Minigame Suprlabs are undergoing a complete rewrite of... well, everything, [...]

Add your cents! »
    If this is your first comment, it will wait to be approved. This usually takes a few hours. Subsequent comments are not delayed.