Retiring unstable
posted by Vincent St-Amour
Some of you may be familiar with the unstable collection, whose purpose was to serve as a staging ground for new APIs that hadn’t yet found a more permanent home. With the advent of the package system, packages can serve that same purpose, which removes the need for a dedicated unstable collection provided by the main distribution.
For this reason we are moving unstable-* packages out of the main distribution.
For backwards compatibility, the packages remain available from the package catalog. Packages that properly list their dependencies (as they should! it’s an error not to!) are unaffected by this change. Packages that are missing dependencies may need to be adjusted to include the appropriate unstable dependencies.
The unstable packages contained many useful functions and APIs, and we merged many of them into established Racket libraries. Others were spun off as their own packages. The remaining APIs, which we judged too narrow or too immature, we left in unstable packages, where they are still available in their original form. In all cases, the original unstable libraries continue to export the same bindings they always did, to ensure backwards compatibility.
For completeness, here is a list of the fate of each unstable library that used to be part of the main distribution.
unstable/2d- Moved to the
2dpackage.
- Moved to the
unstable/arrow- Left in
unstable-lib.
- Left in
unstable/automata- Moved to the
automatapackage.
- Moved to the
unstable/bytes- Left in
unstable-lib.
- Left in
unstable/class-iop- Moved to the
class-ioppackage.
- Moved to the
unstable/contract-
Moved
non-empty-string?toracket/string. -
Moved
port-number?andtcp-listen-port?toracket/tcp, the latter renamed tolisten-port-number?. -
Moved
if/c,failure-result/c,predicate/candrename-contracttoracket/contract. -
Moved
treeoftoplot/utils. -
Moved
sequence/ctoracket/sequence. -
Left
path-piece?,maybe/c,truth/cinunstable-contract-lib.
-
unstable/custom-write-
Moved
make-constructor-style-printertoracket/struct. -
Left
prop:auto-custom-writeinunstable-lib.
-
unstable/debug- Left in
unstable-debug-lib.
- Left in
unstable/define- Left in
unstable-lib.
- Left in
unstable/error- Left in
unstable-lib.
- Left in
unstable/find- Left in
unstable-lib.
- Left in
unstable/flonum- Superseded by
math/flonum. Left inunstable-flonum-lib.
- Superseded by
unstable/function- Merged with
racket/function.
- Merged with
unstable/future- Merged with
racket/future.
- Merged with
unstable/gui/notify- Moved to
framework/notify, with naming changes.
- Moved to
unstable/gui/pict-
Moved
color/c,light,dark,red,orange,yellow,green,blue,purple,black,brown,gray,white,cyan, andmagentatopict/color. -
Moved
show,hide,pict-if,pict-cond, andpict-casetopict/conditional. -
Merged
scale-towithpict’sscale-to-fit. -
Merged
ellipse/border,circle/border,rectangle/border,rounded-rectangle/borderwithpict’sellipse,circle,rectangle, androunded-rectangle, respectively. -
Merged
pin-label-line,pin-arrow-label-line, andpin-arrows-label-linewithpict’spin-line,pin-arrow-line, andpin-arrows-line, respectively. -
Moved
blur,shadow, andshadow-frametopict/shadow. -
Moved
unstable/gui/pict/aligntoppict/align, in theppictpackage. -
Left
color,pict-match,pict-combine,with-pict-combine,fill,strike,shade,blur-bitmap!,arch,draw-pict-centered,backdrop,cross-out, andmake-plt-title-backgroundinunstable-lib.
-
unstable/gui/ppict- Moved to the
ppictpackage.
- Moved to the
unstable/gui/prefs- Moved to
framework/preferences, with naming changes.
- Moved to
unstable/gui/redex- Left in
unstable-redex.
- Left in
unstable/gui/scribble- Left in
unstable-lib.
- Left in
unstable/gui/slideshow-
Moved
with-size,with-scale,big,small,with-font,with-style,bold,italic,subscript,superscript,caps, andblank-linetoslideshow/text. -
Moved
slide/staged,staged,stage,stage-name,at,before,after,before/at,after/atto thestaged-slidepackage. -
Left
column,columns,column-size,two-columns,mini-slide,tabular,reveal,revealing-slide, anditems-slideinunstable-lib.
-
unstable/gui/snip- Left in
unstable-lib.
- Left in
unstable/hash- Merged with
racket/hash.
- Merged with
unstable/latent-contract- Left in
unstable-latent-contract-lib.
- Left in
unstable/lazy-require-
lazy-requirehas been inracket/lazy-requirefor some time. -
Left
begin-on-demandinunstable-lib.
-
unstable/list-
Moved
check-duplicates,remf,remf*,group-by,cartesian-product,list-update, andlist-settoracket/list. * Movedlist-prefix?,take-common-prefix,drop-common-prefix, andsplit-common-prefixtoracket/list, with slight API changes to harmonize with Racket’s list API. -
Left
filter-multiple,extend,map/values, andmap2inunstable-list-lib.
-
unstable/logging-
Moved
with-intercepted-loggingandwith-logging-to-porttoracket/logging. -
Left
start-recordingandstop-recordinginunstable-lib.
-
unstable/macro-testing- Moved to
syntax/macro-testing.
- Moved to
unstable/markparam- Moved to the
markparampackage.
- Moved to the
unstable/open-place- Moved
open-placetoracket/place, and renamed itplace/context.
- Moved
unstable/options- Moved to the
option-contractpackage.
- Moved to the
unstable/parameter-group- Moved to the
parameter-grouppackage.
- Moved to the
unstable/pretty-
Merged
pretty-format/write,pretty-format/display, andpretty-format/printwithracket/pretty’spretty-format. -
Left
break-linesinunstable-pretty-lib.
-
unstable/recontract- Merged with
racket/contractsome time ago.
- Merged with
unstable/sandbox- Merged with
scribble/eval.
- Merged with
unstable/sequence-
Moved
in-syntaxandin-slicetoracket/sequence. -
Left
in-pairs,in-sequence-forever, andsequence-liftinunstable-lib.
-
unstable/socket- Moved to the
unix-socketpackage.
- Moved to the
unstable/string- Left in
unstable-lib.
- Left in
unstable/struct-
Moved
struct->listtoracket/struct. -
Left
makeinunstable-lib.
-
unstable/syntax-
Moved
make-variable-like-transformertosyntax/transformer. -
Moved
syntax-source-directoryandsyntax-source-file-nametosyntax/location. -
Left
explode-module-path-index,phase-of-enclosing-module,format-unique-id,syntax-length, andsyntax-within?inunstable/syntax.
-
unstable/temp-c- Moved to the
temp-cpackage.
- Moved to the
unstable/time- Left in
unstable-lib.
- Left in
unstable/wrapc- Moved to
syntax/contract.
- Moved to
Hi, it’s my first day with Racket. Attempting to install the pict3d library is failing in a way that mentions not finding unstable/custom-write.
I’m guessing this probably relates to the reorganization mentioned above.
Any tips? Thanks!
— Corporate Sheep, 27 November 2015