unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Proposal: Forwards-Compatibility Library for Emacs
@ 2021-09-20 23:35 Philip Kaludercic
  2021-09-21  0:30 ` Adam Porter
                   ` (6 more replies)
  0 siblings, 7 replies; 66+ messages in thread
From: Philip Kaludercic @ 2021-09-20 23:35 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 124 bytes --]


Hi,

over the last few days I have been working on a forwards-compatibility
library for Emacs, here is a first iteration:


[-- Attachment #2: compat.el --]
[-- Type: application/emacs-lisp, Size: 51650 bytes --]

[-- Attachment #3: Type: text/plain, Size: 1384 bytes --]


The idea is to allow developers who don't want to break backwards
compatibility to use newer functionality that wasn't provided in older
versions of Emacs. This version tries to implement as much as possible
from Emacs 24.2 onwards.

By its very nature it is an intrusive package, as it defines functions,
macros and advice outside of the "namespace", but I don't see any way
around that if transparent compatibility is to be provided (anything
else would just replicate dash, s, f, ...).

As some of the functions are lisp reimplementations of core functions,
there exists the risk of a performance overhead. To minimize this, the
compatibility layer is only applied necessary: Ideally someone using
Emacs 28.1 should have a quasi-empty file, with all the definitions
byte-compiled away.

Eventually I would like to propose adding something like this to
ELPA. It would only makes sense, as more than a few functions were
copied verbatim or quasi-verbatim from Emacs itself.

There still is work to be done, before anything could be added to ELPA,
especially providing tests to ensure that the compatibility layer is
implemented correctly, and making sure that no functions are used that
break the compatibility promise.

So before I continue working on this, I would like to ask if there is
any interest/there are any objections to providing such a library?

-- 
	Philip Kaludercic

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

end of thread, other threads:[~2021-12-01 13:15 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-20 23:35 Proposal: Forwards-Compatibility Library for Emacs Philip Kaludercic
2021-09-21  0:30 ` Adam Porter
2021-09-21  4:10 ` Lars Ingebrigtsen
2021-09-21  8:28   ` Philip Kaludercic
2021-09-21 12:31 ` Stefan Monnier
2021-09-21 12:40   ` Eli Zaretskii
2021-09-21 12:50     ` Stefan Kangas
2021-09-21 13:38       ` Arthur Miller
2021-09-21 13:49       ` João Távora
2021-09-21 13:00     ` Philip Kaludercic
2021-09-21 13:12       ` Eli Zaretskii
2021-09-21 13:28         ` Philip Kaludercic
2021-09-21 13:24     ` João Távora
2021-09-21 13:29       ` Philip Kaludercic
2021-09-21 13:50         ` João Távora
2021-09-21 14:59     ` Lars Ingebrigtsen
2021-09-21 12:58   ` Philip Kaludercic
2021-09-21 13:37     ` Arthur Miller
2021-09-21 13:54       ` Philip Kaludercic
2021-09-21 14:18         ` Arthur Miller
2021-09-21 15:02   ` Lars Ingebrigtsen
2021-09-21 15:40     ` João Távora
2021-09-21 16:10       ` Philip Kaludercic
2021-09-21 16:22         ` João Távora
2021-09-21 17:22       ` Lars Ingebrigtsen
2021-09-21 17:29         ` João Távora
2021-09-21 19:24     ` Stefan Monnier
2021-09-21 21:06       ` Philip Kaludercic
2021-09-21 21:50         ` Stefan Monnier
2021-09-22  6:48           ` Philip Kaludercic
2021-09-22 17:53             ` Stefan Monnier
2021-09-22 18:54               ` Philip Kaludercic
2021-09-22 19:15                 ` Stefan Monnier
2021-09-21 21:57       ` Lars Ingebrigtsen
2021-09-21 22:08         ` João Távora
2021-09-21 22:16           ` Lars Ingebrigtsen
2021-09-21 22:24             ` João Távora
2021-09-21 22:25               ` Lars Ingebrigtsen
2021-09-21 22:34                 ` João Távora
2021-09-22  6:53           ` Philip Kaludercic
2021-09-22  7:12             ` João Távora
2021-09-22  7:14         ` Arthur Miller
2021-09-21 13:05 ` Philip Kaludercic
2021-09-21 13:27 ` Arthur Miller
2021-09-21 13:45   ` Philip Kaludercic
2021-09-21 14:05     ` Arthur Miller
2021-09-21 22:17 ` Richard Stallman
2021-09-21 22:24   ` Lars Ingebrigtsen
2021-09-22  9:54     ` Philip Kaludercic
2021-10-04 23:00 ` [ELPA] Add compat.el Philip Kaludercic
2021-10-07  7:03   ` Old (static) builds of Emacs Philip Kaludercic
2021-10-07  7:48     ` Michael Albinus
2021-10-07  7:56       ` Philip Kaludercic
2021-10-07 12:49     ` Stefan Monnier
2021-10-07 20:29       ` Philip Kaludercic
2021-10-07 21:21         ` Stefan Monnier
2021-11-30 21:21     ` Philip Kaludercic
2021-12-01 13:15       ` Stefan Monnier
2021-10-07 20:49   ` [ELPA] Add compat.el Philip Kaludercic
2021-10-08  5:56     ` Eli Zaretskii
2021-10-08  9:59       ` Philip Kaludercic
2021-10-08 11:10         ` Eli Zaretskii
2021-10-08 11:35           ` Philip Kaludercic
2021-10-08  7:45     ` Mattias Engdegård
2021-10-08 10:00       ` Philip Kaludercic
2021-10-15 19:08   ` Philip Kaludercic

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).