Open Dylan 2022.1#
This document describes the 2022.1 release of Open Dylan, released 28 November, 2022. This release contains many enhancements and bug fixes, highlights of which are listed below. For complete details see the opendylan commit logs.
Some commit logs, for example for testworks and other libraries that are included in Open Dylan as git submodules, may be in other repositories.
Download the release: http://opendylan.org/download
Read documentation: http://opendylan.org/documentation
Report problems: https://github.com/dylan-lang/opendylan/issues
Fixed a crash in the optimizer that occurred when compiling certain C-FFI primitive functions.
Improved support for code generation of
applycalls to known methods.
Improved source line tracking in the generated code, reducing the occurrence of code marked as being at line 0 by the debugger.
Added support for linking executable Dylan libraries and all of their dependencies into a single unified executable using the
-unifybuild option. The unified executable will be stored in the
sbin(static executables binary) directory of the personal-root, normally
Fixed a build script problem that caused separate debug information to be lost on FreeBSD platforms (or others using
llvm-stripas the default
Fixed a problem with certain types of multiple-value return (bug 1455).
Fixed a problem with the optimization of functions that tail-call themselves.
To aid with automation tasks the
dylan-environmentexecutables now return exit code
3if any serious warnings are generated. Use the new
-allow-serious-warningsflag to return to the old behavior of returning exit code
The dylan command is a new tool to manage Dylan packages and workspaces. It provides a centralized catalog of Dylan packages and a way to manage dependencies without resorting to Git submodules or needing to manually create registry files. See the dylan-tool documentation for details.
This tool is still in the relatively early stages of development.
Fixed a problem that prevented treating invalid keyword arguments as run-time warnings (bug 1386)
Changed the run-time on x86_64 Linux to stop catching the SIGSEGV signal.
The 64-bit RISC-V architecture (rv64gc ISA) is now supported on Linux.
A bug that caused error pop-up dialogs whenever the cursor was moved in an interactor window has been fixed.
integer-to-stringhas a new lowercase? keyword argument. When true, lowercase characters are used when base is above 10.
string-to-integerperformance has been improved.
The behavior of the
%xformat directive has changed. “%x” now outputs lowercase hexadecimal numbers and “%X” outputs uppercase. The old behavior was to always output uppercase. Fixes bug 1054.
A segmentation fault when using
list-locatorwas fixed (bug 1372).
file-locator, to create a file locator as a child of a directory locator, is now exported from the locators module.
ssl-network library has been updated for compatibility with OpenSSL 1.1.x.
The new function
write-test-filesimplifies the creation of test files.
test-temp-directorynow handles test names containing
/. This is important for tests using the naming convention
tablemacro has been renamed to
tableis not an unlikely name for a function parameter when writing code that generically operates on tables, and the existence of the
tablemacro causes a confusing compiler warning for references to that name that aren’t in the correct form.
We’d like to thank all the people that made contributions to this release and to surrounding libraries in the Dylan ecosystem. This list is probably incomplete…
Peter S. Housel
Pierre De Pascale