On 02/29/2016 03:03 PM, Philipp Stephani wrote:
> Is it a strict requirement that emacs_value be a pointer? If not,
> couldn't we simply define it as int64 and assume that that will be large
> enough to hold a Lisp_Object for the foreseeable future? Or do we expect
> Lisp_Object to ever grow beyond 64 bits?
I don't like giving users raw Lisp_Objects.
But we are already doing that in most cases (64-bit pointers and Lisp_Objects): the pointer is not a real pointer, just a Lisp_Object cast to a pointer type.
I really don't like making
32-bit callers cope with 64-bit values.
It's been a while since I did 32-bit programming, but what issues could arise? We're not doing any arithmetic or other processing on the values, just passing them around.
If emacs_value is a pointer, we
have complete freedom with respect to runtime behavior. Putting a
Lisp_Object directly in an emacs_value is a false economy.
As said above, we're already doing that.