Hi,
I would like to ask why null-pointer is a function, not a variable... One reason is just curiosity, the other is that I want to know if it is safe to save the result of (null-pointer) in a variable and use it from then on (less parens, fewer function calls).
Thanks
Tamas
Tamas K Papp wonders
I would like to ask why null-pointer is a function, not a variable... One reason is just curiosity, the other is that I want to know if it is safe to save the result of (null-pointer) in a variable and use it from then on (less parens, fewer function calls).
It will work, in all but one important case: if you save your Lisp image, then restart from it and hope to continue playing with your ffi-using application, you are guaranteed to obtain implementation dependent results. It may work on some Lisps, it will error out on others.
Therefore, a null-pointer function, which consistently produces a fresh null pointer, may give less trouble, at the cost of being less performant.
E.g. was cffi stored in your image, or did you load it before using?
Alas, the problem is not solved: if you store the null pointer in some cell (= structure, slot, list, array etc.), save the image and restart, you will still face implementation dependent behaviour when trying to access that old pointer.
Regards, Jorg Hohle.