Up to Speed

I’ve been getting back to work on Doomsday after my 1.5 month hiatus.

As I previously planned, I’ve been doing more development on Xcode 6. It took a brief adjustment period to get to know the intricacies of the IDE, but Xcode is starting to feel quite comfortable. My biggest gripe is that the Quick Open box is so slow; Doomsday is a relatively large code base, so there are a lot of files and symbols to find (Qt Creator manages this just fine, though). There are some nice touches like the Assistant editor showing callers/callees, source/header counterparts, and other helpful information, but code navigation on the whole just doesn’t feel right to me. However, Xcode is superb for debugging on the Mac. I’ve already managed to fix a number of bugs thanks to it.

I wrote a new script that runs qmake and puts together a single Xcode workspace with all the libraries, applications, and tools of the project. To use it, simply create a build directory first and then run the script:

mkdir build-xcode
cd build-xcode
$DENGROOT/doomsday/build/mac/xcode_workspace.py

While Qt Creator remains my favorite IDE for actually writing code — Qt code in particular — it just doesn’t work well (or sometimes, at all) for debugging. Perhaps the combination of Qt 5.3, LLDB, and Yosemite isn’t the greatest ever. I’m happy with using Qt Creator to write the code and Xcode to debug/profile it, though. Thankfully Qt 5.4 is coming out soonish, which hopefully helps out on this front as well. In Doomsday 1.15 we are quite likely sticking with 5.3, though.

Speaking of 1.15, it is clear that we’ve abandobed the rigid release schedule, at least for this cycle. It started with adding some scheduling flexibility in the fall, but has us now repeatedly pushing back the time tables. The conscientious engineer in me cringes at this, but in practice we shouldn’t be rushing releases since the team is small and development time is in short supply. Consequently, I’ve been continually postponing the 1.15 schedule in the Tracker. It’s good that we have a roadmap that we’re following for 1.15, so the delays aren’t just random feature creep but more due to plain old trying to get all the details right and done before finalizing the release.

My next steps are going to be related to UI improvements that have been waiting on the todo list for quite some time.