[rdnzl-devel] Re: rdnzl, multiprocessing, Allegro, windows, locking

Edi Weitz edi at agharta.de
Sat Oct 14 16:32:50 UTC 2006


[Re-sending my reply to the mailing list to which I thought this was
sent originally.  My mail address is edi at agharta.de by the way, and
not rdnzl-devel-owner at common-lisp.net...]

On Fri, 13 Oct 2006 09:16:07 -0700, "Richard Fateman" <fateman at cs.berkeley.edu> wrote:

> Here is what I think I is the smallest program to open a window..
>
> (enable-rdnzl-syntax)
> (import-types "System.Windows.Forms" "Form" "Application" )
>
> [Application.Run (new "Form")]

For newcomers trying to copy this: You need to add the line

  (use-namespace "System.Windows.Forms")

before you run the application.

> However, started from an emacs buffer, this locks up everything
> until the window is killed.
>
> I can put this in another Allegro OS process by doing this..
> (mp::process-run-function "myprocessname" [Application.Run (new
> "Form")])
>
> But this also locks up everything until the window is killed.

I think that's a problem related to the IDE and not to RDNZL.  In
LispWorks 5.0, for example, if I start the apropos example coming with
RDNZL (which also uses Application.Run) with MP:PROCESS-RUN-FUNCTION
as suggested in the RDNZL documentation it runs fine without locking
the IDE, i.e. I can still use the listener or other graphical tools
while the .NET window is up and interacting.

> How can I do this in rdnzl?  Can I mix CG and rdnzl?

I don't know much about CG but I think that will be very hard or
impossible.  But that's not a problem of Lisp/RDNZL.  I think it would
be equally hard to mix a C++ program using MFC with a C# program using
.NET's windows forms.



More information about the rdnzl-devel mailing list