[voikko-devel] Korjaus suomi-malagan Makefileen

Harri Pitkänen hatapitk at cc.jyu.fi
Tue May 15 22:58:18 EEST 2007


On Tuesday 15 May 2007, Anssi Hannula wrote:
> Nykyisellään suoritettaessa esimerkiksi "make -j5 voikko" käynnistyy
> useita samanaikaisia python-prosesseja, koska make ei tiedä, että yksi
> suorituskerta luo kaikki lex-tiedostot.
>
> Liitteenä tuon korjaava patchi.

Kiitos. Korjasin tuon, tosin hiukan eri tavalla. Ehdottamasi korjaus nimittäin 
aiheuttaa ongelmia, jos make suoritetaan toisen kerran 
peräkkäin: "generate-lex" ei ole todellinen tiedosto, jolloin make ryhtyy 
turhaan generoimaan sanastoa uudestaan. Kun sen sijaan tehdään tyyliin

voikko/generate_lex.flag: vocabulary/joukahainen.xml vocabulary/flags.txt \ 
voikko/generate_lex.py voikko/voikkoutils.py voikko/hfconv.py
        python voikko/generate_lex.py
        touch $@

$(patsubst %,voikko/%.lex,$(VOIKKO_LEX_FROM_XML)): voikko/generate_lex.flag

niin kaiken pitäisi mennä oikein. Toivottavasti.


Huomasin tuossa samalla pienen ikävän jutun: olin tehnyt yhden bugikorjauksen 
(tyyppiä "saksalais-roomalainen" oleville sanoille) tiedostoon voikko/mor.inc 
enkä tiedostoon common/mor.inc kuten olisi pitänyt. Tämähän johti siihen, 
että testit toimivat oikein omalla koneellani, mutta korjaus ei koskaan 
päätynyt versionhallintaan, eikä siten myöskään lopulliseen 
lähdekoodipakettiin. Huomasin asian vasta nyt, kun puhdistin työhakemistoni 
tämän Makefile-korjauksen testausta varten. Kannattanee nähtävästi ainakin 
välillä käyttää "make clean"-komentoa kehityksen lomassa, ettei tällaisia jää 
huomaamatta.

Onneksi bugi ei ole erityisen vakava, tosin ikävä siinä mielessä että nuo 
sanat tunnistuivat oikein versiossa 0.7.4. Jos haluatte tämän 
jakelupaketeissa korjata, niin korjaus on siis seuraava:

--- trunk/suomimalaga/common/mor.inc    2007-05-15 13:42:00 UTC (rev 1424)
+++ trunk/suomimalaga/common/mor.inc    2007-05-15 19:38:01 UTC (rev 1425)
@@ -110,6 +110,9 @@
     if ($i = 1) then
       return yes;
     end;
+    if $vasen.$i.vokaaliehto = no then
+      return yes;
+    end;
     if (vokaali(first($sana)) and first($sana) = last($vasen.($i-1).alku)) 
then
       return yes;
     else

Samalla tuli sitten todetuksi, että ilmeisesti kukaan muu kuin minä ei 
käyttänyt tuota voikkotest-ohjelmaa viimeisenä viikkona ennen julkaisua, 
koska tuo yllä oleva korjaus oli olemassa vain omalla koneellani, ja se olisi 
tarvittu kaikkien testitapausten läpimenoon ...

Harri



More information about the devel mailing list