The problem with C's volatile qualifier
The real problem with C's volatile (well, one of them) is that volatile only affects the compiler; it doesn't normally make thecompiler do anything to affect the CPU's interaction with memory. Onmodern hardware, merely affecting the compiler is not enough; theCPU/memory interface has its own optimizations, which must be dealt withtoo for shared-state code to work right.
From the perspective of history this makes a lot of sense, becauseANSI C mostly predates CPU memory controllers
My current views on webmail providers
I have come to a grumpy realization recently:
Unsecured webmail systems are today's open SMTP relays, and it'shigh time that they got treated the same way.
The comparison is all the more striking because (once) major ISPsappear to have decided that they can run open webmail systemswithout consequences, much as people once shrugged off runningopen SMTP relays.
(I am particularly depressed by the move of places like rr.com,comcast.net, and adelphia.net into webmail systems that are
Link: Threads Cannot be Implemented as a Library
I've already linked to this in passing , but I'm going to rerun itas an explicit link. Threads Cannot be Implemented as a Library by HansBoehm makes the argument in its title:
We provide specific arguments that a pure library approach, in whichthe compiler is designed independently of threading issues, cannotguarantee correctness of the resulting code.
There is also a discussion of this paper at Lambda the Ultimate that may be interestingreading. On a quick skim of the LtU discussion thread, thisUsenet article
Solaris's impressive ABI compatibility
There are some things that Solaris is very good at; one of them isuser-level ABI compatibility (at least for basic programs). As anillustration of just how good it is, I only recently noticed that on ourSolaris 8 machines I am still routinely using some dynamically linkedprograms compiled in August of 1993 (which is probably when this groupstarted using Solaris machines).
I hadn't noticed before now because the programs hadn't really changedsince then (so I had no
A (Solaris 8) automounter irritation
Here's an automounter irritation that keeps biting us: on fileservers,the Solaris 8 automounter is not smart enough to notice when anunderlying If it gets a request for the filesystem, it 'mounts' things anyways,which then fouls up various aspects of, say, remounting the realfilesystems. It is remarkably difficult to persuade the automounter tolet go so that you can restore things to normality, and you can't justshoot the entire automounter The SMTP frontend died twice late Friday night, to my irritation.That said, this week we: The message count is down dramatically from last week because this week Courtesy of Pete Zaitcev ,here's a great example of what happens when optimizing compilers aren'tthread aware. Start with code of the form: Modern versions of gcc 4 on x86 will optimize the function call into: (This is a less stupid optimization than it looks; That X needs a configuration file less and less makes it more and moreimportant to have your monitor(s) powered on when you're powering on orrebooting a machine, because otherwise X won't be able to get the DDC information it needsto do most of that nice automatic configuration. A side effect of thisis killing off BNC monitor connectors, because you can't do DDC overBNC. (Yes, I still have a CRT monitor at home, and until recently I was usinga One of the things that irritates me about DiskSuite in Solaris 8 is howhalf-hearted the provisions for automated monitoring and reporting are.I don't necessarily ask that DiskSuite have all of this pre-built, butI would like commands that had output that at least made it relativelyeasy to build this ourselves, and DiskSuite falls flat on this. Metastat will tell you all of the necessary information, but it does itin a verbose, human-readable format that is sufficiently complicated andunderdocumented that I get Out of a somewhat idle curiosity, I decided to do up some numbers foractual HTTP requests against one of the servers here. All of this isusing the past 28 days of old logs (plus today's): Most of the requests were successful; 90% got a 2xx or /export/
Weekly spam summary on December 30th, 2006
What can go wrong if your compiler is not thread aware
struct a b;
b.pos = *ppos;ret = foo(&b, ..., b.pos);
ret = foo(&b, ..., *ppos ); ppos
A thought on the advance of X auto-configuration
Solaris 8 DiskSuite's lack of good monitoring
HTTP as it is seen in the wild
289160 total requests277323 GET 5722 PROPFIND 3665 OPTIONS 2215 POST 178 HEAD 39 CONNECT 18 garbled
Menu