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
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
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
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'.