On Tue, Oct 21, 2014 at 8:32 AM, Mike Pall <mike-1410@xxxxxxxxxx> wrote: > Florian Weimer wrote: > > From this, I infer that all valid userspace pointers on x86_64 are > > representable as lightuserdata values. > > Solaris also uses the negative x64 address space in user mode (for > stacks and default mmap). I have no plans to deal with this oddity. Womp womp. Sad panda. This hasn't been a show stopper for us, but it is pretty annoying. I'll restate my idea for "solving" this 2/4GB issue. Currently, when you create a new lua state it expects to be able to manage its own memory in 0x00000000-0x100000000 (or less). It would solve most (if not all) of or problems if, when creating a new lua state, we could specify a base address so that I could mmap into (e.g. 0xfffe00000000 - 0xffff00000000) which will never collide with anything in my app... In our particular app, we have many threads that each run their own isolated lua states. This would allow us to have each of them self-contained in their own virtual memory segment. Best regards, Theo -- Theo Schlossnagle http://omniti.com/is/theo-schlossnagle