The contract system now keeps track of three points of blame: the positive
blame, assigned to the provider of a contracted value; the negative blame,
assigned to the receiver of a contracted value; and the user "blame",
assigned to the party that actually misuses the value. While the latter
is not really blame, as blame is not assigned to that party when that party
is not either the negative or positive party, it's useful information for
programmers when debugging.
For provide/contract, the negative party should be the first module to
require an identifier provided via provide/contract. What was previously
the negative party is really the user, and is now handled as such.
Some mentions of svn/subversion are replaced with git, and some patterns
for paths to ignore include ".git*". (Note ".mailmap" not added, might
need to.)
Removed "info.rkt", since all entries were unused; switched ".ss" to
".rkt" in both real code and tested code (except for the teachpack
tests); modernized some tests to use symbolic requires (which would also
make it easier to deal with).
There's no point keeping the framework tests when drdr does a better job
with running more stuff. But keep the drracket test, just in case, to
get an additional nag when something bad happens and it doesn't start.
Also, update the message in existing files. Change the instructions to
use DrRacket or DrScheme version <previous-version>, and for really old
files (pre-v4), just use 4 for the version. Also just drop the second
paragraph in these files -- "Most likely, it was created by" is not
needed when for these files we know that this is true.
Also, explicitly make it throw an error when it's getting an empty glob.
It used to just return the root in that case, but it's unclear if this
would be the right thing, or maybe return everything, or nothing.