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!