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: https://opendylan.org/download
Read documentation: https://opendylan.org
Report problems: https://github.com/dylan-lang/opendylan/issues
Compiler¶
Fixed a crash in the optimizer that occurred when compiling certain C-FFI primitive functions.
Improved support for code generation of
apply
calls 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
-unify
build 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-strip
as the defaultstrip
program).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-compiler
anddylan-environment
executables now return exit code3
if any serious warnings are generated. Use the new-allow-serious-warnings
flag to return to the old behavior of returning exit code0
.
Tooling¶
The
dylan
command (renamed to <https://github.com/dylan-lang/deft>`_ in Open Dylan 2024.2) 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.Note
Since this release, dylan-tool was renamed to “deft”. See the deft documentation <https://package.opendylan.org/deft/> 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¶
Developing Component Software with CORBA has been updated.
Documentation for the DOOD library has been added to the library reference.
Documentation for the internal
access-path
anddebugger-manager
libraries is now available in the Open Dylan Hacker’s Guide.
Library Changes¶
common-dylan Library¶
integer-to-string
has a new lowercase? keyword argument. When true, lowercase characters are used when base is above 10.string-to-integer
performance has been improved.
io Library¶
The behavior of the
%x
format 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-locator
was 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-file
simplifies the creation of test files.test-temp-directory
now handles test names containing/
. This is important for tests using the naming conventiontest-foo/subtest1
,test-foo/subtest2
.
collections Library¶
The
table
macro has been renamed totabling
.table
is not an unlikely name for a function parameter when writing code that generically operates on tables, and the existence of thetable
macro 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