summaryrefslogtreecommitdiff
path: root/bootstrap
Commit message (Collapse)AuthorAgeFilesLines
* Change -O1 compiler to use baseline and also resolve primitivesAndy Wingo2020-06-011-6/+1
| | | | | | | | * bootstrap/Makefile.am (GUILE_OPTIMIZATIONS): Change to just -O1. * module/language/tree-il/spec.scm (choose-compiler): Use CPS for -O2 and higher. * module/system/base/optimize.scm (available-optimizations): CPS for -O2 and higher, but -Oresolve-primitives now at -O1 also.
* Switch to baseline compiler for bootstrap/Andy Wingo2020-05-111-1/+1
| | | | | * bootstrap/Makefile.am (GUILE_OPTIMIZATIONS): Add -Ono-cps so that we use the baseline compiler when bootstrapping.
* Warning and optimization levels always small integersAndy Wingo2020-05-081-1/+1
| | | | | | | | | | | | | * module/language/tree-il/analyze.scm (make-analyzer): Expect an int for optimization level. * module/scripts/compile.scm (%options, show-warning-help): No more -Wnone / Wall; use -W0 or -W9 instead. * module/system/base/compile.scm (level-validator): Validate small int. (compute-analyzer, add-default-optimizations): Likewise. * test-suite/tests/optargs.test (without-compiler-warnings): * test-suite/tests/tree-il.test (call-with-warnings): Parameterize level to 0, not #f. * bootstrap/Makefile.am (GUILE_WARNINGS): Use -W0, not -Wnone.
* Wire up simplified warning levels in "guild compile"Andy Wingo2020-05-081-2/+2
| | | | | | | | | | | | * am/guilec (GUILE_WARNINGS): * am/bootstrap.am (GUILE_WARNINGS): Explictly default to -W1. * bootstrap/Makefile.am (GUILE_WARNINGS): Set to -Wnone, as the meaning of "no -W flags" has changed to be effectively -W1. * module/scripts/compile.scm (%options): Adapt to parse -Wnone, -W2, and so on. (parse-args): Default to (default-warning-level). (show-warning-help): Add more warning help. (compile): Pass #:warning-level.
* Bootstrap optimizationMikael Djurfeldt2019-05-231-2/+6
| | | | | | * bootstrap/Makefile.am: Build both eval.go and psyntax-pp.go before the rest of the .go files so that they are handled by a fast macro expander. This saves time for a parallel build.
* Add resolve-primitives pass back to bootstrapAndy Wingo2018-01-051-2/+7
| | | | | * bootstrap/Makefile.am (GUILE_OPTIMIZATIONS): Blah, add -Oresolve-primitives.
* Distribute prebuilt bootstraps for common hostsAndy Wingo2016-01-291-130/+3
| | | | | | | | | | | | | | | | | * am/bootstrap.am: New file, factored out of bootstrap/Makefile.am. * bootstrap/Makefile.am: Use bootstrap.am. * prebuilt/Makefile.am: * prebuilt/i686-pc-linux-gnu/Makefile.am: * prebuilt/mips-unknown-linux-gnu/Makefile.am: * prebuilt/x86_64-unknown-linux-gnu/Makefile.am: New files. * configure.ac: Output the prebuilt/ makefiles. * Makefile.am: Descend into prebuilt/ when making dist. * meta/uninstalled-env.in: Arrange to put prebuilt/ in the beginning of the GUILE_LOAD_COMPILED_PATH. Also fix a case where bootstrap/ wasn't being correctly added to the load path.
* Don't serialize build through psyntax-pp.scmAndy Wingo2016-01-031-6/+4
| | | | | | | | * bootstrap/Makefile.am: Don't serialize the build through psyntax-pp.scm. On a multicore make, this will result in higher total CPU time as multiple processes use an interpreted expander, but lower total build time, as all processes will take approximately the same time to load and run the compiler.
* Disable warnings on bootstrap buildAndy Wingo2015-12-021-1/+4
| | | | | * bootstrap/Makefile.am (GUILE_WARNINGS): Don't enable warnings for the bootstrap build, as they probably slow things down.
* Add new pass to specialize "add" into "fadd" where possibleAndy Wingo2015-11-111-0/+1
| | | | | | | | | * module/language/cps/specialize-numbers.scm: New pass, to turn "add" into "fadd", and similarly for sub, mul, and div. * module/language/cps/optimize.scm: * module/Makefile.am: * bootstrap/Makefile.am: Wire up the new pass.
* Fix distcheck issuesAndy Wingo2015-10-251-1/+1
| | | | | * bootstrap/Makefile.am: * libguile/Makefile.am: Fix distcheck issues.
* Bootstrap makefile tweaksAndy Wingo2015-10-231-3/+7
| | | | | | | | * bootstrap/Makefile.am (.scm.go): Fix -L options to point to /module. (SOURCES): Move up psyntax-pp.scm. Sadly a bug while I was developing the bootstrap makefile meant that there was a stale psyntax-pp.go from module/ that the build was picking up, leading to invalid bootstrap timing measurements.
* Use a bootstrapped -O0 compiler to compile the -O2 GuileAndy Wingo2015-10-231-0/+152
This reduces total build time to around 30 minutes or so. * Makefile.am (SUBDIRS): Visit bootstrap/ before module/. * bootstrap/Makefile.am: New file. * configure.ac: Generate bootstrap/Makefile. * meta/uninstalled-env.in (top_builddir): Add bootstrap/ to the GUILE_LOAD_COMPILED_PATH. * module/Makefile.am: Simplify to just sort files in alphabetical order; since bootstrap/ was already compiled, we don't need to try to optimize compilation order. Although the compiler will get faster as more of the compiler itself is optimized, this isn't a significant enough effect to worry about.