generic specialization design discussion

John Rose john.r.rose at
Mon Apr 8 22:57:24 UTC 2019

On Apr 8, 2019, at 3:44 PM, John Rose <john.r.rose at> wrote:
> It also shows that, if we pick a third term like
> "heap", it only applies to regular classes, as an
> antonym for "inline", and to regular objects in
> the same way.

P.S.  In this example, a heap object is not one which is
stored in the heap, but rather which is embodied in its
own heap allocated block, with identity.  Inline objects
can be inlined into the heap, but they are still inline,
no matter where they end up.  An inline object buffered
in its own heap block is not a heap object, because its
value is independent of that particular block; it can be
moved anywhere without losing any part of its value.

There's nothing too special about the word "heap".
It's just doing the job of marking a class or object for
which the placement in the heap, with its own identity,
is a key part of the definition of the object's value.

So, “identity object”, “identity class” would be just
as correct, and maybe less confusing.  Or "top-level
object"?  Or "always-indirect object"?  "Faraway object"?

What we had before was "reference object", where "reference"
as a noun means one thing, and as an adjective means
something related but subtly different.

More information about the valhalla-spec-observers mailing list