[racket] Developing DrRacket Extensions in the same process

From: Nick Main (david.nick.main at gmail.com)
Date: Mon Apr 8 14:31:12 EDT 2013

Thanks for the enhancements !
I will check them out soon (for now I'm sticking to stable releases).

I found that creating an info.rkt for the tool and setting it up via "raco
link" gives me reasonable workflow.  After the initial "raco setup" I
deleted the "compiled" folder since that seems to cause conflicts with any
subsequent changes.

Now I can develop my extension as a tool unit, and with a "(module+ main
(require drracket/tool-lib))" in the file just Run to immediately test the
plug-in.

The only downside is remembering to leave the plug-in in a workable state
when closing the main DrRacket, otherwise it may not start up again.


On Sat, Apr 6, 2013 at 5:07 PM, Robby Findler
<robby at eecs.northwestern.edu>wrote:

> On second thought, I think that you'd probably want to reload a file that
> implements a tool and have that swap out the mixin, so I've added the
> capability to do that with a commit just now.
>
> hth,
> Robby
>
>
> On Fri, Apr 5, 2013 at 10:45 PM, Robby Findler <
> robby at eecs.northwestern.edu> wrote:
>
>> Okay, I've made a first attempt at this (just now pushed to git). I added
>> the ability to add new mixins (via the drracket:get/extend:extend-*
>> functions) at any time (as long as you call a function to explicitly enable
>> that feature). DrRacket makes no attempt to adjust any existing objects
>> that have been created but, for the most part, as long as you create a new
>> frame after doing your new extensions, things should work, I think.
>>
>> Also, if you set the PLTDRRPEL environment variable then you'll get a
>> REPL. There are docs here in this commit:
>>
>>
>> http://git.racket-lang.org/plt/commit/77163fe8d16d48d98b3a6b47df2af571e8fbbdcc
>>
>> Please let me know if this seems helpful.
>>
>> Robby
>>
>>
>>
>> On Fri, Mar 22, 2013 at 1:41 PM, Nick Main <david.nick.main at gmail.com>wrote:
>>
>>> Is there a way to develop DrRacket extensions in the same process as the
>>> primary DrRacket ?
>>> The fact that the mixin extension mechanism has already been "sealed"
>>> appears to prevent that.
>>> Is there a way to create a new "context" for creating extended DrRacket
>>> classes within the same process ?
>>>
>>> I also asked this question on Stackoverflow:
>>> http://stackoverflow.com/questions/15561215/developing-drracket-extensions-within-the-same-process
>>>
>>>
>>> --Nick Main
>>>
>>> ____________________
>>>   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/20130408/5be5491d/attachment.html>

Posted on the users mailing list.