[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Re: sqlite3 issues
From: |
elf |
Subject: |
Re: [Chicken-users] Re: sqlite3 issues |
Date: |
Thu, 9 Nov 2006 19:41:27 -0500 (EST) |
erm... the require-extension area is commented out, iirc.
and its oke to have (use blah) outside of a declare along with a (uses)
inside....
i just ran the compile again on my box, and it worked fine... this is
indeed odd. what versions of glibc, gcc, chicken, and sqlite3 are you
testing against?
-elf
On Thu, 9 Nov 2006, Thomas Christian Chust wrote:
> elf wrote:
>
> > the thing that got it to work (the others are mostly incidental except for
> > initialize) was changing the require-extension format used in the file.
> >
> > basically, i was shotgunning it, because it would kill the interpreter
> > immediately upon trying to load it, [...]
>
> Hello,
>
> the problem I have understanding your problem is, that the code you sent
> me is actually invalid, because it uses both ({require-extension | use}
> ...) and (declare (uses ...)) on the same extension names and it removes
> the initialize method -- with those changes it should most certainly
> *not* be working any longer.
>
> In fact it doesn't even link correctly in any of my test environments,
> which is no wonder as require-extension or the equivalent use are
> intended for dynamic linkage at runtime while the uses declaration is
> intended for static linkage...
>
> > [...] it turned out to be from what
> > i consider a problem with the compiler, namely that
> > require-extensions/use/uses arent verified at compile time, and if the
> > extensions do not in fact exist (or cant be loaded, or whatnot), then it
> > crashes the interpreter.
>
> Well, require-extension or its synonym use don't need any compile time
> checking, but throw an exception when the extension can't be loaded at
> runtime. The uses declaration doesn't need any special checks from the
> CHICKEN compiler, as the system linker will complain if you don't give
> it the static extension library to link.
>
> Under no normal circumstances dynamically loading or statically linking
> an extension will ever cause a crash of the CHICKEN runtime system!
>
> If such a crash occurs, this is very likely *not* due to a mistake in my
> code but rather due to lower level problems like mismatched dynamic
> object versions -- that's why I recommended a full reinstall of all eggs
> in proper sequence of dependencies.
>
> But as you said, that you did recompile and reinstall all eggs in proper
> sequence, I have really no clue what's wrong with your system :-(
>
> > [...] there also seems to be some degree of confusion involving the (unit)
> > declaration, the register-feature! functions, and the supported types
> > for use vs uses vs require-extension, which dont all match up, for some
> > reason. [...]
>
> In my opinion the descriptions of those constructs in the CHICKEN
> documentation are very clarifying. But there have also been several
> discussions about topics of statically and dynamically linked extensions
> on this mailing list -- just check the archives.
>
> cu,
> Thomas
>
>
-----
Humans always do the most intelligent thing after every stupid alternative
has failed. -- R. Buckminster Fuller
A year spent in artificial intelligence is enough to make one believe in G-d.
-- Alan Perlis