dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

NEWS.org (8110B)


      1 #+title: compat.el - Changelog
      2 
      3 * Release of "Compat" Version 29.1.1.1
      4 
      5 - Tests added (167 out of 203 definitions tested, 82%)
      6 - compat-25: Improve algorithmic complexity of ~sort~.
      7 - compat-28: Add ~make-separator-line~.
      8 - compat-29: Minor fixes to ~keymap-*~ functions.
      9 - compat-29: Add ~with-memoization~.
     10 - compat-29: Add ~buttonize~ and ~buttonize-region~.
     11 
     12 (Release <2023-01-14 Sat>)
     13 
     14 * Release of "Compat" Version 29.1.1.0
     15 
     16 - The macros in ~compat-macs.el~ have been rewritten and simplified. The
     17   refactoring allows to further refine the criteria under which compatibility
     18   aliases, functions, macros and variables are installed.
     19 - Remove deprecated, prefixed compatibility functions.
     20 - Remove deprecated features ~compat-help~, ~compat-font-lock~ and ~compat-24~.
     21 - Compat uses runtime checks (~boundp~, ~fboundp~) to ensure that existing
     22   definitions are never overridden, when Compat is loaded on a newer Emacs than
     23   it was compiled on.
     24 - Compat compiles without byte compilation warnings on all supported Emacs
     25   versions. Warnings are treated as errors in the test suite.
     26 - Compat takes great care to remove unneeded definitions at compile time. On
     27   recent Emacs 29 the byte compiled files are empty and not loaded, such that
     28   Compat does not any cost to the Emacs process.
     29 - compat-26: Fix and test ~image-property~ setter.
     30 - compat-26: Fix and test ~read-multiple-choice~.
     31 - compat-28: Fix and test ~with-existing-directory~.
     32 - compat-28: Drop obsolete function ~make-directory-autoloads~.
     33 - compat-29: Drop broken functions ~string-pixel-width~ and
     34   ~buffer-text-pixel-size~. These functions had poor performance which lead to a
     35   downstream issue in the doom-modeline package. If a more efficient solution is
     36   possible, the function will be added back.
     37 - compat-29: Drop broken function ~string-limit~.
     38 - compat-29: Drop broken macro ~with-buffer-unmodified-if-unchanged~, which relied
     39   on ~buffer-hash~ which does not exist on all supported Emacs versions.
     40 - compat-29: Add ~pos-bol~ and ~pos-eol~.
     41 
     42 (Release <2023-01-07 Sat>)
     43 
     44 * Release of "Compat" Version 29.1.0.1
     45 
     46 - Add multiple new tests for existing APIs.
     47 - Fix bugs in compatibility functions: ~setq-local~, ~proper-list-p, prop-match-p~,
     48   ~file-name-concat~, ~replace-regexp-in-region~, ~replace-string-in-region~.
     49 - Add new Emacs 29 APIs. Some of them are still untested and may change. If you
     50   intend to use an Emacs 29 API please be careful and if possible contribute
     51   test cases. All untested functions are marked as ~<UNTESTED>~ in the Compat
     52   code. Over time tests for all functions will be added gradually.
     53 - Add the macros ~compat-call~ and ~compat-function~ to call compatibility
     54   functions. Since Compat avoids overwriting already existing functions, we must
     55   define separate compatibility function definitions for functions which changed
     56   their calling convention or behavior. These compatibility definitions can be
     57   looked up using ~compat-function~ and called with ~compat-call~. For example ~assoc~
     58   can be called with a ~TESTFN~ since Emacs 26. In Emacs 25 and older the calling
     59   convention was ~(assoc KEY ALIST)~. In order to use the new calling convention
     60   you can use ~(compat-call assoc KEY ALIST TESTFN)~.
     61 - Deprecate all ~compat-*~ prefixed functions. Instead use the aforementioned
     62   ~compat-call~ or ~compat-function~ macros.
     63 - Deprecate ~compat-help.el~ and ~compat-font-lock.el.~
     64 - Development moved to GitHub.
     65 - BREAKING: Drop broken function ~func-arity~. Using ~func-arity~ is generally
     66   discouraged and the function is hard to implement properly due to all the
     67   various function types. There it is unlikely that the function will get
     68   reintroduced in Compat.
     69 - BREAKING: Drop broken function ~directory-files-recursively~. In case you need
     70   this function, a patch including tests is welcome.
     71 - BREAKING: Drop support for Emacs 24.3. Emacs 24.4 is required now. In case you
     72   still need Emacs 24.3 support, you can rely on Compat 28.1.2.2.
     73 
     74 (Release <2023-01-05 Thu>)
     75 
     76 * Release of "Compat" Version 28.1.2.2
     77 
     78 This is a minor release that hopes to address [[compat:7]].
     79 
     80 (Release <2022-08-25 Thu>)
     81 
     82 * Release of "Compat" Version 28.1.2.1
     83 
     84 This is a minor release adding the following changes:
     85 
     86 - Add =derived-mode-p= defined in Emacs 27
     87 - Add =provided-mode-derived-p= defined in Emacs 27
     88 - Add =read-multiple-choice= defined in Emacs 26
     89 - Add =file-name-absolute-p= defined in Emacs 28
     90 
     91 The only other notable change is that the manual has been rewritten to
     92 include much more documentation that had been the case previously.
     93 
     94 (Release <2022-08-24 Wed>)
     95 
     96 * Release of "Compat" Version 28.1.2.0
     97 
     98 The main change of this release has been the major simplification of
     99 Compat's initialisation system, improving the situation around issues
    100 people had been reporting ([[compat:4]], once again) with unconventional
    101 or unpopular packaging systems.
    102 
    103 In addition to this, the following functional changes have been made:
    104 
    105 - Fix =format-prompt= of an empty string as "default" argument
    106 - Add =decoded-time-period= defined in Emacs 28
    107 - Add =subr-primitive-p= defined in Emacs 28
    108 
    109 Minor improvements to manual are also part of this release.
    110 
    111 (Release <2022-07-18 Mon>)
    112 
    113 * Release of "Compat" Version 28.1.1.3
    114 
    115 This release just contains a hot-fix for an issue introduced in the
    116 last version, where compat.el raises an error during byte compilation.
    117 See [[compat:4]].
    118 
    119 (Release <2022-06-19 Sun>)
    120 
    121 * Release of "Compat" Version 28.1.1.2
    122 
    123 Two main changes have necessitated a new patch release:
    124 
    125 1. Fix issues related to the loading of compat when uncompiled.  See
    126    [[https://lists.sr.ht/~pkal/compat-devel/%3C20220530191000.2183047-1-jonas%40bernoul.li%3E][this thread]] for more details on the problem.
    127 2. Fix issues related to the loading of compat on old pre-releases
    128    (think of 28.0.50). See [[https://lists.sr.ht/~pkal/compat-devel/%3Cf8635d7d-e233-448f-b325-9e850363241c%40www.fastmail.com%3E][this thread]] for more details on the
    129    problem.
    130 
    131 (Released <2022-06-22 Wed>)
    132 
    133 * Release of "Compat" Version 28.1.1.1
    134 
    135 This is a minor release fixing a bug in =json-serialize=, that could
    136 cause unintended side-effects, not related to packages using Compat
    137 directly (see [[compat:2]]).
    138 
    139 (Released <2022-05-05 Thu>)
    140 
    141 * Release of "Compat" Version 28.1.1.0
    142 
    143 This release mostly fixes a number of smaller bugs that were not
    144 identified as of 28.1.0.0.  Nevertheless these warrent a version bump,
    145 as some of these changes a functional.  These include:
    146 
    147 - The addition of the =file-attribute-*= accessor functions.
    148 - The addition of =file-attribute-collect=.
    149 - Improvements to the Texinfo manual (via Jonas Bernoulli's recent
    150   work on =ox-texinfo=).  For the time being, the Texinfo file is
    151   maintained in the repository itself, next to the =MANUAL= file.
    152   This might change in the future.
    153 - Adding a prefix to =string-trim=, =string-trim-left= and
    154   =string-trim-right= (i.e. now =compat-string-trim=,
    155   =compat-string-trim-left= and =compat-string-trim-right=)
    156 - Improving the version inference used in the =compat-*= macros.
    157   This improves the compile-time optimisation that strips away
    158   functions that are known to be defined for a specific version.
    159 - The addition of generalised variable (=setf=) support for
    160   =compat-alist-get=.
    161 - The addition of =image-property= and generalised variable support
    162   for =image-property=.
    163 - The addition of the function =compat-executable-find=.
    164 - The addition of the function =compat-dired-get-marked-files=.
    165 - The addition of the function =exec-path=.
    166 - The addition of the function =make-lock-file-name=.
    167 - The addition of the function =null-device=.
    168 - The addition of the function =time-equal-p=.
    169 - The addition of the function =date-days-in-month=.
    170 - Handling out-of-directory byte compilation better.
    171 - Fixing the usage and edge-cases of =and-let*=.
    172 
    173 Furthermore a bug tracker was added: https://todo.sr.ht/~pkal/compat,
    174 which is the preferred way to report issues or feature requests.
    175 General problems, questions, etc. are still better discussed on the
    176 development mailing list: https://lists.sr.ht/~pkal/compat-devel.
    177 
    178 (Released <2022-04-22 Fri>)