Add lowmem flag.

This disables optimizations in select modules that cause
problems compiling in lower memory environments.

(LaTeX reader, LaTeX and Markdown writers)

Performance is 10x slower for reading LaTeX, 20% slower for
writing Markdown and LaTeX.
This commit is contained in:
John MacFarlane
2021-03-01 19:29:41 -08:00
parent 26c496d936
commit f6edde944e
5 changed files with 25 additions and 2 deletions
+6 -2
View File
@@ -296,8 +296,12 @@ You will need cabal version 2.0 or higher.
- `embed_data_files`: embed all data files into the binary (default no).
This is helpful if you want to create a relocatable binary.
- `https`: enable support for downloading resources over https
(using the `http-client` and `http-client-tls` libraries).
- `lowmem`: disable optimization on a few modules that take
a lot of memory to compile. Use this flag if compiling
pandoc fails with out of memory errors.
- `trypandoc`: build the `trypandoc` executable (a CGI web
app).
3. Build:
+8
View File
@@ -392,6 +392,12 @@ flag embed_data_files
Description: Embed data files in binary for relocatable executable.
Default: False
flag lowmem
Description: Disable optimization on three modules that need a lot
of memory to compile. Set this flag if your pandoc
build is failing due to out of memory errors.
Default: False
flag trypandoc
Description: Build trypandoc cgi executable.
Default: False
@@ -505,6 +511,8 @@ library
if flag(embed_data_files)
cpp-options: -DEMBED_DATA_FILES
other-modules: Text.Pandoc.Data
if flag(lowmem)
cpp-options: -DLOWMEM
hs-source-dirs: src
exposed-modules: Text.Pandoc,
+3
View File
@@ -1,4 +1,7 @@
{-# LANGUAGE CPP #-}
#ifdef LOWMEM
{-# OPTIONS_GHC -O0 #-}
#endif
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternGuards #-}
{-# LANGUAGE ScopedTypeVariables #-}
+4
View File
@@ -1,3 +1,7 @@
{-# LANGUAGE CPP #-}
#ifdef LOWMEM
{-# OPTIONS_GHC -O0 #-}
#endif
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE PatternGuards #-}
+4
View File
@@ -1,3 +1,7 @@
{-# LANGUAGE CPP #-}
#ifdef LOWMEM
{-# OPTIONS_GHC -O0 #-}
#endif
{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}