objective-c/runtime.lisp
Run body with the floating-point environment expected by Apple frameworks.
The native boundary could not perform a declared Objective-C message.
Something that can receive an Objective-C message.
A borrowed Objective-C runtime Class identity.
One native Objective-C pointer and exactly one owned or borrowed claim.
Return receiver's live native pointer for one ABI crossing.
Return the registered Objective-C class name as a borrowed receiver.
Wrap pointer with one explicit :OWNED or :BORROWED claim; NIL represents nil.
Whether left and right wrap the same native Objective-C identity.
Return the selector, ABI, and ownership metadata for one declared message.
Return one opt-in trace event with its declared ABI metadata.
How declared messages cross the native boundary: :CATCH or :UNCHECKED.
:UNCHECKED calls objc_msgSend directly and is the ordinary path. :CATCH uses the native NSInvocation exception bridge for an explicit diagnostic scope.
Send declared messages in body directly, without catching NSException.
Catch NSException in body, even inside an unchecked dynamic context.
Run body with declared sends recorded as backend-local trace events.
The stable libobjc dispatch entry, resolved once when this runtime loads.
Resolving this symbol for every declared message used to put dlsym on the per-frame path hundreds of times. #WEE1DX
Validate that receiver owns the retain a message consumes.
Define name as an inspectable, ABI-typed class and message-sending function.
(&body body)Logical disjunction of tests and raw truth values.
The native boundary could not perform a declared Objective-C message.
Something that can receive an Objective-C message.
A borrowed Objective-C runtime Class identity.
One native Objective-C pointer and exactly one owned or borrowed claim.
((call tool-call) stream)(pointer)(pointer &key (ownership :borrowed) protocol-name)(left right)Logical conjunction of tests and raw truth values.
Test whether two compatible scalars are equal.
The current opt-in Objective-C trace, or NIL on the ordinary direct path.
Division of two represented quantities.
((trace) &body body)Test whether one compatible scalar is less than another.
(value &optional (depth 0))Test whether one compatible scalar is at least another.
Headings, paragraphs, figures and their IDs, mentions, marks.
Logical negation of one test or raw truth value.
One top-level defining form of a source file.
How declared messages cross the native boundary: :CATCH or :UNCHECKED. :UNCHECKED calls objc_msgSend directly and is the ordinary path. :CATCH uses the native NSInvocation exception bridge for an explicit diagnostic scope.
(() &body body)(() &body body)((trace) &body body)The stable libobjc dispatch entry, resolved once when this runtime loads. Resolving this symbol for every declared message used to put dlsym on the per-frame path hundreds of times. #WEE1DX
(receiver)Validate that RECEIVER owns the retain a message consumes.
(value definition)(trace definition arguments function)Subtraction or unary negation.
(definition receiver result result-size arguments argument-sizes argument-count)(name (selector result-type &key ownership class consumes-receiver)
&body arguments)Intent: keep direct objc_msgSend direct by removing dynamic symbol lookup from every declared message. Evidence: – SBCL call profiling counted 160,400 calls to objective-c-message-send-pointer, CFFI's symbol lookup, and SBCL's dynamic foreign-symbol resolver across 200 steady luvcraft frames: exactly 802 resolutions…
A small declared Objective-C foreign object system.
Classes and objects preserve native identity at the Lisp boundary. A message declaration is a class of invocations whose metaclass owns the selector, exact ABI, and ownership convention. INVOKE dispatches on both the runtime and that message class; tracing composes as an invoker mixin.