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.
Download the release: https://opendylan.org/download
Read documentation: https://opendylan.org
Report problems: https://github.com/dylan-lang/opendylan/issues
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
ifexpressions can now be repeated multiple times as the function is iteratively improved.The compiler now supports an extended version of
copy-down-method-definerallowing aspecializingclause selecting which of the more-general methods should be selected for inlining in the case of dispatch ambiguity. Additionally, ambiguouscopy-down-methoddefinitions 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 variablehas 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 dialog have been fixed.
Bundled Library Updates¶
Changes to libraries that are part of the opendylan repository.
Dylan¶
A number of
copy-down-methoddefinitions in thedylanlibrary 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 thedylanlibrary.
Common-Dylan¶
A problem with retrieving
application-nameandapplication-argumentsresults from the operating system when running Dylan applications under tools such as valgrind has been fixed.
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 thefile-systemmodule) replaces the deprecatedresolve-locator(in thelocatorsmodule) because it is fundamentally a file-system operation.resolve-filenow 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-contentshas a new keyword argumentresolve-links?. If true, symbolic links are resolved as withresolve-file.expand-pathnameis no longer called by otherfile-systemfunctions. If you depended on this behavior, callexpand-pathnamedirectly.On Unix,
~or~userare expanded to the specified user’s home directory. The exact string “~” is now correctly expanded.expand-pathnamenow uses the thread safe functiongetpwnam_ron 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, thelink-targetfunction 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.
The logging library: b0b469a -> v2.2.1
The strings library: v2.0.0 -> v2.0.1
The testworks library: v3.3.0 -> v3.4.0
The
dswanklibrary (the back-end for the DIME Emacs-based IDE) and the DIME documentation have been moved to the dylan-emacs-support repository so that they can be maintained in sync with the DIME Elisp code. Several important bugs have been fixed for v0.2.0, the version distributed with this release.
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