Re: sqlite users?
- Posted by Matt Lewis <matthewwalkerlewis at gma?l.com> Aug 29, 2007
- 534 views
ChrisBurch3 wrote: > > Hi > > Is any body out there using sqlite3? > > If so, have you tried downloading the latest library (3.4.2). I believe it may > be broken when being used with euphoria on Linux. <snip> > However, I believe this brings up an important point. This is one of euphorias > greatest stumbling points - its inability to interface with certain external > libraries. > > Why do I have to jump through hoops to try to get a fairly simple lib like > sqlite working? Sometimes it seems like pot luck trying to get a library > working, that clearly works with compiled c programs. It depends on what was changed. It's not clear to me exactly what you tried. Did you try building (or downloaded?) something that used v3.4.2? There could be some changes to the underlying libraries, some of which could be incompatible with what Euphoria uses (i.e., libc). > Why is there so little feedback from the routines that call external > libraries? > > Why is it so complex to interface with C++ dlls? C++ is difficult, unless you're writing C++ and using the same compiler. And compiler version is important, because the ABI often changes. There are also issues about which allocator is used to construct and destroy objects. In short, if you're dealing with C++, my advice would be to write your own thin wrapper around the C++ and expose a C interface that accepts euphorian data types. This is what I've done with wxEuphoria, and I can't tell you how many headaches it has prevented. It's also really sped up development. > Why does eu differentiate between calling conventions (the '+'), and rely > on the user to define them - could eu not detect, and modify internally its > calling conventions. On Linux, it's automatically cdecl. There's no way to automatically detect the calling convention on windows. > Why can't eu itemise the symbol table in .dlls / .so s, so that they would > become > > immediately useable? > > I realise these are highly simplistic, and possible some unrealistic musings > but I firmly believe that this is where language development should be > concentrated. Perhaps creating structure types is a first step on easier > library accessibility. I think that if we had real OOP structures (as I've semi-proposed here lately) it would be fairly straightforward to write code to automate structures and other memory structures. > I'm quite frustrated by this. As far as sqlite goes, if they have changed some > compilation method, then in order to allow eusqlite3.ew to run with future > versions, it may either need a rewrite, or stagnate at 3.3.6. And that rewrite > only becomes possible if a NULL isn't returned trying to open the library. Have you tried building it (SQLLite) yourself? Again, since you're on a 64 bit native system, this may complicate things, as you may need to force 32-bit to work with eu. Matt