On Wed, 13 Jan 2016 10:28:25 +0100 Stefan Schmidt <ste...@osg.samsung.com> wrote:
> Hello. > > On 13/01/16 10:17, David Seikel wrote: > > Wow, this is the first time in about a year that an EFL release has > > NOT broken my highly experimental, based on beta API, SledjHamr > > virtual world project. Congratulations guys and gals. B-) > > That is good to hear! > > > > > On the other hand, I'm still trying to fix up all the breakage from > > previous releases. lol > > > This one not :( > > Besides all these b0rkers jokes we are trying not to break things. > From alpha1 onwards I really try to make sure we uncover the problems > we might have to avoid regressions in the release. From my point of > view it looks like the kind of regressions we have are mostly around > behaviour changes. Actual API breaks seem to be under control. > > Does this correlate with what you are seeing? Keep in mind that my SledjHamr project is expected to take years to complete, and has been under development (on and off, mostly off) already for years. It's due to this expectation that I'm using the beta stuff in the first place. I expect the beta APIs I've been using will be well and truly stable before I can get a release out. In the early days, yes API breaks where common. These where easy to fix though, look it up in the docs, or look at changes to examples, just make the compiler happy. These days it is more behaviour changes that's the problem. These can be tricky to sort out. For example, one I "fixed" from the previous release (or perhaps the one before that) is that the Elementary toolbar on my main window would not display, even though the toolbars on the child windows displayed fine. Both use the same code. So I wrapped it in it's own child window for now, that's just big enough to show the toolbar. Just a work around for now. While Elementary might be stable, I'm using it via Eo, so the problem might be in Eo. Another recent bug fix was that the 3D models where not turning up. I can't recall off the top of my head how I fixed that. Evas_3D isn't stable, so I expect problems every now and then. Also in Evas_3D, I was using the example cube and sphere code originally. Some time last year the ability to click on that cube or sphere stopped working, around about the time primitives where added to Evas_3D. I fixed this by switching to primitives, and clicks work fine now. There have been many other issues like those. The one remaining problem, though it's entirely possible it's masking more, is to do with very complex communication between the client, world server, and script server. I think, proving to be tricky to track down. Some of the stuff is working, but I should be getting a dialogue popping up as the result of interacting with a script, and that isn't working now. I know the dialogue itself works, popping it up other ways is fine. The following novel describes how complex this is. Skip it if you like. lol I start the client, it tries to connect to a world server (local only for testing), if it can't find one, it starts one, then tries again. The world server does the same thing for the script server, try to connect, on failure, start one. Once it's all up and running, the world server tells the script server to start compiling all the scripts it finds in the world. These are ordinary LSL scripts (Linden Scripting Language), as invented for Second Life (SL) by Linden Labs. Commonly used open source scripts are what I'm testing with. I'm trying to maintain backwards compatibility with both that and the OpenSim (OS) variation of LSL. It's common to have thousands of these scripts in one 256 x 256 meter region, or even dozens on an avatar. LSL is a .... insert REALLY STRONG SWEAR WORDS here ... of a language, trying to do stuff often involves multiple scripts communicating with each other. The script server translates them into Lua, then uses LuaJIT to compile them. The script server tells the world server when each script is done compiling, the world server then tells the script server to actually run them. Which it does, using LuaJIT. I wrote a worker thread system to run these scripts, as LSL is event driven. So script response to events is expected to be short. This is actually part of the spec of LSL. Anyone trying an endless loop in LSL should expect their script to be terminated. As an aside, I'm doing things this way coz I feel that LuaJIT, being the fastest scripting language, could do a far better job than normal LSL, which is usually compiled to Mono. If I remember correctly (been a while since I did the last benchmarks), SL and OS both take many seconds to compile an average script, my compiler is compiling hundreds per second. I haven't benchmarked running performance yet, but I expect a decent speed up. OS has a similar arrangement, but translates to C# and compiles to Mono; no one knows what SL does, other than use Mono. SL used to compile the scripts client side, using their own runtime, but they switched to compiling to Mono. This is why these days you can select either option in SL. So these normal, everyday, LSL scripts toss messages back and forth between themselves, mostly due to memory limits and lack of a library mechanism, and toss messages to the world server to get it to do stuff to the world. The world server tosses events to the script server, which are passed onto the scripts. Stuff that involves interacting with the user gets messages tossed between all three. The main scripts I'm testing with are called MLP, Multi Love Pose, scripts used for sex. I chose them coz they actually exercise a large part of the system in a staged way (so I don't have to implement everything at once), they are popular, and are known to be slow. Plus, I'm familiar with them, having worked with them in the past. When they start up, they mostly just sit idle until someone clicks on the object they are in. Then a half dozen scripts start loading data into themselves from "notecards" also stored in the object, spewing logging info to the chat console. After a while, they are ready. A second click is supposed to pop up a dialogue where the user can then decide what to do. Usually the user will then select a pose from the dialogue, and the scripts will create "pose balls" in world, which the user/s then sit on. Second Life and OpenSim users will be familiar with how this works in world. Right now, only some of those messages to the chat console actually appear, and the dialogue no longer pops up. It used to work as far as interacting with the dialogue, and getting more dialogues. The part that creates objects in world in response to scripts hasn't been written yet. I don't even have avatars yet, so no one's sitting on anything. -- A big old stinking pile of genius that no one wants coz there are too many silver coated monkeys in the world.
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel