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