summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2015-01-19Translating linearization functions to Haskell: move a common record type to ↵hallgren
PGF.Haskell Move the Haskell representation of the common linearization type {s:T} to the shared module PGF.Haskell, so that the same overloaded projection function proj_s can be used for all concrete syntaxes.
2015-01-14Translating linearization functions to Haskell: better treatment of special ↵hallgren
tokens Common code has been lifted out from the generated Haskell modules to an auxiliary module PGF.Haskell, which is currently included in the regular PGF library, although it is independent of it and probably belongs in a separate library. The type Str used by linearization functions is now based on a token type Tok, which is defined in PGF.Haskell. PGF.Haskell.Tok is similar to the type GF.Data.Str.Tok, but it has constructors for the special tokens BIND, SOFT_BIND and CAPIT, and there is a function fromStr :: Str -> String that computes the effects of these special tokens.
2015-01-08Translating linearization functions to Haskell: add support for pre {...}hallgren
STILL TODO: - variants - better treatment of special tokens BIND, SOFT_BIND & CAPIT.
2015-01-07Translating linearization functions to Haskell: use qualified names to avoid ↵hallgren
name clashes All languages in the Phasebook can now be converted to compilable Haskell code. STILL TODO: - variants - pre { ... }
2015-01-06Translating linearization functions to Haskell: significant code size reductionshallgren
+ Instead of including lists of parameter values generated by GF, generate code to enumerate parameter values (in the same order as GF). This seems to give a factor of 2-3 code size reduction in the Phrasebook (e.g. from 84MB to 25MB for Hin, from 338MB to 154MB for Fre). + Deduplicate table entries, i.e. convert "table [..,E,..,E,..,E,..]" into "let x = E in table [..,x,..,x,..,x,..]". This gives even more significant code size reduction in some cases, e.g. from 569MB to 15MB for PhrasebookFin. All phrasebook languages can now be converted to compilable Haskell code, except PhrasebookPes, which still has the name clash problem.
2015-01-06More work on translating linearization functions to Haskellhallgren
Many Phrasebook languages can now be converted to compilable Haskell code. Some languages (Fre, Hin, Snd, Urd) generate too much Haskell code to be practically useful (e.g. 338MB for Fre). One language (Fin) took too long to convert to Haskell. One language (Pes) has problems with name clashes in the generated Haskell code. STILL TODO: - variants - pre { ... } - reduce code duplication for large tables - generate qualified names to avoid name clashes
2015-01-05fix the reference counting for callbacks in Pythonkr.angelov
2014-12-29API for word alignment in the C runtime and in the Haskell bindingkr.angelov
2014-12-24more compact implementation for GuStringBufkr.angelov
2014-12-19bugfix and tiny optimization for callbacks from Haskellkr.angelov
2014-12-19haddock comments for parseWithHeuristicskr.angelov
2014-12-19added mkStr to the Haskell bindingkr.angelov
2014-12-19added mkApp to the Haskell bindingkr.angelov
2014-12-16fix in the Haskell bindingkr.angelov
2014-12-16forgot to export parseWithHeuristics from Haskellkr.angelov
2014-12-16change in the API for literalskr.angelov
The API in the C runtime as well as in the Haskell, Python and Java binding is changed. Now instead of adding the literal callbacks to the concrete syntax you need to supply them every time when you need to parse. The main reason is: - referentially transparent API for Haskell - when we start using memory mapped files we will not be allowed to change anything in the grammar data structures. At that point the old API would be impossible to use.
2014-12-11bump the version code in AndroidManifest.xmlkr.angelov
2014-12-11update the nerc for the changes in the grammarkr.angelov
2014-12-11updates in app help file, e.g. the app nameaarne
2014-12-11Work in progress on translating linearization functions to Haskellhallgren
The translation is currently good enough to translate all concrete syntaxes of the Foods and Letter grammars, and some concrete syntaxes of the Phrasebook grammar (e.g. PhrasebookEng & PhrasebookSpa works, but there are problems with e.g. PhrasebookSwe and PhrasebookChi) This functionality is enabled by running gf -make -output-format=haskell -haskell=concrete ... TODO: - variants - pre { ... } - eta expansion of linearization functions - record subtyping can still cause type errors in the Haskell code in some cases - reduce code large tables
2014-12-11GF.Grammar.Macros: generalize the type of collectOphallgren
New type: collectOp :: Monoid m => (Term -> m) -> Term -> m
2014-12-11GF.Server: remove some code duplicationhallgren
2014-12-11back to familiar you in Hindikr.angelov
2014-12-11update gf-translator.svgkr.angelov
2014-12-10edit the presentation imagekr.angelov
2014-12-10rename HLCompiler to GFTranslatorkr.angelov
2014-12-10added presentation image for the appkr.angelov
2014-12-09make sure that the app doesn't crash even if nonExist is used somewhere in ↵kr.angelov
the grammars
2014-12-09make sure that neither I nor I'm is recognized as name in Englishkr.angelov
2014-12-08bugfix for unknown wordskr.angelov
2014-12-08Haddock documentation: expose exportPGF, some other small improvementshallgren
2014-12-08restore the visualisation of abstract trees from the appkr.angelov
2014-12-08fix for the unknown wordskr.angelov
2014-12-08fix typokr.angelov
2014-12-08register the callback for the Symb categorykr.angelov
2014-12-08added a callback for unknown wordskr.angelov
2014-12-07some edits in app help fileaarne
2014-12-05Eliminate the record extension operator from the Value type returned by the ↵hallgren
partial evaluator It was used only in cases where a lock field needed to be added to a run-time variable, like e.g. in examples/phrasebook/SentencesTha.gf: lin PGreetingMale g = mkText (lin Text g) (lin Text (ss "ครับ")) | g ; PGreetingFemale g = mkText (lin Text g) (lin Text (ss "ค่ะ")) | g ; But lock fields are only meaningful during type checking and can safely be ignored in later passes.
2014-12-05fixes in app help file ; commented out fake TTS for Bul and Cat ; remove []_ ↵aarne
from output with unlinearized functions, so that speech doesn't get garbled.
2014-12-04quick reference text prepended to app help fileaarne
2014-12-03Wide Coverage Translation Demo web app: updated to use App12.pgfhallgren
2014-12-03Catalan in android app builder ; updated app document with Cat ; substitute ↵aarne
voice output for Bulgarian and Catalan ; replaced brackets in unknown words by capitalization (for better speech output ; this is experimental)
2014-12-01faster translation in the appkr.angelov
2014-12-01better color filter to indicate listeningkr.angelov
2014-12-01added visual feedback to indicate that the app is not listening anymorekr.angelov
2014-12-01fix in nordic.xmlkr.angelov
2014-12-01added special nordic keyboard for Finnish and Swedishkr.angelov
2014-12-01fix the last patchkr.angelov
2014-12-01a small optimization in the PGF parser which gives me ~5% speed upkr.angelov
2014-12-01fix in GNU lightning to enable the compilation of two of the the floating ↵kr.angelov
point operations.