When calling a wrapper procedure for a field accessor or mutator,
provide the structure that was originally passed to the accessor or
mutator, instead of the value that was wrapped to create an
impersonator.
This is a backward-incompatible change, but I can't find any uses of
that initial argument to the wrapper procedure. Also, a wrapper can
capture the original value in its closure, while passing "self" allows
wrappers that are sensitive to overridden impersonator properties.
This handles contract generation for recursive or
mutually recursive Name types in the static contract
framework.
Instead of just generating recursive-sc static contracts,
it memoizes the recursive contract within a single
type->contract call by indirecting through a table.
When static contracts are instantiated, the table is
consulted for computing contract kind information and for
generating the actual contracts for the recursive names.
The OS doesn't necessarily react to a zero-sized buffer the way
that `udp-receive!` is supposed to work, so provide only a
non-zero-sized buffer to the OS.
Random tests that are implciitly injected into a program should
declare themselves as such when they fail. Otherwise, random
crashes are really confusing.
The type alias analysis is unable to detect a rare kind
of type dependency and as a result initializes type aliases
in an order that doesn't work. Adding the extra `Class`
boilerplate here accommodates the analysis.
Please merge to v6.1.1
Mandatory kw arguments in function types could confuse
the typechecker when the function had the
`syntax-procedure-converted-arguments-property` property
set.
Use the `net/git-checkout` library to support git repository servers
in general, instead of supporting only GitHub. A HTTP(S) source is
treated as a repository source when it ends with the ".git" suffix.
The new argument is needed to reliably write to a tmp file, for
example, where the existence of the tmp file prevents other processes
from using the same name.
Git-based hosting services most commonly support the smart HTTPS
protocol, which carries "git://"-format payload in a fairly straightforward
way. (Supporting the dumb protocol looks much more difficult.)