[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#55676: [PATCH] non-recursive Lisp reader
From: |
Lars Ingebrigtsen |
Subject: |
bug#55676: [PATCH] non-recursive Lisp reader |
Date: |
Fri, 27 May 2022 16:03:32 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
Mattias EngdegÄrd <mattiase@acm.org> writes:
> You probably saw this one coming.
đ
> It's a restructuring of the Lisp reader so that it no longer uses
> recursion for reading nested data structures.
Wow, cool.
> The primary motivation is eliminating the limitation of the C stack
> (and potential overflow crash). As a happy side-effect, the change
> improves reader performance by a few percent, exact amount depending
> on what is being read. This translates into a small but measurable
> speed-up in loading packages (.el and .elc), and in
> byte-compilation. The performance increase is both from removal of
> recursion and closer attention to performance.
Sounds excellent.
> Care has been taken to not change the reader behaviour, although some
> error handling may differ in unimportant ways. Some obvious bugs found
> during the conversion have been fixed: for example, #_ followed by
> whitespace now represents the interned empty symbol; previously, it
> gave an unintended empty symbol. A non-breaking space after a single
> dot now results in the dot token instead of the dot as a symbol.
Hm... sounds logical, I think.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no