Commit Graph

3896 Commits

Author SHA1 Message Date
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
kr.angelov 6d79274b2f fix in gu_mmap_pool for Android 2014-10-09 13:21:56 +00:00
kr.angelov 58e1eb33fc fix for lightning for ARM 2014-10-09 13:17:01 +00:00
kr.angelov 2892e6b8c8 remove the pgf-service util which is obsolete anyway 2014-10-09 11:28:56 +00:00
kr.angelov 4ac5902fc9 replace the hash maps in the abstract syntax with binary search tables 2014-10-09 08:38:55 +00:00
kr.angelov a94ba9b888 add the const modifier to the key in the two procedures for binary search in libgu 2014-10-09 07:25:26 +00:00
kr.angelov 36bbee588f use MAP_FIXED in gu_mmap_pool 2014-10-08 19:43:08 +00:00
kr.angelov cd6b92867a an experimental memory mapped pool. still not in use 2014-10-08 18:28:51 +00:00
hallgren d0441cf847 GF.Infra.Options: change from String to Int in the type of optJobs 2014-10-08 16:57:04 +00:00
kr.angelov 23642fbb90 now we statically allocate closures for all top-level functions and all nullary constructors. closures are dynamically allocated only for CAFs. this reduces memory use and time to allocate dynamic closures 2014-10-08 12:57:29 +00:00
kr.angelov e9a871db7f a missing case in instruction SET 2014-10-07 20:05:05 +00:00
kr.angelov 297403b350 bugfix in the byte code compiler 2014-10-07 20:03:54 +00:00
kr.angelov e7404c8f7a added a missing case for PUSH instruction with a global closure 2014-10-07 11:46:38 +00:00
kr.angelov 9e493031b2 the indirection should be done in the evaluate_expr_thunk gate instead of in the pgf_evaluate_expr_thunk function. this ensures lazyness 2014-10-07 07:12:40 +00:00
kr.angelov 8d09f62efc using instruction RET was wrong; now use EVAL 2014-10-06 15:57:42 +00:00
kr.angelov 2bc0734b6e fix the order in which arguments are stored in the mk_const gate 2014-10-06 12:31:39 +00:00
kr.angelov f5041fa67b push a stack frame around recursive calls to guarantee that a nested call to a failing function will not crash 2014-10-06 09:21:08 +00:00
kr.angelov b07a2652d8 partial implementation for the FAIL instruction 2014-10-06 09:04:25 +00:00
kr.angelov dee64838f4 bugfix in pgf_evaluate_expr_thunk 2014-09-30 17:34:29 +00:00
kr.angelov 0bdd599972 fix pgf_value2expr for partial applications 2014-09-30 13:46:46 +00:00
kr.angelov 8801915523 enough fixes to get the JIT compiler compile for ARM. It is still broken if you try to use it 2014-09-30 12:39:31 +00:00
kr.angelov f124723236 add evaluator.c in Android.mk 2014-09-30 12:37:18 +00:00