and specialized a bunch of list-related contracts to track list?-ness,
notably recursive-contract now accepts a #:list-contract? argument
that means that it insists that values it accepts be list? (and
thus not cyclic)
related to PR 14559
This fixes type error message generation in some cases
and also the `query-type/result` command on multiple
valued functions.
The latter still does not allow multiple return type
queries (TODO) but it won't crash now.
Closes PR 14493
Contrain the fourth element of a list describing a document in
`scribblings` (in "info.rkt") to a collection-path element, instead of
allowing an arbitrary relative path. This constraint is needed by
various parts of the build system, which assume (for example) that all
documents are rendered to an immediate subdirectory.
The service relies on a VirtualBox VM to isolate package builds and
to quickly rewind an installation.
The service is not ready to run, but maybe it's getting close.
This flag is useful for speculative package installations runs where
we'd like to give up and try something else if it's not working.
Specifically, we might try installing multiple packages at once,
and then back off to a smaller subset if something goes wrong.
Use 'pdf-bytes+bounds8, 'png-bytes+bounds8, etc. to convert images
for Latex/PDF and HTML output. The new conversions particularly
help with picts that draw text, since the baseline of the text
can be handled properly in HTML output.
The new conversion also helps hide the difference between a bounding
box and the "inked" area of a pict, since picts normally ink only
slightly outside the bounding box, and the default for pict conversion
pads the image with a few pixels/units in each direction.
Also, add a `++convert <fmt>` command-line option to select a
preferred target for image conversions. (This preference can be
overridden by the existing `render-convertible-as` style property
for HTML rendering.)
Also, add a `convert-bounds-padding` parameter that defaults to adding
3 units (= pixels, usually) on each side of a pict when converting
to a format that supports padding.
Combined with changes to Scribble to use the new formatting, the
extra padding solves the long-standing problem of rendering picts
and having an edge (especially the bottom and right) cut off due
to rounding effects. For example, see `file-icon` in section 7.1 of
the `pict` documentation.
The choice of 3 pixels is more or less arbitrary; it covers the
case of edge pixels and italic fonts for typical font sizes, but
it obviously won't cover all drawing outside of a bounding box,
as for the documentation example `(desktop-machine 1 '(devil plt))`.
The 'pfd-bytes+bounds8 format can add extra padding around the image,
and the result reports the amount of added padding. This padding can
be used to include image output that it outside of the conceptual
bounding box, such as an italic glyph that extends beyond its
character's width.