GNU bug report logs - #38613
Disabling bytecompilation on a list of files.

Previous Next

Package: guix;

Reported by: Brett Gilio <brettg <at> posteo.net>

Date: Sat, 14 Dec 2019 21:03:01 UTC

Severity: normal

Done: Brett Gilio <brettg <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Leo Prikler <leo.prikler <at> student.tugraz.at>
Cc: Brett Gilio <brettg <at> posteo.net>, 38613 <at> debbugs.gnu.org
Subject: bug#38613: Disabling bytecompilation on a list of files.
Date: Tue, 17 Dec 2019 14:03:29 +0900
Hello,

Leo Prikler <leo.prikler <at> student.tugraz.at>

[...]

> Regarding the impact, I think it should be fine if we commit this
> closely before or after #38619, since that probably forces all Elisp
> libraries to be rebuilt anyways (also CC'd Maxim to have a look at
> this).  Hopefully at least the doom-theme autoloads compile correctly.
> WDYT?
>
> Leo

IIRC, emacs{-minimal} have about ~300 non-Elisp dependents, which IMO is
OK for master (Elisp packages are very cheap to build, so I don't count
them).

I've just verified this with the following script:

--8<---------------cut here---------------start------------->8---
(use-modules (gnu packages)
	     (guix graph)
	     (guix monads)
	     (guix packages)
	     (guix store)
	     (guix scripts graph)
	     (guix scripts refresh)
	     (gnu packages emacs)
	     (srfi srfi-1)
	     (srfi srfi-26))

(define (all-packages)
  "Return the list of all the distro's packages."
  (fold-packages (lambda (package result)
                   ;; Ignore deprecated packages.
                   (if (package-superseded package)
                       result
                       (cons package result)))
                 '()
                 #:select? (const #t)))

(define (packages->dependents packages)

  (define (full-name package)
    (string-append (package-name package) "@"
		   (package-version package)))

  (with-store store
    (run-with-store store
	(mlet %store-monad ((edges (node-back-edges
				    %bag-node-type
				    (package-closure (all-packages)))))
	  (let ((dependents (node-transitive-edges packages edges)))
	    (return (map full-name dependents)))))))

(define (compute-results)
  (let* ((dependents (packages->dependents (list emacs emacs-minimal)))
	 (non-emacs (remove (cut string-prefix? "emacs-" <>) dependents)))
    (format #t "Emacs{-minimal} have ~d dependents, ~d of which are not pure \
Emacs libraries: ~a~%" (length dependents) (length non-emacs) non-emacs)))

(compute-results)
--8<---------------cut here---------------end--------------->8---

Which outputs:

Emacs{-minimal} have 973 dependents, 274 of which are not pure Emacs
libraries: (faust <at> 2.5.23 cedille <at> 1.1.1 cflow <at> 1.6
translate-shell <at> 0.9.6.11 kicad <at> 5.1.4 lepton-eda <at> 1.9.5-20180820
quadrapassel <at> 3.31.3 eog-plugins <at> 3.26.4 workrave <at> 1.10.34 emacsy <at> 0.4.1
guile-gi <at> 0.2.0 nomad <at> 0.1.1-alpha emacsy-minimal <at> v0.4.1-19.f3bf0db
evisum <at> 0.2.6 enlightenment-wayland <at> 0.23.1 terminology <at> 1.5.0 ephoto <at> 1.5
enlightenment <at> 0.23.1 econnman <at> 1.1 python-efl <at> 1.23.0 lekha <at> 0.2.1
python2-efl <at> 1.23.0 edi <at> 0.6.0 rage <at> 0.3.1 dbus-c++@0.9.0
[...]

HTH,

Maxim




This bug report was last modified 5 years and 150 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.