On Sep 7, 2017, at 1:53 AM, William G Hatch wrote:

> On Tue, Sep 05, 2017 at 05:07:41PM -0400, James wrote:
>> I'm trying out Rackterm for the purpose of running commands put together 
>> from a GUI but it looks like the thread is crashing as soon as I try to 
>> create a terminal canvas.  Is it something I am not doing right or is there 
>> a bug?  I am able to run rackterm/xterm without error and that contains very 
>> similar code.
>> Here's my code:
>> #lang racket
>> (require racket/gui
>>        rackterm/private/terminal-canvas
>>        )
>> (define frame (new frame% [label "Example"]
>>                  (width 800)
>>                  (height 800)
>>                  ))
>> (send frame show #t)
>> (define my-term (new terminal-canvas%
>>                   [parent frame]
>>                   [font-size 14]
>>                   [font-name "Courier"]
>>                   [term-var "rackterm"]
>>                   [command-and-args '("ls -lh")]
>>                   [set-title-callback (lambda (title) (send frame set-label 
>> title))]
>>                   [horiz-margin 2]
>>                   [vert-margin 2]
>>                    ))
>> The terminal window appears and then immediately closes with the following 
>> error message:
>> "The evaluation thread is no longer running, so no evaluation can take place 
>> until the next execution.
>> Exited successfully."
> Well, this is caused by my not having actually cleaned up the code for it to 
> be used in any sort of general way, rather than specifically only by my one 
> xterm (hence terminal canvas is still in the private directory).  But there 
> is a `handle-subproc-ended` method that I put a TODO in to make it 
> configurable, but currently just kills the canvas, because usually you want 
> an xterm to close when the shell inside it exits.  But you could make a 
> subclass that overrides that method, or even better, improve my bad code and 
> send a pull request.  Or eventually I'll fix things up and release them 
> properly.
> Also '("ls -lh") should be '("ls" "-lh").

Thanks.  I got it to work by creating a subclass.  Unfortunately, it will take 
more work to make it more useful than MrLib Terminal since what I really want 
is something which will support running commands interactively created by GUI 
elements.  At this point, I can only run one command and then create a new 
terminal object in order to run an additional command.  I will probably get 
back to this later. 


You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to