vm:: global replacement

Strings can contain '\0' for example things like argv for threads which this is also used for, so I'm skeptical that this is equivalent