From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Glenn Morris Newsgroups: gmane.emacs.bugs Subject: bug#10125: 24.0.91; package.el (org): Macros in tar packages & order of byte compilation Date: Thu, 24 Nov 2011 14:53:04 -0500 Message-ID: References: <81pqgh90sp.fsf@gmail.com> <81ipm9l9kd.fsf@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1322164425 27664 80.91.229.12 (24 Nov 2011 19:53:45 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 24 Nov 2011 19:53:45 +0000 (UTC) Cc: 10125@debbugs.gnu.org, stelian.iancu@gmail.com To: Jambunathan K Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Nov 24 20:53:38 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RTfMY-0008Vc-AV for geb-bug-gnu-emacs@m.gmane.org; Thu, 24 Nov 2011 20:53:38 +0100 Original-Received: from localhost ([::1]:36802 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RTfMX-0004uV-Um for geb-bug-gnu-emacs@m.gmane.org; Thu, 24 Nov 2011 14:53:37 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:57892) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RTfMT-0004iK-Lq for bug-gnu-emacs@gnu.org; Thu, 24 Nov 2011 14:53:35 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RTfMS-0005eR-8y for bug-gnu-emacs@gnu.org; Thu, 24 Nov 2011 14:53:33 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:35954) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RTfMP-0005ZV-Sr; Thu, 24 Nov 2011 14:53:29 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1RTfNt-0006wW-Ss; Thu, 24 Nov 2011 14:55:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Glenn Morris Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org, emacs-orgmode@gnu.org Resent-Date: Thu, 24 Nov 2011 19:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 10125 X-GNU-PR-Package: emacs,org-mode X-GNU-PR-Keywords: Original-Received: via spool by 10125-submit@debbugs.gnu.org id=B10125.132216448126663 (code B ref 10125); Thu, 24 Nov 2011 19:55:01 +0000 Original-Received: (at 10125) by debbugs.gnu.org; 24 Nov 2011 19:54:41 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RTfNZ-0006vz-5U for submit@debbugs.gnu.org; Thu, 24 Nov 2011 14:54:41 -0500 Original-Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RTfNV-0006vq-Nw for 10125@debbugs.gnu.org; Thu, 24 Nov 2011 14:54:39 -0500 Original-Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1RTfM0-0004GC-6R; Thu, 24 Nov 2011 14:53:04 -0500 X-Spook: ammunition JSOFC3IP Abu Ghraib domestic disruption TWA X-Ran: -#s'\}Ix;]fG>*L#;08Oo2K=]odt|%e#-0I:-QV?iXGRMn]4%/#ftf(_7@g$IGcp}6I05j X-Hue: magenta X-Attribution: GM In-Reply-To: (Glenn Morris's message of "Thu, 24 Nov 2011 14:09:38 -0500") User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Thu, 24 Nov 2011 14:55:01 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:54276 Archived-At: Glenn Morris wrote: > fresh Emacs instance. There's no reason the "package manager" could not > spawn a separate Emacs in batch-mode as a sub-job to do the compilation. Very lightly tested version: *** lisp/emacs-lisp/package.el 2011-11-20 03:48:53 +0000 --- lisp/emacs-lisp/package.el 2011-11-24 19:48:49 +0000 *************** *** 595,600 **** --- 595,612 ---- (error "Package does not untar cleanly into directory %s/" dir)))) (tar-untar-buffer)) + (defun package-compile (directory) + "Compile the Lisp files in DIRECTORY." + (with-current-buffer (get-buffer-create "*package-compile*") + (goto-char (point-max)) + (pop-to-buffer (current-buffer)) + (or (zerop (call-process "emacs" nil t t "--batch" "--eval" + (format + "(progn (setq load-path (cons \"%s\" load-path)) + (batch-byte-recompile-directory 0))" directory) + directory)) + (error "Compiling the package gave an error")))) + (defun package-unpack (name version) (let* ((dirname (concat (symbol-name name) "-" version)) (pkg-dir (expand-file-name dirname package-user-dir))) *************** *** 603,610 **** (let* ((default-directory (file-name-as-directory package-user-dir))) (package-untar-buffer dirname) (package-generate-autoloads (symbol-name name) pkg-dir) ! (let ((load-path (cons pkg-dir load-path))) ! (byte-recompile-directory pkg-dir 0 t))))) (defun package--write-file-no-coding (file-name) (let ((buffer-file-coding-system 'no-conversion)) --- 615,621 ---- (let* ((default-directory (file-name-as-directory package-user-dir))) (package-untar-buffer dirname) (package-generate-autoloads (symbol-name name) pkg-dir) ! (package-compile pkg-dir)))) (defun package--write-file-no-coding (file-name) (let ((buffer-file-coding-system 'no-conversion)) *************** *** 645,652 **** pkg-file nil nil nil 'excl)) (package-generate-autoloads file-name pkg-dir) ! (let ((load-path (cons pkg-dir load-path))) ! (byte-recompile-directory pkg-dir 0 t))))) (defmacro package--with-work-buffer (location file &rest body) "Run BODY in a buffer containing the contents of FILE at LOCATION. --- 656,662 ---- pkg-file nil nil nil 'excl)) (package-generate-autoloads file-name pkg-dir) ! (package-compile pkg-dir)))) (defmacro package--with-work-buffer (location file &rest body) "Run BODY in a buffer containing the contents of FILE at LOCATION.