Update the SQLite package in Tcl

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Update the SQLite package in Tcl

Balaji Ramanathan
Hi,

    I have installed Tcl/Tk from a couple of places on the web (activetcl
and magicsplat), and I find that neither of them has the latest version of
sqlite3 as the standard sqlite3 package.  ActiveTcl seems to be linked to
sqlite 3.13 while magicsplat's version comes with sqlite 3.20.

    What do I need to do to get them both up to sqlite 3.21?  I see that
their installations include a lib folder with a sqlite dll in it.  Is it
sufficient simply to replace that dll with the sqlite 3.21 dll?  I tried
that but it gave me error messages ("invalid argument, couldn't load dll",
etc.), so I am guessing there is more to it than that.

    Better yet, is there a version of tcl/tk that is considered "official"
that is kept updated with the latest versions of all these packages so that
I don't have to wonder what comes packaged with which version of tcl I
download from where?

    Thank you.

Balaji Ramanathan
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Update the SQLite package in Tcl

Richard Hipp-3
On 11/18/17, Balaji Ramanathan <[hidden email]> wrote:
> Hi,
>
>     I have installed Tcl/Tk from a couple of places on the web (activetcl
> and magicsplat), and I find that neither of them has the latest version of
> sqlite3 as the standard sqlite3 package.  ActiveTcl seems to be linked to
> sqlite 3.13 while magicsplat's version comes with sqlite 3.20.
>
>     What do I need to do to get them both up to sqlite 3.21?

On the SQLite download page, you will find both a Pre-release Snapshot
and a "sqlite-autoconf" tarball.  Download either of these.  (I
suggest the Pre-release Snapshot so that you can help us beta test!)

Untar, and cd into the "tea" subdirectory.  Then type:  "./configure;
make install".  That is suppose to install the latest SQLite for TCL.
"TEA" is the "Tcl Extension Architecture".


--
D. Richard Hipp
[hidden email]
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Update the SQLite package in Tcl

Balaji Ramanathan
In reply to this post by Balaji Ramanathan
Are there equivalent instructions for Windows?  Thank you.

Balaji Ramanathan

---------- Forwarded message ----------
From: Richard Hipp <[hidden email]>
To: SQLite mailing list <[hidden email]>
Cc:
Bcc:
Date: Sat, 18 Nov 2017 13:22:45 -0500
Subject: Re: [sqlite] Update the SQLite package in Tcl
On 11/18/17, Balaji Ramanathan <[hidden email]> wrote:
> Hi,
>
>     I have installed Tcl/Tk from a couple of places on the web (activetcl
> and magicsplat), and I find that neither of them has the latest version of
> sqlite3 as the standard sqlite3 package.  ActiveTcl seems to be linked to
> sqlite 3.13 while magicsplat's version comes with sqlite 3.20.
>
>     What do I need to do to get them both up to sqlite 3.21?

On the SQLite download page, you will find both a Pre-release Snapshot
and a "sqlite-autoconf" tarball.  Download either of these.  (I
suggest the Pre-release Snapshot so that you can help us beta test!)

Untar, and cd into the "tea" subdirectory.  Then type:  "./configure;
make install".  That is suppose to install the latest SQLite for TCL.
"TEA" is the "Tcl Extension Architecture".


--
D. Richard Hipp
[hidden email]
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Update the SQLite package in Tcl

Joseph R. Justice
In reply to this post by Richard Hipp-3
On Nov 18, 2017 1:22 PM, "Richard Hipp" <[hidden email]> wrote:

On 11/18/17, Balaji Ramanathan <[hidden email]> wrote:


> Hi,
>
>     I have installed Tcl/Tk from a couple of places on the web (activetcl
> and magicsplat), and I find that neither of them has the latest version of
> sqlite3 as the standard sqlite3 package.  ActiveTcl seems to be linked to
> sqlite 3.13 while magicsplat's version comes with sqlite 3.20.
>
>     What do I need to do to get them both up to sqlite 3.21?

On the SQLite download page, you will find both a Pre-release Snapshot
and a "sqlite-autoconf" tarball.  Download either of these.  (I
suggest the Pre-release Snapshot so that you can help us beta test!)

Untar, and cd into the "tea" subdirectory.  Then type:  "./configure;
make install".  That is suppose to install the latest SQLite for TCL.
"TEA" is the "Tcl Extension Architecture".


Reading the original post, plus his response to your first answer, it
appears to me that he actually wants to update a binary package version of
TCL/TK, compiled for the Windows platform, to a newer version of SQLite
without (ideally) recompiling anything, or at least without recompiling the
binary TCL/TK package.

Your instructions are for recompiling TCL/TK with the newer version of
SQLite on a Unix/Linux type platform, AFAICT.

I'd think that dropping a newer version of SQLite, compiled as a run-time
linkable library, into a pre-existing binary compiled to use a previous
version of SQLite would require the ABI for SQLite (compiled for use as a
linkable library) to be identical between versions, or at least backwards
compatible (such that a newer version of the library can be used with an
application compiled for a previous version of the library to provide the
same functionality as the previous version, tho not newer functionality
first provided by the newer version of the library).

But is this a reasonable thing to expect on any platform, and specifically
on the Windows platform?  I don't know that it is, at least in this case.



Joseph
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Update the SQLite package in Tcl

Keith Medcalf

On 19 November, 2017 10:50, Joseph R. Justice <[hidden email]> asked:

>I'd think that dropping a newer version of SQLite, compiled as a run-
>time linkable library, into a pre-existing binary compiled to use a
>previous version of SQLite would require the ABI for SQLite (compiled
>for use >as a linkable library) to be identical between versions, or
>at least backwards compatible (such that a newer version of the
>library can be used with an application compiled for a previous
>version of the library to provide the same functionality as the
>previous version, tho not newer functionality first provided by
>the newer version of the library).

>But is this a reasonable thing to expect on any platform, and
>specifically on the Windows platform?  

>I don't know that it is, at least in this case.

On Windows at least, unless deliberate action has been taken to ensure incompatibility (such as changing the definition of an exported function) or using "ordinal" rather than "name" exports, then the answer is yes.  You can simply "replace" the DLL with a newer version.  This is why programs that were written for windows in the mid-90's still continue to work to this day.  The Win32 API has not changed since it was introduced many many many many many years ago, and there is no such thing as "Windows Version Obsolescence" except where it has been done deliberately and with pre-knowledge and malicious intent by the software author.

The same applies for SQLite and anything else that has a stable interface.

---
The fact that there's a Highway to Hell but only a Stairway to Heaven says a lot about anticipated traffic volume.




_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Update the SQLite package in Tcl

Joseph R. Justice
On Sun, Nov 19, 2017 at 4:49 PM, Keith Medcalf <[hidden email]> wrote:

> On 19 November, 2017 10:50, Joseph R. Justice <[hidden email]> asked:
>


> >I'd think that dropping a newer version of SQLite, compiled as a run-
> >time linkable library, into a pre-existing binary compiled to use a
> >previous version of SQLite would require the ABI for SQLite (compiled
> >for use >as a linkable library) to be identical between versions, or
> >at least backwards compatible (such that a newer version of the
> >library can be used with an application compiled for a previous
> >version of the library to provide the same functionality as the
> >previous version, tho not newer functionality first provided by
> >the newer version of the library).
>
> >But is this a reasonable thing to expect on any platform, and
> >specifically on the Windows platform?
>
> >I don't know that it is, at least in this case.
>
> On Windows at least, unless deliberate action has been taken to ensure
> incompatibility (such as changing the definition of an exported function)
> or using "ordinal" rather than "name" exports, then the answer is yes.  You
> can simply "replace" the DLL with a newer version.  This is why programs
> that were written for windows in the mid-90's still continue to work to
> this day.  The Win32 API has not changed since it was introduced many many
> many many many years ago, and there is no such thing as "Windows Version
> Obsolescence" except where it has been done deliberately and with
> pre-knowledge and malicious intent by the software author.
>
> The same applies for SQLite and anything else that has a stable interface.
>

Fair enough, but then we're back to the problem the original poster raised,
since that's what they're claiming to be doing, if I understand what they
wrote correctly.  And, just dropping in a newer DLL with the same name
doesn't seem to be working for them.



Joseph
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Update the SQLite package in Tcl

Joseph R. Justice
In reply to this post by Balaji Ramanathan
On Sat, Nov 18, 2017 at 1:06 PM, Balaji Ramanathan <
[hidden email]> wrote:

    I have installed Tcl/Tk from a couple of places on the web (activetcl

> and magicsplat), and I find that neither of them has the latest version of
> sqlite3 as the standard sqlite3 package.  ActiveTcl seems to be linked to
> sqlite 3.13 while magicsplat's version comes with sqlite 3.20.
>
>     What do I need to do to get them both up to sqlite 3.21?  I see that
> their installations include a lib folder with a sqlite dll in it.  Is it
> sufficient simply to replace that dll with the sqlite 3.21 dll?  I tried
> that but it gave me error messages ("invalid argument, couldn't load dll",
> etc.), so I am guessing there is more to it than that.
>
>     Better yet, is there a version of tcl/tk that is considered "official"
> that is kept updated with the latest versions of all these packages so that
> I don't have to wonder what comes packaged with which version of tcl I
> download from where?
>

Have you considered asking the support communities for the ActiveTcl and
MagicSplat binary distributions of Tcl how to update the version of SQLite
each binary distribution uses?  It seems to me this would be a question
right up their alley.

I wish you well with this task.



Joseph
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Update the SQLite package in Tcl

Keith Medcalf
In reply to this post by Joseph R. Justice

On Sunday, 19 November, 2017 20:46, Joseph R. Justice <[hidden email]> wrote:

>On Sun, Nov 19, 2017 at 4:49 PM, Keith Medcalf <[hidden email]>
>wrote:

>> On 19 November, 2017 10:50, Joseph R. Justice <[hidden email]>
>asked:


>> The same applies for SQLite and anything else that has a stable
>> interface.

>Fair enough, but then we're back to the problem the original poster
>raised, since that's what they're claiming to be doing, if I
>understand what they wrote correctly.  And, just dropping in a newer
>DLL with the same name doesn't seem to be working for them.

Just because the name of a file is the same does not mean that the *contents* of the file are the same.  For example, you can rename "notepad.exe" to "winword.exe".  Copying your renamed "notepad.exe" (which is now called "winword.exe") over top of the distribution version of winword.exe in the office directory does not magically turn "notepad" into "word".  It just means that now when you try and run "Word" that "notepad" runs instead.

Similarly, copying a DLL containing the "standard" sqlite3.dll code over top of the dll containing the extension for TCL does not magically convert the "standard" sqlite3.dll into a dll containing the Tcl extension.

Have you looked in the teapot to see if there is a teabag containing a later version of the TEA extension (the default is only a few versions behind)?

---
The fact that there's a Highway to Hell but only a Stairway to Heaven says a lot about anticipated traffic volume.




_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users