[racket-dev] [plt] Push #25419: master branch updated

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Oct 6 09:25:36 EDT 2012

On Sat, Oct 6, 2012 at 8:21 AM, Sam Tobin-Hochstadt <samth at ccs.neu.edu> wrote:
> On Fri, Oct 5, 2012 at 10:28 PM, Robby Findler
> <robby at eecs.northwestern.edu> wrote:
>> On Fri, Oct 5, 2012 at 8:55 PM, Eli Barzilay <eli at barzilay.org> wrote:
>>> A few minutes ago, Sam Tobin-Hochstadt wrote:
>>>> On Oct 5, 2012 9:16 PM, "Eli Barzilay" <eli at barzilay.org> wrote:
>>>> >
>>>> > 10 minutes ago, Robby Findler wrote:
>>>> > > Oh, right. Duh.
>>>> > >
>>>> > > And even better, IMO, if it were futures-visualizer/typed/* were
>>>> > > a place you could put this information.
>>>> >
>>>> > Yeah -- that would make distribution much easier, since it will be
>>>> > another global convention, like `tests' and `scribblings'.
>>>>
>>>> I would like to keep things in the `typed' collection.  This
>>>> maintains the symmetry with `typed/racket.  The other conventions
>>>> like 'tests' are not externally visible.
>>>
>>> Yes, the required name would change -- but it's still much saner in
>>> terms of authorship & maintenance than me having to keep a file in
>>> your collection.
>>
>> I agree with this and I think earlier emails suggested that Sam
>> doesn't trust others to write types for their libraries.
>
> I'm really sorry if I've given that impression, because I don't think
> that at all.  The typed interface for the futures visualizer that I
> wrote at the beginning of this thread is just a plain Typed Racket
> program, and James or you or anyone else could write it easily.  This
> ought to be the case for any of the typed wrappers in the `typed/*`
> collections.
>
> For code that lives in the `typed-racket/base-env` directory, which is
> trusted by TR, I'd want to look at modifications people make, and the
> language there is internal and undocumented, so it might be harder for
> other people to use, but I still trust people to write types for their
> code.

Thanks! I'm very glad I got this wrong!

>> Also, Sam: can you explain what "externally visible" means in this context?
>
> Just that we don't typically require `redex/tests` or
> `drracket/scribblings` into other modules written outside of those
> collections, whereas for `typed/file`, for example, the whole point is
> to be used outside of the `typed` collection.

If it was drracket/scribblings/ and not scribblings/drracket, then I
would expect the index generation and top-level documentation building
to find that, which would be that kind of a require.

Also, another precedent from the info.rkt files: drracket tools are
found by DrRacket by grovelling around in other collections. It seems
like we could have said that x/drracket-tool/main.rkt or something
like that is the standard entry point into DrRacket tools, instead of
using something specified by the info.rkt file.

Even though the mechanism is different, I think the goal was the same:
let these things be specified outside the drracket collection, but use
them in drracket.

Robby

Posted on the dev mailing list.