From: James McCulloch
Subject: Lisp As A Scripting Language For Large Real-Time C++ Project
Date: 
Message-ID: <hu9B7.388$c5.2822@newsfeeds.bigpond.com>
Hello All,

I have just partially completed a large multi-threaded real-time C++ project
and I'm looking for a powerful high level scripting language to script
multiple concurrent real-time tasks.

I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
specifications I require.


Does anyone know of a Lisp implementation (or a dialect such as Scheme) free
or commercial that has the following characteristics:


(1) Can be called asynchronously from a thread originating from a C++
callback.

(2) Can call C++ subroutines (object methods) from the Lisp script (and hold
pointers to C++ objects).

(3) Multiple Lisp scripts can run concurrently in different threads.

(4) Win32 compliant - Although the C++ real-time system contains No windows
specific code (although there is a win32 GUI front-end).


Thanks for any suggestions and ideas.

Regards,

Jim.

From: Wade Humeniuk
Subject: Re: Lisp As A Scripting Language For Large Real-Time C++ Project
Date: 
Message-ID: <9r3u9t$eo9$1@news3.cadvision.com>
> I have just partially completed a large multi-threaded real-time C++
project
> and I'm looking for a powerful high level scripting language to script
> multiple concurrent real-time tasks.
>
> I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
> specifications I require.
>

You could use LispWorks for Windows (www.xanalys.com) for this.  You could
deliver a LWW DLL which contains Lisp foreign function definitions callable
from your C++ app.  In turn the LWW DLL could call into your C++ code (in
the same call stack) if you specify C wrappers around your C++ code.  LWW is
thread safe and win32 compliant.

This approach has lots (depends on the complexity of your app) C glue.  You
might consider recoding your C++ app in Common Lisp.  Then you get
scripting, gui, testing and functionality all in one language.

:-)

Wade
From: Mike Eggleston
Subject: Re: Lisp As A Scripting Language For Large Real-Time C++ Project
Date: 
Message-ID: <slrn9tarog.73k.mikee@kensho.eggtech.com>
On Mon, 22 Oct 2001 20:51:40 +1000, <············@bigpond.com> wrote:
> Hello All,
> 
> I have just partially completed a large multi-threaded real-time C++ project
> and I'm looking for a powerful high level scripting language to script
> multiple concurrent real-time tasks.
> 
> I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
> specifications I require.
> 
> 
> Does anyone know of a Lisp implementation (or a dialect such as Scheme) free
> or commercial that has the following characteristics:
> 
> 
> (1) Can be called asynchronously from a thread originating from a C++
> callback.
> 
> (2) Can call C++ subroutines (object methods) from the Lisp script (and hold
> pointers to C++ objects).
> 
> (3) Multiple Lisp scripts can run concurrently in different threads.
> 
> (4) Win32 compliant - Although the C++ real-time system contains No windows
> specific code (although there is a win32 GUI front-end).

With some slight modification I think XLisp written by David Michael Betz
would do what you need. For the multiple threading you might need a separate
instance of the interpreter for each thread. Don't know, but it would be
an interesting project.

Mik
From: David Betz
Subject: Re: Lisp As A Scripting Language For Large Real-Time C++ Project
Date: 
Message-ID: <OneB7.147662$vq.34256638@typhoon.ne.mediaone.net>
Thanks for mentioning XLISP. I'm not sure it would be good for this
application though. XLISP really only supports a single instance of the
intepreter. The API doesn't require an instance handle to be passed to the
functions in the API. All instance data is stored in global variables. A bad
design, I know. I've done better in my C-like Bob interpreter. If there
weren't already a zillion implementations of Lisp around, I might go back
and fix XLISP. At this point, it just doesn't seem worth it.

David Betz
·····@xlisper.mv.com

"Mike Eggleston" <·····@kensho.eggtech.com> wrote in message
·························@kensho.eggtech.com...
> On Mon, 22 Oct 2001 20:51:40 +1000, <············@bigpond.com> wrote:
> > Hello All,
> >
> > I have just partially completed a large multi-threaded real-time C++
project
> > and I'm looking for a powerful high level scripting language to script
> > multiple concurrent real-time tasks.
> >
> > I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
> > specifications I require.
> >
> >
> > Does anyone know of a Lisp implementation (or a dialect such as Scheme)
free
> > or commercial that has the following characteristics:
> >
> >
> > (1) Can be called asynchronously from a thread originating from a C++
> > callback.
> >
> > (2) Can call C++ subroutines (object methods) from the Lisp script (and
hold
> > pointers to C++ objects).
> >
> > (3) Multiple Lisp scripts can run concurrently in different threads.
> >
> > (4) Win32 compliant - Although the C++ real-time system contains No
windows
> > specific code (although there is a win32 GUI front-end).
>
> With some slight modification I think XLisp written by David Michael Betz
> would do what you need. For the multiple threading you might need a
separate
> instance of the interpreter for each thread. Don't know, but it would be
> an interesting project.
>
> Mik
From: Mike Eggleston
Subject: Re: Lisp As A Scripting Language For Large Real-Time C++ Project
Date: 
Message-ID: <slrn9tav9t.7fv.mikee@kensho.eggtech.com>
On Tue, 23 Oct 2001 13:36:46 GMT, David Betz <·····@xlisper.mv.com> wrote:
> Thanks for mentioning XLISP. I'm not sure it would be good for this
> application though. XLISP really only supports a single instance of the
> intepreter. The API doesn't require an instance handle to be passed to the
> functions in the API. All instance data is stored in global variables. A bad
> design, I know. I've done better in my C-like Bob interpreter. If there
> weren't already a zillion implementations of Lisp around, I might go back
> and fix XLISP. At this point, it just doesn't seem worth it.

LMAO!

I didn't read who asked the question, I just responded to it!
David, good to see you're still around. We spoke on the phone once.
I always think highly of your xlisp interpreter and recommend it
when a project comes up.
From: Will Duquette
Subject: Re: Lisp As A Scripting Language For Large Real-Time C++ Project
Date: 
Message-ID: <3bd57e90.943203@news.jpl.nasa.gov>
On Mon, 22 Oct 2001 20:51:40 +1000, "James McCulloch"
<············@bigpond.com> wrote:

>Hello All,
>
>I have just partially completed a large multi-threaded real-time C++ project
>and I'm looking for a powerful high level scripting language to script
>multiple concurrent real-time tasks.
>
>I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
>specifications I require.
>
>
>Does anyone know of a Lisp implementation (or a dialect such as Scheme) free
>or commercial that has the following characteristics:
>
>
>(1) Can be called asynchronously from a thread originating from a C++
>callback.
>
>(2) Can call C++ subroutines (object methods) from the Lisp script (and hold
>pointers to C++ objects).
>
>(3) Multiple Lisp scripts can run concurrently in different threads.
>
>(4) Win32 compliant - Although the C++ real-time system contains No windows
>specific code (although there is a win32 GUI front-end).

I realize this is a Lisp newsgroup, but....

You might also consider Tcl and Python; Tcl, in particular, was
designed for just the kind of thing you're talking about.  You can
have multiple interpreters, each running in its own thread, each 
running its own script.
From: Marco Antoniotti
Subject: Re: Lisp As A Scripting Language For Large Real-Time C++ Project
Date: 
Message-ID: <y6celnkbt68.fsf@octagon.mrl.nyu.edu>
"James McCulloch" <············@bigpond.com> writes:

> Hello All,
> 
> I have just partially completed a large multi-threaded real-time C++ project
> and I'm looking for a powerful high level scripting language to script
> multiple concurrent real-time tasks.
> 
> I've done some research (I'm a Lisp newbie) and Lisp seems to fit the
> specifications I require.
> 
> 
> Does anyone know of a Lisp implementation (or a dialect such as Scheme) free
> or commercial that has the following characteristics:
> 
> 
> (1) Can be called asynchronously from a thread originating from a C++
> callback.
> 
> (2) Can call C++ subroutines (object methods) from the Lisp script (and hold
> pointers to C++ objects).
> 
> (3) Multiple Lisp scripts can run concurrently in different threads.
> 
> (4) Win32 compliant - Although the C++ real-time system contains No windows
> specific code (although there is a win32 GUI front-end).
> 
> 
> Thanks for any suggestions and ideas.
> 

(WITH-TONGUE-IN-CHEEK ":}"

you could also rewrite the entire system in Common Lisp and see
whether it performs better than the C++ version.  After all, you have
not specified what "Real Time" means in your context.

In this way you would not have to think about "what scripting
language do I add to my application".


)

Cheers

-- 
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group        tel. +1 - 212 - 998 3488
719 Broadway 12th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA                 http://bioinformatics.cat.nyu.edu
                    "Hello New York! We'll do what we can!"
                           Bill Murray in `Ghostbusters'.