all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#71730: Manual section 2.6.5 on Emacs Packages needs updating regarding native-compilation
@ 2024-06-23  1:00 Adam Porter
  2024-06-23 13:17 ` bug#71730: [PATCH] doc: Update note on Emacs packages Liliana Marie Prikler
  0 siblings, 1 reply; 3+ messages in thread
From: Adam Porter @ 2024-06-23  1:00 UTC (permalink / raw)
  To: 71730

Hello,

I just noticed that the Guix manual at
<https://guix.gnu.org/manual/en/guix.html>, in section 2.6.5, says:

> Note: Emacs can now compile packages natively. Under the default
> configuration, this means that Emacs packages will now be
> just-in-time (JIT) compiled as you use them, and the results stored
> in a subdirectory of your user-emacs-directory.
> 
> Furthermore, the build system for Emacs packages transparently
> supports native compilation, but note, that emacs-minimal—the default
> Emacs for building packages—has been configured without native
> compilation. To natively compile your emacs packages ahead of time,
> use a transformation like --with-input=emacs-minimal=emacs.

Given the patch that disables such JIT compilation, discussed in 
bug#71725, seems to disable that, it would seem that this section in the 
manual should be updated accordingly.  (Or, ideally, that behavior would 
be restored for packages installed outside of Guix, but that's what 
bug#71725 is about.)

Thanks,
Adam




^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#71730: [PATCH] doc: Update note on Emacs packages.
  2024-06-23  1:00 bug#71730: Manual section 2.6.5 on Emacs Packages needs updating regarding native-compilation Adam Porter
@ 2024-06-23 13:17 ` Liliana Marie Prikler
  2024-06-27 14:00   ` Adam Porter
  0 siblings, 1 reply; 3+ messages in thread
From: Liliana Marie Prikler @ 2024-06-23 13:17 UTC (permalink / raw)
  To: 71730; +Cc: Adam Porter, andrew, cox.katherine.e+guix, liliana.prikler

* doc/guix.texi ("Emacs packages"): Expand note to talk about differences
between native compilation upstream and as used in Guix.
---
 doc/guix.texi | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 9bbf85e32b..67c5cef757 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -1878,15 +1878,28 @@ Application Setup
 File,,, emacs, The GNU Emacs Manual}).
 
 @quotation Note
-Emacs can now compile packages natively.  Under the default
-configuration, this means that Emacs packages will now be
-just-in-time (JIT) compiled as you use them, and the results
-stored in a subdirectory of your @code{user-emacs-directory}.
-
-Furthermore, the build system for Emacs packages transparently
-supports native compilation, but note, that
-@code{emacs-minimal}---the default Emacs for building
-packages---has been configured without native compilation.
+Most Emacs variants are now capable of doing native compilation.
+The approach taken by Guix Emacs however differs greatly
+from the approach taken upstream.
+
+Upstream Emacs compiles packages just-in-time and typically places
+shared object files  in a special folder within your
+@code{user-emacs-directory}.
+These shared objects within said folder are organized in a
+flat hierarchy, and their file names contain two hashes to
+verify the original file name and contents of the source code.
+
+Guix Emacs on the other hand prefers to compile packages ahead-of-time.
+Shared objects retain much of the original file name and no hashes
+are added to verify the original file name or the contents of the file.
+Crucially, this allows Guix Emacs and packages built against it
+to be grafted (@pxref{Security Updates, grafts}), but at the same time,
+Guix Emacs lacks the hash-based verification of source code baked
+into upstream Emacs.  As this naming schema is trivial to exploit,
+we disable just-in-time compilation.
+
+Further note, that @code{emacs-minimal}---the default Emacs
+for building packages---has been configured without native compilation.
 To natively compile your emacs packages ahead of time, use a
 transformation like @option{--with-input=emacs-minimal=emacs}.
 @end quotation

base-commit: 11c403ec0554be0e1c888ec6f8147a232e09adbd
-- 
2.45.1





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* bug#71730: [PATCH] doc: Update note on Emacs packages.
  2024-06-23 13:17 ` bug#71730: [PATCH] doc: Update note on Emacs packages Liliana Marie Prikler
@ 2024-06-27 14:00   ` Adam Porter
  0 siblings, 0 replies; 3+ messages in thread
From: Adam Porter @ 2024-06-27 14:00 UTC (permalink / raw)
  To: Liliana Marie Prikler, 71730

Hi Liliana,

On 6/23/24 08:17, Liliana Marie Prikler wrote:
> * doc/guix.texi ("Emacs packages"): Expand note to talk about differences
> between native compilation upstream and as used in Guix.
> ---
>   doc/guix.texi | 31 ++++++++++++++++++++++---------
>   1 file changed, 22 insertions(+), 9 deletions(-)

Thanks, I think that is a great addition to the manual.

--Adam




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-06-27 14:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-23  1:00 bug#71730: Manual section 2.6.5 on Emacs Packages needs updating regarding native-compilation Adam Porter
2024-06-23 13:17 ` bug#71730: [PATCH] doc: Update note on Emacs packages Liliana Marie Prikler
2024-06-27 14:00   ` Adam Porter

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.