freenode/#sicl - IRC Chatlog
Search
5:13:58
beach
As it turns out, the new names CELL-READ/WRITE are not great, because we already have READ/WRITE-CELL for accessing cells that are introduced by closure conversion. :(
5:15:42
beach
I think I just need to come up with a word that means something similar to "cell", "slot", or "field".
5:16:53
beach
... and then use that word everywhere as the name of the thins that make up a standard object.
5:54:19
beach
By "nook" I mean the elements of the contents vector of a standard object. Some (most?) of those nooks hold slot values, but some may hold other data.
5:54:52
beach
I believe "contents vector" is a term used by the AMOP, but I am not entirely sure about that.
6:05:16
no-defun-allowed
What do you call accessing the elements of a normal vector? I would suggest CONTENTS-REF and SET-CONTENTS-REF but that would not fit with your READ- and WRITE- pattern.
6:07:21
beach
And it is good to have a term that is different from "slot", because "slot" sometimes means the slot-definition metaobject.
6:17:09
no-defun-allowed
aeth: Well, I guess a vector that client code would access normally as a Common Lisp vector, rather than internally in the MOP machinery?
6:33:59
beach
The terminology that I am musing about is not standard Common Lisp names for accessing objects, but names to be used in ASTs and intermediate code for such access. In this particular case, I needed a name for reading and writing the contents of a standard object.
6:34:21
beach
The MOP has functions STANDARD-INSTANCE-ACESS and FUNCALLABLE-STANDARD-INSTANCE-ACESS.
6:35:14
beach
Plus, it is not clear from the MOP whether contents other than slots could be accessed this way.
6:35:57
beach
But these functions are given a "location", and "location" is also the term used for the slot in a slot-definition metaobject.
6:36:39
beach
So, I am inclined to interpret the LOCATION parameter of STANDARD-INSTANCE-ACCESS as the same thing, in which case, 0 means the first slot.
6:37:06
beach
Therefore, there is no way to use this function to access information other than slots, unless of course you allow for negative locations.
6:37:58
beach
So, I needed some new terminology, a new name for the instructions/ASTs/primops for accessing the contents of standard objects.
6:40:50
beach
OK, so "contents vector" is not in the index of the AMOP, but I must have seen it somewhere.