help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tree doesn't get called


From: Ricardo Wurmus
Subject: Re: tree doesn't get called
Date: Mon, 08 May 2017 22:19:23 +0200
User-agent: mu4e 0.9.18; emacs 25.2.1

Here’s a version that works for me:

--8<---------------cut here---------------start------------->8---
(define-public guile-miniadapton
  (let ((commit "1b5749422304567c96ac5367f2221dda9eff5880")
        (revision "1"))
    (package
      (name "guile-miniadapton")
      (version (string-append "0-" revision "." (string-take commit 9)))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/fisherdj/miniAdapton.git";)
                      (commit commit)))
                (file-name (string-append name "-" version "-checkout"))
                (sha256
                 (base32
                  "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh"))))
      (build-system gnu-build-system)
      (arguments
       `(#:modules ((guix build utils)
                    (ice-9 popen)
                    (ice-9 rdelim)
                    (srfi srfi-1)
                    (guix build gnu-build-system))
         #:tests? #f                    ; there is no test target
         #:phases
         (modify-phases %standard-phases
           (delete 'configure)
           (delete 'build)
           (replace 'install
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((cwd        (getcwd))
                      (scm-files  (find-files "." "\\.scm$"))
                      (effective  (read-line
                                   (open-pipe* OPEN_READ
                                               "guile" "-c"
                                               "(display 
(effective-version))")))
                      (module-dir (string-append (assoc-ref outputs "out")
                                                 "/share/guile/site/"
                                                 effective)))

                 ;; Make installation directories.
                 (mkdir-p module-dir)

                 (setenv "GUILE_AUTO_COMPILE" "0")

                 ;; Compile .scm files and install.
                 (every (lambda (file)
                          (let ((go-file (string-append module-dir "/"
                                                        (basename file ".scm") 
".go")))
                            ;; Install source module.
                            (install-file file module-dir)
                            ;; Compile and install module.
                            (zero? (system* "guild" "compile" "-L" cwd
                                            "-o" go-file file))))
                        scm-files)))))))
      (inputs
       `(("guile" ,guile-2.2)))
      (home-page "https://github.com/fisherdj/miniAdapton";)
      (synopsis "Minimal implementation of incremental computation in Guile
Scheme")
      (description "This package provides a complete Scheme implementation of
miniAdapton, which implements the core functionality of the Adapton system for
incremental computation (also known as self-adjusting computation).  Like
Adapton, miniAdapton allows programmers to safely combine mutation and
memoization.  miniAdapton is built on top of an even simpler system,
microAdapton.  Both miniAdapton and microAdapton are designed to be easy to
understand, extend, and port to host languages other than Scheme.")
      (license license:expat))))
--8<---------------cut here---------------end--------------->8---

If you have any questions about this just ask!

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net




reply via email to

[Prev in Thread] Current Thread [Next in Thread]