Older blog entries for steved (starting at number 5)

I've just been reading mettw's diary entry on C++, and I'd like to make a few a comments (shame we can't do reverse links):

After getting used to C++ for dbXML I really can't understand why anyone would want to use it. It's an inefficient garbage bin of features.

Inefficient? Can we have some examples here? Sure, if you declare all your methods virtual, you're going to take a hit on the double indirection for each call. So don't do that. Use virtual only in places where you'd use function pointers in C. There's a more general point here, I think. You can produce unreadable, inefficient piles of cruft in C++, and it may be easier to do than in C. But I think with careful and thoughtful design you can also write easier-to- read code in C++.

While debugging it I saw the number of lines it had to go through just to pass a string object to a method - You really have to see it to beleive it!

I assume you're talking about lines of assembler generated here. Do you mean a pointer to the object, or the object itself? More to the point, can you demonstrate that your compiler's (possibly) lousy code generation is a result of flaws in the design of the language?

I can understand going through that many lines with a higher level language, but with C++ being so low level you really have to ask what the point of the language is. With C++ you get the bloat of higher level languages with the pain in the arse debugging of C.

I'm not saying you're wrong, but I'd rather see some more detailed reasoning here. If you believe the generated code in your example to be inefficient, is this the fault of the compiler, the language standard itself, or the author of the code for not understanding the implications of what he/she was doing?

Erk, missed the last day of UKUUG's Linux Developers' Conference by sleeping right through it :-/ I'd made the stupid decision to travel up each day and as a result was completely knackered by last night. Hopefully davej will forgive me (I'd promised to meet him this morning..)

Due to one thing and another, I'm away from home for a bit, and therefore effectively workstation-less - I don't consider this P120 running Win95 to be workstation ;-) As a result, I'm thinking about spending money I don't really have on a laptop. I'm currently looking at the Quadra 133 from DNUK.

Thought I'd nailed the cause of the loop device deadlock, but was quickly disabused by Stephen Tweedie and Jens Axboe. Time to return to the code with a pen and paper handy - but probably not right now, given I've been awake for 30hrs or so.

Got brave last night and talked to some people on #kernelnewbies about a race I thought I'd seen in getblk(). The general consensus seemed to be that I was right, so I posted a patch. Let's see if the Linux Gods agree with me ;-)

Popped into #kernelnewbies briefly on Friday and "met", IIRC, davej, willy and one or two others. Over the weekend I poked at the loopback block device lockups in 2.3.99 but didn't come to any earth-shattering conclusions. As part of that I ported the IKD patch to 2.3.99-pre3, but I've not done anything useful with it (read: sent it to Andrea) yet.

Some other interesting stuff may be happening, but I can't talk about that right now.

Advogato really should allow people to set the date on their diary 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!