From: William H. N. <wil...@ai...> - 2001-11-18 03:58:32
|
On Sat, Nov 17, 2001 at 07:55:21PM +1100, Brian Spilsbury wrote: > If Lovecraft had known cmucl, he would have never bothered with Cthulhu. Hmm. That's a connection I'd never made before. I've always liked the EncyCMUCLopedia-or-whatever-it-is-exactly pun, but I never went hunting for others. I really, really dislike the "build the system by incrementally mutating an old version" thing that CMU CL does. When I discovered that junk can remain in the binaries from things which haven't been in the source code for ages, it blew my mind. Hence, in part, the quote from Queinnec in make.sh.:-| As ESR famously says, Lisp "is worth learning for the profound enlightenment experience you have when you finally get it" but there are some profound revelations -- endarkenments? -- which I'd just as soon avoid, since they cost too much sanity, not necessarily at revelation time but definitely at maintenance time, to be worth it.:-( So if I'd thought of it, I could have mined Lovecraft for quotes about rebuilding software systems. There might be something about loathesome rituals which fits...:-) -- On a tangentially related (through "the universe is deeply broken sometimes") theme, right now I'm pretty thoroughly burned out on system programming in general, and in particular on debugging SBCL stuff that's messed up by my carelessness, by my confusion, or by my pushing fragile CMU CL code into regimes where it -- especially in debugging retrospect :-| -- was clearly never intended to go. Grump grump grump. My mood was not helped any by discovering a while ago that what I believed about structure accessors, closures, and static linking seems no longer to be true in current SBCL. In the original bootstrapping conversion of CMU CL I tried to avoid static linking of structure accessors (by making sure that all structures used in cold init were defined before they were used, so that all slot accesses could be inlined, so that out-of-line accessors weren't needed at cold init) but I failed messily, concluding that it was intractable. Remembering that, I figured that static-ish early linkage of the out-of-line slot accessors was (still, today) a near-absolute requirement, and that set me off on my ill-starred quest to make the compiler emit functions directly without FUNCTIONAL-KIND=:TOPLEVEL cruft. (The motivation was that that was functionality that I wanted to use to set up DEFSTRUCT-related closures at cold init.) So eventually I made it basically work, but it has ended up being a huge chore already, and it still needs cleaning up in order to make 0.7.0 roughly as usable as 0.6.13. (And of course the current flaky branch needs at least one more bug fix in order to work at all...) And then I discovered accidentally that in current SBCL it's dead easy to make all needed-at-cold-init structure slot accesses compile inline. Argh. It might be good in the long term, since I've made the compiler cleaner in some ways, but since it also caused lots of the aforementioned coding mistakes and pushing-too-far problems, it's not really a winner in the short run. And it's many, many hours of work that I'd much rather have spent on other things, including any of several outstanding issues in SBCL which would probably have had much lower cost-to-benefit ratios. Whine whine whine... I should still get 0.7.0 ready at some point. My apologies to the people who have things pending "until after 0.7.0" which wasn't supposed to mean "December I think" but now seems to. -- William Harold Newman <wil...@ai...> "I must not have fun. Fun is the time-killer. Fun is for children, customers, and the help. I will forget fun. I will take a pass on it. And while it is going, I will turn a blind eye toward it. When fun is gone there will be nothing. Only I will remain--I, and my will to win. Damn, I'm good." -- _National Lampoon's Doon_ PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C |