[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [PATCH] Another symbol GC sanity check fix [was: R
From: |
felix . winkelmann |
Subject: |
Re: [Chicken-hackers] [PATCH] Another symbol GC sanity check fix [was: Re: [PATCH] Fix record type tags to be nonglobal by module-prefixing them] |
Date: |
Wed, 19 Jul 2017 09:38:14 +0200 |
>
> From there, there are two ways to ensure they don't interfere with
> symbols that are spelled the same:
>
> - Make the lookup know what we're looking for and use the symbol's
> value to determine whether to return the object or not.
> - Create a new symbol table for keywords specifically.
>
> My preference is the second option: it's cleaner and less confusing,
> and we can even experiment with a differently sized "keyword table".
> This table can perhaps also be assumed to always have only weak
> references.
>
> To guarantee backwards compatibility, we could check that an interned
> symbol starts with a \x00 and intern it into the keyword table.
> A lookup would then also need to ignore the \x00 at the start when
> hashing and searching. Once everything is using unprefixed keywords
> we can drop the special-casing for the initial \x00 value.
>
I'm slightly frightened by all the plans for various overhauls and want to point
out that once 5.0 is released, such changes will require a Change Request
(which is a good thing, as I think we are going slightly overboard by trying
to fix everything, regardless of criticality).
felix