On Thu, Jan 24, 2013 at 2:01 PM, Jose F. Gimenez <[email protected]>wrote:

> Richard,
>
> thanks for replying.
>
>
>  We have no way of testing SQLite on Win9x and so we do not intend to
>> support Win9x moving forward.  Some older versions of SQLite are known to
>> work on Win9x.  If you are still supporting Win9x applications, I suggest
>> you use those older versions of SQLite.
>>
>
> Versions up to 3.7.11 are working fine on windows 98. Was version 3.7.12,
> where an optimization in read and write operations (overlapped mode) was
> introduced which broke compatibility with older windows versions.
>
> What I attached in my first post, was a minor change to avoid using that
> optimization for older windows, while keeping it for newer ones, so sqlite
> works fine in all windows versions. I've used isNT() function to check if
> that optimization is done or not. Please, review it; it doesn't break
> anything. I'm using it on Windows 98, XP, Vista and 7, and is working fine
> everywhere.
>

SQLite supports so many different platforms and so many different
compile-time options that it makes my head spin trying to test them all.
Each new platform or compile-time option is only a modest increase in
complexity itself.  And every time we start supporting a new platform or
option, it makes SQLite useful to a slightly larger audience.  But over
time, this support for a myriad of platforms and options adds up to some
serious complexity.  And complexity is the enemy of reliability.  And
complexity is the enemy of innovation, as all my time is eaten up
supporting obscure platforms and options such that I don't have time to
work on new features for a broad user base.

At some point you just have to draw and line and say "No!, We are not going
to support $obscure_platform_XYZ."  Windows 9x is across that line.

Yes, I could just blindly apply the supplied patch and be done with it.
But are you sure that won't break any legacy code?  You've done extensive
testing on WinXP, Vista, Win8, WinCE, and WinRT to make sure?  I'm guessing
you have not.  Which leaves it to me to do all that testing, and I don't
have the time right now.  Sorry.

Furthermore, those few extra lines of code added by this patch are lines of
code that we will need to support from now on.  Remember, initial code
development is only 10% of the effort - the other 90% is long term
support.  You can argue that a dozen extra lines out of 120,000 is not a
significant new support burden.  And you'd be right.  But a few dozen lines
here, and a few dozen lines there, and over the years this adds up.  Once
again, at some point you just have to draw and line and say "No!", the
requested feature is too obscure and has too small of a potential user base
to be worthwhile.

Note that the latest SQLite does still support win9x in this sense:  you
can plug in your own VFS module that supports win9x at runtime.  If you
want, you can copy the VFS code out of SQLite version 3.7.11 and add that
back into SQLite as a run-time VFS, if you like.  Your application can do
this.  So SQLite does still work on win9x - it is simply that the support
is no longer built-in.

The same thing happened for OS/2 a few releases back.  We removed the OS/2
VFS from the code so that OS/2 is no longer built in.  But any application
can still install their own OS/2 VFS at run-time, if they so desire.

So, to summarize, there will be no built-in win9x support added today.
Sorry to disappoint.

-- 
D. Richard Hipp
[email protected]
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to