Open Dylan 2026.1

This document describes the 2026.1 release of Open Dylan, released February 2026. The highlights of the release are listed below. For complete details see the commit logs for this release.

Compiler

  • The compiler no longer copies C/C++ source files, C/C++ header files, C object files, Windows resource files, and Jam include files into the build directory before performing the link build stage, and instead makes the original source directory location available to the build system (and the Jam build scripts).

  • The compiler now signals an error when it is not able to inline a call to a method that has either a method parameter or a return value with a raw type. This provides explicit guidance when encountering the situation outlined in Issue 1377.

  • Repeated optimization involving lifting closures to top level now properly preserves types of local bindings.

  • Optimization of the type estimation of if expressions can now be repeated multiple times as the function is iteratively improved.

  • The compiler now supports an extended version of copy-down-method-definer allowing a specializing clause selecting which of the more-general methods should be selected for inlining in the case of dispatch ambiguity. Additionally, ambiguous copy-down-method definitions are now signaled as serious warnings rather than allowing a random applicable method to be chosen for inlining.

  • The overhead for critical runtime code used for type checking and method dispatch has been reduced by ensuring that certain object slots could never be considered uninitialized.

  • The implementation of define thread variable has changed to improve the integration with the garbage collector, reducing the number of GC roots that need to be registered to one per thread, thus increasing the number of threads that can be run. (No significant change in execution performance is expected.)

  • Debug information for functions with code spanning multiple source files is now handled properly, fixing Issue 1777.

IDE

  • Paths for the example and test suite projects accessible from the Tools ‣ Open Example Project… dialog have been fixed.

Bundled Library Updates

Changes to libraries that are part of the opendylan repository.

Dylan

  • A number of copy-down-method definitions in the dylan library that were previously marked as ambiguous have been corrected. This removes the vast majority of the warnings that were generated during the initial build of a project due to recompiling the dylan library.

Common-Dylan

io

  • Specific versions of the stream functions sealed on <byte-char-file-stream> and <byte-file-stream> are provided, significantly improving the performance of these stream operations.

System

  • resolve-file (in the file-system module) replaces the deprecated resolve-locator (in the locators module) because it is fundamentally a file-system operation.

    resolve-file now returns the correct class of locator, a subclass of <file-locator> or class:<directory-locator>, depending on the actual file type of the fully resolved file. It previously returned an instance of the same class as the locator it was provided, but that is not always accurate when symbolic links are followed.

  • directory-contents has a new keyword argument resolve-links?. If true, symbolic links are resolved as with resolve-file.

  • expand-pathname is no longer called by other file-system functions. If you depended on this behavior, call expand-pathname directly.

    On Unix, ~ or ~user are expanded to the specified user’s home directory. The exact string “~” is now correctly expanded. expand-pathname now uses the thread safe function getpwnam_r on Unix systems.

    On Windows, 8.3 short file names are expanded.

  • Issue 1408, which could result in an infinite loop in link-target, has been fixed. In addition, the link-target function accepts a new keyword argument, follow-links?, which specifies whether to follow all links until a non-symlink file is found (the default) or just return the direct target of the given symlink.

Submoduled Library Updates

The following changes were made to Open Dylan dependencies that are included as Git submodules.

Contributors

We’d like to thank all the people that made contributions to this release and to surrounding libraries in the Dylan ecosystem….

  • Peter S. Housel

  • Jan Sucan

  • Fernando Raya

  • Carl Gay