I am pleased to announce the release of ASDF 2.21.
Since previous release 2.20, the changes are as follow:
* New features:
* Most importantly, encodings.
ASDF now lets you specify an :encoding for a system, module or component,
that is used when loading or compiling Lisp files. See the documentation.
By default, the only useful value is :utf-8, and
we recommend you use UTF-8 everywhere.
We intend to make UTF-8 the default in the future
(current default is the legacy behavior of using whichever implicit
default your underlying implementation is currently configured to use).
An extension asdf-encodings is available that supports more encodings,
including autodetection of encoding from either emacs-style declaration
-*- Mode: Lisp ; coding: utf-8 -*- or content.
* require-system works like load-system, but won't try to load or update
systems that have already been loaded, as listed by loaded-systems.
More generally, you can specify a list of systems as :force-not argument
to load-system and the specified systems won't be loaded or updated.
* You can specify :force-not and a list of systems when loading a system,
* You can now specify :hostname in your asdf-output-translations,
so you can easily share a home directory via the network
yet split its fasl cache between several subtly different machines.
* Bug Fixes:
* lp#982285. since 2.014.4, the default source-registry
was skipping anything from /usr or XDG_DATA_DIRS,
because of a missing test in getenv-absolute-pathnames. Fixed in .15.
* In 2.019.9 aka 2.20, ECL support was broken by using
a function in the wrong package (defined in cl-user). Fixed in .1.
* logical-pathname support was somewhat broken since 2.017.6,
due to the way most implementations fail to read physical namestrings
when *default-pathname-defaults* is a logical-pathname.
Fixed, together with other logical-pathname issues,
and a test case was added to the test suite to ensure no further
regression.
Works great modulo quirks around implementation bugs on CLISP and Allegro.
* Make upgrading ASDF more robust on CMUCL, LispWorks, SBCL.
* Minor tweaks:
* Use :unspecific in pathname components on more implementations.
* export and/or document more utilities.
* add a few missing compatfmt for Genera.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
You're currently going through a difficult transition period called "Life."
Dear Common Lisp hackers,
I just released ASDF 2.20.
Changes since 2.019:
* Support the new fasl numbering convention of CCL when generating
implementation strings.
* Fix a slew of small bug in corner cases of the configuration API,
as found by Sergey Katrevich and Rupert Warwick.
* Fixed bug in WEAKLY-DEPENDS-ON and added documentation (Robert Goldman).
There hasn't been much work on ASDF since last release in November.
That's the sign that ASDF is getting stable, I hope.
Note that this is 2.20, not 2.020: while previous version was 2.019
(and before that 2.018, etc), I have removed the intermediate 0 from 2.020,
which isn't significant considering how ASDF interprets version numbers.
As usual, please consider including it in your implementation or
software distribution, after suitable testing.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Of all the things I've lost in life, I miss my mind the most...
— Ozzy Ozbourne
Dear CL users,
I released ASDF 2.018.21 as 2.019.
Please test and upon success update your implementations and distributions.
Since 2.018, we have the following improvements:
User-Facing Changes:
* UI: Create and use a load-systems abstraction,
in view of using it in a system-granular parallelizing backend. (.15)
* Usability: when a system can't be found, there's now a restart to retry
finding a system after reinitializing the source-registry (.10).
* Feature: :around-compile now accepts lambda expressions, and also strings,
so you can specify future wrappers that can't even be read yet. (.11, .12).
* Filesystem: recursing through logical pathnames in LispWorks (.2, .3),
on SBCL as on CMUCL, have asdf:subdirectories follow symlinks (.8., .9)
Change in Internals:
* Configuration: modify user-configuration-directories and
system-configuration-directories to return all valid directory names
even when they don't exist yet so you may create them (.6), also output
name of non-existing configuration file when opening them for writing (.7),
* Internals: strcat (.5), split locate-systems from find-systems (.6)
Bug Fixes:
* Portability: Debugged CormanLisp support (.1).
Fix type declaration for SCL (.17). Tweaked for Genera (.21).
* Bug fix: don't drop pathname components without a / at the end
when reading a path using GETENV (.18). (Bug from 2.017.27)
Closes debian bug #647544.
* Bug fix: don't redefine reinitialize-instance in ways that break
its contract and its clients (such as asdf-dependency-grovel).
Use change-class to reset slots (.16), but not to 'standard-object,
which breaks ecl, rather to a proto-system class (.19), and not
using keys with breaks genera (.21). (Bug from 2.017.3)
* Bug fix: buglet in maybe-add-tree (.4)
Upgrade:
* Upgrade: unintern internals of signature changed in 2.017.12 (.13),
have *system-definition-search-functions* not be a defparameter,
but a defvar with a fixup (.14), clear *systems-being-defined* when
upgrading asdf but re-find them immediately because they may be needed
as part of a higher operation (.14).
Unintern some more functions that have changed signature (.20).
Happy Hacking!
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
That life is worth living is the most necessary of assumptions, and were it
not assumed, the most impossible of conclusions. — George Santayana
Dear CL users,
I released ASDF 2.017.27 as 2.018.
Please test and upon success update your implementations and distributions.
Since 2.017, we have the following improvements:
Bugs:
* Solved a bug due to ASDF reusing components even when the ASDF definition
has changed wildly, leading to bad behavior in incremental compilation
and sometimes total failure of compilation of a new version.
(Thanks to Xach for reporting and RPGoldman for fixing.)
* Fix an issue with ASDF doing the wrong thing in case of a clock skew,
thanks to Andreas Fuchs.
* Simplification of the internals of perform-with-restarts and
traverse's do-dep, that should fix some corner cases and make it
easier to extend or further fix. There scarily doesn't remain
any unedited code from Dan Barlow's original ASDF, though
much of the interface design is preserved.
* Upgrade code slightly simplified, with a particular fix for CLISP;
it is now tested on all supported implementations, not just SBCL.
* Improvements to tests and documentation.
Portability:
* Many implementation specific improvements for ECL:
merge with the ECL upstream version, support for the bytecode compiler.
* Because it is required at least on ABCL, made the Unix vs Windows detection
a runtime rather than compile-time distinction
No more asdf-unix or asdf-windows feature, but
(asdf::os-unix-p) and (asdf::os-windows-p) functions (not exported for now).
Also recognize darwin as Unix ECL.
* Also small improvements for SCL.
Features:
* Bind *default-pathname-defaults* around load-sysdef,
to increase chances of successful pathname parsing in defsystem.
* Fixed run-shell-command on allegro/unix and clisp,
documented the function, noted how it mightn't do what you think on Windows,
marked it as obsolete, promoted as an official replacement my new
xcvb-driver:run-program/process-output-stream
* New :around-compile hook so you can control the syntax, optimization,
and warning level, rename packages and balance compile-time side-effects,
etc., around the compilation of files in your own modules.
* Now exporting function subpathname, to portably make subpathnames.
Happy Lisping!
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
"When buying and selling are controlled by legislation, the first things
to be bought and sold are legislators." — P.J. O'Rourke
Dear CL users,
I released ASDF 2.016.3 as 2.017.
(This version has been "stable" for over a month.)
Please test and upon success update your implementations and distributions.
Since 2.016, we have the following improvements:
* ABCL: jar translation happier with recent compile-file-pathname* change.
* CCL: see truenamize change below.
* GCL: vain partially reverted attempts at making GCL 2.6 and 2.7 fail less.
* LispWorks: use probe-file for probe-file*
* RMCL: location strings are now POSIX namestrings.
You can thus share configuration files and environment variables
between RMCL and other Lisp implementations on same host.
Use #p"" syntax when you insist on using MacOS 9 style MCL pathnames.
* truenamize: happier when e.g. the *default-pathname-defaults* is #p"",
which is the case notably on CCL by default, or otherwise relative.
* Logical pathnames: now preserved by the source-registry's tree directive.
* Upgrade: instead of unintern'ing symbols, use fmakunbound;
however, treat compilation of asdf specially, by always making sure
it is loaded as source before it is compiled,
so that compilation is never an upgrade and never calls fmakunbound, thus
ensuring functions in the continuation of compilation are always fbound.
* Obsolete: dropped support for *system-cache* and get-uid.
* Internals: refactored resolve-relative-location-component.
* Documentation: update wrt to the location DSL.
Happy Lisping!
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
When my time on earth is completed, I want to go quietly in my sleep,
like my grandfather ... not screaming in terror, like his passengers.
Dear CL users,
I released ASDF 2.015.12 as 2.016.
Please test, and upon success
update your implementations and lisp distributions.
Since 2.015, we have the following improvements:
* Portability: Fixes for ECL, RMCL. Tweaks for CLISP.
Improvements to Windows configuration, notably for LispWorks.
* Fix to load-source-op (broken in 2.014.13 - oops).
* Avoid infinite loops in defsystem in cases of bad interference
between quicklisp and your source-registry.
* Small fixes regarding upgrade, compile-file* :output-file.
* Make defsystem-depends-on actually useful by allowing a system
thus depended on to define the class of the system depending on it.
The XCVB bridge notably relies on this feature.
* Some documentation updates.
Notably, for the sake of CLISP, (require "asdf") is the new canonical way
to load ASDF, instead of (require :asdf). Sigh.
* Better tests, notably wrt hot upgrade.
Happy hacking!
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
The American diplomat to the Russian: "My country too is free: in the USA too
anyone may freely publish the dirty little secrets of president Medvedev!"
Dear ASDF users,
I just blessed ASDF 2.013.7 as 2.014.
As compared to 2.013, it includes a significant quality item that
makes it essential for everyone who distributes ASDF without an
implementation (e.g. Quicklisp). It also includes better SCL support,
cosmetic improvements, and robustification of some corner cases. Tests
have been added to prevent the regressions observed in the 2.013
release.
* Fixed bug preventing upgrade from 2.000 to 2.008 (test added)
* Better support for URL pathnames on SCL (test added)
* Robustified defsystem-depends-on
* Cosmetic changes:
* better more portably readable error messages.
* remove forward references, again (test added)
* canonicalize system names earlier (slight robustness improvement)
As usual, I invite people who distribute ASDF to update the version they ship,
be it with their implementations, with their software distribution, etc.
Happy Happy Joy Joy
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
"Don't worry about people stealing your ideas. If your ideas are any good,
you'll have to ram them down people's throats." — Howard Aiken
Dear Common Lisp Users,
I just blessed ASDF 2.012.12 as 2.013.
It includes many small improvements since previous release,
for portability, robustness, usability.
For the sake of making these improvements available to all users,
I invite all vendors and packagers to update their software
to include this latest release.
Improvements since 2.012:
* Fixes and cleanups for CLISP, ECL, SBCL.
* Added support for two legacy platforms: (R)MCL, Genera
* Cleanup features: now using #+asdf-unix and #+asdf-window
* Many cleanups and improvements regarding our portable pathname layer
* Fixes a regression in source-registry scanning from 2.011.4
* Remember *source-registry-parameter* and *output-translations-parameter*
* Export and document coerce-pathname (f.k.a merge-component-name-type)
* allow description and long-description for all components
* Several documentation updates
Happy hacking,
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
I hold that America, Champion of the World is a betrayal of
its humble beginnings as One Nation Underdog.
I finally released ASDF 2.012, which is 2.011.9 being blessed.
Since the previous release 2.011, there have been several minor improvements.
Nothing serious or urgent, as ASDF 2 is getting mature, but
it would be great if implementations were to update
their version of ASDF to this latest release.
Changes:
Added :here directive to pathname DSL,
robustified ECL support,
fixed infinite loop when filesystem clock is in the future,
extended the AOT DSL and made it more futureproof,
fixed how clear-system interacts with map-systems,
fixed use of directory under old SBCLs,
fixed run-shell-command status and version string under clisp,
fixed error messages.
In the master (development) branch, I committed further cleanups as 2.012.1.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
For pretty much every writer, the big problem isn't piracy, it's obscurity.
— Tim O'Reilly, as cited by Cory Doctorow