> I don't like giving users raw Lisp_Objects. I really don't like making
> 32-bit callers cope with 64-bit values. 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.
This assumes that the performance cost of the API is negligible.
Currently, the performance already sucks rocks because of all the extra
condition-case going on (thanks to your lobbying), but I don't think we
should add insult to injury.
Is this just speculation, or do you have actual benchmarks?