Ugh, it’s been a long and unpleasant day! Never the less, I’ve almost got the MSVC builds sorted to where I want them. Basically why unix builds are shared libraries and windows builds are static libraries, has to do with the respective linkers.

At least on FreeBSD i386, the (GNU) linker doesn’t complain about the common and sys modules referencing one another, you could say it has more of a view that the shared lib is a chunk of code and all is fine as long as it all resolves enough in the end. I generally prefer dynamic linking over static, although I have nothing against static libraries internal to a project; when it comes to Windows  however, I’m particularly found of Microsoft’s SxS technology.

While the GNU stuff on my laptop is hapy enough to obey, the link tool provided by MSVC however, won’t cooperate with that model of behaviour for shared libs (DLLs), only static libraries. Other then the increasingly becoming stuff that belongs together, the common and sys modules were merged into a single ‘core’ module, and tonight, prepped to better handle compiler specifics as well. Secondary is that, simply put link makes shared libraries a bit more typing then need be. Every other sane OS/Compiler pair I’ve encountered, has the lovely habit of assuming that you wrote a function in a library, and might want to share it with other programs. Visual C++ on the other hand,  presents several ways of doing it: that all basically amount to telling the linker which things an application may slurp up from it. Basically resorting to writing a “.def” file, or in wrapping up function definitions with a __declspec(export) attributes, and the correct __declspec(export) or __declspec(import) attributes at their declarations.

Microsoft’s way of doing things is more flexible, but one might fairly argue that the inverse behavour (e.g. export anything not specially marked) would have been better.

Generally I like MSVC, I think it’s better then GCC, if you are willing to put up with the major lack of C99 compliance and lack of stdint.h (I use one written by Paul Hsieh). The main downside is the tools tend to be a bit, eh, stupider then GNU brew, and the best parts of the system are like wise fairly specific to both MSVC and Windows NT. Personally I would enjoy a professional edition of the MS’s offerings, because it would net access to their 64-bit C/C++ compiler and much stronger profiling tools, that are simply missing from the express editions.

The sad part, is that Visual Studio is the only software package I have seen Microsoft release in my entire life that, that’s worth buying…. lol. Not even their operating systems can say that much, from where I sit.

My thoughts on “Debugger Tips: 8 ways breakpoints can save your next software project”

Debugger Tips: 8 ways breakpoints can save your next software project: “Here are eight fairly simple techniques for using breakpoints and other features of your C/C++ debugger that can give you enormous power and visibility into your program.

Email this Article
Add to digg
Add to del.icio.us

An interesting article that’s worth the reading, for anyone who is ever going to get stuck running a debugger. Personally, I prefer log files and analyzing the code in my brain, but when it’s a task you can’t cram up there in grey matter, or you need to cuddle up to the run time—a good debugger is your best friend.

I’ve learned two things tonight

  • Windows Services are really easy to work with.
  • If you use a big enough shoe horn, you can fill in the missing parts built into most unixes.
  • There has yet to be any Unreal Engine based game made, that doesn’t suck. At least, that wasn’t developed by Epic.
I say learned two things, because I already knew the third :-P.
Those who don’t understand the third point, are likely admitting their incompetence.

Overloaded and still bit shifting

Ugh, I’m freaking tired. Started the day off computing what changes would be needed for setting up nmake based builds of Stargella, and everything has been on a snow ball since then.

I spent a considerable amount of time cursing at the MSDN Library over some very shotty docs, and realising that despite the overall quality of MSVC, the actual build tools behind it, has to amount to the stupidest ones I’ve ever seen. Although to be fair, the very first C compiler probably was worse, but this isn’t the ’70s :-P.

The depreciation of Code::Blocks for building things, and switching to appropriate make systems should mate more smoothly to my work flow. It also pisses me off that after all these years, the best tools for the job haven’t improved much. Unlike the typical morons^H^H^H^H^H^Hprogrammers I’ve had to suffer, I also know how to cook up a build set that shouldn’t be an almighty pain in the neck, just to use on another computer then my own work station. Applying basics of computer science to software construction, many hours; having to use tools that quadruple your work load, priceless!

As soon as I battle test one last makefile for MS’s nmake, all should be ready for committing to the repo. Then I can worry about the next goal, a proper merge of the common and system modules into a central core, shuffling the Windows builds to using DLLs (to match the unix builds), and integrate PCC into the unix build stack. (For ease of compiling dependencies, only MSVC is supported on Windows: MinGW users are on their own).

During the course of the day, I’ve also done plenty of the server admin loop, and have serviced more interupts today, then my processor sees in a week of abuse.

and all while carrying on several conversations, hahaa!

Got to enjoy one of my favourite films, Planes, Trains, & Automobiles.  In it’s own way, it’s an extremely well done film. Critically, what can anyone say, but it’s an awfully small world with a lot of ground to cross. Sense of humour required :-P.

Combine the tightest prick this side of Chicago with the worlds most annoying shower curtain salesman, and the inevitable twists of fate, and you’ve got the holiday trip home from hell. Much of the things that go wrong for Neal Page and Del Griffith, you could only choose to laugh at or cry about, if they ever happened to you, which they finally break down laughing on the “Highway”, once things finally go up in flames. It’s just something you’ve gotta sit through and watch to enjoy, while being thankful you’re not these two poor schleppen.

For how little it’s been on air over the past decade, I’ve been very happy to see it on often this past year. The movie also illustrate one of the few things, I actually like about English:

Car Rental Agent: [cheerfully] Welcome to Marathon, may I help you?

Neal: Yes. 

Car Rental Agent: How may I help you? 

Neal: You can start by wiping that fucking dumb-ass smile off your rosey, fucking, cheeks! Then you can give me a fucking automobile: a fucking Datsun, a fucking Toyota, a fucking Mustang, a fucking Buick! Four fucking wheels and a seat! 

Car Rental Agent: I really don’t care for the way you’re speaking to me. 

Neal: And I really don’t care for the way your company left me in the middle of fucking nowhere with fucking keys to a fucking car that isn’t fucking there. And I really didn’t care to fucking walk down a fucking highway and across a fucking runway to get back here to have you smile in my fucking face. I want a fucking car RIGHT FUCKING NOW!

Car Rental Agent: May I see your rental agreement? 

Neal: I threw it away. 

Car Rental Agent: Oh boy. 

Neal: Oh boy, what? 

Car Rental Agent: You’re fucked!

You can stream together arbitrary amounts of profanity, until you finally calm down lol.

Gimped from the start, but still an [SAS] man

From Game Scores Volume I

Annoyingly gimped in the first 15 seconds of the game, yet somehow managing to limp through one of the largest RvS missions, and doing it faster then I’ve seen some 4 man elements do it too, lol. Over the years, I’ve actually seen people take over 20 minutes to do that map, even when in a ‘hustle’.
I was supposed to be training Bajorq a bit on RvS, but ubi interfered, so I guess I got all the practice time :-S.

Well here I sit, working out my plans for the weekend. After sorting a few things on the spot, and spending some time on what I’ll just call a spurt of stuff to hammer out, so I doubt tonight will be highly productive. It’s the little bit of rest I get before I have to get cracking away on stuff in the morning.

Besides digging into a few thousand pages worth of book, in the chopping block includes:

  • Compile and test X.Org 7.5 on Dixie.
  • Finish my review of PC-BSD 8.
  • Complete the new auxiliary “Snipers” path on my Private Airport (kai) map.
  • A few SAS related details I won’t mention here
  • Get the plots sorted for the next 3 live ops (;)

Also, there’s something I have been meaning to do for awhile, refactoring the common and system modules of Stargella. The idea I’m thinking of, is merging them into a singluar “core”,  and numerous other related changes. Mostly in relation to compiler support and hooking in the render module. Two points of research, being to depreciate the FreeBSD/GCC builds with Code::Blocks in favour of a recursive GNU Make, and perhaps also NMake for Microsoft’s compiler. I would also like to experiment with supporting the Portable C Compiler (pcc), which entails either system modifications to FreeBSDs header files, or some redesign work on the games code.

I have multiple compilers available to me, several versions of GNU, the legendary PCC and Watcom compilers, and the express edition of MS Visual C++ 9.0. The only supported compilers for my project, are GCC and MSVC, under unix and windows based systems respectively. When ever possible things should be usable with most (reasonably) standards compliant C compilers. Not that Microsoft’s compiler is one. The main reason I don’t do mingw or watcom builds under Windows, is it’s just easier to go a strict MSVC route, when it comes to handling the dependencies. If it wasn’t for that, I would actually go as far as supporting as many compilers as possible.

One thing that really pisses me off, is even after 40 years or so, stitching together makefiles by hand is still one of the best ways to build stuff o/

Thoughts of ‘home’

Now this old article from Joel Spolsky makes me think of what it’s like to be here, *and* trying to get work done. Managing computer work flow is simple, at best, just tell everyone to go to hell or sign off the IM. After so many years of being on the Internet, I can usually juggle multiple tabs without any real loss to getting stuff done. Having to get up and respond to an interrupt, and usually being interrupted twice more on the way back to my console on the other hand, is something that occurs so frequently I’ve almost a spider sense about it…

If I had a penny for every time I’ve been shafted that way, for lack of being able to escape to a private bunker, I would have enough cash to pay off the national debt!

Experience shows me one fact: I am most productive when I’m camped in front of a laptop, all is quiet in the world, NO interrupts, no morons to wait on hand and foot, nada, not even a music stream. Oh, that and realising the clocks changed from PM to AM, and I’m still coding smoothly xD.

I’ve nether yet fallen off the earth, or finally laid down and died; I’ve just been busier then a Japanese beaver doing over time.

After catching the opening segment three or four times, I’ve finally gotten to watch a classic western. It has about as much to do with historical fact, as my big toe has with rocket propulsion, but never the less it’s a good portrayal.

In a cavern, in a canyon,
Excavating for a mine
Dwelt a miner forty niner,
And his daughter Clementine.

Oh my darling, Oh my darling,
Oh my darling, Clementine,
You are lost and gone forever,
Dreadful sorry, Clementine.

Light she was and like a fairy,
And her shoes were number nine,
Herring boxes, without topses,
Sandals were for Clementine.

Drove she ducklings to the water
Ev’ry morning just at nine,
Stubbed her toe against a splinter,
Fell into the foaming brine.

Ruby lips above the water,
Blowing bubbles, soft and fine,
But, alas, I was no swimmer,
So I lost my Clementine.

In a corner of the churchyard,
Where the myrtle boughs entwine,
Grow the roses and the posies,
Fertilized by Clementine.

Then the miner, forty-niner,
Soon began to peak and pine,
Thought he oughter join his daughter,
Now he’s with his Clementine.

In my dreams she still doth haunt me,
Robed in garments soaked in brine;
How in life I used to hug her,
Now she’s dead, and I draw the line.

Like wise followed up with Gunfight at the O.K. Corral and Crimson Tide.