config

Personal configuration.
git clone git://code.dwrz.net/config
Log | Files | Refs

NEWS.org (13666B)


      1 #+link:    compat-srht https://todo.sr.ht/~pkal/compat/
      2 #+link:    compat-gh   https://github.com/emacs-compat/compat/issues/
      3 #+options: toc:nil num:nil author:nil
      4 
      5 * Release of "Compat" Version 29.1.4.5
      6 
      7 - Minor optimization of ~plist-get~ and ~plist-put~.
      8 - Minor compatibility adjustments for the Emacs 30 development version.
      9 - A minimal version of =compat.el= will be part of Emacs 30. Emacs :core packages
     10   can directly ~(require 'compat)~ without the ~NOERROR~ flag. Furthermore Compat
     11   will not be installed unnecessarily. If a package depending on Emacs 25.1 and
     12   Compat 29.1 is installed on Emacs 30.1, Compat 29.1 will not be installed from
     13   ELPA, since Emacs 30.1 already provides the required functionality.
     14 
     15 (Release <2024-03-16 Sat>)
     16 
     17 * Release of "Compat" Version 29.1.4.4
     18 
     19 - Fix ~Package-Requires~ header in compat.el
     20 - Fix ~Maintainer~ header in compat.el
     21 
     22 (Release <2023-11-13 Mon>)
     23 
     24 * Release of "Compat" Version 29.1.4.3
     25 
     26 - compat-29: Add function =char-uppercase-p=.
     27 - compat-29: Add function =window-configuration-equal-p=.
     28 
     29 (Release <2023-11-04 Sat>)
     30 
     31 * Release of "Compat" Version 29.1.4.2
     32 
     33 - compat-28: Improve =make-separator-line= visuals on graphic displays.
     34 - compat-28: Add =native-comp-available-p=, which always returns nil.
     35 - compat-29: Add variable =lisp-directory=.
     36 
     37 (Release <2023-07-30 Sun>)
     38 
     39 * Release of "Compat" Version 29.1.4.1
     40 
     41 - compat-29: Add ~directory-abbrev-apply~.
     42 - compat-29: Add ~directory-abbrev-make-regexp~.
     43 
     44 (Release <2023-03-26 Sun>)
     45 
     46 * Release of "Compat" Version 29.1.4.0
     47 
     48 - compat-27: Drop obsolete ~compat-call dired-get-marked-files~.
     49 - compat-28: Add support for ~defcustom~ type ~natnum~.
     50 - compat-29: Add ~with-restriction~ and ~without-restriction~.
     51 - compat-29: Add ~cl-constantly~.
     52 - compat-29: Drop ~with-narrowing~ which was renamed to ~with-restriction~.
     53 - compat-28: Add support for ~defcustom~ type ~key~.
     54 
     55 (Release <2023-03-05 Sun>)
     56 
     57 * Release of "Compat" Version 29.1.3.4
     58 
     59 - Ensure that ~seq~ is required properly both at compile time and runtime, such
     60   that compilation of downstream packages works even if Compat itself is not
     61   compiled. Magit uses a complex continuous integration system, where Magit is
     62   compiled and tested, while the Compat dependency is not compiled.
     63 - compat-28: Add ~process-lines-handling-status~ and ~process-lines-ignore-status~.
     64 
     65 (Release <2023-02-11 Sat>)
     66 
     67 * Release of "Compat" Version 29.1.3.3
     68 
     69 - compat-27: Add ~with-suppressed-warnings~.
     70 - compat-29: Add ~cl-with-gensyms~ and ~cl-once-only~.
     71 - compat-29: Load ~seq~, which is preloaded on Emacs 29.
     72 
     73 (Release <2023-02-08 Wed>)
     74 
     75 * Release of "Compat" Version 29.1.3.2
     76 
     77 - compat-26: Add ~make-temp-file~ with optional argument TEXT.
     78 - compat-27: Mark ~compat-call dired-get-marked-files~ as obsolete. See the
     79   section limitations in the Compat manual.
     80 - compat-29: Add ~funcall-with-delayed-message~ and ~with-delayed-message~.
     81 - compat-29: Add ~ert-with-temp-file~ and ~ert-with-temp-directory~.
     82 - compat-29: Add ~set-transient-map~ with optional arguments MESSAGE and TIMEOUT.
     83 
     84 (Release <2023-02-01 Wed>)
     85 
     86 * Release of "Compat" Version 29.1.3.1
     87 
     88 - Fix regression, which prevented loading Compat in interpreted mode. We ensure
     89   that Compat works interpreted and byte compiled by running the entire test
     90   suite twice in the CI. See https://github.com/magit/magit/issues/4858 for the
     91   corresponding Magit issue.
     92 - compat-27: Add ~file-name-unquote~.
     93 - compat-28: Add ~mark-thing-at-mouse~.
     94 - compat-29: Replace ~string-lines~ with version from Emacs 29, support optional
     95   KEEP-NEWLINES argument.
     96 
     97 (Release <2023-01-25 Wed>)
     98 
     99 * Release of "Compat" Version 29.1.3.0
    100 
    101 - compat-25: Add ~hash-table-empty-p~.
    102 - compat-25: Add ~macroexp-parse-body~ and ~macroexp-quote~.
    103 - compat-25: Add ~region-noncontiguous-p~.
    104 - compat-25: Add ~save-mark-and-excursion~.
    105 - compat-26: Add ~read-answer~.
    106 - compat-26: Add ~region-bounds~.
    107 - compat-27: Add ~date-ordinal-to-time~.
    108 - compat-27: Add ~file-size-human-readable-iec~.
    109 - compat-27: Add ~major-mode-suspend~ and ~major-mode-restore~.
    110 - compat-27: Add ~make-decoded-time~.
    111 - compat-27: Add ~minibuffer-history-value~.
    112 - compat-27: Add ~read-char-from-minibuffer~.
    113 - compat-27: Add ~ring-resize~.
    114 - compat-28: Add ~color-dark-p~.
    115 - compat-28: Add ~directory-files-and-attributes~ with COUNT argument.
    116 - compat-28: Add ~text-quoting-style~.
    117 - compat-28: Add ~with-window-non-dedicated~.
    118 - compat-29: Add ~buffer-local-set-state~ and ~buffer-local-restore-state~.
    119 - compat-29: Add ~compiled-function-p~.
    120 - compat-29: Add ~count-sentences~.
    121 - compat-29: Add ~delete-line~.
    122 - compat-29: Add ~get-scratch-buffer-create~.
    123 - compat-29: Add ~list-of-strings-p~.
    124 - compat-29: Add ~plist-get~ generalized variable.
    125 - compat-29: Add ~plistp~.
    126 - compat-29: Add ~read-multiple-choice~ with LONG-FORM argument.
    127 - compat-29: Add ~readablep~.
    128 - compat-29: Add ~substitute-quotes~.
    129 - compat-29: Add ~use-region-beginning~, ~use-region-end~ and ~use-region-noncontiguous-p~.
    130 - compat-29: Add ~with-narrowing~.
    131 
    132 (Release <2023-01-22 Sun>)
    133 
    134 * Release of "Compat" Version 29.1.2.0
    135 
    136 - All compatibility functions are covered by tests!
    137 - Add links from compatibility definitions to tests.
    138 - BREAKING: Drop JSON parsing support (libjansson API, unused downstream).
    139 - BREAKING: Drop ~null-device~ (unused downstream).
    140 - BREAKING: Drop ~unlock-buffer~ (unused downstream).
    141 - compat-26: Add ~buffer-hash~.
    142 - compat-27: Add ~fixnump~ and ~bignump~.
    143 - compat-27: Add ~with-minibuffer-selected-window~.
    144 - compat-27: Add generalized variables for ~decoded-time-*~.
    145 - compat-28: Add ~macroexp-warn-and-return~.
    146 - compat-28: Add ~subr-native-elisp-p~.
    147 - compat-28: Add ~bounds-of-thing-at-mouse~.
    148 - compat-29: Add ~with-buffer-unmodified-if-unchanged~.
    149 - compat-29: Fix and test ~define-key~ with REMOVE argument.
    150 
    151 (Release <2023-01-16 Mon>)
    152 
    153 * Release of "Compat" Version 29.1.1.1
    154 
    155 - Add tests, 167 out of 203 definitions tested (82%).
    156 - compat-25: Improve algorithmic complexity of ~sort~.
    157 - compat-28: Add ~make-separator-line~.
    158 - compat-29: Minor fixes to ~keymap-*~ functions.
    159 - compat-29: Add ~with-memoization~.
    160 - compat-29: Add ~buttonize~ and ~buttonize-region~.
    161 
    162 (Release <2023-01-14 Sat>)
    163 
    164 * Release of "Compat" Version 29.1.1.0
    165 
    166 - The macros in ~compat-macs.el~ have been rewritten and simplified. The
    167   refactoring allows to further refine the criteria under which compatibility
    168   aliases, functions, macros and variables are installed.
    169 - Remove deprecated, prefixed compatibility functions.
    170 - Remove deprecated features ~compat-help~, ~compat-font-lock~ and ~compat-24~.
    171 - Compat uses runtime checks (~boundp~, ~fboundp~) to ensure that existing
    172   definitions are never overridden, when Compat is loaded on a newer Emacs than
    173   it was compiled on.
    174 - Compat compiles without byte compilation warnings on all supported Emacs
    175   versions. Warnings are treated as errors in the test suite.
    176 - Compat takes great care to remove unneeded definitions at compile time. On
    177   recent Emacs 29 the byte compiled files are empty and not loaded, such that
    178   Compat does not any cost to the Emacs process.
    179 - compat-26: Fix and test ~image-property~ setter.
    180 - compat-26: Fix and test ~read-multiple-choice~.
    181 - compat-28: Fix and test ~with-existing-directory~.
    182 - compat-28: Drop obsolete function ~make-directory-autoloads~.
    183 - compat-29: Drop broken functions ~string-pixel-width~ and
    184   ~buffer-text-pixel-size~. These functions had poor performance which lead to a
    185   downstream issue in the doom-modeline package. If a more efficient solution is
    186   possible, the function will be added back. See [[compat-gh:8]] for the bug report.
    187 - compat-29: Drop broken function ~string-limit~.
    188 - compat-29: Drop broken macro ~with-buffer-unmodified-if-unchanged~, which relied
    189   on ~buffer-hash~ which does not exist on all supported Emacs versions.
    190 - compat-29: Add ~pos-bol~ and ~pos-eol~.
    191 
    192 (Release <2023-01-07 Sat>)
    193 
    194 * Release of "Compat" Version 29.1.0.1
    195 
    196 - Add multiple new tests for existing APIs.
    197 - Fix bugs in compatibility functions: ~setq-local~, ~proper-list-p, prop-match-p~,
    198   ~file-name-concat~, ~replace-regexp-in-region~, ~replace-string-in-region~.
    199 - Add new Emacs 29 APIs. Some of them are still untested and may change. If you
    200   intend to use an Emacs 29 API please be careful and if possible contribute
    201   test cases. All untested functions are marked in the Compat code. Over time
    202   tests for all functions will be added gradually.
    203 - Add the macros ~compat-call~ and ~compat-function~ to call compatibility
    204   functions. Since Compat avoids overwriting already existing functions, we must
    205   define separate compatibility function definitions for functions which changed
    206   their calling convention or behavior. These compatibility definitions can be
    207   looked up using ~compat-function~ and called with ~compat-call~. For example ~assoc~
    208   can be called with a ~TESTFN~ since Emacs 26. In Emacs 25 and older the calling
    209   convention was ~(assoc KEY ALIST)~. In order to use the new calling convention
    210   you can use ~(compat-call assoc KEY ALIST TESTFN)~.
    211 - Deprecate all ~compat-*~ prefixed functions. Instead use the aforementioned
    212   ~compat-call~ or ~compat-function~ macros.
    213 - Deprecate ~compat-help.el~ and ~compat-font-lock.el.~
    214 - Development moved to GitHub.
    215 - BREAKING: Drop broken function ~func-arity~. Using ~func-arity~ is generally
    216   discouraged and the function is hard to implement properly due to all the
    217   various function types. There it is unlikely that the function will get
    218   reintroduced in Compat.
    219 - BREAKING: Drop broken function ~directory-files-recursively~. In case you need
    220   this function, a patch including tests is welcome.
    221 - BREAKING: Drop support for Emacs 24.3. Emacs 24.4 is required now. In case you
    222   still need Emacs 24.3 support, you can rely on Compat 28.1.2.2.
    223 
    224 (Release <2023-01-05 Thu>)
    225 
    226 * Release of "Compat" Version 28.1.2.2
    227 
    228 This is a minor release that hopes to address [[compat-srht:7]].
    229 
    230 (Release <2022-08-25 Thu>)
    231 
    232 * Release of "Compat" Version 28.1.2.1
    233 
    234 This is a minor release adding the following changes:
    235 
    236 - Add =derived-mode-p= defined in Emacs 27
    237 - Add =provided-mode-derived-p= defined in Emacs 27
    238 - Add =read-multiple-choice= defined in Emacs 26
    239 - Add =file-name-absolute-p= defined in Emacs 28
    240 
    241 The only other notable change is that the manual has been rewritten to
    242 include much more documentation that had been the case previously.
    243 
    244 (Release <2022-08-24 Wed>)
    245 
    246 * Release of "Compat" Version 28.1.2.0
    247 
    248 The main change of this release has been the major simplification of
    249 Compat's initialisation system, improving the situation around issues
    250 people had been reporting ([[compat-srht:4]], once again) with unconventional
    251 or unpopular packaging systems.
    252 
    253 In addition to this, the following functional changes have been made:
    254 
    255 - Fix =format-prompt= of an empty string as "default" argument
    256 - Add =decoded-time-period= defined in Emacs 28
    257 - Add =subr-primitive-p= defined in Emacs 28
    258 
    259 Minor improvements to manual are also part of this release.
    260 
    261 (Release <2022-07-18 Mon>)
    262 
    263 * Release of "Compat" Version 28.1.1.3
    264 
    265 This release just contains a hot-fix for an issue introduced in the
    266 last version, where compat.el raises an error during byte compilation.
    267 See [[compat-srht:4]].
    268 
    269 (Release <2022-06-19 Sun>)
    270 
    271 * Release of "Compat" Version 28.1.1.2
    272 
    273 Two main changes have necessitated a new patch release:
    274 
    275 1. Fix issues related to the loading of compat when uncompiled.  See
    276    [[https://lists.sr.ht/~pkal/compat-devel/%3C20220530191000.2183047-1-jonas%40bernoul.li%3E][this thread]] for more details on the problem.
    277 2. Fix issues related to the loading of compat on old pre-releases
    278    (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
    279    problem.
    280 
    281 (Released <2022-06-22 Wed>)
    282 
    283 * Release of "Compat" Version 28.1.1.1
    284 
    285 This is a minor release fixing a bug in =json-serialize=, that could
    286 cause unintended side-effects, not related to packages using Compat
    287 directly (see [[compat-srht:2]]).
    288 
    289 (Released <2022-05-05 Thu>)
    290 
    291 * Release of "Compat" Version 28.1.1.0
    292 
    293 This release mostly fixes a number of smaller bugs that were not
    294 identified as of 28.1.0.0.  Nevertheless these warrant a version bump,
    295 as some of these changes a functional.  These include:
    296 
    297 - The addition of the =file-attribute-*= accessor functions.
    298 - The addition of =file-attribute-collect=.
    299 - Improvements to the Texinfo manual (via Jonas Bernoulli's recent
    300   work on =ox-texinfo=).  For the time being, the Texinfo file is
    301   maintained in the repository itself, next to the =MANUAL= file.
    302   This might change in the future.
    303 - Adding a prefix to =string-trim=, =string-trim-left= and
    304   =string-trim-right= (i.e. now =compat-string-trim=,
    305   =compat-string-trim-left= and =compat-string-trim-right=)
    306 - Improving the version inference used in the =compat-*= macros.
    307   This improves the compile-time optimisation that strips away
    308   functions that are known to be defined for a specific version.
    309 - The addition of generalised variable (=setf=) support for
    310   =compat-alist-get=.
    311 - The addition of =image-property= and generalised variable support
    312   for =image-property=.
    313 - The addition of the function =compat-executable-find=.
    314 - The addition of the function =compat-dired-get-marked-files=.
    315 - The addition of the function =exec-path=.
    316 - The addition of the function =make-lock-file-name=.
    317 - The addition of the function =null-device=.
    318 - The addition of the function =time-equal-p=.
    319 - The addition of the function =date-days-in-month=.
    320 - Handling out-of-directory byte compilation better.
    321 - Fixing the usage and edge-cases of =and-let*=.
    322 
    323 (Released <2022-04-22 Fri>)