[racket] tool: show module exports
Jon, do you want to give it a try? And perhaps Sam and you can then figure out how to get the types out.
On Jul 21, 2010, at 7:26 AM, Robby Findler wrote:
> One, non-optimal way to get the contracts is to evaluate the module
> and use object-contract on the exports (non-optimal because dependent
> contracts will have ...s in them, etc).
>
> Robby
>
> On Wed, Jul 21, 2010 at 4:26 AM, Matthias Felleisen
> <matthias at ccs.neu.edu> wrote:
>>
>> Thou shall ask and receive. Thanks!
>>
>> Can I get the contracts if it comes via provide/contract and/or the types if it comes from Typed Racket (this might be the difficult one, because types are gone after expansion).
>>
>> And I think we should somehow combine provide-document with provide/contract and show the docs, too. And while I am at it, the tool should gather the check-xyz's and turn them into examples so hat people can easily use the function/class/method :-)
>>
>> My preference would be to include this into the module browser. That's where it belongs
>>
>> -- Matthias
>>
>>
>>
>> On Jul 21, 2010, at 2:15 AM, Jon Rafkind wrote:
>>
>>> I wrote a simple tool (attached) that displays all the exports from a module; their name as well as their phase. I'll probably make it show imports too when I get a chance.
>>>
>>> I'd like this sort of information in DrRacket as well, either I can make a plugin or maybe check syntax can do it.
>>>
>>> $ racket ~/tmp/check.rkt match.rkt
>>> Phase 0 (runtime)
>>> Variables
>>> exn:misc:match? from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match-equality-test from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> Syntaxes
>>> define-match-expander
>>> match from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match* from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match*/derived from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match-define from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match-lambda from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match-lambda* from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match-lambda** from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match-let from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match-let* from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match-letrec from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> match/derived from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> struct* from /home/jon/svn/plt/collects/racket/match/match.rkt
>>> Phase 1 (syntax)
>>> Variables
>>> match-...-nesting from /home/jon/svn/plt/collects/racket/match/match.rkt as match-...-nesting
>>> Syntaxes
>>>
>>> $ racket ~/tmp/check.rkt -h
>>> checker [ <option> ... ] <file>
>>> where <option> is one of
>>> --phase <phase> : Only show identifiers at this phase
>>> <check.rkt>_________________________________________________
>>> For list-related administrative tasks:
>>> http://lists.racket-lang.org/listinfo/users
>>
>> _________________________________________________
>> For list-related administrative tasks:
>> http://lists.racket-lang.org/listinfo/users
>>