Tuesday, September 24, 2013

Coming Soon...

The next release of SQL Relay is just about wrapped up.  There is testing and documentation left to do but not much of either really.

So what's going to be in this release?

No major visible changes but quite a few under the hood.  The Rudiments library upon which SQL Relay is based has had a major overhaul and SQL Relay has benefited somewhat from this in the platform compatibility department.  I've long had a goal of not having to include any native header files or call any native functions.  Everything should be wrapped and platform compatibility should be purely a function of porting Rudiments.  I'm really close to that now.  I think SQL Relay calls ceil() and popen() and one or two other native functions but that's about it.  Probably one or two more releases and they'll be out of there too.

Speaking of platform compatibility, the next release will support a 64-bit build on Windows.  It will also run on a long list of non-x86 NetBSD, OpenBSD and Debian GNU/Linux platforms, a couple of old Redhat platforms and SCO OpenServer 6.0.

Why?

I'm a bit of a retrocomputing nerd.  It's fun to run new systems on old (emulated) hardware and old systems on modern (emulated) hardware.  It's also fun to try to get my software running on those platforms.

There are a few legitimate benefits.  The first is exposure to lots of odd compilers.  I recently found all kinds of cases where I was deleting consts and returning values from functions that were supposed to return void just because an older compiler complained about those things.  There were a few cases where a comparison was always true because the variable on the left side was unsigned.  The cleaner the code is, the more likely the code is to compile on a platform that I don't have access to.

There are also platforms that are gaining popularity and it's good to support a version of them.  ARM chips are all over the place these days.  I don't have a Raspberry PI but I can run Debian-armhf in qemu.

I'm going to start chronicling  my adventures in emulation.  Someone might find them useful.

There are a few practical changes in this upcoming release.  sqlr-export will support CSV output, in case you need that.  I did.  sqlrsh's -command option will support running multiple queries.  It should have in the past, but apparently it didn't.  It will now.  A lot of the docs have been updated with little pictures and better examples.  Some of that should already be on the web actually.

Coming soon!