The Mac OS X "installers" are just ".dmg" files with a particular
layout and background image, which are record in a ".DS_Store" file
in the disk image. We have been generating a ".DS_Store" file through
an AppleScript program and Finder, but that script has been fragile,
and the result depends on the version of Mac OS used to generate
the image (e.g., an imagine generated on 10.7 does not look right
on 10.5).
A new `ds-store' library can write ".DS_Store" files directly,
and it uses a format that is compatible with old Mac OS X versions.
Specifically, this change disables the use of inotify() for detecting
changes to collection-links files, because the latency is too large
on some (many?) Linux configurations. (The fallback is to detect changes
to a links file by reading the whole content every time.)
Create a single inotify() connection per place, which should reduce
the latency of operations on filesystem change events and make
them generally scale better on Linux.
Internally, add a filesystem-never-changes mode, which could be useful
for platforms with fixed filesystems, but it's also for experiments in
checking the cost of filesystem change events.
Use SHA1s instead of timestamps for detecting dependency changes,
which works with pre-built documentation. (The problem with
timestamps didn't come up before because dependency checking was
broken.)
This split fixes a broken test for whether to include the gui
documentation, which in turn exposes documentation dependencies,
which means that the dependencies are wrong again at this point.
Some non-transparent but serializable data structures broke
the comparison between previous and new outputs, which caused
too many document rebuilds.
Includes a change to make module path indexes work with `equal?'.
Added tests using define/generic in both #:defaults and #:fallbacks, both inside
modules and at the top level. Changed the implementation of define-generics so
that defaults and fallbacks come after method definitions so that define/generic
works properly. Changed internal names to be created with format-id and
syntax-local-introduce rather than generate-temporaries so that they work at the
top level.