Wendell Wilson over at TekSyndicate had a good idea – run the NetBSD repo conversion on a machine roughly comparable to the Great Beast design. The objective was (a) to find out if it freakin’ worked, and (b) to get a handle on expected conversion time and maximum working set for a really large conversion.… Continue reading Proving the Great Beast concept
Building the perfect beast
I’ve attempted to summarize the discussion of build options for the repository-surgery machine. You should see a link at the top of the page: if not, it’s here I invite all the commenters who have shown an interest to critique these build proposals. Naturally, I’d like to make sure we have a solid parts list… Continue reading Building the perfect beast
Black magic and the Great Beast
Something of significance to the design discussion for the Great Beast occurred today. I have finally – finally! – achieved significant insight into the core merge code, the “black magic” section of cvs-fast-export. If you look in merge.c in the repo head version you’ll see a bunch of detailed comments that weren’t there before. I… Continue reading Black magic and the Great Beast
Spending the “Help Stamp Out CVS In Your Lifetime” fund
I just shipped cvs-fast-export 1.21 much improved and immensely faster than it was two weeks ago. Thus ends one of the most intense sieges of down-and-dirty frenzied hacking that I’ve enjoyed in years. Now it comes time to think about what to do with the Help Stamp Out CVS In Your Lifetime fund, which started… Continue reading Spending the “Help Stamp Out CVS In Your Lifetime” fund
A low-performance mystery: Sometimes you gotta simplify
This series of posts is increasingly misnamed, as there is not much mystery left about cvs-fast-export’s performance issues and it is now blazingly, screamingly, bat-out-of-hell fast. As in both threaded and unthreaded version convert the entire history of groff (15593 CVS deltas in 1549 files in 13 seconds flat. That would be about 10K CVS… Continue reading A low-performance mystery: Sometimes you gotta simplify
A low-performance mystery: the adventure continues
The mystery I described two posts back has actually been mostly solved (I think) but I’m having a great deal of fun trying to make cvs-fast-export run even faster, and my regulars are not only kibitzing with glee but have even thrown money at me so I can upgrade my PC and run tests on… Continue reading A low-performance mystery: the adventure continues
A low-performance mystery, part deux
Well, the good news is, I get to feel wizardly this morning. Following sensible advice from a couple of my regulars, I rebuilt my dispatcher to use threads allocated at start time and looping until the list of masters is exhausted. 78 LOC. Fewer mutexes. And it worked correctly first time I ran it. W00t… Continue reading A low-performance mystery, part deux
A low-performance mystery
OK, I’ll admit it. I’m stumped by a software-engineering problem. This is not a thing that happens often, but I’m in waters relatively unknown to me. I’ve been assiduously avoiding multi-threaded programming for a long time, because solving deadlock, starvation, and insidious data-corruption-by-concurrency problems isn’t really my idea of fun. Other than one minor brush… Continue reading A low-performance mystery
Apologies for premature epostulation
I made a finger error. Full version of A Low Performance Mystery to follow shortly.
Implementing re-entrant parsers in Bison and Flex
In days of yore, Yacc and Lex were two of the most useful tools in a Unix hacker’s kit. The way they interfaced to client code was, however, pretty ugly – global variables and magic macros hanging out all over the place. Their modern descendants, Bison and Flex, have preserved that ugliness in order to… Continue reading Implementing re-entrant parsers in Bison and Flex
Time, Clock and Calendar Programming 1.0
A bit late, because I’ve been hammering on some code the last several days. But here it is: Time, Clock, and Calendar Programming In C. Suggestions for 1.1 revisions and improvements will of course be cheerfully accepted. Comments here or email will be fine.
In which I have reason to sound like Master Po
This landed in my mailbox yesterday. I reproduce it verbatim except for the sender’s name. > Dear authors of the RFC 3092, > > I am writing this email on behalf of your Request For Comment “Etymology of > ‘Foo’.” We are currently learning about the internet organizations that set > the standards of the… Continue reading In which I have reason to sound like Master Po
RFC for a better C calendaring library
In the process of working on my Time, Clock, and Calendar Programming In C document, I have learned something sad but important: the standard Unix calendar API is irremediably broken. The document list a lot of consequences of the breakage, but here I want to zero in on what I think is the primary causes.… Continue reading RFC for a better C calendaring library
48-hour release heads-up for Time-Clock-Calendar HOWTO
I’ve been gifted with a lot of help on my draft of Time, Clock, and Calendar Programming In C. I think it’s almost time to ship 1.0, and plan to do so this weekend. Get your last-minute fixes in now! I will of course continue to accept corrections and additions after 1.0. Thanks to everyone… Continue reading 48-hour release heads-up for Time-Clock-Calendar HOWTO
Press silence, black privilege, and unintended consequences
A provocative article at the conservative blog Hot Air comments on a pattern in American coverage of violent interracial crimes. When the perps are white and the victims are black, we can expect the press coverage to be explicit about it, with predictable assumption of racist motivations. On the other hand, when the perps are… Continue reading Press silence, black privilege, and unintended consequences
Underestimate Terry Pratchett? I never have.
Neil Gaiman writes On Terry Pratchett, he is not a jolly old elf at all.. It’s worth reading. I know that what Neil Gaiman says here is true, because I’ve known Terry, a little. Not as well as Neil does; we’re not that close, though he has been known to answer my email. But I… Continue reading Underestimate Terry Pratchett? I never have.
Announcing: Time, Clock, and Calendar Programming In C
The C/UNIX library support for time and calendar programming is a nasty mess of historical contingency. I have grown tired of having to re-learn its quirks every time I’ve had to deal with it, so I’m doing something about that. Announcing Time, Clock, and Calendar Programming In C, a document which attempts to chart the… Continue reading Announcing: Time, Clock, and Calendar Programming In C
Shellshock, Heartbleed, and the Fallacy of False Prominence
In the wake of the Shellshock bug, I guess I need to repeat in public some things I said at the time of the Heartbleed bug. The first thing to notice here is that these bugs were found – and were findable – because of open-source scrutiny. There’s a “things seen versus things unseen” fallacy… Continue reading Shellshock, Heartbleed, and the Fallacy of False Prominence
Commoditization, not open source, killed Sun Microsystems
The patent-troll industry is in full panic over the consequences of the Alice vs. CLS Bank decision. While reading up on the matter, I ran across the following claim by a software patent attorney: “As Sun Microsystems proved, the quickest way to turn a $5 billion company into a $600 million company is to go… Continue reading Commoditization, not open source, killed Sun Microsystems
Program Provability and the Rule of Technical Greed
In a recent discussion on G+, a friend of mine made a conservative argument for textual over binary interchange protocols on the grounds that programs always need to be debugged, and thus readability of the protocol streams by humans trumps the minor efficiency gains from binary packing. I agree with this argument; I’ve made it… Continue reading Program Provability and the Rule of Technical Greed