1
0
forked from GitHub/gf-core
Commit Graph

3817 Commits

Author SHA1 Message Date
kr.angelov
4db6e30b54 a more efficient tail call by using the new TUCK instruction 2014-10-30 13:09:50 +00:00
hallgren
fd1c6a0a17 Use terminfo to highlight warnings and errors in blue and red
This replaces the hardwired ANSI escape codes that were accidentally included
in a previous patch.

This adds a dependency on terminfo, but this should be unproblematic, since
haskeline already depends on the same underlying C library.

The color highlighting is omitted on Windows.
2014-10-28 19:04:48 +00:00
hallgren
14850cd7f4 Show paths relative to the current directory in progress reports
It is much nicer to see something like

- compiling FoodsSwe.gf...   write file FoodsSwe.gfo
- compiling FoodsTha.gf...   write file FoodsTha.gfo
- compiling FoodsTsn.gf...   write file FoodsTsn.gfo
- compiling FoodsTur.gf...   write file FoodsTur.gfo
- compiling FoodsUrd.gf...   write file FoodsUrd.gfo
linking ... OK
Writing Foods.pgf...

instead of

- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsSwe.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsSwe.gfo
- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsTha.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsTha.gfo
- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsTsn.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsTsn.gfo
- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsTur.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsTur.gfo
- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsUrd.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsUrd.gfo
linking ... OK
Writing Foods.pgf...
2014-10-28 15:02:29 +00:00
hallgren
5480c9b4dc A couple of haddock documentation improvements 2014-10-28 14:58:43 +00:00
kr.angelov
77d3775385 an explicit SAVE instruction 2014-10-26 11:40:12 +00:00
kr.angelov
97db991979 comment out a few assertions in bits.h. this code is run too often to have explicit assertions 2014-10-24 11:15:40 +00:00
kr.angelov
a56b4cae8c make it possible to specify the initial size of a map in libgu 2014-10-24 09:17:22 +00:00
kr.angelov
34867f4019 simplify gu/map 2014-10-24 08:56:39 +00:00
kr.angelov
9276b7567d fix memory leak in the pgf-parse tool 2014-10-24 08:42:32 +00:00
kr.angelov
15744379a8 add extern declarations for all inline functions in seq.h. this ensures that everything works even when the compiler's optimizations are off 2014-10-24 08:26:58 +00:00
kr.angelov
b4046e1797 a simple optimization in cmp_item_prob with great effect on the parser's speed 2014-10-23 21:22:22 +00:00
kr.angelov
0c6ba90dd8 remove some deadcode in gu/seq.h 2014-10-23 21:21:21 +00:00
kr.angelov
9314b5b392 inline a number of functions in gu/seq.c. this has a noticeable effect on the parser's speed 2014-10-23 21:19:29 +00:00
kr.angelov
e788398bf7 a cosmetic optimization in mem.c 2014-10-23 15:45:14 +00:00
kr.angelov
f421dd4c68 fix the debug mode in the reasoner 2014-10-23 08:15:12 +00:00
kr.angelov
075d45dc19 fix warning in ucs.c 2014-10-23 07:44:41 +00:00
hallgren
11ec4bc655 Various small changes for improved documentation 2014-10-22 15:45:52 +00:00
kr.angelov
3a95d733dd CAPIT is now naturally supported in the C runtime 2014-10-22 15:05:55 +00:00
kr.angelov
9562a88b28 add Unicode classification routines to libgu. ported from the base package in Haskell. 2014-10-22 14:36:58 +00:00
kr.angelov
0da379f97b an explicit PUSH_FRAME instruction 2014-10-22 14:11:41 +00:00
kr.angelov
54b9b89921 make the fields of BracketedString in the Python binding read/write 2014-10-22 12:18:07 +00:00
hallgren
1048a89ca7 ModuleName and Ident are now distinct types
This makes the documentation clearer, and can potentially catch more
programming mistakes.
2014-10-21 19:20:31 +00:00
hallgren
491e8b2bb8 Renaming SourceGrammar to Grammar and similarly for some related types
Included renamings:

	SourceGrammar -> Grammar
	SourceModule -> Module
	SourceModInfo -> ModuleInfo
	emptySourceGrammar -> emptyGrammar

Also introduces a type synonym (which might be good to turn into a newtype):

	type ModuleName = Ident

The reason is to make types like the following more self documenting:

	type Module = (ModuleName,ModuleInfo)
	type QIdent = (ModuleName,Ident)
2014-10-21 14:42:31 +00:00
aarne
fe6d2738a0 use of 'head' in TypeCheck/RConcrete created an uncomprehensible error message. Now checking for the emptiness of the list concerned, so that the error can be found. 2014-10-20 20:06:46 +00:00
hallgren
1e0d078ae2 Some small documentation improvements 2014-10-20 19:45:43 +00:00
hallgren
add8f9285b type IOE a = IO a
IOE used to be a monad with extra error handling built on top of the IO monad,
But the IO monad already supports error handling, so this construction was a
superfluous.

The new 'instance ErrorMonad IOE' is defined to preserve the previous error
handling behaviour, i.e. the function 'handle' only catches errors thrown with
'raise' (or 'fail') and not other errors in the IO monad.
2014-10-20 19:32:46 +00:00
hallgren
46e18b9291 Remove some dead code
* The following modules are no longer used and have been removed completely:

	GF.Compile.Compute.ConcreteLazy
	GF.Compile.Compute.ConcreteStrict
	GF.Compile.Refresh

* The STM monad has been commented out. It was only used in
  GF.Compile.SubExpOpt, where could be replaced with a plain State monad,
  since no error handling was needed. One of the functions was hardwired to
  the Err monad, but did in fact not use error handling, so it was turned
  into a pure function.

* The function errVal has been renamed to fromErr (since it is analogous to
  fromMaybe).

* Replaced 'fail' with 'raise' and 'return ()' with 'done' in a few places.

* Some additional old code that was already commented out has been removed.
2014-10-20 15:05:43 +00:00
kr.angelov
4e533b7253 get rid of gu/str.(c|h) 2014-10-20 07:50:42 +00:00
aarne
0025e078ea (un)lexmixed: added the other math environments than $ used in latex 2014-10-19 17:43:39 +00:00
aarne
2cda0ea770 ps -lines preserves line-by-line structure when preprocessing files for parsing line by line 2014-10-17 15:50:03 +00:00
aarne
1550300c80 one general case in dealing with backslash in latex lexing is enough 2014-10-17 15:49:23 +00:00
kr.angelov
70bf9f78b1 the C runtime now supports reading and writing expressions with indexed meta variables. The type checker generates fresh indices 2014-10-17 09:27:37 +00:00
aarne
d30aaa6547 unlexing latex code: no space between closing $ and punctuation 2014-10-17 07:04:50 +00:00
aarne
7ec778d747 lexer for latex code: don't separate backslash from the macro name that it marks 2014-10-17 06:40:06 +00:00
hallgren
c3e1d65fc1 Some work on the haddock documentation 2014-10-16 16:28:54 +00:00
hallgren
cd0f887ad9 Rename src/programs/gf.hs to gf-main.hs to avoid confusing GHC
It appears that GHC can't keep GF.hs and gf.hs apart on systems with case
insensitive file names.
2014-10-16 15:21:00 +00:00
hallgren
ede4a5a4c2 Turn the GF compiler into a library. Main program is now in src/programs/gf.hs
The module src/compiler/GF.hs now serves as a prelimiary compiler API. It just
exports a selection of functions and types from the compiler.

Haddock documentation can be generated with

	cabal haddock --hyperlink-source

Also bumbed the version number to 3.6.10.
2014-10-16 15:00:49 +00:00
hallgren
f109b44c97 More haddock documentation improvements 2014-10-16 14:03:57 +00:00
kr.angelov
fd8e4d3dd7 bugfix in the parser for abstract expressions in the C runtime 2014-10-16 11:40:47 +00:00
kr.angelov
76a448e26f finally proper stack unwind in the evaluator 2014-10-16 10:00:32 +00:00
hallgren
1d4215b822 Rename modules GFI, GFC & GFServer...
... to GF.Interactive, GF.Compiler & GF.Server, respectively.
2014-10-15 21:04:29 +00:00
hallgren
e0c0ff0020 Fixes for the haddock documentation 2014-10-15 20:42:36 +00:00
kr.angelov
6aa0fd2590 the compiler now allows + to be used as a floating point addition in the abstract syntax 2014-10-14 11:15:18 +00:00
kr.angelov
d42ffaa546 yet another bugfix in the byte code 2014-10-14 10:39:28 +00:00
kr.angelov
bc8cb8e9d7 another bugfix in the byte code generation 2014-10-14 09:43:43 +00:00
kr.angelov
e8b81c145b bugfix in the bytecode generator 2014-10-14 09:27:24 +00:00
kr.angelov
0e91de3b5f simplify jit_bare_ret 2014-10-14 09:09:26 +00:00
kr.angelov
4efb2d5a22 Prelude.CAPIT is now a built-in primitive. It still generates &| in the Haskell runtime but will be intepreted in the C runtime 2014-10-09 19:34:12 +00:00
kr.angelov
57f7b61c6b throw away the long obsolete runtime type information in the C runtime 2014-10-09 13:44:26 +00:00
kr.angelov
afd5886cdc fix two warnings in mem.c 2014-10-09 13:22:39 +00:00