[Openmcl-devel] Lisp Comparison

Shannon Spires svs at bearlanding.com
Wed Apr 19 09:54:30 PDT 2017

The implementation of reader-macros was changed to sparse vectors in http://trac.clozure.com/ccl/changeset/16442

On Apr 19, 2017, at 9:10 AM, Andrew Shalit wrote:

> I remembered more details of the previous case.
> The user code added a dispatching macro character for every character.  In most cases, the dispatching function just performed the default behavior, but in one or two cases it did something else.  This worked fine in a world of 8-bit ascii but had magnificent performance problems in a world of unicode.
> The user decided to change their code (which had probably been written by an undergraduate 40 years ago) rather than have us make changes to the CCL reader.
> I don’t know whether Craig’s performance problem is caused by the same issue in the reader, but it seems like a good candidate to look at.
>> On Apr 19, 2017, at 7:24 AM, Andrew Shalit <alms at clozure.com> wrote:
>> Does the code add hundreds or thousands of dispatching macro characters? That won’t work very well. I don’t have details at the tip of my keyboard, but I believe they’re just stored in a list.  We ran into this with a client a few years ago, and my memory is that he opted to change his implementation (which was trivial in his case) rather than having us change how the reader stores the set of dispatching macro characters associated with a read table. Changing the way CCL stored the dispatching macro characters also was pretty trivial, but involved some tradeoffs, as I recall.

More information about the Openmcl-devel mailing list