RE: Caching question
"Shay Harding" <sharding-YCNXYxaMkU/[email protected]> Wed, 12 Feb 2003 09:07:13 -0700
| Newsgroups | gmane.comp.lang.moto.devel |
|---|---|
| Organization | CCBill |
| Message-ID | <005a01c2d2b0$ce864be0$7500000a@ccbill22ms668m> |
Ok, so basically you're saying "Don't do that" :) "Promotion of Moto Defined Classes is clumsy. The class itself AND all of its member variables must be promoted." heh, yeah this took me a few iterations to get everything promoted. Didn't realize I had to promote a String contained in an object. Shay > -----Original Message----- > From: David Hakim [mailto:dhakim-Gkm/TONP9n1Wk0Htik3J/[email protected]] > Sent: Wednesday, February 12, 2003 8:46 AM > To: Shay Harding > Cc: Moto Devel > Subject: Re: [moto-devel] Caching question > > > There are a couple of things that may be causing this behavior. > > 1) The most common reason this happens is that the module was > compiled > against a different version of moto (or moto extensions) than the > interpreter is loading. Under linux all symbols live in one namespace > so objects allocated by the interpreter are seen by the compiler and > vise versa. Moreover the dynamic loader under linux will > always look to > see if a symbol has already been loaded and if so use that > symbol. Thus > if a function or method defined in an extension changes, if > there is an > older mmc compiled module already loaded (that was compiled with the > old version of an extension function with the same name), the old > version will be used. I want to address at least some of the symbol > versioning problems in future versions of moto by allowing a > flag to be > passed to mmc to make the mmc compiled module dependent on the shared > version of an extension as opposed to the static version. > > 2) Moto Defined Classes can at times have different runtime > representations in compiled vs interpreted code. While this usually > isn't the case ... sometimes it is. I'm hoping to unify their > representations during the implementation of inheritance. The real > problem with these different representations is that on linux, when > both interpreted code and compiled code are running on the same > webserver they share the same shared segment. So when you put > an object > into the context from interpreted code, it may be taken out > and used in > compiled code (and vise versa). Unfortunately if the object has a > different representation in interpreted and compiled modes > methods from > one may not work right on objects allocated by the other. > > 3) Promotion of Moto Defined Classes is clumsy. The class itself AND > all of its member variables must be promoted. I'm hoping to > get rid of > the idea of promotion all together one of these days with the > inclusion > of a real garbage collector. I've had one mostly built for a > while but > its performance leaves too much to be desired for inclusion at this > point. > > -Dave > > On Wednesday, February 12, 2003, at 08:36 AM, Shay Harding wrote: > > > Is there a conflict between compiled moto mods and interpreted in > > regards to caching objects then retrieving them? > > > > I have a small moto program that stores data in a SymbolTable then > > promotes everything and caches it so the data is persistent. > > Everything works fine if I only run it from interpreted OR > only run it > > from compiled. When I run the interpreted then run the > compiled (or in > > reverse order) I get errors about null objects and such. The > > interpreted version actually doesn't kick out an error, it > just causes > > the Apache child to segfault. > > > > > > > > Shay > > > > --- > > Outgoing mail is certified Virus Free. > > Checked by AVG anti-virus system (http://www.grisoft.com). > > Version: 6.0.449 / Virus Database: 251 - Release Date: 1/27/2003 > > > > > > > > > --- > Incoming mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.449 / Virus Database: 251 - Release Date: 1/27/2003 > > --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.449 / Virus Database: 251 - Release Date: 1/27/2003