mboost-dp1

Linux
- Forside
- ⟨
- Forum
- ⟨
- Nyheder
Nu har jeg et par gange hørt Julia Lawall tale om Coccinelle og som jeg forstår det er det ikke helt korrekt at kaldet det et værktøj til fejlsøgning.
Der er nærmere tale om en generalisering af 'patch' begrebebet fra at være noget der handler om at lavet søg/erstat i tekstfiler og til at være noget der opererer semantisk på abstrakt syntaks.
Når man opdager en fejlagtig måde at håndtere noget på, så kan man således lave en patch som beskriver hvordan koden ændres til noget der behandler det på, og så kan man rette fejlen alle de steder hvor den findes.
Der er nærmere tale om en generalisering af 'patch' begrebebet fra at være noget der handler om at lavet søg/erstat i tekstfiler og til at være noget der opererer semantisk på abstrakt syntaks.
Når man opdager en fejlagtig måde at håndtere noget på, så kan man således lave en patch som beskriver hvordan koden ændres til noget der behandler det på, og så kan man rette fejlen alle de steder hvor den findes.
#1 : Lyder lidt ala de patch systemer visse spil har/haft, hvor patchen kun bestod af ændringerne i de filer der skulle patches, og ikke bare overskrev hver fil med nyt indhold. Spændende. :)
HerrMansen (3) skrev:#1 : Lyder lidt ala de patch systemer visse spil har/haft, hvor patchen kun bestod af ændringerne i de filer der skulle patches, og ikke bare overskrev hver fil med nyt indhold. Spændende. :)
Forstil dig størrelsen på patches til World of Warcraft hvis hele filer skulle overskrives.
4-5Gb patches for ikke at tænke på Content patches :p
HerrMansen (3) skrev:#1 : Lyder lidt ala de patch systemer visse spil har/haft, hvor patchen kun bestod af ændringerne i de filer der skulle patches, og ikke bare overskrev hver fil med nyt indhold. Spændende. :)
Ikke rigtigt. Det du beskriver er en simpel binary patch. Coccinelle er betydelig mere kompliceret.
Hmm, jeg vidste godt nok at Rene er inkarneret Linux fan boy, fra det kursus han har undervist i det forgangne semester, men vidste faktisk ikke at han gik og rodede med noget så avanceret i den retning.
Sjovt han aldrig har nævnt det, så ofte som han ellers promoverer Linux, det er på grænsen til indoktrinering :P
Sjovt han aldrig har nævnt det, så ofte som han ellers promoverer Linux, det er på grænsen til indoktrinering :P
arne_v (8) skrev:#2 & 7
Er toolet ikke et generalt C tool som kan anvendes lige så godt på *nix og Windows?
Og at det er "tilfældigt" at Linux kernel teamet har valgt at bruge det fremfor at MS har ringet til ham og betalt ham XX millioner fro toolet?
Uden at vide det, så vil jeg tro, at MS har noget lignende in-house :)
Coccinelle is a program matching and transformation engine which provides the language SmPL (Semantic Patch Language) for specifying desired matches and transformations in C code. Coccinelle was initially targeted towards performing collateral evolutions in Linux. Such evolutions comprise the changes that are needed in client code in response to evolutions in library APIs, and may include modifications such as renaming a function, adding a function argument whose value is somehow context-dependent, and reorganizing a data structure. Beyond collateral evolutions, Coccinelle is successfully used (by us and others) for finding and fixing bugs in systems code.
XorpiZ (9) skrev:Uden at vide det, så vil jeg tro, at MS har noget lignende in-house
Sikkert.
Linux kernel kunne sikkert også finde et andet.
Men ingen af delene udelukker jo at dette produkt er bedre.
Nu har jeg ikek den fjerneste anelse om hvad MS bruger til den slags.
Min pointe var kun at så vidt jeg kan se er det et tool til C kode. Om det er Linux kernel eller Windows kernel eller Oracle DB kerne eller mit hello world program bør egentligt ikke betyde noget.
Værdien af toolet er dog nok størst ved større kode mængder, så min hello world app er nok trods alt ikke så god.
Men ...
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.