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 _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users