| Age | Commit message (Collapse) | Author |
|
|
|
|
|
if their probability differ with less that 0.5
|
|
pasting text
|
|
word of a sentence
Keep the first letter in upper case if it is followed by more upper case
letters.
(Also remove some left over debugging output.)
|
|
|
|
with string literals
|
|
|
|
Currently Bul, Chi, Eng and Swe are marked as "fast" in the documentation.
|
|
|
|
|
|
Android app. Compiles and works on iPad retina but may crash and has known issues.
|
|
variables
|
|
|
|
This limit might still be to high to avoid excessive time/space use in the
parser for certain languages in the wide coverage translation grammar.
|
|
function to 4 by default
The limit can be changed with the -j flag
|
|
|
|
would gladly remove some code.
|
|
alignment API. This was causing problems on 64-bit machines
|
|
|
|
|
|
|
|
and Tha output
|
|
(and of course follow the target lang conventions)
|
|
|
|
With ghc-7.4 'import M hiding (x)' causes an error if M does not export x...
|
|
2 modules: Name clashes caused by Applicative-Monad change in Prelude
2 modules: Ambiguities caused by Foldable/Traversable in Prelude
2 modules: Backwards incompatible changes in time-1.5 for defaultTimeLocale
9 modules: {-# LANGUAGE FlexibleContexts #-} (because GHC checks inferred types
now, in addition to explicitly given type signatures)
Also silenced warnings about tab characters in source files.
|
|
|
|
+ Some additional simplifying rewrites.
+ Use an intermediate representation for Haskell types, for separation of
concerns and cleaner code.
+ Pretty printer layout tuning
+ Code cleanup.
|
|
Haskell code
Introduced an intermediate representation for the generated Haskell expressions.
This allows pretty printing concerns to be separated from conversion concerns,
and makes it easy to apply some simplifying rewrites to the generated
expressions, e.g.
[x] ++ [y] ==> [x,y]
pure f <*> x ==> f <$> x
f <$> pure x ==> pure (f x)
join (pure x) ==> x
|
|
|
|
By adding the flag -haskell=variants to the command line, GF will now generate
linearization functions in Haskell that support variants. Variants are
represented as lists in Haskell.
Variants inside pre { ... } expressions are still ignored.
TODO: apply some monad laws to generate more compact code (using an
intermediate representation of the generated Haskell code, instead of
pretty printing directly from the GF code).
|
|
|
|
|
|
Japanese uses the same lexer as Chinese, i.e. every character is a separate
token.
|
|
|
|
c-parse & c-translate web requests
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
STILL TODO:
- variants
- better treatment of special tokens BIND, SOFT_BIND & CAPIT.
|
|
name clashes
All languages in the Phasebook can now be converted to compilable Haskell
code.
STILL TODO:
- variants
- pre { ... }
|
|
+ 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.
|
|
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
|
|
|
|
|
|
|