Given @robby's comment about contract-in, my thought is that maybe we should remove this bullet from this release as well. I've removed this text, but I can certainly put it back in if people think it should be there.
I've removed this bullet.
I think a doc pointer (these will mostly all have doc pointers in the final release) should help with this?
I think @LiberalArtist’s proposed text is definitely an improvement, but I believe it’s still worth leaving the term “RRB Vectors” in there, and make the term a link to https://dl.acm.org/doi/10.1145/2858949.2784739, so that people who want to know more can read it.
Off-topic (sorry I can’t resist): for the vanishing underscores: I think that’s because some Markdown renderers interpreted them as nested emphasis / bold markup. E.g. <strong><strong><strong>abc</strong></strong></strong> for ______abc______. Different renderers could have different treatments though.
The racket/treelist and racket/mutable-treelist libraries provide list-like containers that support many operations in effectively constant time, including appending and extracting sub-lists without mutating the given list. Treelists are implemented as RRB Vectors, invented by Stucki, Riompf, Ureche, and Bagwell.
I would be happy to provide links to the paper; those typically go in at a later point in the process. I've mentioned only the append and extract operations, it appears to me that everything else effectively follows from these two (though perhaps that's not sufficiently obvious?). I also like giving explicit credit to the inventors. It might make this bullet a bit heavy, but I think that's not inappropriate, given the potential long-term importance of treelists?
Okay, the final build is running, yay! I'm posting the release notes I have now, please let me know about any additions or changes that should be there!
(BTW, I folded for now on Δ̷̨̧̡̭̺̙̞͖̖͕̰̥̙̯͙̞̯̗̔͌͐̿͊̌́̄̑̿̓̉̈̀͘͠λ̶͔͓̘̘̳͇̻̍̏͌̅̓̓͂̍̾̔͜λ̶̛̯̖̯̲̱͎̙͎̎̐͆͂̽̓̇́͌́̀̏̎̅͋̏̊͘λ̶̨̨̰̟̯̫̲̲̫̯̭̤̳̼̫͉̹̞́̐̒Δ̷̡̛̥̖͇͚͍͍̄̏̂͛̅̌͗̂̽̅̀͆̿̔̚͜--'s name)
The racket/treelist and racket/mutable-treelist libraries provide
list-like containers that support many operations in effectively
constant time, including appending and extracting sub-lists without
mutating the given list. Treelists are implemented as RRB Vectors,
invented by Stucki, Riompf, Ureche, and Bagwell.
The hash-filter-keys and hash-filter-values functions allow users
to filter hashes using a predicate on either keys or values.
The vector-extend and vector*-extend functions provide a way
to pre-populate the prefix of a newly allocated vector using the elements
of an existing vector.
Racket v8.13 uses Unicode 15.1 for character and string operations.
Machine-specific cross-module optimization allows improved support for
static generation of foreign-function bindings.
The scribble/acmart language uses v2.01, which avoids errors
concerning the hyperref package in some latex installations.
The following people contributed to this release:
Alec Mills, Ben Greenman, Bob Burger, Bogdan Popa, dented42, Fred Fu,
Gustavo Massaccesi, Jason Hemann, Jay McCarthy, John Clements, Jordan
Johnson, Justin Dhillon, Mao Yifu, Matthew Flatt, Matthias Felleisen,
Mike Sperber, olopierpa, Oscar Waddell, Pavel Panchekha, Philip McGrath,
Robby Findler, Sam Phillips, Sam Tobin-Hochstadt, Siddhartha
Kasivajhula, Sorawee Porncharoenwase, Stephen De Gabrielle, Tim Standen,
William E. Byrd, Wing Hei Chan, and dr-neptune
Thanks for the link to the PR discussion, very helpful. Based on that I think I'd write something like
Command-line raco setup (and package install) includes a per-thread monitor, showing what each thread is working on and (when waiting) what it's waiting for. There is also a text-based progress bar for the installation.
Thoughts? Are these actually threads, or is "workers" a better term? Maybe @robby has an opinion?
(Totally off-topic: discourse seems to be getting bored of our conversation, I just got a popup saying "You've replied to @sorawee 3 times, did you know you could send them a personal message instead?")
Yeah, it isn't always threads (actually, in Racket-specific terminology, it is never threads: places or separate OS processes are the only options, I believe, with places being the common situation). Here's another take. Maybe melding these two?
Command-line raco setup, package update, and package installation use terminal control (when available) to show what they are working on more compactly and with a progress bar.
The idea being that it was showing all this information all along -- I've just made it so that when some new output appears for worker number, say, 3 it overwrites the line where we'd previous printed the status of worker #3. (The information about stuff waiting on other stuff is new, tho. As is the progress bar, but the progress isn't measured in wall-clock time, but in the number of files remaining to be processed.)