SRFI 286: Controlling Library Availability

by Sergei Egorov

status: draft (2026-10-08)

keywords: Modules

Abstract

R7RS Scheme allows programs to query library presence at macro-expansion time using
(cond-expand ((library ⟨library name ⟩) ...)). However, when an implementation ships a shared library tree across interpreters built with different feature configurations, or when third-party libraries depend on conditionally present implementation features, standardizing library presence detection becomes problematic. This proposal specifies library mask files (mask.slm), a declarative mechanism placed in library root directories to dynamically mask unavailable libraries based on the current feature set without requiring physical file removal or upfront parsing of library contents.