- build the sub projections only once and build them before getting
the blame objects (instead of after getting the actual values)
- added context information to the blame objects
- added an optional #:min-count argument to insist on a minimum length
for the stream
related to PR 13709
Also, remove executables (in full setup or "tidy" mode) when the
corresponding collections are removed.
As a result of these changes, `raco pkg' puts launchers from user-scoped
packages in user space and cleans up launchers from removed packages.
There's no attempt to include "launchers.rktd" in a distribution.
That should be ok: having an entry in "launchers.rktd" just
makes a launcher a candidate for removal. Including "launchers.rktd"
would be a hassle for many reasons, including that the initial set
of launchers is platform-specific.
Another run at the problem 57516164de was meant to solve. The
new solution just gives up when a `drawRect:' method is called
in the wrong thread, which might create refresh glitches but
avoids a deadlock in the case that the Racket thread is blocked
on the update happening in the foreign thread.
A constant result for foreign-thread use of a callback allows a
callback to return without synchronizing with the Racket thread.
A constant result is thus useful when a callback's work can simply
be skipped if the callback is applied in the "wrong" OS thread.
Also:
* add a backtracking limit
* check for ground terms in both term and pat environments
when filling in generated patterns
* update tests to be consistent with the above
This termonology change affects lots of function names from `pkg/lib'
and `pkg/db' (former `pkg/pnr-db'), and it also affects some `raco
pkg' commands.
Existing package installations that are marked as 'pnr in a
local configuration are converted automatically to 'catalog, but any
existing "indexes" configuration must be changed to "catalogs".
Bug introduced by 7a8c2ff063: a tree can be deep enough that the
representation of the path to the current item can be too big to
fit into 32 bits. It will always fit in 64 bits, though.
Merge to 5.3.4
These exception types are intended as a hook for a programming
environment to recommend packages that can provide a module that isn't
found (through an uncaught-exception handler). The new exceptions are
generated by the default module name resolver and defaultload
handler. In addition to the exceptions, there's a new
`prop:exn:missing-module' property and `exn:missing-module?', which is
what an environment should use to detect relevant exceptions.
There's also a new `current-module-path-for-load' parameter, which
just provides a commuincation path from the module name resolver to
the the load handler. The parameter is a relatively ugly piece of the
puzzle, but it's the best I could find to squash the new functionality
into the existing stack of handlers.
passed to the error-display-handler during expansion
(not just the exn records that actually get raised)
the motivation is to do a better job with TR's way of signalling
mutiple error messages.
Register a button as a default button every time that it is shown,
so that multiple buttons in a frame can have the 'border style
(as long as only one is shown at a time).
On Cocoa, a view's `drawRect:' method can be called from a
heartbeat thread that animates controls. Such a call happens
rarely for a `canvas%' or other class where `drawRect:'
is overridden, but since it can happen, ensure that the
callback runs on the Racket thread.
This requires extending the ->optkey type constructor to support rest
arguments, and fixing the keyword function type generation code.
Testing is still limited because there's no parsing for such types.
That will be handled in a later commit.
... when PWD is defined and when it refers to the same directory
as the result of getcwd().
A shell sets PWD before starting Racket to communicate a preferred
way of referring to the current directory, which may involve soft
links that are not reflected in getpwd().
When a collection disappears, then documentation and metadata
cross-references need fixing up based on everything that remains
available, even though other setup actions are confined to
collections that are specifically relevant to the packages. The
new `--tidy' mode takes care of that.
Package installation now also provides `--avoid-main' when working
with packages in a scope other than installation scope, and `raco
setup' now better respects `--avoid-main' to avoid creating
executables or re-running documentation.
Also, revise the `raco' documentation to better orient it toward the
package manager.