1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-05-13 16:52:46 -07:00
emacs/test/src
Mattias Engdegård b903507b36 Nonrecursive Lisp reader (bug#55676)
Restructure the reader to be nonrecursive so that it is not limited by
the C stack or crashes Emacs when reading deeply nested data.
This also improves performance.
A few minor bugs were fixed:

- (a .{NBSP}b) where {NBSP} is a non-breaking space (U+00A0) is now
  the dotted pair (a . b), not the 3-element list (a \. b), since U+00A0
  is treated as whitespace everywhere else.
- #_ with no symbol following is now equivalent to ## (empty interned
  symbol), not #: (empty uninterned symbol).

* src/alloc.c (garbage_collect): Call mark_lread.
* src/lread.c (readevalloop): Use read0 instead of read_list.
(stackbufsize): Increase to 1024, now that read0 isn't recursive.
(invalid_radix_integer): Buffer overflow check.
(read1, read_list, read_vector): Remove.
(read_char_literal, read_string_literal)
(hash_table_from_plist, record_from_list, vector_from_rev_list)
(bytecode_from_rev_list, char_table_from_rev_list)
(sub_char_table_from_rev_list, string_props_from_rev_list)
(read_bool_vector, skip_lazy_string, symbol_char_span)
(skip_space_and_comments)
(enum read_entry_type, struct read_stack_entry, struct read_stack)
(rdstack, mark_lread, read_stack_top, read_stack_pop)
(read_stack_empty_p, grow_read_stack, read_stack_push): New.
(read0): Rewrite to be nonrecursive.
* test/src/lread-tests.el (lread-deeply-nested, lread-misc): New tests.
2022-05-30 15:56:59 +02:00
..
comp-resources
emacs-module-resources
lread-resources
regex-resources
syntax-resources
alloc-tests.el
buffer-tests.el Clean up a test file in /tmp 2022-05-24 16:11:09 +02:00
callint-tests.el
callproc-tests.el
casefiddle-tests.el
character-tests.el
charset-tests.el
chartab-tests.el
cmds-tests.el
coding-tests.el
comp-tests.el Fix issue with nativecomp tests leaving files behind in /tmp 2022-05-24 17:24:40 +02:00
data-tests.el
decompress-tests.el
doc-tests.el
editfns-tests.el
emacs-module-tests.el
emacs-tests.el
eval-tests.el Fix atimer setting and overdue expiration (bug#55628) 2022-05-30 15:52:02 +02:00
fileio-tests.el
filelock-tests.el
floatfns-tests.el
fns-tests.el
font-tests.el
image-tests.el ; Pacify some --without-x byte-compiler warnings. 2022-05-07 20:18:51 +03:00
indent-tests.el
inotify-tests.el
json-tests.el
keyboard-tests.el
keymap-tests.el
lcms-tests.el
lread-tests.el Nonrecursive Lisp reader (bug#55676) 2022-05-30 15:56:59 +02:00
marker-tests.el
minibuf-tests.el
print-tests.el Less wrong printed circular list tail index (bug#55395) 2022-05-23 16:50:00 +02:00
process-tests.el
regex-emacs-tests.el
search-tests.el
sqlite-tests.el Allow inserting and selecting binary blobs from sqlite 2022-04-28 14:58:53 +02:00
syntax-tests.el
textprop-tests.el
thread-tests.el
timefns-tests.el Support (encode-time (list s m h D M Y)) 2022-04-25 12:40:20 -07:00
undo-tests.el
xdisp-tests.el
xfaces-tests.el
xml-tests.el