[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Scripting

Steve Baker wrote:

> Gregor Mueckl wrote:
>>My best computer is a P-III 500Mhz, which is even slower (and I'm not
>>even considering an upgrade yet; other computers in my home network will
>>be more urgent - like my good, old 486 Linux (file-/ YP- /Samba- /DNS-
>>/whatever-) server). And yes, it can do compilation rather fast. But
>>with a new binary there also is the need to restart the game engine (or
>>engines in case you develop a networked game as I do). With a script you
>>might avoid this.
> OK - for the third or fourth time in this thread...

I've read it.

>    *NO* you don't need to restart the game engine to change out
>    a 'script' that's written in C or C++.
> This isn't an opinion, I have major applications that work this way.
> Since this message clearly isn't reaching some people, I deduce that
> many of us have not typed:
>    man dlopen

I've read this man page more than once. I've even used dlopen before.

> Here is what you do to have scripts written in C/C++ and have them


(lots of lines cut here)

> So, you can actually edit and recompile parts of your program WHILE
> IT'S

This works only if you have C-ish interface between the module and the 
core engine. But what if you pass on an instance of a class that's 
implemented in the module on to the engine and loose track of it (you 
would have to replace it, anyway)?

[Answer (deliberately?) omitted]

> This isn't unique to Linux - most UNIX'en have dlopen.  I believe there
> is a similar mechanism with DLL's under Windoze - although the API is
> subtly different.

There is. I've worked with that once to get a Delphi core program to 
work together with a C++ DLL. Boy, that's been messy... :(

> There are also some options to dlopen that I skimmed past - these allow
> the physical attachment of the library to your executable to be delayed
> until you actually call one of the functions...well, something like that.
> I recommend using 'RTLD_NOW'.  You can also make symbols within your
> library available to other dynamically loaded libraries...but that gets
> messy fast - so don't go there!
>>This might be beneficial (and good for ones nerves) if
>>it's tiresome to get to the point where you can actually test the new
>>code after an engine restart.
> ...and there is no reason not to do it in C/C++.

Answer above question first, please.


PS: I hope I'm not too cynial in this reply. It's been so tempting... So 
if you feel hurt by this mail, I'd like appoligize.


* Gregor Mueckl                 GregorMueckl@gmx.de *
*                                                   *
* The ChallengeOS project:                          *
* http://challengeos.sourceforge.net                *
* Math problems?                                    *
* Call 1-800-[(10x)(13i)^2]-[sin(xy)/2.362x].       *