* Konstantin Knizhnik <[EMAIL PROTECTED]> [031217 07:26]: > > > Rebol has awful implementation of hash tables. > First of all, it is very inconvenient that there are normal set/get > operations. You have to use something like this: > > h: find/tail hash key > either h [change h key value] [append append hash key value] > > instead of > > hash[key] = value Grrr! I *hate* doing that, and in python I have to do it a lot! In rebol, I just do
hash/que 'val key much nicer, it took me half a day to implement my own object, but it was well worth it. > in most other high-level languages. > > And as far as Rebol hash is also series, appending element to it cause Hmm! Are you not using to-hash ? > a lot of reallocations, so complexity of insert operation seems to be > linear (instead of constant). And if we use "insert hash" instead of > "append hash" (not "insert tail hash"), then performance becomes > really awful - copying all series element increase complexity to > quadratic and insertion of 100000 integer elements in hash takes about > half an hour (less then second in all other languages). I haven't run tests like that, but see my comment above. > And as far as object cache is one of the main components of object > oriented database, such inefficient implementation of hash table leads > to poor performance of Rebol DyBASE API. All language have their strengths and weaknesses, *and* their "best fits". Mysql is a best fit for rebol IMHO, rebol mysql access on our large, multi-language projects beats perl and python hands down both in access speed and in impelementation/coding. One of Rebol's strengths is TCP/IP is native (compiled into the binray) and the mysql-protocol exploits that splendidly. On the other hand, perhaps the native 'hash' of rebol is not is advanced as the btree approach that python uses. I do believe that a true hash datatype is a linked list, though. still, it is nice to see these tests and the work that you've done. regards tim > > C> regards > C> Cyphre > > C> ----- Original Message ----- > C> From: "Konstantin Knizhnik" <[EMAIL PROTECTED]> > C> To: <[EMAIL PROTECTED]> > C> Sent: Wednesday, December 17, 2003 12:15 PM > C> Subject: [REBOL] Rebol API to DyBASE > > > >> > >> Hello all, > >> > >> First version of Rebol API to my object-oriented database DyBASE is > >> ready. It can be downloaded from my site: > >> http://www.garret.ru/~knizhnik/dybase.html > >> > >> DyBASE is embedded object oriented database for languages with dynamic > >> type checking. Rebol is fourth language for which DyBASE API is > >> provided. Data in database is stored in language independent format, > >> so (with some exceptions) data written by Python application can be > >> accessed by Rebol application (and visa versa). > >> > >> Please read Rebol section in DyBYSE manual to get more information of > >> about specific of Rebol interface to DyBASE. > >> > >> To use DyBASE at Windows in your Rebol application you need to include in > C> PATH > >> two libraries: DyBASE core dybasedll.dll (which is located in dybase\lib > >> directory) and Rebol wrapper - dybaseapi.dll (located in dybase\rebol > >> directory). At Unix you should first build these libraries. Use > >> makefile in dybase/src and dybase/rebol directories. > >> Then just load "dybase.r" module. > >> > >> Please look also at examples: > >> dybase/rebol/guess.r - game: "guess an animal" > >> dybase/rebol/testindex.r - test of indices > >> dybase/rebol/testlink.r - detail-order-supplier database > >> > >> All bug reports, change requests, suggestions are welcome. > >> > >> -- > >> Best regards, > >> Konstantin mailto:[EMAIL PROTECTED] > >> > >> -- > >> To unsubscribe from this list, just send an email to > >> [EMAIL PROTECTED] with unsubscribe as the subject. > >> > >> > >> > > > > > -- > Best regards, > Konstantin mailto:[EMAIL PROTECTED] > > -- > To unsubscribe from this list, just send an email to > [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson <[EMAIL PROTECTED]> http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.