fperrad/digest-dynpmcs — comment on commit 29a8ae531470fd91b5f5f1617e2a2b632ed4308f
File:  line 0
By plobsing:

Is it intended that this "address" be mappable back to the original object? If so, I doubt it will be possible to maintain this functionality if Parrot ever implements a compacting GC. If not, get_id can serve the purpose fairly well, and is more likely to continue working under a compacting GC (its behaviour is less constrained, and more things depend on it). Nua (lua on .Net) uses System.Object.GetHashCode() for a similar reason.

In any case, if you *really* want the address of the struct PMC, and not the address of the pointer-like thing the PMC is holding, I recommend you not overload the get_pointer() vtable for the former purpose, as it is intended for the latter. These are two independent intents, and it is best if they be kept separate, lest one want to support both operations at some point. Perhaps a custom op or nci? For example:

```
inline op get_pmc_struct_addr(out INT, in PMC) {
$1 = (INTVAL)$2;
}
```