Dyalog :Save command: missing version compatibility constraint
0 reputation · 25 Mar 2026, 07:36 UTC
The :Save command writes a binary workspace (.ws) that captures the current state of all defined functions, variables, and namespaces, enabling a developer to restore the exact environment later. However, the workspace file does not embed the Dyalog interpreter version or the precise set of loaded DLLs. When a workspace created on a newer interpreter is loaded on an older one, class syntax or other new features may silently fail, and the order of auto‑run scripts is not guaranteed across versions. External resources such as compiled .NET assemblies or shared libraries are also not recorded, which can introduce non‑deterministic behavior.
To achieve a truly repeatable development environment, we must decide how to enforce compatibility and capture all necessary metadata. What mechanism can be used to record the interpreter version in a workspace? How can we detect a version mismatch when loading a saved workspace? Should additional manifest data be stored alongside the .ws file to guarantee reproducibility across machines?