summaryrefslogtreecommitdiff
path: root/guix/monads.scm
Commit message (Collapse)AuthorAge
* monads: Fix 'mapm' so that effects happen from left to right.Ludovic Courtès2014-07-12
| | | | | | | * guix/monads.scm (mapm): Don't reverse LST, so that items are processed from left to right. Bind the result of 'foldm' and reverse it. * tests/monads.scm ("sequence"): Change 'frob' so it performs its side effect within an 'mlet' body. Adjust call accordingly.
* monads, gexp: Remove unintended dependency on (gnu packages …).Ludovic Courtès2014-05-01
| | | | | | | | * guix/gexp.scm (gexp->derivation, gexp->script): Use 'default-guile' instead of an explicit reference to 'guile-final'. (default-guile): New procedure. * guix/monads.scm (run-with-store)[default-guile]: New procedure. Use it.
* gexp: Add support for 'origin?' objects in 'ungexp' forms.Ludovic Courtès2014-05-01
| | | | | | | * guix/gexp.scm (lower-inputs, gexp-inputs, gexp->sexp, canonicalize-reference): Add 'origin?' case. * guix/monads.scm (origin->derivation): New procedure. * tests/gexp.scm ("one input origin"): New test.
* monads: Hide 'derivation-expression' and 'lower-inputs'.Ludovic Courtès2014-04-28
| | | | | | | | | | | | | | | | | * guix/monads.scm: Unexport 'lower-inputs' and 'derivation-expression'. (text-file*): Add comment about the switch to 'gexp->derivation'. (lower-inputs): Add comment about its doom. (derivation-expression): Likewise. * guix/gexp.scm (lower-inputs*): Rename to... (lower-inputs): ... this. Update callers. * tests/monads.scm (derivation-expression): New procedure. * doc/guix.texi (The Store Monad): Use 'gexp->derivation' instead of 'derivation-expression'. Remove documentation of 'derivation-expression'. * guix/ui.scm (read/eval): Use THE-ROOT-MODULE so that macros are properly expanded. * tests/guix-build.sh: Use 'gexp->derivation' instead of 'derivation-expression'.monads: Hide 'derivation-expression' and 'lower-inputs'.
* monads: Add 'text-file*'.Ludovic Courtès2014-02-03
| | | | | | | | * guix/monads.scm (text-file*): New procedure. * tests/monads.scm ("text-file*"): New test. * doc/guix.texi (The Store Monad): Change example since the previous one would erroneously fail to retain a reference to Coreutils. Document 'text-file*'.
* monads: Add 'imported-modules' and 'compiled-modules'.Ludovic Courtès2014-01-29
| | | | | * guix/monads.scm (package-file): Fix typo. (imported-modules, compiled-modules): New procedures.
* gnu: Add (gnu system).Ludovic Courtès2013-12-10
| | | | | | | | | | | | | | * gnu/system/vm.scm (lower-inputs): Move to monads.scm. (qemu-image): Don't add GRUB-CONFIGURATION to the INPUTS-TO-COPY. (union, file-union, etc-directory): Move to gnu/system.scm. (%demo-operating-system): New variable. (system-qemu-image): Add 'os' parameter. Rewrite in terms of 'operating-system-derivation'. * guix/monads.scm (lower-inputs): New procedure. * gnu/system/grub.scm (grub-configuration-file): Change 'entries' to be a plain list instead of a list of monadic values. * gnu/system.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* monads: Fix 'anym'.Ludovic Courtès2013-12-10
| | | | | * guix/monads.scm (anym): Fix successful case. * tests/monads.scm ("anym"): New test.
* monads: Remove erroneous comment.Ludovic Courtès2013-12-05
| | | | * guix/monads.scm (sequence): Remove erroneous comment.
* monads: Allow resolution of a monad's bind/return at expansion time.Ludovic Courtès2013-10-03
| | | | | | | | | * guix/monads.scm (<monad>): Turn in a raw SRFI-9 record type. (define-monad): New macro. (with-monad): Add a case for when MONAD is a macro. (identity-return, identity-bind, store-return, store-bind): Inline. (%identity-monad, %store-monad): Use 'define-monad'. * tests/monads.scm ("monad?"): New test.
* Add (guix monads).Ludovic Courtès2013-10-03
* guix/monads.scm: New file. * tests/monads.scm: New file. * Makefile.am (MODULES): Add guix/monads.scm. (SCM_TESTS): Add tests/monads.scm. * doc/guix.texi (The Store Monad): New node. (The Store): Reference it.