~ruther/guix-local

15c5f1a2c20b21de0f19f42db1ccab4c42117ebb — Janneke Nieuwenhuizen 2 years ago 7841a62
self: Compile guix-packages-base in chunks of 10 files.

This fixes or greatly increases the chances for `guix pull' to succeed on the
Hurd, see <https://issues.guix.gnu.org/65456>.

* guix/self.scm (compiled-modules)[process-directory]: Move hardcoded size to
keyword parameter #:size.  Set it to 10 when compiling "guix-packages-base".
1 files changed, 9 insertions(+), 9 deletions(-)

M guix/self.scm
M guix/self.scm => guix/self.scm +9 -9
@@ 1245,14 1245,13 @@ containing MODULE-FILES and possibly other files as well."
                    (* 100. (/ completed total)) total)
            (force-output))

          (define (process-directory directory files output)
            (let* ((size 25)                      ;compile max 25 files a time
                   (chunks (unfold
                            (lambda (seed) (< (length seed) size)) ;p
                            (cute take <> size)                    ;f
                            (cute drop <> size)                    ;g
                            files                                  ;seed
                            list)))                                ;tail
          (define* (process-directory directory files output #:key (size 25))
            (let ((chunks (unfold
                           (lambda (seed) (< (length seed) size)) ;p
                           (cute take <> size)                    ;f
                           (cute drop <> size)                    ;g
                           files                                  ;seed
                           list)))                                ;tail
              (for-each
               (lambda (chunk)
                 ;; Hide compilation warnings.


@@ 1290,7 1289,8 @@ containing MODULE-FILES and possibly other files as well."

          (mkdir #$output)
          (chdir #+module-tree)
          (process-directory "." '#+module-files #$output)
          (let ((size (if (equal? #$name "guix-packages-base") 10 25)))
            (process-directory "." '#+module-files #$output #:size size))
          (newline))))

  (computed-file name build