[voikko] Suomi-malaga 1.8rc1, outo bugi
Harri Pitkänen
hatapitk at iki.fi
Sat Nov 13 20:24:00 EET 2010
On Saturday 13 November 2010, Marko Wallin wrote:
> 13.11.2010 7.48, Teemu Likonen kirjoitti:
> > Harri Pitkänen kirjoitti 12.11.2010 klo 22.09:
> >> harri at turska:~/tmp/test$ echo demokraattiosavaltio | voikkospell -m
> >> C: demokraattiosavaltio
> >> A(demokraattiosavaltio):1:CLASS=nimisana
> >> A(demokraattiosavaltio):1:NUMBER=singular
> >> A(demokraattiosavaltio):1:SIJAMUOTO=nimento
> >> A(demokraattiosavaltio):1:STRUCTURE==pppp=ppppppp=ppp=pppppp
> >> A(demokraattiosavaltio):2:CLASS=nimisana
> >> A(demokraattiosavaltio):2:NUMBER=singular
> >> A(demokraattiosavaltio):2:SIJAMUOTO=nimento
> >> A(demokraattiosavaltio):2:STRUCTURE==ppp=ppppppp=ppp=pppppp
> >>
> >> Minua kiinnostaisi tietää, pystyykö kukaan muu toistamaan bugia.
> >> Esiintyykö se esimerkiksi vain 64-bittisissä Linuxeissa?
> >
> > Pikaisen testauksen perusteella minä saan täsmälleen samanlaisen
> > tuloksen 32-bittisellä prosessorilla ja Linuxilla.
>
> Samaa tulosta antaa myös Mac OS X:ssä 32- ja 64-bittisellä libvoikolla
Sama myös Windowsissa Microsoftin kääntäjällä. Eli tämä käytännössä vahvistaa
sen, että bugi on Malaga-toteutuksessa.
Selvittelin bugia hiukan. Syy ei vielä ole selvinnyt, mutta uskon olevani jo
sen jäljillä. Malaga sisältää oman virtuaalikoneensa, ja merkkijonoja
käsitellään tämän virtuaalikoneen heap-muistissa. Sinne on tallennettu
merkkijono "pppp=", johon jossain vaiheessa kirjoitetaan virheellisesti null-
merkki viimeisen p-kirjaimen paikalle. En ole vielä löytänyt paikkaa, mistä
tämä null-merkki kirjoitetaan. Kuitenkin jos virtuaalikoneen roskien keruun
ottaa pois käytöstä muuttamalla tiedostossa values.cpp
- collect_garbage(malagaState);
+ if (false) collect_garbage(malagaState);
niin bugia ei enää esiinny. Tämä ei vielä hirveästi asiaa selvennä. Joko
roskien keruu toimii väärin, tai sen poistaminen käytöstä vain aiheuttaa
virheellisen null-merkin kirjoittamisen jonnekin muualle. Tuossa roskien
keruun yhteydessä nimittäin heap-muistin sisältö järjestetään uudelleen.
Täytyy jatkaa tästä huomenna. Sinänsähän tämä bugi ei varmaankaan ole kovin
vakava, koska se on ollut olemassa viimeiset neljä vuotta. Mutta jotenkin se
vaan häiritsee minua sen verran, että haluaisin saada sen korjatuksi. Bugi
kyllä aiheuttaa näkyviäkin ongelmia esimerkiksi tavutuksessa, mutta ne
tuntuvat olevan käytännössä äärimmäisen harvinaisia.
Suomi-malagaa voi silti testata, siihen tuskin tämän takia tulee muutoksia.
Korjaus menee libvoikon puolelle.
Harri
More information about the voikko
mailing list