I did too (specifically, i wished for a 'global' modifier). :-)
The reson being things like the above mentioned id:s, and code like this:
DiskChunk.pike // Let's say that we have 1000000 of these.. | | int hash; | DataBase parent; // 12Mb RAM goes *poof* here. :-) | | void create( DataBase par ) { parent = par; } | // .. code using variables above ..
compared to
DiskChunk.pike | | int hash; | global DataBase parent; // 12bytes RAM here, instead, gives 50% in-ram size. :-) | | void create( DataBase par ) { parent = par; } | // .. code using variables above ..
The alternative is to create a Global.pmod or similar, that contains a function that returns the parent object (if it is to be a constant, it has to be known compile time, so in practice a function is almost always needed)