config

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

NEWS.org (14745B)


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