Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2012-03-22 | Moved Perl implementation to a separate repositoryold | Yorhel | 2 | -613/+0 | |
2012-03-22 | proto: Documented some simple ideas on how to do security | Yorhel | 1 | -0/+58 | |
2012-03-21 | Sync spec.pod and proto.pod with behaviour of Perl and C imlementation | Yorhel | 2 | -83/+89 | |
Well, almost. Neither the Perl nor the C implementation completely follow the current spec, but their overal semantics are what I've decided on. The most important change with my previous ideas is that tuples are now dynamically typed and the removal of the boolean type. This is because it's much easier (and much more "natural") to implement dynamic typing semantics on top of a statically typed language than the other way around. | |||||
2012-03-15 | c: Moved c directory to a separate repository | Yorhel | 6 | -2433/+0 | |
2012-03-14 | c: Added JSON parser + fixed some bugs in formatter + tuple handling | Yorhel | 4 | -19/+444 | |
2012-03-10 | perl: Use ref-counted variable to detect whether pattern is unregistered | Yorhel | 1 | -4/+6 | |
A bit more reliable than using an ID that may be re-used. | |||||
2012-03-02 | c: Use lbuf abstraction for JSON-formatting tuples | Yorhel | 3 | -103/+97 | |
Makes it easier/more efficient to write tuples directly to the link buffer. | |||||
2012-03-02 | c: Improved error handling for link objects | Yorhel | 4 | -24/+82 | |
2012-03-02 | c: Added pthread context for links + fixed a few bugs | Yorhel | 4 | -38/+198 | |
It can do a successful handshake now, yay! | |||||
2012-03-01 | c: Started on the link implementation | Yorhel | 2 | -0/+202 | |
Emphasis on "started", I don't even have the means yet to test it. There's also no error reporting at all yet. | |||||
2012-02-28 | c: Added crude pthread-based "event loop" + fixed a few bugs | Yorhel | 5 | -4/+135 | |
2012-02-27 | c: Implemented dispatcher for tuples and replies and for sessions | Yorhel | 2 | -13/+122 | |
There's a lot of tricky stuff going on to make this thread-safe. Meh :( | |||||
2012-02-27 | c: Unregister patterns and close/free queued messages in tn_session_close() | Yorhel | 1 | -11/+40 | |
2012-02-27 | c: Generalize patternreg and tn_returnpath for links and sessions | Yorhel | 1 | -17/+26 | |
2012-02-27 | c: Started on session & returnpath abstractions + various improvements | Yorhel | 3 | -37/+223 | |
Turned some macros into static inline functions and improved the atomic_ macros. Still many TODO's left. | |||||
2012-02-26 | c: Added match implementation + make patternreg a ref-counted struct | Yorhel | 3 | -11/+82 | |
The patternreg struct is the perfect way to detect whether a pattern is still registered at the time it is received by the session. (More efficient than the local hash-table check that the current Perl implementation uses) | |||||
2012-02-25 | c: tuples.c -> tanja.c + added khash.h + Started on node implementation | Yorhel | 4 | -4/+689 | |
2012-02-24 | c: Started on a C implementation | Yorhel | 4 | -0/+374 | |
I didn't intent to write the JSON formatter immediately, but wanted to be able to print out tuples for debugging purposes. Since I incidentally happened to be writing a JSON-like formatter anyway, it wasn't a very large step to make it a fully conforming one. | |||||
2012-02-23 | go: Removing the Go implementation | Yorhel | 8 | -1326/+0 | |
I'm not going to continue this one anyway within the foreseeable future. I seem to be incompatible with Go. | |||||
2012-02-23 | go: Moved to go/ dir and s/server/node/g | Yorhel | 8 | -99/+101 | |
2012-02-23 | perl&doc: s/server/node/g | Yorhel | 5 | -42/+42 | |
I find "node" to be much more descriptive for that. The Go implementation hasn't been updated yet, though... | |||||
2012-02-22 | perl: Allow user to specify supported serialization formats | Yorhel | 2 | -13/+40 | |
And removed the storable format from proto.pod. Looks like Storable has a few annoying incompatibilities with different versions, so let's not use it. | |||||
2012-02-22 | perl: Allow a different AnyEvent::Handle for reading and writing | Yorhel | 2 | -15/+27 | |
This allows two unidirectional pipes (e.g. STDIN/STDOUT) to be used for communication. There's no obvious or efficient way to combine two pipes into a single AnyEvent::Handle. | |||||
2012-02-22 | perl: Updated Tanja::Link to use the new protocol | Yorhel | 2 | -12/+9 | |
2012-02-22 | doc/proto: Changed protocol to fully symmetric + better format selection | Yorhel | 1 | -43/+83 | |
2012-02-19 | perl: Implemented new proto + fixed many bugs; doc: Updated proto/JSON | Yorhel | 3 | -52/+160 | |
2012-02-19 | doc: Added definitions to spec.pod + partial rewrite of proto.pod | Yorhel | 2 | -44/+113 | |
I seriously need to get the terminology right and consistent. | |||||
2012-02-19 | perl: s/response/reply/g + added a link test that currently still fails | Yorhel | 2 | -8/+28 | |
2012-02-19 | doc: tanja.pod -> spec.pod + specify that wildcars are allowed in tuples | Yorhel | 1 | -32/+29 | |
2012-02-18 | perl: Load AnyEvent::Handle and JSON/JSON::XS modules when needed | Yorhel | 1 | -10/+14 | |
2012-02-18 | perl: Implemented full link support | Yorhel | 1 | -9/+95 | |
Yay, this is the first complete and working implementation of the link protocol! Not really final yet, though, but at least something to experiment with. | |||||
2012-02-17 | perl: Add JSON serialization module + send register messages on connect | Yorhel | 1 | -2/+43 | |
2012-02-17 | perl: Started on Tanja::Link + implemented handshaking | Yorhel | 2 | -2/+61 | |
2012-02-16 | perl: Only 'use AnyEvent;' once | Yorhel | 1 | -3/+9 | |
The others are rather pointless. | |||||
2012-02-16 | perl: Remove 'reply' argument + added return-path functionality | Yorhel | 2 | -21/+60 | |
The 'reply' thing is more typing overhead than it is worth. Especially since the return-path functionality uses Perl's GC to automatically close the return-path when no sessions have a reference to the object anymore. A session can simply not read the second argument of the tuple-callback to close the return path. (This does mean that the path will stay open for as long as the function is running, but that doesn't matter anyway in a single-threaded application.) | |||||
2012-02-16 | perl: Use AnyEvent::postpone() to make tuple dispatch asynchronous | Yorhel | 2 | -7/+12 | |
2012-02-16 | Started on a simple Perl implementation (using AnyEvent) | Yorhel | 2 | -0/+221 | |
Note that I'm not even actually using AnyEvent functionality at the moment. But no doubt I'm going to need it anyway. | |||||
2012-02-15 | Added README file referring to the article | Yorhel | 1 | -0/+11 | |
This project is totally incomprehensible even if you've read that, but at least you'll know my intention. :-) | |||||
2012-02-15 | Added doc/tanja.pod + Rewrote parts of proto.go (still unfinished) | Yorhel | 6 | -54/+306 | |
2012-02-04 | Continued on proto.go | Yorhel | 3 | -29/+129 | |
But there's still a lot of TODO's left. | |||||
2012-02-04 | Fixed bug with not closing reply channel when no patterns matched | Yorhel | 2 | -2/+10 | |
2012-01-29 | Started on Server<->Server linking protocol + implementation | Yorhel | 4 | -0/+500 | |
2012-01-29 | Make PatternReg a 32-bit integer + handle overflow | Yorhel | 1 | -3/+10 | |
The Server-Server communication protocol assumes that pattern registration IDs are 32bit. 64bit IDs are a bit overkill, anyway. | |||||
2012-01-29 | SessionReg -> PatternReg, let the server assign the IDs | Yorhel | 3 | -34/+46 | |
This makes the pattern registration IDs unique within a server instance, which makes it easier to link multiple servers together. | |||||
2012-01-28 | Use boolean return to unregister from callback instead of SessionReg arg | Yorhel | 2 | -20/+30 | |
This is probably a bit more convenient. | |||||
2012-01-28 | tcomm -> tanja, removed tiger code and moved tcomm/ into / | Yorhel | 8 | -529/+5 | |
This is now a separate project. | |||||
2012-01-25 | tcomm: Incorporated sessionRegData struct into server{Recv,Pattern} | Yorhel | 2 | -13/+9 | |
This only improves performance marginally, but looks somewhat cleaner anyway. | |||||
2012-01-24 | tcomm/matching.go: Use single append() instead of for loop | Yorhel | 1 | -5/+1 | |
Similarly to previous commit: the "..." thing allows a slice-append to be used. | |||||
2012-01-24 | tcomm: Removed SendT() and RequestT() | Yorhel | 2 | -12/+4 | |
I realized you can just use "..." to expand a slice to vararg functions. | |||||
2012-01-24 | Wrote a simple tiger package | Yorhel | 4 | -0/+525 | |
It's sloooooowwww. Far too slow to be useful. For comparison: This implementation: BenchmarkTigerKB 100000 15153 ns/op 67.57 MB/s BenchmarkTigerSmall 100000 18154 ns/op 28.20 MB/s rhash: $ dd if=/dev/zero bs=1M count=1000 | rhash --tiger - 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 4.51767 s, 232 MB/s dd7d6c8ec53853261cec5d87ebeb9b5483f14b14a8dad327 (stdin) |