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: Catonano
Subject: Re: tree doesn't get called
Date: Mon, 8 May 2017 19:45:08 +0200

just for reference, this is the whole text

(define-public guile-miniadapton
  (package
    (name "guile-miniadapton")
    (version "master")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/fisherdj/miniAdapton")
                    (commit "1b5749422304567c96ac5367f2221dda9eff5880")))
            (file-name (string-append name "-" version "-checkout"))
            (sha256
             (base32
              "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh"))))
  (build-system gnu-build-system)
  (arguments
   `(#:modules
     ((guix build utils)
      (ice-9 match)
      (ice-9 popen)
      (ice-9 rdelim)
      (guix build gnu-build-system))
     #:phases
     (modify-phases %standard-phases
       (delete 'configure)
       (delete 'build)
       (delete 'check)
       (replace 'install
                (lambda* (#:key inputs outputs #:allow-other-keys)
                  (let* ((out (assoc-ref outputs "out"))
                         (effective (read-line
                                     (open-pipe* OPEN_READ
                                                 "guile" "-c"
                                                 "(display (effective-version))")))
                         (zero? (system* "tree"))
                         (module-dir (string-append out "/share/guile/site/"
                                                    effective))
                         (source (assoc-ref inputs "source"))
                         ;;(scm-files (find-files "." "\\.scm$"))
                         (scm-files '("include.scm"
                                      "microadapton.scm"
                                      "microadapton-impl.scm"
                                      "microadapton-types.scm"
                                      "memoization.scm"
                                      "memoization-impl.scm"
                                      "miniadapton.scm"
                                      "miniadapton-impl.scm"
                                      "set.scm"
                                      "set-impl.scm"))
                         (guild (string-append (assoc-ref %build-inputs "guile")
                                               "/bin/guild")))
                    ;; Make installation directories.
                    ;;(mkdir-p (string-append module-dir "source"))
                    (mkdir-p module-dir)
                    ;; Compile .scm files and install.
                    (setenv "GUILE_AUTO_COMPILE" "0")
                    (for-each (lambda (file)
                                (let* ((dest-file (string-append
                                                 module-dir "/"
                                                 file))
                                       (go-file (match (string-split file #\.)
                                                  ((base _)
                                                   (string-append module-dir "/" base ".go")))))  
                                 
                                  ;; Install source module.
                                  (copy-file file
                                             dest-file)
                                  ;; Install compiled module.
                                  (unless (zero? (system* guild "compile"
                                                          "-L" (getcwd)
                                                          "-o" go-file
                                                          file))
                                    (error (format #f "Failed to compile ~s to ~s!"
                                                   file dest-file)))))
                              scm-files)
                    #t))))))
  (inputs
   `(("guile" ,guile-2.2)))
  (native-inputs
   `(("tree" ,tree)))
  (home-page "https://github.com/fisherdj/miniAdapton")
  (synopsis "a minimal implementation of incremental computation
in (Guile) Scheme")
  (description
   "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)))




reply via email to

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