[racket] tool: show module exports

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Jul 21 16:58:48 EDT 2010

Yeap, that's the goal. 


On Jul 21, 2010, at 4:47 PM, Jon Rafkind wrote:

> Yea sure. I was just getting the import stuff to show. If hacking contracts is too hard maybe I can get some advice at PLT/Racket day.
> 
> On 07/21/2010 12:46 PM, Matthias Felleisen wrote:
>> 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
>>>> 
> 



Posted on the users mailing list.