unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: taylanbayirli@gmail.com (Taylan Ulrich B.)
To: joakim@verona.se
Cc: guile-user@gnu.org, emacs-devel@gnu.org, BT Templeton <bt@hcoop.net>
Subject: Re: Guile-Emacs update
Date: Thu, 01 Aug 2013 01:17:53 +0300	[thread overview]
Message-ID: <87k3k6s7am.fsf@taylan.uni.cx> (raw)
In-Reply-To: <m3siyuwj7y.fsf@exodia.verona.se> (joakim@verona.se's message of "Wed, 31 Jul 2013 22:46:41 +0200")

joakim@verona.se writes:

> Paul Smith <psmith@gnu.org> writes:
>
>> On Wed, 2013-07-31 at 20:54 +0200, joakim@verona.se wrote:
>>> #make takes a loong time, much more than a normal emacs
>>> ./autogen.sh && ./configure && make
>>
>> I'm not familiar with building Emacs, but doesn't its build system
>> support parallel compilation (couldn't you run "make -j4" or whatever's
>> appropriate for your system to get a nice speedup)?
>>
>
> I think the slowness was during lisp compilation, and that didnt use to
> benefit from parallel compilation. I might try again though.

The slowness is during .el byte-code compilation (and partly autoload
generation), because the Makefile starts a new Emacs for every .el to be
compiled, and Guile Emacs starts very slow (about 10 seconds?) because
the "dumping" feature of Emacs is disabled, thus it loads even the
fundamental Elisp libraries from the ground up when started (the
executable is "barebones").  The loading of said fundamental Elisp
libraries is normally suppressed by using not a barebones executable,
but an executable that's generated by starting said barebones executable
once (*with* dumping capability), loading the files, then dumping.

(Yeah, Emacs actually supports dumping its memory image into a runnable
executable, see Elisp function `dump-emacs', but it's limited and
unusable for day-to-day usage, and only used during compilation to
generate this executable with pre-loaded Elisp libraries.)

I managed to inhibit .el compilation and autoload generation by screwing
around with the Makefiles and loadup.el; the result just causes more
headaches if you want to test Guile Emacs in a sane fashion, but it
basically works if you don't have a fancy .emacs, and allows to test
changes in the base C source (which is what I'm doing recently), so if
you have a similar use-case you can notify me and I'll post the hacky
patches somewhere.



  parent reply	other threads:[~2013-07-31 22:17 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-20 23:54 Guile-Emacs update BT Templeton
2013-07-21  1:32 ` Noah Lavine
2013-07-22  7:52   ` Taylan Ulrich B.
2013-07-24 21:50   ` BT Templeton
2013-07-31 18:54 ` joakim
2013-07-31 20:28   ` Paul Smith
2013-07-31 20:46     ` joakim
2013-07-31 22:17       ` Óscar Fuentes
2013-07-31 22:17       ` Taylan Ulrich B. [this message]
2013-09-07  9:29         ` Andy Wingo
2013-09-07 10:02           ` Eli Zaretskii
2013-09-07 11:14             ` Andy Wingo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k3k6s7am.fsf@taylan.uni.cx \
    --to=taylanbayirli@gmail.com \
    --cc=bt@hcoop.net \
    --cc=emacs-devel@gnu.org \
    --cc=guile-user@gnu.org \
    --cc=joakim@verona.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).