hallgren
3bfcfa157d
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
f6441b2292
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
a9bc116052
Some small documentation improvements
2014-10-20 19:45:43 +00:00
hallgren
8337a19b40
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
55aebadd5a
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
bb1f0f3368
get rid of gu/str.(c|h)
2014-10-20 07:50:42 +00:00
aarne
84bce336fd
(un)lexmixed: added the other math environments than $ used in latex
2014-10-19 17:43:39 +00:00
aarne
6c2e0d5ce2
ps -lines preserves line-by-line structure when preprocessing files for parsing line by line
2014-10-17 15:50:03 +00:00
aarne
5c862a3c7b
one general case in dealing with backslash in latex lexing is enough
2014-10-17 15:49:23 +00:00
kr.angelov
3f11f3d602
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
2caf6fa125
unlexing latex code: no space between closing $ and punctuation
2014-10-17 07:04:50 +00:00
aarne
42cfacbf86
lexer for latex code: don't separate backslash from the macro name that it marks
2014-10-17 06:40:06 +00:00
hallgren
6375bacc73
Some work on the haddock documentation
2014-10-16 16:28:54 +00:00
hallgren
5a641ebe73
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
2e2e7acf12
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
c924491289
More haddock documentation improvements
2014-10-16 14:03:57 +00:00
kr.angelov
c0ebbc4edf
bugfix in the parser for abstract expressions in the C runtime
2014-10-16 11:40:47 +00:00
kr.angelov
26ad164cec
finally proper stack unwind in the evaluator
2014-10-16 10:00:32 +00:00
hallgren
b70dba87ba
Rename modules GFI, GFC & GFServer...
...
... to GF.Interactive, GF.Compiler & GF.Server, respectively.
2014-10-15 21:04:29 +00:00
hallgren
393dde2eb9
Fixes for the haddock documentation
2014-10-15 20:42:36 +00:00
kr.angelov
ac288386c4
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
b5cc77aea1
yet another bugfix in the byte code
2014-10-14 10:39:28 +00:00
kr.angelov
37bd8dd9fd
another bugfix in the byte code generation
2014-10-14 09:43:43 +00:00
kr.angelov
f4dc2c0b6e
bugfix in the bytecode generator
2014-10-14 09:27:24 +00:00
kr.angelov
1c2e02ad50
simplify jit_bare_ret
2014-10-14 09:09:26 +00:00
kr.angelov
f8b73d593c
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
86e9acc7a7
throw away the long obsolete runtime type information in the C runtime
2014-10-09 13:44:26 +00:00
kr.angelov
8e3ed825a8
fix two warnings in mem.c
2014-10-09 13:22:39 +00:00
kr.angelov
b905558ce8
fix in gu_mmap_pool for Android
2014-10-09 13:21:56 +00:00
kr.angelov
397276defd
fix for lightning for ARM
2014-10-09 13:17:01 +00:00
kr.angelov
3e49a1cf73
remove the pgf-service util which is obsolete anyway
2014-10-09 11:28:56 +00:00
kr.angelov
6c86e7fa91
replace the hash maps in the abstract syntax with binary search tables
2014-10-09 08:38:55 +00:00
kr.angelov
84b257e85c
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
a9a781e4a0
use MAP_FIXED in gu_mmap_pool
2014-10-08 19:43:08 +00:00
kr.angelov
f178be5405
an experimental memory mapped pool. still not in use
2014-10-08 18:28:51 +00:00
hallgren
539f0880a3
GF.Infra.Options: change from String to Int in the type of optJobs
2014-10-08 16:57:04 +00:00
kr.angelov
9c2f71b07a
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
67781996b6
a missing case in instruction SET
2014-10-07 20:05:05 +00:00
kr.angelov
35333385b6
bugfix in the byte code compiler
2014-10-07 20:03:54 +00:00
kr.angelov
e98d61b7b7
added a missing case for PUSH instruction with a global closure
2014-10-07 11:46:38 +00:00
kr.angelov
de1b372ef7
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
13c7721bc5
using instruction RET was wrong; now use EVAL
2014-10-06 15:57:42 +00:00
kr.angelov
af7feea385
fix the order in which arguments are stored in the mk_const gate
2014-10-06 12:31:39 +00:00
kr.angelov
a50315396f
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
889c0f3df4
partial implementation for the FAIL instruction
2014-10-06 09:04:25 +00:00
kr.angelov
4e00834c68
bugfix in pgf_evaluate_expr_thunk
2014-09-30 17:34:29 +00:00
kr.angelov
f5da57056c
fix pgf_value2expr for partial applications
2014-09-30 13:46:46 +00:00
kr.angelov
312d4ff52e
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
b7798f9348
add evaluator.c in Android.mk
2014-09-30 12:37:18 +00:00
kr.angelov
f25b45e13d
fix in reader.h for compiling jpgf.c
2014-09-30 11:25:27 +00:00