Older blog entries for freetype (starting at number 16)

gilbou, I think you didn't understand the sentence. Guillermito has only been fined for copyright infringement ("contrefaçon"), because he used a pirated copy of Viguard to do its research. This has nothing to do with the fact that he did publish a proof of concept that effectively showed that Tegam's marketing was essentially bullshit ("protects from 100% of all viruses, past, present and future").

Moreover, he has only been sentenced to a "sursis", which means he won't have to pay the 5000 euros, unless he's caught in the act of contrefaçon again. That's not exactly the most severe sentence you could imagine, even though there are still things that do not please me in this affair (but I prefer to see the final judgement before expressing myself on this).

One of the problem however, is that Guillaume Tena himself has a silly attitude where he claims that full disclosure is now illegal in France. This certainly not what has been judged here.

For more details, go to this page

2 Mar 2005 (updated 2 Mar 2005 at 16:54 UTC) »
FreeType & GTK/Gnome heap usage reduction

I've mostly finished optimizing FreeType memory usage when dealing with TrueType fonts, and the results are really interesting. In order to quantify the improvement, I run a fraction of the FreeType benchmark program "ftbench" to time various operations like face open/close, loading glyphs and parsing the charmap. The command itself is:

ftbench -p -b aij fontfile

heap usage was measured with FreeType's internal memory debugger, so the numbers only correspond to heap blocks allocated by the font engine.

The following are respectively the source font file, its size in bytes, and the number of heap bytes saved by the optimization:

  • vera.ttf (65,932 bytes): 53,483 bytes
  • arial.ttf (367,112 bytes): 159,016 bytes
  • times.ttf (409,280 bytes): 162,334 bytes
  • arialuni.ttf (24,131,012 bytes): 1,452,573 bytes
  • batang.ttf (15,619,828 bytes): 2,818,329 bytes

Please note that:

  • I'm comparing FreeType 2.1.9 and FreeType CVS, with memory-mapped files, which are used by default by FT2 when compiled on Unix platforms that support them.

  • The tested program loads all glyphs in a given font, and thus tends to use a lot more heap than typical GTK applications (especially when displaying CJK text). The savings displayed here are probably higher bounds, rather than averages.

  • The optimizations have only been performed on the TrueType and SFNT drivers of the font engines. This means that all other formats are probably eating too much memory. For example, the BDF driver starts by allocating a 64Kb block before reading the file. Even when the file to read is tiny. The Type 1 driver is known to be hungry as well...

I'm a bit ashamed by these numbers :o) I've tried to see if upgrading FT2 to the CVS version on my Mandrake 10.1 machine would result in any visible global memory usage reduction; Surprise, it didn't break it !! it's been unfortunately impossible to get any kind of stable numbers through 'free', 'top' and others. I suspect there is a 200-300 Kb global reduction when starting a fresh KDE 3.2 from boot (without any opened application), but that might come from something completely different. If anyone knows about a good way to measure this, I'd be extremely interested.

If you want to test it yourself on your machine, grab the latest CVS according to the following instructions. using the freetype2 module name, compiling as usual with ./configure --prefix=/usr --disable-static, then make and sudo make install. Then restart your X session. If this crashes, you can recover by following these instructions as root:

  cd /usr/lib
  rm -f libfreetype.so libfreetype.so.6
  ln -s libfreetype.so.6.XXX libfreetype.so
  ln -s libfreetype.so.6.XXX libfreetype.so.6
  restart X

Where XXX is the library minor number corresponding to the your existing installation. Mine was '7' on Mandrake 10.1, and the CVS installs '8' so just changing back the symlinks is enough to get back in a sane state.

Coucou

It's been more than a year since my last post, and this is a cool oportunity to recap what happened to me during all this time. Of course, it's not like anybody's supposed to be interested in this kind of things ;-)

Personal

We moved back to Paris, since my wife wanted to come back to work, since our daughter was getting extremely well (much sooner than the doctors planned). We couldn't both of us spend 3 hours a day in the train and correctly raise our kid, so we said goodbye to the countryside and went back to our 2-room.

After a few months, we found a larger appartment, which we paid a fortune for. Fortunately, the old one was sold at an even higher rate per square meter. Basically, 5 years of savings of two engineers will buy you an additionnal room and a small parking location in a basement in Paris. I think that's no so bad; and we have no mortage to pay. Neat

All in all, we moved three times in a little more than one year, and boy, this is exhausting. I hope we won't be moving until at least a century or two :-)

Now, all I need is a new PapaMobile to drive the family which is going to receive a new girly member in April.

FreeType

It is clear that I had very little time for FreeType this year, and was mostly absent from the mailing list during this period. My family and work, plus all the casualties of the movings (including looking for the new apartment) took all my time.

Things are slowly settling down now that we're "in the place". However, I don't know how things will be in the next few months when we'll have to handle two babies at the same time. Asking people about that is funny, some people will tell you that it's easier than one, others will tell you that it's 4 times more work. I guess it's a sort of lottery depending on the children's characters. Alea jacta est.

We're in the process of moving the FreeType server to different machines. That's mainly because the old server crashed due to a hardware failure, and our current sysadmin doesn't have the time to properly setup everything again on a different machine.

We've decided to move most things on Savannah. In one hand, it's very convenient for us, on the other, CVS is no awfully slow; fortunately, it's not like we need to perform checkouts and commits every half hours :-)

GTK/GNOME memory usage reduction

I've begun to tune the FreeType 2 code in order to reduce its heap usage as much as possible. This should benefit many desktops if done correctly. Interestingly, there are far more optimization opportunities that I initially though, and most of these are easy to do with rather immediate results. I'm however concerned about two things:

  • the first one is that I don't want to sacrifice performance for marginal heap usage gains. this isn't too difficult though.

  • the second one is that I'm modifying internal structures of the library, that are normally never accessed by client applications and libraries. Unfortunately, some popular libraries like fontconfig or Pango do peek at FreeType's internals to achieve various results.

What the second point means is that simply upgrading the library on your system with the new optimizations may break your system by making fontconfig and Pango behave erratically. Until complete testing has been performed, I'm unsure that the optimizations will be enabled by default in the next release of the code.

Of course, the correct thing to do do is fix Pango and fontconfig by mandating that they only use public APIs to do their stuff (and if they lack some API, they can ask for them, we already include some XFree86-specific stuff for example). I suppose that Owen and Keith didn't do that until now because they didn't want to depend on a too recent release of FT2. If you look at the Pango source code, you'll see that it does some pretty weird stuff to compile differently depending on the version of FreeType detected at compile time...

I suppose I'll finish by providing the right patches myself. Oh well...

Work

It's official, the company I work for has been sold to the competition. More exactly, to two distinct competitors. As for myself, I'm now one of Darth Rupert's minions. I can tell you that Microsoft doesn't look that evil from there :-)

22 Jan 2004 (updated 22 Jan 2004 at 14:19 UTC) »

Happy new year to everyone. I'm feeling that 2004 could hardly be worse than 2003 for most of us :-)

Life

Lucie got her second corrective surgical operation, and she's now an absolutely normal 11-month baby. Yep, yep, yep. It seems that the morphin she took at the hospital did disturb her sleep cycles though, and she can hardly fall asleep before midnight these days. I can live with that :-)

Books

Since I've been spending 3 hours a day in a train since last July, I had the time to read a lot of books lately. I have thus tried so far:

  • my father's collection (espionnage, crime, sci-fi). these are mainly "best-sellers" you'll find at airports and train stations. E.g. Ludlum / Crichton / Cornwell. Most of these books are midly entertaining, predictable, and lack humor. Oh well.

  • trying to ressurect my old sci-fi collection. This really means the whole works of Philip K. Dick :-) Also bought a few used books from Robert Heinlein (The Puppet Masters, and Starship Troopers). I recommend these because they're funny, and much better than the films that were written out of them.

  • trying to complete my collection of beloved French authors like Pennac or Benacquista. By the way, I recommend this book to any Frenchman that reads me. It's simply hilarious

  • finally, I've been hunting for new blood. I have discovered James Ellroy and fell in love with it (to the point that his books were the only thing I asked for Xmas :-). I'm currently completing my seventh book: I was expecting the novelty to wear off after some time, but I'm still stick on it.

Life

These last months have been incredibly intensive. Lucie got her first surgical operation to repair her palate. It's been a bit hard but everything's well now. The next one is scheduled in 6 months. Apart from that, she's a really cute baby, and we love the way she smiles in the morning when waking up :-)

Moved

We finally left Paris, to move to my grand-parents house in the country. Preparation has been tedious, so was moving and installation, but we're happy at last. I need vacations though, and an ISDN line too :-)

Fonts

Didn't have the time to do anything on FreeType or anything else. I'd like to answer mslicker's latest rant by saying that font anti-aliasing has nothing to do with usability or legibility, since it's purely an aesthetics and technical question. Consider that:

  • anti-aliased fonts look cool. that's why games have been using them years before our desktops could support them, even though these were hand-drawn by artists

  • properly designed bitmaps are nice, but they are simply unable to scale gracefully, hence the advent of scalable fonts.

  • scalable fonts look atrocious in monochrome mode without adjustments, hence the invention of font "hinting" and "grid-fitting". A small number of high-quality TrueType fonts produce results that are similar to hand-tuned bitmaps at small character pixel sizes, but they require a lot of work from font designers. Apart from these, most scalable fonts still look "ugly" in monochrome mode.

  • Most of these ugly fonts look better when anti-aliased. Moreover, it's easier to get correct to good results when automatically hinting fonts for anti-aliased rather than monochrome output.

  • certain things like device-independent display are fairly better supported when using anti-aliased rendering, especially when disabling hinting.

Note that for some reason (aesthetics), people tend to have very strong opinions regarding fonts, be it from pundits, Slashdot readers or ordinary users.

Life

Lucie turned 2 months and she's beginning to be real fine at last. March has been real hell, but we could remove her gastric tube last week. Seeing her drinking from the bottle like any normal baby is a great joy. And she started sleeping whole nights, which makes our life much more enjoyable :-)

Work

Oh joy, my rusty Ultra-5 has been replaced by a shiny new Linux PC. Everything feels much faster, the keyboard doesn't suck, NFS is twice more responsive, the shell utilities are not broken (e.g. "patch" and "diff"), and I could get rid of CDE for Gnome 2 (which cannot be used on Solaris without installing system-level patches). This makes a real difference.

I have also discovered Synergy, a very cool little program to share a keyboard and mouse between two computers, independent of their OS. I'm really impressed by it, its automatic cut-and-paste management already saved me many hours, and it allows me to use my mouse wheel on both machines, even if one of them only has a "normal" mouse. If you're using several machines on the same desk, you should really consider this. And it's GPL !

Life

I'm glad to announce that Mounira and I are the happy parents of a little angel called Lucie, since February the 26nd 2003 :-) She suffers from a small medical condition that prevented here from correctly breathing when she came; she was thus transfered in emergency to another hospital about 20 minutes following her birth, which was quite a shock to us. She's still in intensive care as I write now, but going much better now, and we're confident that we'll get her home at the end of next week.

Her breathing is now completely normal, in all positions, and we've been confirmed that she didn't lack oxygen at birth. Lucie cannot eat normally though, her tongue being a bit too small/backwards, so she only drinks about half of its milk bottles, the rest is given through a gastric tube and a pump. That was impressive the first time, but we're getting used to the idea right now. And we're still experimenting with custom feeders (pluckers ?). Very hopefully, her syndrome will completely disappear when shell' be one or two years old; she'll then be a perfectly normal baby, though will require a lot of extra care from us until then.

While this latest month has been very hard for us, we had the opportunity to reconsider a lot of our life choices, like the place/city we live in, our work and our hobbies. I still don't know if I'll have much time for open-source in the coming years...

FreeType

I have already announced to the FreeType mailing lists that it may be a good idea to find a new commited guru for the project, since "retirement" is a serious option for me right now. In the meantime, I'm trying to get 2.1.4 released as soon as possible, but small annoying bugs kept appearing lately :-). Hopefully, it's now a matter of days, if not hours. Should be a nice release in terms of features and rendering quality too.

X11/XFree86

I hadn't seen it coming, which isn't very surprising since I don't follow development of XFree86/Gnome/KDE very closely anyway. I really don't know what will come out of this, but here are a few random comments on the X11 and XFree86 situation:

  • Is X11 slow ?

    When it comes to bare rendering performance, that's certainly not true. However, my opinion is that when most users say that they feel that X11 apps are "slow", they really mean that the apps are a little bit too unresponsive for their taste, i.e. that they take too long to react to a single button click, or drag a window. We're speaking of latencies in the order of 1/10th of a second. That may seem short, but users are very sensitive to this, ask any Mac developper :-) I have no definitive answer on the subject, but I get the feeling that some of the design of X11 is here to blame: specifically, the fact that the window manager runs as an independent process makes several trivial operations a lot longer than necessary. For more details, I recommend reading Why X Is Not Our Ideal Window System. Notice that this document is 13 years old, but that few problems seem to have been even touched !.

  • Is X11 too old ?

    Maybe, maybe not, it really depends on what you want to do. As a matter of fact, all recent development on Gnome and KDE seem to focus on non-standard features of XFree86 that are not part of X11 itself, i.e. fontconfig, Xft1/2, Xr, RandR, etc... Apart from that X11's rendering model is very dated (logical operations like AND/XOR/OR on pixel values aren't exactly useful today, the client must handle many or all possible visuals which is just a royal pain in the ass), the font model is one of the most stupid engineering thing I've seen in my programming life (and I'm not even thinking about XLFD :-) I guess that if all you need is Xterm and Emacs, it doesn't sound so bad...

  • Is X11 bloated ?

    The core X11 protocol is relatively lean and mean, but a lot of things have been implemented either as extensions, or on top of it like ICCC (the specification that states how applications should interact with each other, like clipboard management).

    Optional extensions are a pain for developers, they require you to double some of your code, which requires double testing, double code paths, and double potential sources of subtle bugs in an asynchronous environment; this is however not the rule, since some extension writers have been intelligent enough to provide client-side libraries that perform this automatically in an intelligent way (think Xft2 which works with or without the RENDER extension on the server, which allows you to run your apps with anti-aliased text on stock Sun machines, even if slowly). I would thus not directly blame X11 for these "problems". However, a lot of these extensions should go and have nothing to do on a typical build of XFree86 on my Linux machine.

    The ICCC is a mess, but very fortunately most of it can be ignored by applications, or simply abstracted. I wouldn't be surprised if advances performed by Free Desktop would make it irrelevant in a relatively near future.

  • Can DirectFB/Snap/Whatever replace X11 ?

    They're different things. DirectFB, Snap, GGI and many other things are really APIs to access the graphics hardware on a given machine through a unified API that is rich enough to enable advanced features like alpha composition, or video overlay; some of them even support hardware double and triplle buffering, as well as VSYNC synchronisation !. You can perfectly build a conformant (i.e. network-enabled) X11 server on top of them (e.g. XDirectFB), just like you can build a X11 server on top of the Win32 GDI or many other graphics APIs. Even extensions like RENDER and RandR can be implemented as long as the protocol is sufficiently clear.

    What's at stake here is to determine who controls the graphics hardware on a Unix workstation. The current state of the art for Linux and FreeBSD is that XFree86 controls anything, all other projects be damned. That has been understandable for some time, since X11 was the only "real" graphics interface for Unix for a long time. However, many people are seeing its limitations and can't stand them anymore, they're thus willing to experiment with different schemes to get the best possible performance for the kind of uses they envision.

    One good, but too unheard, example would be the still unfinished E17 whose Canvas can speak directly to OpenGL, literally smoking X11 in all tests while providing smooth alpha blending at all levels.

    There are very little reasons why XFree86 couldn't run well on top of a good accelerated graphics API which would allow to share the hardware with other applications and graphics system. Apple just did it with their own blend of XFree86 that runs on top of Quartz, this even allows you to "genie" X11 windows, since everything is stored in an OpenGL surface anyway. And why can't I run games in full-screen on most Linux installations I've tried ?

    Of course, this would go against the control-freak nature of the XFree86 core team which seems to believe that you must control the hardware to make a good X11 server.

I really wonder who's gonna control the hardware on my machines in the coming years. How well, this is long, maybe I should have started an article :-)

Life

Mounira and I are expecting a baby for March. It's a girl and we're very happy. On the other hand, all of our time is now dedicated to preparing everything for its coming, which includes moving about everything in our two-room appartment, and getting rid of anything we find "superflous", like my computer books, my large desk, my tower computer, my 18" LCD screen (aaargh), lots of furniture, etc...

I didn't restrained myself, which is probably why I did catch a very serious cold. I now need to stay home for a few days according to the doctor.. which, on the other hand, gives me an opportunity to write this diary entry :-)

FreeType

I've also performed a bit of coding, and just put FreeType 2.1.4-RC1 on SourceForge. It includes some significant improvements to both the automatic and Postscript hinters, thanks to David Chester and others. I advise you to install and test it on your system, you'll probably appreciate the improvements :-)

Fonts

I had not the pleasure to see the Bitstream Vera fonts yet, except the official screenshot. I wonder however in which format they'll be distributed, since this hasn't been announced publicly.

MacOS X

I've been playing with MacOS X and Jaguar on my brother's computer who uses it to make movies. My first impression are that everything seems a lot more polished than MacOS 9 (which I haven't used in a long time, I admit). Meanwhile:

  • OpenGL doing all the transparent blitting is cool, since you can seamlessly translate windows on the desktop. on the other hand, operations like resizing, which involves recomputing the whole window content are significantly slow (even GTK2 with double buffering seemed faster on my old 233 MHz laptop)

  • Any kind of serifed font seems fuzzy. The sans-serif ones are nice however, as long as you don't choose a character size that is "too small" (< 13 pt). My brother's computer is connect to two screens: one high-end 19", and a low-grade 15". The fonts look completely fucked up in the "small" screen, and are very hard to read. This is just to point how important screen quality is when judging the aesthetics of anti-aliased text (monochrome doesn't have this problem). And yes, we tried to adjust gamma.

  • Microsoft Word is very problematic when it comes to fonts: if forces TrueType hinting on all the fonts it uses, while preserving anti-aliasing even at small character sizes. The result is pretty poor quality, as well as inconsistent rendering when compared to other applications (the same font can have a very different aspect when hinting is enabled). Fortunately, this means that TrueType hinting is mostly becoming irrelevant for high-quality display (moreover, you can still embed bitmaps when you really need them). Unfortunately, I do not remember which version it was, maybe the "problem" has been fixed in more recent ones. Or maybe there is an option to disable this optimisation (though I'd doubt it).

Thanks

Finally, a big thank you to the person who answered my problem with the NVidia logo appearing each time I started the X11 Server on my laptop. I'm sorry for not remembering your name, and I don't know how to search back the logs on Advogato.

Meanwhile, I've played with all the options described in the insanely huge README. The hardware-accelerated support for the Render extension seems cools but I didn't notice a big difference in terms of application responsiveness (I suspect this is due to X11's brean-dead three-tiered design regarding window management), and it also seems to routinely hang the server (and hence the machine since I have no means to access it from an external terminal).

I didn't have the time to do anything useful in OSS land recently. For various reasons that I won't explain here, I've been unable to use my home computers for several weeks. But I just received my shiny new Inspiron 8200 from Dell, and boy, what a change this makes !

The Good

  • The UXGA ASV screen is absolutely fabulous. For us, mere mortals, this means a resolution of 1600x1400, 15" diagonal, and, much more importantly, some refined characteristics (in terms of contrast & color fidelity, refresh-rate, etc...). Playing movies is cool with this, unlike most LCD screens I've used before. This screen is currently €300 extra from a regular Inspiron, but it's probably worth it if you're fond of that kind of details.

  • Very surprisingly, the keyboard feels extremely good too on this machine. A few Dell users I know told me their keyboard was "bulky" and made of cheap plastic. That certainly is true, but for some reason, my fingers literally fly on this beast !!. I nearly type as fast as on a regular keyboard with it.

  • I had no problem installing RedHat 8.0 from scratch on the machine, except that XFree86 wasn't able to use the 1600x1400 resolution correctly in VESA mode. However, downloading the proprietary drivers from NVidia's site solved the problem. I'll soon replace it with Debian 3.0 however, and I don't know if things will be as easy..

The Bad

  • Well, the NVidia XFree86 driver is nice and all, but it splashes a huge company logo each time the server is started. Very frankly, that's damn annoying, and I'll try to see if there is some way to remove it.

  • There's a big fan within this beast, which I suppose is used to remove the heat generated from the processor. This is very surprising at first, because the fan starts and stops randomly. It takes some time to get used to the noise, though it's not too bothering. Compared to that, my old laptop was a dead brick, though I suppose that all Intel-class laptops share this "feature" now :-)

  • Generally speaking, the whole laptop seems very polished but fragile. Many parts seem to be made of thin plastic that won't resist much to pressure and not-so-exceptional conditions. The DVD drive seems to be crying "break me" when you open it, for example. No wonder that Dell sells Latitudes with approximately the same configuration but stronger casing for €1000 more :-)

    Very fortunately, I'm not a road warrior, and I'm pretty careful at handling laptops (/me crossing fingers).

The Ugly

  • nothing particularly distateful on the laptop itself. But UPS, which seems to have an exclusive distribution agreement with Dell in Europe did screw up things by large. I'm not going to detail it, but they've been clearly incompetent and refused to admit it on the phone despite numerous calls (e.g. claiming that my correct address wasn't valid for example !!). End result: five additional days for delivery, and numerous frustating phone calls/faxes with UPS and Dell representatives.

Conclusion

    This laptop is very good, but I wouldn't have bought it if it wasn't for the screen. If you're sensitive to this kind of details, go for it. Otherwise, you'd probably better consider some better alternative, i.e. some made with better plastic, or with a well supported video card :-)

OK, now back to hacking the stuff I like :-)

Beware, this is a huge entry !!

Work

It can be said: I've quitted the freelance consulting business for a new position as "expert software architect" for a relatively large embedded systems company.

My main motivation for the change was me getting tired of working on my own. Of all the contracts I've done these last three years, nearly all of them were performed entirely in my Paris office alone, mainly for US companies whose representatives I've nearly never met in person (aren't e-mail and PDF contracts wonderful things ? :o)

Interestingly, I also did participate during this period to a startup that some of you may remember as Henzai. Technically, the project was extremely challenging; unlike what many of you probably think, it didn't consist in porting Gnome to Linux PDAs, but to design a very advanced and innovative graphics system and GUI toolkit tailored for PDA screens (and "keyboards", as limited as they can be)

But my most memorable experience was the team we formed. We, the three techies (and founders) in the company did really found a way to work extremely quickly and efficiently together. I guess that our skills simply matched each other, because we could do in a few months a lot more than I could have ever imagined. It's a kind of magic, that I hardly ever found in the various teams I had joined before (at the Unis and previous employers alike).

Of course, the fall of the "dot-com boom" stirred the end of the company, and we had to separate for distinct working lives after that. I quickly went back to my usual consulting job, but working alone wasn't very pleasant after this experience. Moreover, the "freeze" also meant that my choice of contracts was becoming a lot shorter and a lot more boring...

Hence, it was just a matter of months before I decided to look for a new job. Very fortunately, I had secured sufficient amounts of cash in the bank, as well as very small developments contracts to be able to very carefully select and negociate employement proposals during several months...

Very funnily, two distinct companies proposed me consulting contracts at the same time, while I was reaching a final agreement with my (now) current employer. These two proposals were both very interesting (since they allowed me to perform paid work on FreeType itself, among other things), but required that I continue working on my own as usual (or maybe move to a different country !!)

Believe me, my final choice has been very difficult to make. I ultimately decided that I needed to change my work environment though; obviously, I was missing the coffee- room smalltalk !

I've just started this month at my new position, and I must say that I'm extremely happy to have lots of new colleagues to talk to. It's extremely refreshing, even though I know that the novelty will finish to wear off some day :-)

Mounira

Just to say that I couldn't have done all the things I've been through these last three years without the smiles and consent of my wife Mounira. Merci !! J'ai vraiment beaucoup de chance de t'avoir !!

FreeType

There are chances that my new employer(s) might be interested in integrating FreeType into their own products, and this could be fun. However, they already have their own working solution to their problem, and it works pretty well even though it has its own limitations.

I don't think I'll try to force or convince them about it, replacing a font engine with another one that exposes a different API can be a very delicate thing to do in certain systems. One important thing is the fact that upper layers of the system might depend on un-specified bugs or "features" that cannot be easily reproduced with the new code.

However, FT could make it in later major versions of their software, where more drastic internal changes are possible. Something tells me that this won't happen too soon though.

In all cases, I continue to work on the engine on my free time. I have written a lot of new code, but most of it breaks the build since the internal re-design isn't completely finish. Seems that a few weeks will be needed to round the corners :-)

Open Source

mathieu: thanks for you praise, but I'm certainly not as smart as you believe :-) To prove my point, I'll tell you that there is a subtle bug in one of the code snippets that invalidates some of the conclusions. (finding which one is left as an exercise to the reader)

Hey, that's just a draft after all ;-)

On the other hand, I have found some interesting relationships between garbage collection and cleanup stack management, as well as a method that could drastically reduce the number of push/pop pairs required to allocate memory safely when coding in an object-oriented way (and still with minimal interference with typical programmer's habits). This also means that the "invalidated" conclusion would still remain true (and be actually stronger)

Unfortunately, detailing all of this would take me at least four additional pages to the document, and I don't have the time to do that right now (don't ask me how I find the one required to write this mammoth diary entry :-)

On the other hand, you might be interested to know that I'm currently modifying the FreeType 2 internals to use CSEH. I'm doing this for at least two good reasons:

- it's easier than rewriting the library from scratch to use the MLib

- it's also easier because it doesn't need to deal with multi-threading (FT2 isn't thread-safe, and for very good reasons)

- it will provide me some real metrics regarding the code size savings and performance one would expect by using this technique instead of the usual "paranoid scheme" that is implemented in the 2.0.x family.

- these metrics will become part of the final CSEH document :-)

I'l probably post something here when this change is over..

Finally, I still live in Paris, so we could certainly meet there if you happen to come by. Contact me personally at my FreeType address if you want to. As you know, we also have one French friend in common that could be part of the meeting too :-)

7 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!