From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrea Corallo via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Suggest: Byte-Compile package-quickstart on a separate thread? Date: Mon, 28 Dec 2020 20:34:03 +0000 Message-ID: References: <20201228144919.35B80C23000@raman-glaptop.localdomain> <24554.9038.480017.868364@retriever.mtv.corp.google.com> Reply-To: Andrea Corallo Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9408"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: monnier@iro.umontreal.ca, "T.V Raman via Emacs development discussions." To: "T.V Raman" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Dec 28 21:34:44 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ktzE4-0002LG-70 for ged-emacs-devel@m.gmane-mx.org; Mon, 28 Dec 2020 21:34:44 +0100 Original-Received: from localhost ([::1]:33002 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ktzE3-0002yb-9Q for ged-emacs-devel@m.gmane-mx.org; Mon, 28 Dec 2020 15:34:43 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55204) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ktzDY-0002WY-Hi for emacs-devel@gnu.org; Mon, 28 Dec 2020 15:34:12 -0500 Original-Received: from mab.sdf.org ([205.166.94.33]:37660 helo=ma.sdf.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ktzDW-0001zI-Qn for emacs-devel@gnu.org; Mon, 28 Dec 2020 15:34:12 -0500 Original-Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1ktzDP-0005kF-SA; Mon, 28 Dec 2020 20:34:03 +0000 In-Reply-To: (T. V. Raman's message of "Mon, 28 Dec 2020 10:38:01 -0800") Received-SPF: pass client-ip=205.166.94.33; envelope-from=akrl@sdf.org; helo=ma.sdf.org X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:262036 Archived-At: "T.V Raman" writes: > "T.V Raman" via "Emacs development discussions." > writes: > Here's a small patch that uses make-thread: > > git diff package.el > > diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el > index bc450b09d0..104c2d8e71 100644 > --- a/lisp/emacs-lisp/package.el > +++ b/lisp/emacs-lisp/package.el > @@ -4108,7 +4108,7 @@ package-quickstart-refresh > ;; no-update-autoloads: t > ;; End: > ")) > - (byte-compile-file package-quickstart-file))) > + (make-thread #'byte-compile-file package-quickstart-file))) I think this patch might have also the following two issues: - Doing intense computation in a Lisp thread usually make the system extremely unresponsive, and it does it certanly if the code does not yield. As the byte compiler never yields the 'blocking' effect should be the same as running in the main thread, this because this Lisp thread is never preempted. - What about if the file being compiled is loaded before the byte compilation is completed? This is another tricky part that has to be addressed (as we had to do in the native compiler). Regards Andrea