[racket] Plugin Development

From: Stephen De Gabrielle (spdegabrielle at gmail.com)
Date: Fri Oct 10 09:38:01 EDT 2014

I use a separate instance of racket to do the tool stuff, though you
probably know that already.;)

The quitting and restarting of DrRacket can be a lot quicker if you disable
a few tools from the preferances screen.

I noticed there is a 'Minimal DrRacket' at
http://www.cs.utah.edu/plt/snapshots/ that may also be an option.

HTH

Stephen




On Fri, Oct 10, 2014 at 2:00 PM, Adam C.M. Solove <asolove at gmail.com> wrote:

> Thanks! Moving the gui code separate from the tool has made development a
> lot more pleasant.
>
> On Fri, Oct 10, 2014 at 7:40 AM, Robby Findler <
> robby at eecs.northwestern.edu> wrote:
>
>> There should be no way to cross between a program running inside
>> DrRacket and the implementation of DrRacket (there are known bugs that
>> make it possible to cross, but they aren't going to lead to a pleasant
>> REPL experience).
>>
>> You can ask DrRacket to make a simpler REPL for you via the PLTDRREPL
>> environment variable.
>>
>> As far as units go, you need to be able to satisfy the imports to be
>> able to get at the insides of the unit. And for the unit you have in
>> particular, you would need to essentially provide the entire
>> implementation of DrRacket to satisfy the imports.
>>
>> But, some of your functions may no depend on DrRacket proper, but only
>> on, say, GUI controls or other things like that. In that case, you can
>> move them outside of the unit and test and run them and just have
>> small amounts of code that calls into those functions from inside the
>> unit. I find that to be a useful mode of development for some things I
>> add to DrRacket.
>>
>> hth,
>> Robby
>>
>>
>> On Thu, Oct 9, 2014 at 9:51 PM, Adam C.M. Solove <asolove at gmail.com>
>> wrote:
>> > Thank you for the clarification.
>> >
>> > Before I abandon myself to working this way, let me try another
>> possibility.
>> > I'd like to interactively try out the functions I'm writing, but I run
>> into
>> > two conceptual blocks that expose some of my ignorance on Racket.
>> First, as
>> > the functions are wrapped in a unit which has some imports, I can't
>> seem to
>> > "get at" those functions from the repl, though I have a reference to the
>> > unit itself. Second, I assume that even if I could get to the functions
>> in
>> > the repl, they would be running within the user program space rather
>> than
>> > the DrRacket UI space. Is there any way to cross that bridge?
>> >
>> > On Thu, Oct 9, 2014 at 10:30 PM, Robby Findler <
>> robby at eecs.northwestern.edu>
>> > wrote:
>> >>
>> >> Unfortunately, there is not. Depending on what your plugin does, it
>> >> isn't clear that it is really possible. In particular, if you're
>> >> mixing something new into the DrRacket frame then it is hard to know
>> >> what to do with all of the old frames now they should have a new
>> >> class.
>> >>
>> >> I agree it can be tedious, tho, and there could be a better design of
>> >> an extension API that would make that kind of thing easier (and also
>> >> make it easier to dynamically stop and start plugins) but we're not
>> >> there yet.
>> >>
>> >> Robby
>> >>
>> >>
>> >> On Thu, Oct 9, 2014 at 8:09 PM, Adam C.M. Solove <asolove at gmail.com>
>> >> wrote:
>> >> > Hello all,
>> >> >
>> >> > I'm new to the Racket ecosystem and poking around with the plugin
>> system
>> >> > to
>> >> > see how hard it would be to build a minikanren debugger tool in
>> >> > DrRacket.
>> >> > But first, a much more basic question:
>> >> >
>> >> > Is there a good way to interactively write and test DrRacket plugins?
>> >> >
>> >> > I'm currently going through the plugin docs by making a small change,
>> >> > quitting and restarting DrRacket, seeing that it doesn't quite work,
>> >> > making
>> >> > another small change, etc. It's a bit frustrating. Is there a way to
>> >> > simply
>> >> > reload the plugin I'm working on while leaving my DrRacket session
>> >> > alive?
>> >> >
>> >> > Thanks,
>> >> >
>> >> > Adam
>> >> >
>> >> > ____________________
>> >> >   Racket Users list:
>> >> >   http://lists.racket-lang.org/users
>> >> >
>> >
>> >
>>
>
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20141010/35d5b451/attachment.html>

Posted on the users mailing list.