commit 754fc49700beb93ec03f2038fe01ebfbfc134cff Author: Alberto Bertogli Date: Sun Jun 24 05:25:52 2007 -0300 Remove debugging code from tcp.c. Signed-off-by: Alberto Bertogli commit 5572599ee94f8d621295b5f58fc1f4bbd4417007 Author: Alberto Bertogli Date: Sun Jun 24 05:23:40 2007 -0300 Change nmdb's options to make them easier to remember. Signed-off-by: Alberto Bertogli commit ac4c16aafb807a213b853d5d4e031b9c7a1609cb Author: Alberto Bertogli Date: Sun Jun 24 05:09:21 2007 -0300 Change the project description. Now that it's multiprotocol, it makes no sense to call it "TIPC-based" anymore. Change the description to "A multiprotocol network database manager". Signed-off-by: Alberto Bertogli commit b9cd7e2efd7eb30edf700cac24247d3d4f042d1b Author: Alberto Bertogli Date: Sun Jun 24 05:07:36 2007 -0300 Fix the library path in the top level LICENSE file. Signed-off-by: Alberto Bertogli commit 2f2cc133f1b25960ca81f2ff06a8e1b50460d18d Author: Alberto Bertogli Date: Sun Jun 24 05:07:16 2007 -0300 Remove the TODO file. It gets outdated soon and it's not very useful to have it here. Signed-off-by: Alberto Bertogli commit 18d42328ee0b3fd0afe1e572b0a8afd86d0a3f55 Author: Alberto Bertogli Date: Sun Jun 24 04:48:58 2007 -0300 Add a python-based test. This is not a time benchmark but a stress test, which populates the database with random data, then performs random operations on it, and finally removing everything. It checks consistency in each step of the way. Signed-off-by: Alberto Bertogli commit 66fbd8aee40e03ef914a6264f126fab4c1565ca1 Author: Alberto Bertogli Date: Sun Jun 24 04:46:09 2007 -0300 Remove the test_functions.sh script. It's an internal testing script, it only dirties the directory and it's not really useful to include it in the general repository. Signed-off-by: Alberto Bertogli commit 27fdbc307165bbc93834b3dbcedb2da57e79aaac Author: Alberto Bertogli Date: Sun Jun 24 04:44:56 2007 -0300 Make the Python binding cas operation return the same as the C one. Signed-off-by: Alberto Bertogli commit 77d14f5f748aaa7b9cfbc845e2e1ec9cf56c6e21 Author: Alberto Bertogli Date: Sun Jun 24 04:44:27 2007 -0300 Document the return value of nmdb_add_*_server(). Signed-off-by: Alberto Bertogli commit c729f8b48122383fc2a3f030b2acc002f25c3778 Author: Alberto Bertogli Date: Sun Jun 24 04:44:04 2007 -0300 Rename the build.sh script to make.sh script. Signed-off-by: Alberto Bertogli commit a7b6e86731a129db5b7a88c71fd24fb4af6f4aee Author: Alberto Bertogli Date: Sun Jun 24 04:42:20 2007 -0300 Add a top-level Makefile. Having a top level Makefile makes things easier to the user, it's worth doing. Signed-off-by: Alberto Bertogli commit 8b7924ec486bc96a2a03cc34a44b786a4d182059 Author: Alberto Bertogli Date: Wed Jun 20 18:58:48 2007 -0300 Fix argument number in tests/c/get.c. Signed-off-by: Alberto Bertogli commit 23a5e7659702524d55c5b610049d2dbac6c4b868 Author: Alberto Bertogli Date: Wed Jun 20 18:57:35 2007 -0300 Put the right name in tests' usage string. Signed-off-by: Alberto Bertogli commit ad6fe07558a685f31b21ba1fb98f3a07bb9c8b3e Author: Alberto Bertogli Date: Wed Jun 20 04:01:38 2007 -0300 Add three new tests: set.c, get.c and del.c. They're like 2.c but perform only a single operation. Useful not only for single operation benchmarks, but to populate the server. The build.sh changes also fix the script, which wasn't handling compiler flags correctly. Signed-off-by: Alberto Bertogli commit 278d064ed113cd3f9e93c29e4c7f3eebdb5effcc Author: Alberto Bertogli Date: Wed Jun 20 03:59:20 2007 -0300 Add missing prototype for nmdb_add_udp_server() in libnmdb. Signed-off-by: Alberto Bertogli commit 7860b77dfabf5f876b26620d0a3b98c410afb4aa Author: Alberto Bertogli Date: Sun Jun 17 04:50:32 2007 -0300 Move the tests to tests/c. We're about to introduce Python tests, so move the current ones into the "c/" directory. Signed-off-by: Alberto Bertogli commit 3037f97cf1a57732b061fb35766f4151b639ab63 Author: Alberto Bertogli Date: Tue Jun 12 00:04:33 2007 -0300 Add test number 3. It performs the following loop: for i in range(times): key = val = i set(key, val) val = get(key) del(key) commit 9e6762d25e19ec6986e1c185f2ce4879c63e3203 Author: Alberto Bertogli Date: Sun Jun 10 06:24:35 2007 -0300 Fix bogus comment in udp.c The comment was copied from tipc.c, it shouldn't be exactly the same one because numbers are different. Signed-off-by: Alberto Bertogli commit acdce0911bfad42f580a28be2347b4dcd9ce973f Author: Alberto Bertogli Date: Thu Jun 7 03:21:04 2007 -0300 Put static buffers as static global variables instead of using the stack. It's much more decent to put them there and not abuse the stack. TCP already did this (although it used more variables than really needed), but not TIPC nor UDP. Signed-off-by: Alberto Bertogli commit 02298183c22ad591a00cbff7859b0803a58f3a54 Author: Alberto Bertogli Date: Thu Jun 7 03:10:09 2007 -0300 Fix UDP recvfrom() error handling. The comment is valid for TIPC because it's not strictly POSIX compliant, but UDP behaves normally. Signed-off-by: Alberto Bertogli commit 91ffc7bbda813a858562dbfd8b84ecd879af1fc1 Author: Alberto Bertogli Date: Thu Jun 7 02:39:02 2007 -0300 Use switch instead of if/else if for short cases. It's more clear and readable for this short statements. Signed-off-by: Alberto Bertogli commit 382fa2f5de0e92e4b2a1e9c6ee407003a40a530a Merge: 92cd783... b12871a... Author: Alberto Bertogli Date: Thu Jun 7 02:31:02 2007 -0300 Merge branch 'udp' commit b12871a1cacdfbab9625798ede4e1232b6ef488b Author: Alberto Bertogli Date: Thu Jun 7 02:30:34 2007 -0300 Document UDP support. Add the new function in the libnmdb's manpage, and mention it in the rest of the documentation. Signed-off-by: Alberto Bertogli commit a0da39b79ddeb1ec171f891a77466260d00cfd60 Author: Alberto Bertogli Date: Thu Jun 7 02:26:28 2007 -0300 Implement UDP support in D bindings. Signed-off-by: Alberto Bertogli commit 3cf6bc35ba55cb4cf6c6b031d49a8d550832afc3 Author: Alberto Bertogli Date: Thu Jun 7 02:23:27 2007 -0300 Implement UDP support in newlisp bindings. Signed-off-by: Alberto Bertogli commit fc56bd3f2d1372879259db664cd8b9a392bcc77e Author: Alberto Bertogli Date: Thu Jun 7 02:21:42 2007 -0300 Implement UDP support in Python bindings. Signed-off-by: Alberto Bertogli commit ed2e17399f4f6ad944bf506ec7a0f82f0c2d8d2f Author: Alberto Bertogli Date: Thu Jun 7 02:18:22 2007 -0300 Make UDP tests too. The new testing infraestructure may not look very clean, but it's quite handy, as we can easily see. Signed-off-by: Alberto Bertogli commit a02fc0cd6efc8bc3fb4f86c35c9e11089e0d7eeb Author: Alberto Bertogli Date: Thu Jun 7 02:15:45 2007 -0300 Implement UDP in the C library. Also very straightforward, not much to comment. Fully tested. Signed-off-by: Alberto Bertogli commit 4b89315ea2b0dd996c137fe9676c845d99565322 Author: Alberto Bertogli Date: Thu Jun 7 02:15:08 2007 -0300 Implement UDP in the server. It was quite easy, because it's almost identical to TIPC. Completely tested, patches for the C library and the tests will follow. Signed-off-by: Alberto Bertogli commit 92cd783c96f594693e173a6c2015b26a6067be82 Author: Alberto Bertogli Date: Thu Jun 7 01:23:40 2007 -0300 Remove wrong static attribute in tipc.c. The struct sockaddr_tipc should not be static. Luckily because the function is only called once, it didn't have any impact. Signed-off-by: Alberto Bertogli commit 2dc32f844d36921b0d9bd576e82e98cc07887e5e Author: Alberto Bertogli Date: Thu Jun 7 01:14:43 2007 -0300 Remove deprecated comment in tcp.c. Commit d4a46d70 obsoleted this comment, we no longer need to allocate or free any buffer on the fast TCP code path. Signed-off-by: Alberto Bertogli commit 665a0ea4ff1a680b58d2bcc9f55a69c153cfc3c6 Author: Alberto Bertogli Date: Mon Jun 4 03:39:33 2007 -0300 Remove an unnecessary "else". The "else" is misleading, because it makes us think that both the previous "if" and the "else" blocks continue execution below. Signed-off-by: Alberto Bertogli commit ba7ddb42955224b0964480a7fa7945500d1355ef Author: Alberto Bertogli Date: Mon Jun 4 03:11:45 2007 -0300 Remove some tcp.c printf()s. They are not needed anymore for debugging. A couple are still there, but they will be removed when they are no longer useful. Signed-off-by: Alberto Bertogli commit d4a46d703a9ef6a7399f02351346881a479fde93 Author: Alberto Bertogli Date: Mon Jun 4 03:10:10 2007 -0300 Use static allocation in TCP's receive common path. To avoid too many expensive malloc()s, and also to make the code simpler (with regards to the current status), use a static buffer to use in TCP's common receive path. This shows a slight increase in performance, but it's worth it just for the simplified code, even though the common buffer is not the nicest thing on earth. I hope I can get rid of it with an optimized allocator, but that can wait. Signed-off-by: Alberto Bertogli commit 302c7463334f6541caf62227c5f7009bd508c626 Merge: d1aed83... aa48293... Author: Alberto Bertogli Date: Mon Jun 4 02:38:07 2007 -0300 Merge branch 'master' into tcp commit d1aed831ee064cee889f88ef422cdf058c2470bb Author: Alberto Bertogli Date: Mon Jun 4 02:38:02 2007 -0300 Put tcp_socket->req inside the struct. It simplifies the code and makes it faster by reducing the number of allocations. Signed-off-by: Alberto Bertogli commit aa48293f21a6dbfc6916fe1fcdb8ecf1b365e82f Author: Alberto Bertogli Date: Mon Jun 4 02:19:34 2007 -0300 Remove obsolete comment. There's no doubt we want to disable Nagle algorithm, remove the comment. Signed-off-by: Alberto Bertogli commit e8ed68580bb17d7082aacdb2193bb2a9b0889bbd Author: Alberto Bertogli Date: Mon Jun 4 02:18:20 2007 -0300 Add missing free() on spurious TCP wakeup. Signed-off-by: Alberto Bertogli commit b5f0207fb8c377e306710e373977125112587d59 Author: Alberto Bertogli Date: Mon Jun 4 01:08:47 2007 -0300 Rewrite test building. The tests were getting too similar and boring to write. This patch simplifies the situation by having only two tests with generic code, and then specifying the protocol and access mode on build-time. It also changes the Makefile in favour of a building script so we can build all the combinations easily. This gets us 18 tests, from the combination of all the following: - TCP/TIPC/Multiple (both at the same time). - Normal/Cache/Sync access. - Test code 1 and 2. Signed-off-by: Alberto Bertogli commit 24892c56dc8545759c80245a8340623c24aa4ae8 Author: Alberto Bertogli Date: Sun Jun 3 23:08:31 2007 -0300 Split the DEBUG flag into DEBUG and PROFILE in the C library. Like b4211a7794ee4d265e95a9e00621bd6036a26af4 but for libnmdb. Signed-off-by: Alberto Bertogli commit affed3d8eb042bd007c1f45a1663b07b413d9b98 Author: Alberto Bertogli Date: Sun Jun 3 23:06:20 2007 -0300 Improve libnmdb's TCP support. Until now, we did two send() and two recv(), one for the message length, and other for the message itself. This slowed TCP down a lot. This patch makes recv() handle the common case where we get the whole thing in one go, and adds generic send() infraestructure to handle transport protocols which need to get room for a header before sending the packet. This improved TCP performance in a significant way, making it 1/3 faster than before, although it's still slower than TIPC on localhost. Tested with all testcases and valgrind. Signed-off-by: Alberto Bertogli commit a418111dc0019dc4d3f82ff1879de93ee9ff1597 Author: Alberto Bertogli Date: Sun Jun 3 21:33:12 2007 -0300 Split libnmdb.c into different files. We split libnmdb.c into tipc.[ch] (TIPC support), tcp.[ch] (TCP support), and libnmdb.c (common infraestructure). Signed-off-by: Alberto Bertogli commit f919b36091128976dedae4b9f6f999e3cbacf1c2 Author: Alberto Bertogli Date: Sun Jun 3 19:56:54 2007 -0300 Move tests to a different directory. This only moves the C library tests; we'll move the other ones when more are available. Signed-off-by: Alberto Bertogli commit 591e98887f6c9afe66ae724a7b26243ee418b1ae Author: Alberto Bertogli Date: Fri Jun 1 16:04:45 2007 -0300 Allow to compile-out TIPC and TCP in the C client. I hate #ifdefs in the code, but this is not very messy, and works for now. The library will be split in later commits, after testcases are moved out of the way. Signed-off-by: Alberto Bertogli commit df22b542563e0b682c3d467ad8f7b830dd5e5b1d Author: Alberto Bertogli Date: Fri Jun 1 15:48:29 2007 -0300 Allow to compile-out TIPC and TCP in the server. To compile either TCP or TIPC out, use a "make" variable from the command line, like "make ENABLE_TCP=0" or "make ENABLE_TIPC=0". You can disable both to get a very useful application. In the future we might want to revisit the selection method, but this one is simple and good enough for now. Signed-off-by: Alberto Bertogli commit 54d9e83e20b123811b1abef1f8cea9fd4a419def Author: Alberto Bertogli Date: Fri Jun 1 15:20:16 2007 -0300 Remove unused constant in tcp.h. Luckily we don't have any fixed limit on the amount of TCP connections we can handle. Signed-off-by: Alberto Bertogli commit c4d4b8a10c45e95fc9bfd91ea2e1fd9665ba9ebb Author: Alberto Bertogli Date: Fri Jun 1 15:14:47 2007 -0300 Rearrange some code so the nmdb_add_*_server() look more similar. Signed-off-by: Alberto Bertogli commit 476848078e0ed16ae2bc66e51594cd69c0ca6c01 Author: Alberto Bertogli Date: Fri Jun 1 15:14:24 2007 -0300 Support the new TCP default port in libnmdb. The bindings need no modification as they rely on libnmdb's behaviour of choosing the default port if port = -1. Signed-off-by: Alberto Bertogli commit 7c3e94e5efd5bd122098264ce676c7d0653a5050 Author: Alberto Bertogli Date: Fri Jun 1 15:13:14 2007 -0300 Parametrize TCP listen address and port. Signed-off-by: Alberto Bertogli commit 438c10bf3f16243f8dc4684f2e4f45e3f03f0f06 Author: Alberto Bertogli Date: Fri Jun 1 15:03:56 2007 -0300 Resolve domain names given to nmdb_add_tcp_server(). Make nmdb_add_tcp_server() accept not only addresses (as strings, of course), but domain names too. This simplifies usage, but still allows the caller to resolve it by itself in case he wants to. Signed-off-by: Alberto Bertogli commit a07262ccb40423a8301ed3705c687dd9cbbd48b3 Author: Alberto Bertogli Date: Fri Jun 1 13:50:52 2007 -0300 Update newlisp bindings to reflect TCP support and API changes. Signed-off-by: Alberto Bertogli commit 65cd6fd63ee088723ceacdb3f86d3a8516922d84 Author: Alberto Bertogli Date: Fri Jun 1 13:44:23 2007 -0300 Update D bindings to reflect TCP support and API changes. Signed-off-by: Alberto Bertogli commit 8fe5b2111c5d12f152b59d363e676c939b7b4cec Author: Alberto Bertogli Date: Fri Jun 1 13:31:57 2007 -0300 Update the guide to reflect the API changes and the TCP support. Signed-off-by: Alberto Bertogli commit 2e4c8bb1edf5d127535c440862b804073b150d19 Author: Alberto Bertogli Date: Fri Jun 1 13:06:32 2007 -0300 Update the design document to reflect the TCP support. Signed-off-by: Alberto Bertogli commit d597dc740dd8b1f5d569ed601ab16308d0744110 Author: Alberto Bertogli Date: Fri Jun 1 13:05:18 2007 -0300 Clarify the network protocol document. Indicate to the reader that the protocol is message-based, and the transport protocol can wrap around it (as TCP does). Signed-off-by: Alberto Bertogli commit 510d22e57b9118b35e22423e4af31960f4f9f076 Author: Alberto Bertogli Date: Fri Jun 1 13:03:26 2007 -0300 Update libnmdb's manpage to reflect the API changes. Signed-off-by: Alberto Bertogli commit 18b1808132e0f4acbb70a3781d5f1b9327ff6a4f Author: Alberto Bertogli Date: Fri Jun 1 12:54:46 2007 -0300 Update the Python bindings. Add TCP support and reflect the API change in libnmdb. Signed-off-by: Alberto Bertogli commit 33377d037dde7814e36ce1995a66137e3ea2a254 Author: Alberto Bertogli Date: Fri Jun 1 12:52:51 2007 -0300 Fail if we try to operate with the db if we haven't added any servers yet. Signed-off-by: Alberto Bertogli commit ed2d3b2fbfc1bbd31be1b7e401edb6c3c35488bd Author: Alberto Bertogli Date: Fri Jun 1 12:24:33 2007 -0300 Improve handling of nmdb_add_*_server() errors. Leave the db in an usable state, and perform cleanups so we don't leave anything hanging out. Signed-off-by: Alberto Bertogli commit b4a2c2c800cedc8c0a6eceda5062cc9c4b7599bd Author: Alberto Bertogli Date: Fri Jun 1 11:39:32 2007 -0300 Make multiple TCP server support reliable. Handle correctly having more than one TCP server, mixed with TIPC servers, by getting the compare right so that it sorts according to IP:port for TCP and port for TIPC. Signed-off-by: Alberto Bertogli commit 7067979e4ef1938481084a3715d60b9b464696b0 Author: Alberto Bertogli Date: Fri Jun 1 03:31:14 2007 -0300 Rename TIPC constants with TIPC_ prefixes. This clarifies namespaces for the following patches where TCP options are introduced. Completely API and ABI compatible, these were only used internally. Signed-off-by: Alberto Bertogli commit 596535f23634bf3b217e90373d0e40780cb5b3ab Author: Alberto Bertogli Date: Fri Jun 1 03:28:27 2007 -0300 Don't send TCP packets when in passive mode. The passive mode is not very useful in TCP, but that doesn't mean we should ignore it. If we refuse to answer TIPC requests, we should do the same for TCP unless somebody gives a good reason not to. Signed-off-by: Alberto Bertogli commit b48cd139e5cf92c79e286df389ab430b7b41b8ba Author: Alberto Bertogli Date: Fri Jun 1 03:14:51 2007 -0300 Add parser.[ch] to the tree. They should have been added on 4641cc64928412b583594e55ec9ce4f63406d8c4, but I'm a git and forgot. Signed-off-by: Alberto Bertogli commit b2c19e00dcbbfa9ce20fbd1f9a0e84826d0fb826 Author: Alberto Bertogli Date: Fri Jun 1 03:09:11 2007 -0300 Handle buffer leftovers in TCP code. If we get more than one message in the same TCP recv(), we need to handle the leftovers after processing the first message. This implements a simple recursive handling for that case. It compiles and run the normal tests, but the code path is untested. Signed-off-by: Alberto Bertogli commit 4641cc64928412b583594e55ec9ce4f63406d8c4 Author: Alberto Bertogli Date: Fri Jun 1 02:49:32 2007 -0300 Isolate message parsing from network message receiving. This patch cleanly splits message parsing from message receiving. While on TIPC the message received IS the one to parse, on TCP we have a thin but troublesome message wrapper that we don't want to mix with our real code. It also simplifies the code a lot, and makes it easier to add new protocols in the future. Signed-off-by: Alberto Bertogli commit 67f42aa3cda28b810f23cdbd55e990300634254c Author: Alberto Bertogli Date: Fri Jun 1 01:44:05 2007 -0300 Fix the API change in the test programs. Signed-off-by: Alberto Bertogli commit 1a050bc7c0587e387296b3b35d478e921e42d250 Author: Alberto Bertogli Date: Fri Jun 1 01:43:23 2007 -0300 Implement TCP support in libnmdb. This breaks the API, so the bindings and test programs will need updates. They will come in the next patches. Things done: - Fully functional for single-server operation. - Makes valgrind happy. - Not break TIPC. Things to do: - Improve performance. - Handle multiple servers. - Update documentation. Signed-off-by: Alberto Bertogli commit 042a0dc669a4cd9a0e911cb1b278d858923c916e Author: Alberto Bertogli Date: Fri Jun 1 01:38:17 2007 -0300 Implement server-side TCP support. This adds basic TCP support to the nmdb server. It's still missing features (parametrization), performance optimization and cleanups, but it's fully functional, it runs the tests, handles invalid inputs and makes valgrind happy. The main problem with it is that it can't handle having more than one incoming message on the same socket yet, but it will come on the next patches. Signed-off-by: Alberto Bertogli commit b4211a7794ee4d265e95a9e00621bd6036a26af4 Author: Alberto Bertogli Date: Thu May 31 21:23:00 2007 -0300 Split the DEBUG make flag into DEBUG and PROFILE. This avoids compiling with profile information where only debugging is needed. Signed-off-by: Alberto Bertogli commit 8ffdb4db0ce61d41858bcd1ca4ccaa01e33040c5 Author: Alberto Bertogli Date: Thu May 31 21:22:14 2007 -0300 Set the request ID as soon as possible. Otherwise if we have a version mismatch, the error reply would go out with an incorrect ID and might never reach destination. Signed-off-by: Alberto Bertogli commit 7d1ee509d623ab336b0f05ea00d7139de3dd0127 Author: Alberto Bertogli Date: Wed May 30 22:15:11 2007 -0300 Make requests protocol-independant. This is the first step towards implementing TCP support. This patch makes the struct req_info a more general structure, allowing its users not to depend on the networking protocol used. Before this patch, db.c uses directly the tipc_* functions. Now, we make req_info contain the function pointers needed to operate on it (send the various replies), so the TIPC code is much more isolated and the database code doesn't care about TIPC at all. Signed-off-by: Alberto Bertogli commit 2ac34c99b959f9344ed4a2ceae2c747b4a467999 Author: Alberto Bertogli Date: Sat May 12 00:11:24 2007 -0300 Reduce tipc_recv()'s buffer size. There is a small but noticeable performance gain if we reduce the tipc_recv()'s buffer size from 128k to 68k. Since the maximum TIPC packet size is 66000 bytes, this should be enough for even the biggest packets. Making the buffer static and outside the function was tested but it performed worse than the current stack-based one. It's still ugly, but at least it uses almost half the stack size. Signed-off-by: Alberto Bertogli commit 1b42da5deb504cde421728f1872de0a30d246a8e Author: Alberto Bertogli Date: Fri May 11 23:34:09 2007 -0300 Allow CFLAGS override in the Makefiles. This patch allows the CFLAGS variable to be overriden by the user when calling make, for instance "make CFLAGS=-Os". Previously, that would have broken the build because the needed CFLAGS were not included (-D_XOPEN_SOURCE=500, for instance, is mandatory and the user would have to include that in its CFLAGS). Signed-off-by: Alberto Bertogli commit 76b830154d6ad8a2441d86b25b6139041655a119 Author: Alberto Bertogli Date: Sun Apr 29 04:54:40 2007 -0300 Reduce an allocation size in db.c. There's no point of making vsize = 128k if the maximum size is 64k. commit e458272a156cd22b19456faf65a1fb82d496bbff Author: Alberto Bertogli Date: Sun Apr 29 04:33:58 2007 -0300 Implement CAS support in newlisp bindings. commit 301194414ad407c4be8889fda996cc45fe30722e Author: Alberto Bertogli Date: Sun Apr 29 04:20:26 2007 -0300 Allow large values when doing a get in D bindings. commit 913e72ae29079f5318b20a4e1e1c5c2d3e0a9ac3 Author: Alberto Bertogli Date: Sun Apr 29 04:19:55 2007 -0300 Implement CAS in D bindings. commit 0258571a717117af2b0a348e6627b249c7275ec0 Author: Alberto Bertogli Date: Sun Apr 29 04:06:36 2007 -0300 Mark as internal some variables in the Python bindings. The Python bindings exposes "get", "set", "del" functions, which are actually direct calls to the low level module and are not meant to be used (they are undocumented, the return values are strange, etc.). This patch makes them begin with an underscore to note the fact they are internal and not made to be used. commit 0b5e59e0a4f23033460151b74a090c6629a17c06 Author: Alberto Bertogli Date: Sun Apr 29 03:55:34 2007 -0300 Document CAS in the appropriate files inside doc/. commit 317141da26c3ee992807dccf06ae503d7fad4379 Author: Alberto Bertogli Date: Sun Apr 29 03:45:38 2007 -0300 Implement CAS in Python bindings. commit d33c7a6be68271cf0300573a8c79b4800072f404 Author: Alberto Bertogli Date: Sun Apr 29 03:37:46 2007 -0300 Implement CAS in libnmdb. commit 2c23a7bb908b3dbbe91b02cb687326a32bd0926c Author: Alberto Bertogli Date: Sun Apr 29 03:37:09 2007 -0300 Implement CAS in nmdb. This patch implements the compare-and-swap operation in the server. The following patches will extend the C library and its bindings to support it, and add proper documentation. commit 0dea87c6521681c2e2eaf265ef631304ebca4fea Author: Alberto Bertogli Date: Tue Apr 24 20:12:56 2007 -0300 Move all the bindings to the bindings/ directory. To simplify the layout, this patch moves the Python, D and NewLISP bindings to the new bindings/ directory. It also updates the README and the LICENSE file to reflect this change. commit bdfe6fa6f209f6bdd1b2e97f1562a44665f3bdb8 Author: Alberto Bertogli Date: Tue Apr 24 20:05:26 2007 -0300 Add some header comments to D bindings. commit e183e61d03e95ceafc876c585fbca83a8462f8f5 Author: Alberto Bertogli Date: Tue Apr 24 20:04:58 2007 -0300 Add licenses to D and newlisp bindings. commit d5d2dc05821c2c0dbe35b559a0f41aa717360cce Author: Alberto Bertogli Date: Tue Apr 24 20:04:21 2007 -0300 Add nmdb bindings for newlisp. This patch adds nmdb bindings for newlisp (http://www.newlisp.org). They're very simple, but seem to work just fine, although they have not been tested thoroughly. commit 83d4fc1398a134e2942811f3a77196fe96bd1e79 Author: Alberto Bertogli Date: Wed Apr 4 11:24:32 2007 -0300 Implement add_server() in D bindings. commit 97a51639bdeb46ef78b83655eefc4792750f0ce9 Author: Alberto Bertogli Date: Sat Mar 31 20:20:08 2007 -0300 Remove unneeded information from d/sizeof.c. Because we use D's size_t and ptrdiff_t (which are guaranteed to be the same as C's), there is no need for sizeof.c to inform their size. commit 6fd22de3c9dcfc7b152ebcf1097cfada7580750d Author: Alberto Bertogli Date: Sat Mar 31 20:16:18 2007 -0300 Add x86 support in D bindings. commit 051bc59ecc4e603b106c5427a3b225c4a11da2b5 Author: Alberto Bertogli Date: Sat Mar 31 20:13:28 2007 -0300 Fix the user types in D bindings. Instead of defining size_t and ssize_t ourselves, use size_t and ptrdiff_t which are guaranteed to have the same semantics that C in all platforms. commit 1c023099de1bca18d7e9bbb00234f40e86c29119 Author: Alberto Bertogli Date: Fri Mar 30 01:47:27 2007 -0300 Minor fixes to some function prototypes to reflect their static status. sparse showed some static functions that weren't marked so, and some void arguments missing. Mostly aesthetic, but worth fixing. commit 758f64b75d89dc3c2f3445a8e2f2c301116ac249 Author: Alberto Bertogli Date: Thu Mar 29 23:39:56 2007 -0300 Move the global structures definitions from common.h to main.c. Thanks to a sparse run, I noticed that the definition of several shared structures is inside the header, which isn't quite nice. This patch moves them to main.c. commit b1c18cc8554ab0b72bc9ff1881587c5fe7e530dc Author: Alberto Bertogli Date: Wed Mar 28 21:29:12 2007 -0300 Implement the 'in' operator for D's nmdb class. commit 03a87c130f238aed989ca5105c956a5c6ae27e8e Author: Alberto Bertogli Date: Tue Mar 27 22:47:43 2007 -0300 Add D bindings. This adds the initial D bindings. At the moment they only work on amd64 boxes, but it's quite easy to add support for other architectures. It needs testing and documentation, this is only the main code. commit 8568296068ced9ff713fd60f93be0cffa2f27bf9 Author: Alberto Bertogli Date: Sat Mar 24 16:45:40 2007 -0300 Fix the sync prototypes in libnmdb/nmdb.h. They should have been fixed long time ago, but nobody noticed. commit ddebe0b5df9de488a7b7808bdd80e03bfe2b302a Author: Alberto Bertogli Date: Fri Mar 23 01:07:33 2007 -0300 Implement passive <-> active switching. This patch implements a SIGUSR2 signal handler which converts from passive to active, and viceversa. It must be used with great care. Documentation patches will follow. commit 5db4d245ca9d640e98572a3e72abbf4e3c878588 Author: Alberto Bertogli Date: Thu Mar 8 19:22:15 2007 -0300 Fix the manpage: passive mode IS implemented.