Hacker News new | past | comments | ask | show | jobs | submit login

Off topic: can we please get support for storing arbitrary data structures inside mmapped files (with nonfixed base address)?

That's not possible to do safely for arbitrary data structures because they can contain pointers or references. If you reload to a different address then the pointers, even within the allocated chunk, would be invalid and require fixup. And if you require fixup then you might as well do (de)serialization for your data structures.

Just allocating into such a memory region (essentially custom page swapping) will eventually be possible with data structures that can be constructed with custom allocators, but it still wouldn't be ok to reload those.

Perhaps this problem can be overcome by modifying the concept of a pointer slightly, to make it a "based pointer" (?)

I found an old discussion on this topic here: https://news.ycombinator.com/item?id=13890011

Note that the Microsoft C++ compiler implements based pointers, using the __based keyword.

Specialized data structures can be built that contain primitives and other types supporting this kind of thing. But you still can't store arbitrary data because they could contain FFI pointers, handles to native resources, things that need to run destructors etc.

So to do this safely all the types must be whitelisted through a custom trait. Copy is close, but not quite, since references are still Copy.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact