+(sb!alien:define-alien-routine
+ os-get-runtime-executable-path sb!alien:c-string (external-path boolean))
+(sb!alien:define-alien-variable
+ ("saved_runtime_path" *native-saved-runtime-path*) (* char))
+
+(defmacro init-var-ignoring-errors (variable
+ form
+ &key default
+ explanation
+ (condition 'error))
+ `(setf ,variable
+ (handler-case ,form
+ (,condition (c)
+ (let ((default ,default))
+ (warn "Error initializing ~a~@[ ~a~]:~@
+ ~a
+ ~% Using ~s instead."
+ ',variable
+ ,explanation
+ c
+ default)
+ default)))))