giellalt / template-lang-und

A template repo for new languages, as well as to update existing language repos with.
https://giellalt.uit.no/
GNU Lesser General Public License v3.0
2 stars 1 forks source link

transcriptor compilation fails for many languages #26

Closed Trondtr closed 1 month ago

Trondtr commented 1 month ago

Today I encountered vep, yesterday several others (will have to recheck). The error is:

HXFST    .generated/transcriptor-date-digit2text.filtered.hfst
libc++abi: terminating due to uncaught exception of type TransducerTypeMismatchException
/bin/sh: line 1: 13912 Done                    /usr/bin/printf "define Lex [   @\"../filters/remove-usage-tags.hfst\" .o. @\".generated/transcriptor-abbrevs2text.hfst\" .o. @\"../filters/remove-usage-tags.hfst\".i ] @\"../orthography/spellrelax-tags.compose.hfst\" ;\n define spellrelax @\"../orthography/spellrelax-with-tags.compose.hfst\" ;\n read regex Lex .o. spellrelax ;\n invert net\n save stack .generated/transcriptor-text2abbrevs.filtered.hfst\n quit\n"
     13914 Abort trap: 6           | /usr/local/bin/hfst-xfst -p -q --format=openfst-tropical
make[3]: *** [.generated/transcriptor-text2abbrevs.filtered.hfst] Error 134
make[3]: *** Waiting for unfinished jobs....
libc++abi: terminating due to uncaught exception of type TransducerTypeMismatchException
/bin/sh: line 1: 13913 Done                    /usr/bin/printf "read regex @\"../filters/remove-usage-tags.hfst\" .o. @\"../filters/remove-NA-strings.hfst\" .o. @\"../filters/remove-NG-strings.hfst\" .o. @\".generated/transcriptor-abbrevs2text.hfst\" .o. @\"../filters/remove-NG-strings.hfst\".i .o. @\"../filters/remove-usage-tags.hfst\".i ;\n save stack .generated/transcriptor-abbrevs2text.filtered.hfst\n quit\n"

etc. with all in all 8 x Abort trap: 6.

snomos commented 1 month ago

All errors of type TransducerTypeMismatchException are due to FST files of different types being composed (e.g. foma type composed with sfst type). It will never work, and this is nothing new. The correct solution in these cases is to run make clean, and then make. make clean will delete all generated FST files, and force a rebuild of everything, thus also cleaning out FST's of a wrong type.