[racket-dev] proposal: `data' collection

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Wed Jun 23 17:37:30 EDT 2010

On Wed, Jun 23, 2010 at 5:31 PM, Eli Barzilay <eli at barzilay.org> wrote:
> On Jun 23, Sam Tobin-Hochstadt wrote:
>> At the Northeastern PLT lunch today, I proposed adding a top-level
>> `data' collection, for all manner of data structures.  People here
>> thought it was a good idea, so I'm proposing it to the whole group.
> (The name sounds iffy to me.)

The name is (a) short (b) descriptive and (c) has precedent in other
languages [1].

>> Definitely candidates:
>>  Hari Prashanth's functional data structure library (which he's been
>> working on with me)
>>  `unstable/skip-list' (by Ryan)
>>  `unstable/interval-map' (by Ryan)
>>  `unstable/queue' (by Carl)
>> Possible candidates (these would still be provided by `racket' if they
>> are currently):
>>  `racket/dict'
>>  `racket/set'
>>  `racket/list'
>>  `racket/vector'
>>  `unstable/{list,dict,set,hash}'
>>  `unstable/sexp-diff'
> * I went over one file in unstable, and had a quick look through a few
>  others.  Assuming that this will be a fundamental collection, there
>  is much work needed to get the unstable stuff to an appropriate
>  level.

Unfortunately, our project doesn't have a long history of code review.
 I think we shouldn't wait for that to materialize before doing
things, but obviously more review is good.

> * Re the functional structures, I'm skeptical about adding a big ball
>  of code that was never used.  I'd like it to have more public time
>  before it's added.  (Eg, planet.)

I don't think we should add any code to the core before it's been
looked at some.  But we add new code that's never been used all the
time (racket/set, for example).

> * The `racket/*' stuff needs to be where it is since it's part of the
>  current core.  (It can still be reprovided through the new
>  collection.)  If the definition of the core changes to include the
>  new collection, then there are more restrictions on it like not
>  depending on typed scheme.

To clarify, I'm proposing that this be a part of the "core" (which I
think just means "the things in the Racket Textual" distribution).  A
library of useful data structures certainly seems worthy of the core
to me.  Obviously, that comes with restrictions.

> (And this is due to how things are now,
>  where typed scheme is not part of the core.)

Personally, I would like to (eventually) have Typed Scheme be a part
of the "core", but I think that's a discussion that can wait.

[1] http://www.haskell.org/ghc/docs/6.12.2/html/libraries/
sam th
samth at ccs.neu.edu

Posted on the dev mailing list.