summaryrefslogtreecommitdiff
path: root/guix/memoization.scm
Commit message (Collapse)AuthorAge
* memoization: Add profiling support.Ludovic Courtès2017-12-12
| | | | | | | | | | * guix/memoization.scm (%memoization-tables): New variable. (%make-hash-table*, show-memoization-tables): New procedures. (make-hash-table*): New macro. Add top-level call to 'register-profiling-hook!'. (memoize): Adjust to pass the resulting procedure to 'make-hash-table*'. (%mlambda): Likewise.
* memoization: (mlambda () ...) allows for inner 'define'.Ludovic Courtès2017-09-03
| | | | | | | Previously (mlambda () (define foo 2) bar) would trigger a syntax error. * guix/memoization.scm (%mlambda): In the zero-argument case, move BODY... to a lambda to allow for inner 'define' and such.
* memoization: Micro-optimize code produced by 'define-cache-procedure'.Ludovic Courtès2017-03-16
| | | | | | * guix/memoization.scm (%nothing): Remove. (define-cache-procedure): Make '%nothing' a local variable, with a literal list.
* Add (guix memoization).Ludovic Courtès2017-01-28
* guix/combinators.scm (memoize): Remove. * guix/memoization.scm: New file. * Makefile.am (MODULES): Add it. * gnu/packages.scm, gnu/packages/bootstrap.scm, guix/build-system/gnu.scm, guix/build-system/python.scm, guix/derivations.scm, guix/gnu-maintenance.scm, guix/import/cran.scm, guix/import/elpa.scm, guix/modules.scm, guix/scripts/build.scm, guix/scripts/graph.scm, guix/scripts/lint.scm, guix/store.scm, guix/utils.scm: Adjust imports accordingly.