Skip to main content.

Archives

This is the archive for January 2007

Monday, January 29, 2007

Or "You get hungry as you eat."

I was beginning to take care of the error reporting code, so I wanted to put in place what I have planned since the beginning: an internationalization table for the error messages. Actually, the idea is that the internationalization system should be available for all the modules, especially user side.

I was wondering what kind of data structure could have been simple to be implemented by scripts and fast to be loaded and used... discarding XML with this regard, and seeing as quite unpleasant the solution of 1:1 text translation tables, I thought "hey, what about serializing a vector? You may simply write your translation table in a script and then just serialize it..."

That was a great idea. In this way, falcon users can generate binary translation tables without the need of an intermediary utility: just put your strings in an array and add the instructions to create the table file, serialize the array and close the file. I cherished also the possibility to use the array directly as a module, but I discarded the idea as the link step would be useless and heavy.

The problem was... serialization is in RTL, and not in the engine. Scripts may have created their own tl tables, but having binary modules, and especially the internal engine, to be internationalized would have been quite complex.

The solution was easy: to bring serialization support directly in the engine. Now RTL serialization support is just a stub wrapping engine functionalities, and this open quite interesting scenarios.

Wednesday, January 24, 2007

Good ideas like i.e. branching the CVS before starting the item * experiment.

Further tests on the branch determined it wasn't worth; Falcon IS this efficient exactly because it stores polymorphic unreferenced items in fixed memory locations. Allocating items, for how much that can be done item-wise (i.e. with item specific allocation tables as I did) is always less efficient, end the gain in skipping any dereference step does not even ranges near.

Problem is that i messed a bit up things when rolling back the CVS, with the double effect of making it instable during the experiment and after I decided to cancel it.

Double fool.

Well, one can't just be smart all of the time...