- Package management
- Repeatable builds with "minimal version selection"
- No more editing registry files
- No more Git submodules
- Build/test from anywhere in your workspace
Deft simplifies the management of Dylan workspaces and packages and provides a simplified interface to the Open Dylan compiler for building and (soon) testing, and generating documentation. It eliminates the need to manage library locations (registries) by hand and the need to use git submodules to track dependencies.
$ deft new application hello
Downloaded pacman-catalog@master to /tmp/dylan/_packages/pacman-catalog/master/src/
Created library hello.
Created library hello-test-suite.
Created library hello-app.
Downloaded strings@1.1.0 to /tmp/hello/_packages/strings/1.1.0/src/
Downloaded command-line-parser@3.1.1 to /tmp/hello/_packages/command-line-parser/3.1.1/src/
Downloaded json@1.0.0 to /tmp/hello/_packages/json/1.0.0/src/
Downloaded testworks@2.3.1 to /tmp/hello/_packages/testworks/2.3.1/src/
Updated 18 files in /tmp/hello/registry/.
$ cd hello
$ deft build --all
Open Dylan 2023.1
Build of 'hello-test-suite' completed
Build of 'hello-app' completed
Build of 'hello' completed
$ _build/bin/hello-app
Hello world!
A key part of this tool is the package manager (pacman) and its catalog of packages, the pacman-catalog repository. For any package to be downloadable it must have an entry in the catalog.
Full documentation is here.
If you have a feature request, think something should be designed differently, or find bugs, file a bug report.