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.
Note
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
Compiler¶
Fixed a crash in the optimizer that ocurred 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 occurence 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 thesbin(static executables binary) directory of the personal-root, normally./_build/sbin/.Fixed a build script problem that caused separate debug information to be lost on FreeBSD platforms (or others using
llvm-stripas the defaultstripprogram).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-compileranddylan-environmentexecutables now return exit code3if any serious warnings are generated. Use the new-allow-serious-warningsflag to return to the old behavior of returning exit code0.
Tooling¶
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.
Note
This tool is still in the relatively early stages of development.
Run-time¶
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.
Platform Support¶
The 64-bit RISC-V architecture (rv64gc ISA) is now supported on Linux.
IDE¶
A bug that caused error pop-up dialogs whenever the cursor was moved in an interactor window has been fixed.
Documentation¶
The Developing Component Software with CORBA guide has been updated.
Documentation for the DOOD library has been added to the library reference.
Documentation for the internal
access-pathanddebugger-managerlibraries is now available in the Open Dylan Hacker’s Guide.
Library Changes¶
common-dylan Library¶
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.
io Library¶
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.
system Library¶
A segmentation fault when using
list-locatorwas fixed (bug 1372).Function
file-locator, to create a file locator as a child of a directory locator, is now exported from the locators module.
ssl Library¶
The ssl-network library has been updated for compatibility with OpenSSL 1.1.x.
testworks Library¶
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 conventiontest-foo/subtest1,test-foo/subtest2.
collections Library¶
The
tablemacro has been renamed totabling.tableis not an unlikely name for a function parameter when writing code that generically operates on tables, and the existence of thetablemacro causes a confusing compiler warning for references to that name that aren’t in the correct form.
Contributors¶
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
Carl Gay
Peter Hull
phongphan
Fernando Raya
Pierre De Pascale
kryptine