use static inline for user code, don't worry about PROTECTCHECK for the moment
Merge branch '28-not-lvalue-macro' into 29-cleanup