diff options
| author | Dmitry Gutov | 2023-09-24 01:19:14 +0300 |
|---|---|---|
| committer | Dmitry Gutov | 2024-06-09 02:44:19 +0300 |
| commit | bbc18031aff6f22a1f2b63355f18f294fbdeb797 (patch) | |
| tree | 821536d84a47d3abc01490038e970c1bc53f8447 /etc | |
| parent | e2527dd9fd376b15d2f59ae440858b442b069577 (diff) | |
| download | emacs-bbc18031aff6f22a1f2b63355f18f294fbdeb797.tar.gz emacs-bbc18031aff6f22a1f2b63355f18f294fbdeb797.zip | |
Go around calling the default process filter (reducing GC churn)
Instead of allocating strings and passing them to the filter, pass
the char buffer to a C function implementing the same logic.
* src/process.c (read_process_output_before_insert)
(read_process_output_after_insert):
New functions, extracted from internal-default-process-filter.
(Finternal_default_process_filter): Use them.
(read_and_insert_process_output): New function. Use them.
(read_process_output_fast): New variable.
(read_process_output): Use it to choose how to insert (bug#66020).
* etc/NEWS: Mention the change.
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/NEWS | 7 |
1 files changed, 7 insertions, 0 deletions
| @@ -126,6 +126,13 @@ to your init: | |||
| 126 | 126 | ||
| 127 | (advice-add 'completion-at-point :after #'minibuffer-hide-completions) | 127 | (advice-add 'completion-at-point :after #'minibuffer-hide-completions) |
| 128 | 128 | ||
| 129 | ** The defult process filter was rewritten in native code. | ||
| 130 | The round-trip through the Lisp function | ||
| 131 | 'internal-default-process-filter' is skipped when the process filter is | ||
| 132 | the default one. It's reimplemented in native code, reducing GC churn. | ||
| 133 | |||
| 134 | To undo the change, set 'read-process-output-fast' to nil. | ||
| 135 | |||
| 129 | 136 | ||
| 130 | * Changes in Emacs 30.1 | 137 | * Changes in Emacs 30.1 |
| 131 | 138 | ||