freenode/#sicl - IRC Chatlog
Search
14:44:59
beach
In section 26.4 of the SICL specification, I describe how different dynamic-environment entries are represented on the stack.
14:47:36
beach
First, I have a type code for different entries, but I think I will just make the entries into ordinary SICL general instances, i.e. with a header and a rack. They can still be stored in the stack, but that would just be with the same mechanism as any other object with dynamic extent.
14:48:24
beach
Second, I am thinking of using an ordinary list for the dynamic environment, so that there would be an additional CONS cell as well.
14:50:34
beach
Third, I mention changing the time stamp to 0 to invalidate an entry, but I am now thinking I should add a VALID-P field. Then, better error messages can be emitted. Currently, there is no way to distinguish between a non-existing entry and an existing entry that has been invalidated.
14:59:52
beach
3. The entry does not exist, meaning that an attempt is made to use it after it was completely removed.
15:00:25
beach
If I alter the time stamp (which determines the identity of the entry), I can't distinguish between 2 and 3.
15:02:45
beach
By having a different slot for validity, I can correctly identify situation 2 because of the time stamp, but it can't be used because it has been invalidated.
15:06:36
beach
I am proposing this change so that I have a more uniform representation of all objects, and so that it will be possible to allocate the dynamic environment entries on the heap, at least initially, to facilitate debugging and such.