[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: On elisp running native

From: Andrea Corallo
Subject: Re: On elisp running native
Date: Wed, 04 Mar 2020 19:34:02 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hi all,

this is the usual update for the activity of the last 2/3 weeks on the
native-comp branch.

- I did some reorganization of the passes and reworked the allocation
  strategy for the relocable objects to avoid duplication and save heap

- We now (finally) support multiple different builds on the same lisp
  code base.

  ~eln~ files are compiled in specific sub-folders taking in account
  host architecture and current Emacs configuration to disambiguate
  possible incompatibilities.

  As example a file ~.../foo.el~ will compile into something like

  I've updated the load and 'go to definition' mechanisms to support
  this, so should be totally transparent to the user (if it's not is a

  The same idea applies to all compilations, meaning main build as
  compiled packages.
- Optimize qualities (read compilation flags) are now stored in every
  ~eln~ file.  It's possible to inspect them for example as:

  #+BEGIN_SRC lisp
  (subr-native-comp-unit (symbol-function 'org-mode)) =>
  #<native compilation unit: 
.../emacs/lisp/org/x86_64-pc-linux-gnu-12383a81d4f33a87/org.eln ((comp-speed . 
2) (comp-debug . 0))>

  We could store there other information we are interest in related to
  the compilation unit if we need.

- Finally I've set up a docker image for people willing to test it
  without having to configure and compile Emacs and libgccjit.  Now that
  I've learned how it works I plan to use it to setup a small CI to keep
  an eye that the latest GCC does not break with our build.

I've took note of all of this as Update6 in the usual page.

I'm generally very satisfied (surprised) about the stability of the toy.
I'm looking forward going into compile time mitigation.  I guess I'll
start this weekend with deferred compilation and GCC profiling.

Please let me know if there's some point I should address.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]