That sounds like a great thing (I know you've mentioned it to me privately before, but it was nice to get a little more detail now)!
That also suggests an indirect use of the check syntax refactoring I had in mind, namely building a test suite that checks to see that they behave the same way. Robby On Thu, Sep 10, 2009 at 2:43 AM, Philippe Meunier <meun...@ccs.neu.edu> wrote: > Ryan Culpepper wrote: >> I envision two APIs. One handles source code analysis, possibly >> including expansion, builds def-use relations, etc. The other handles >> annotations to code in editors, allows adding mouseover callbacks to >> regions of code, adding right-click menu items, etc. > > FYI, I'm working on an abstract interpretation framework for DrScheme > that will eventually provide APIs for that stuff, including the GUI > part (in fact the GUI part of MrFlow already had a basic version of an > API that provided the mouseover callbacks (to draw flow arrows) and > the right-click menu items, it's just that MrFlow was that API's only > customer and that the API had only minimal documentation). > > Most of (all?) the "client programs" you list would then be plug-in > analyses for the framework. In turn there's fairly simple DrScheme > tool that takes the framework and all its analyses and plugs the whole > thing into DrScheme (in theory the framework can be plugged into any > program you want, but I haven't actually tried it yet). In parallel > to working on the framework proper, I'm also developing two client > analyses, mostly to check that I'm abstracting the framework at the > right level, and, interestingly, one of them is an attempt at > re-implementing Robby's syntax checker (the other client is a tracing > evaluator, and there's in fact a third client I'm working on, which > one day should become MrFlow 2.0, but that one is harder to develop > than the other two). > > Don't hold your breath though, I've got about 2000 lines of code so > far and I'm only just about to be able to analyze the lambda calculus, > so it'll be quite a while before I have something that can more or > less match Robby's tool. Progress is steady but slow, there's just a > ton of infrastructure code to write (anybody wants to write a > hashconsing library that can handle cyclic data structures, unions, > subtyping (and least upper bounds in general), and that's reasonably > efficient and GC-friendly?) > > Philippe > > > _________________________________________________ > For list-related administrative tasks: > http://list.cs.brown.edu/mailman/listinfo/plt-dev > _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev