[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?
From: |
Stefan Monnier |
Subject: |
bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations? |
Date: |
Sat, 25 Jul 2020 17:09:42 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
> I don't think we can really do that, as that would allow the byte
> compiler to introduce bugs in the code, right? The manual states that
> "This function [concat] always constructs a new string that is not
> ‘eq’ to any existing string" so I don't see how it could ever be pure.
And yet, `concat` has been marked as "pure" even before we introduced
the notion of pure. More specifically, the code in byte-opt.el which
optimizes calls to pure functions was originally written exclusively for
`concat`:
commit 79d137ffe7dac5fe3041b4916c715f4ce91143af
Author: Karl Heuer <kwzh@gnu.org>
Date: Mon Nov 3 03:58:23 1997 +0000
(byte-optimize-concat): New function.
followed by:
commit e856a453a1c1ce1907b3b582841bce3e9cff8cec
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date: Mon Mar 22 15:21:08 2004 +0000
(byte-compile-log-lap, byte-compile-inline-expand): Use backquote.
(byte-optimize-pure-func): Rename from byte-optimize-concat.
(symbol-name, regexp-opt, regexp-quote): Mark as pure.
-- Stefan
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, (continued)
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Philipp Stephani, 2020/07/25
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Stefan Monnier, 2020/07/25
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Philipp Stephani, 2020/07/29
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Stefan Monnier, 2020/07/29
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Mattias Engdegård, 2020/07/25
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Stefan Monnier, 2020/07/25
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Mattias Engdegård, 2020/07/26
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Mattias Engdegård, 2020/07/29
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Stefan Monnier, 2020/07/29
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?, Philipp Stephani, 2020/07/29
- bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?,
Stefan Monnier <=