summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2015-10-02GF.Interactive2: extension FlexibleContexts is needed for GHC 7.10 compatibilityhallgren
2015-09-30cc -trace: don't try to show the bodies of lambda abstractionshallgren
This triggers evaluation of terms with free variables, which the partial evaluator isn't equipped to handle. Reported by Aarne.
2015-09-30added bracketedLinearizeAll in Pythonkrasimir
2015-09-29GF source lexer: allow numeric character escapes in string literalshallgren
This makes the output from PGF.showExpr (and other Haskell code that uses the Prelude.show function to show strings) parsable as GF source code in more cases. This is a workaround for the problem that GHC's implementation of the show function uses numeric escapes for printable non-ASCII characters, e.g. show "dålig" = "d\229lig"...
2015-09-28Preliminary new shell feature: cc -trace.hallgren
You can now do things like cc -trace mkV "debug" to see a trace of all opers with their arguments and results during the computation of mkV "debug".
2015-09-14haskell-bind/SG.hsc: fix unsafePerformIO import problem with ghc>=7.8hallgren
2015-09-11Remove debug output introduced in previous patchhallgren
Oops.
2015-09-11Parallel compilation: "gf -make -j" and "gf -make -j=n" now work as expectedhallgren
* "gf -make -j=n" uses n parallel threads. * "gf -make -j" adapts to the number of processors in the system. This mimics how "cabal build -j" and "ghc --make -j" works. Support for this is implemented in the new module GF.System.Concurrency and it depends on the function Control.Concurrent.setNumCapabilities, which is only available in GHC>=7.6 (base>=4.6). GF can still be compiled with GHC<7.6, but then you have to use +RTS -N -RTS to take advantage of multicore processors. To detect the number of processors in the system, the code depends on a foreign import of a C function in the GHC run-time system.
2015-09-11fix the debug mode in the tree generator in the C runtimekrasimir
2015-09-10PGF2.Expr: a fix for ghc-7.6hallgren
Apparently Foreign.unsafePerformIO is not just a re-export of System.IO.Unsafe.unsafePerformIO (or vise versa), it is a different function, so you get an ambiguity if you import both.
2015-09-08add readTriple in the Haskell bindingkrasimir
2015-09-08bugfix in the parserkrasimir
2015-09-04fix the metadata for sg databaseskrasimir
2015-09-04storage for literals in libsgkrasimir
2015-09-04src/pgf-binary: reimplementation of GF's customized Data.Binary on top of ↵thomas
the standard binary packages This reduces the amount of duplicated code from 2400 to 490. No code from data-binary-ieee754 is duplicated. The module is called PGF.Data.Binary instead of Data.Binary. It is not in use yet.
2015-09-04libsg is now accessible on androidkrasimir
2015-09-04API for triple queries from Javakrasimir
2015-09-04the Haskell binding now covers everything in the libsg APIkrasimir
2015-09-04the new triples API in libsg now always works with expressionskrasimir
2015-09-03GF shell: write_file now writes one tree per linehallgren
This compensates for other changes that removed line breaks. Maybe it should have a -lines options like ps and rf?
2015-09-03PGF2.Expr fixeshallgren
It needs to be listed in gf.cabal unsafePerformIO is only exported from System.IO.Unsafe, starting with ghc-7.8
2015-09-03Java API for opening/closing SG databaseskrasimir
2015-09-03bugfixes in libsgkrasimir
2015-09-03the Eclipse project for the Java binding is now replaced with a simple Makefilekrasimir
2015-09-03silence compilation warnings in the Java bindingkrasimir
2015-09-02API for transactions in libsgkrasimir
2015-09-02added the minimal Haskell API for storing expressions/triples in the ↵krasimir
semantic graph
2015-09-02bugfix in libsgkrasimir
2015-09-02Wide coverage translation demo: make it easier to use with different grammarshallgren
2015-09-01added code for visualization of the sematic graph in the app. The code is ↵krasimir
there but the menu item for activating it is not there yet since the functionality is not complete
2015-08-31GF.Infra.SIO: The SIO monad now supports putStr in addition to putStrLnhallgren
Also included some unrelated minor changes.
2015-08-31still partial implementation for complex queries in libsg, and added sg.h ↵krasimir
which I had forgotten to include in darcs
2015-08-28Comment out some dead code found with -fwarn-unused-bindshallgren
Also fixed some warnings and tightened some imports
2015-08-27query for triples and cleaner APIkrasimir
2015-08-26GF shell: change parse & linearize to obtain useful results from p|l and l|p ↵hallgren
in more cases These changes are inspired by the gf -cshell implementation of these commands. The output of the linearize command has been changed to remove superfluous blank lines and commas, and deliver the result as a list of strings instead of a single multi-line string. This makes it possible to use -all and pipe the results to the parse command. This also means that with -treebank -all, the language tag will be repeated for each result from the same language. The parse command, when trying to parse with more than one language, would "forget" other results after a failed parse, and thus not send all successful parses through the pipe. For example, if English is not the first language in the grammar, p "hello" | l would output nothing, instead of translations of "hello" to all languages, forcing the user to write p -lang=Eng "hello" | l instead, to get the expected result. The cause of this behaviour was in the function fromParse, which was rather messy, so I assume it is not intentional, but the result of a programming mistake at some point. The fromParse function has now been refactored from a big recursive function into fromParse opts = foldr (joinPiped . fromParse1 opts) void where the helper functions fromParse1 deals with a single parse result and joinPiped combines multiple parse results.
2015-08-24added libsg in the C runtimekrasimir
2015-08-21retrieval of a triplekrasimir
2015-08-21API for storing triples in the semantic graphkrasimir
2015-08-21GF shell bug fix: visualize_parse didn't accept the -lang flaghallgren
Even though the -lang flag was handled in the implementation, it was not documented, and GF.Command.Interpreter rejects undocumented flags: option not interpreted: lang This must be a fairly old bug, so it suggests that the vp command isn't used much...
2015-08-21GF -cshell: implement visualize_parsehallgren
Supported options and flags: -lang -format -view None of the rendering options available in the Haskell run-time are supported.
2015-08-21add a type signature in GF.Interactive2 to make ghc-7.6.3 happykrasimir
2015-08-21gf -cshell: implement visualize_treehallgren
But the following options are not supported: -mk -nocats -nofuns
2015-08-20gf -cshell: implement a subset of print_grammar and abstract_infohallgren
pg supports only the -funs, -cats and -langs output modes. ai IDENTIFIER shows info about a category or a function. ai can not type check and refine metavariables in expressions.
2015-08-20PGF2: export BindType(..) and two new functions: showType & categorieshallgren
showType :: Type -> String categories :: PGF -> [Cat] But both are implemented as quick hacks: categories is implemented by listing all functions and taking the target categories from their types. showType uses ppType copied & modified from PGF.Type, and needs a ppExpr, which is currently implemented by wrapping showExpr... TODO: need something correpsonding to PGF.categoryContext.
2015-08-20add the initial sketches of the semantic graph storage krasimir
2015-08-18gf -cshell: linearize: implement options -all -list -treebankhallgren
Options -all and -list use PGF2.linearizeAll, which lists all variants, but not all forms... Also, there is no attempt to be compatible with the output from the Haskell run-rime shell, which produces superfluous blank lines (-all) or commas (-list), and mixes tagged and untagged lines (-treebank -all).
2015-08-18GF shell: restore the eh command to working order and document ithallgren
Also, when the command line parser fails, append the problematic command line to the error message "command not parsed".
2015-08-17GF shell: add the start options to GFEnv, turn "reload" into an ordinary commandhallgren
2015-08-13GF Shell: "ph | wf -file=foo.gfs" now works as advertisedhallgren
The print_history command was among the commands implemented in an ad-hoc way instead of being handled by the command line interpreter, which means it could not be used in a pipe, as in the example in the help info. The refactoring in the previous patch made this old bug easy to fix. Also fixed a bug in the "empty" command, introduced when moving the PGF from CommandEnv to GFEnv. TODO: fix the undocumented eh command. A comment in the help info for print_history, and some commented out old code, suggest that eh means "execute_history", but at present it does nothing...
2015-08-13GF Shell: refactoring for improved modularity and reusability:hallgren
+ Generalize the CommandInfo type by parameterizing it on the monad instead of just the environment. + Generalize the commands defined in GF.Command.{Commands,Commands2,CommonCommands,SourceCommands,HelpCommand} to work in any monad that supports the needed operations. + Liberate GF.Command.Interpreter from the IO monad. Also, move the current PGF from CommandEnv to GFEnv in GF.Interactive, making the command interpreter even more generic. + Use a state monad to maintain the state of the interpreter in GF.{Interactive,Interactive2}.