A hash-table size grew based on the number of key slots occupied,
instead of the number of value slots, where the two differ when
keys are added and removed in the table.
Thanks to Ryan for the example.
Using
#lang scribble/base
produces HTML output in the old style, while
#lang scribble/manual
uses the new style.
To get the new style without switching to `#lang scribble/manual`,
use `manual-doc-style`.
Related changes include the addition of `css-style-addition` and
`js-style-addition`.
A new `#:from-command-line?` argument to various functions indicates
whether error messages should try to suggest command line flags (since
the suggested flags do not make sense for other contexts, such as the
GUI package manager).
Fallback checked original module only if `deserialize-info` was
missing, but it's possible to have a mixture of `deserialize-info`
and original-module exports.
This change is slightly incompatible, because `serializable-struct`,
`define-serializable-struct`, and `define-serializable-class` no
longer `provide` and identifier that they used to. Instead, the identifier
is provided by a `deserialize-info` submodule.
The deserializer looks for a `deserialize-info` submodule, and then
falls back to using a module if the submodule is not available.
Downloaded files are keyed on the source URL and checksum, and the
cache is used only when a checksum is known.
The cache addresses two situations:
* when installing many packages over an unreliable connection,
the cache effectively lets a retry pick up where a previous
attempt failed
* when creating clean builds frequently, the downloads from a
previous build can be reused (as long as the package's checksum
does not change)
The cache location and limits are configurable, and they default to
a subdirectory in the user's add-ons directory (not version-specific),
1024 files, and 64 MB.
If a failure happens during staging (checksum and unpackaging) of a
package that has an entry in the cache, the entry is removed. The
file-cache library, meanwhile, implements a limit on the cache size
and defends against uncooperative filesystems.