Log of /trunk/TODO
Parent Directory
|
Revision Log
Revision
393 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sun Nov 22 01:14:13 2009 UTC
(9 months, 2 weeks ago)
by
juli
File length: 4762 byte(s)
Diff to
previous 392
(
colored)
o) Add skeletal, hackish EOS support.
o) Expose some PipeSimple fields to subclassen.
Revision
356 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sun Oct 18 07:36:46 2009 UTC
(10 months, 2 weeks ago)
by
juli
File length: 4391 byte(s)
Diff to
previous 354
(
colored)
o) Add a crummy approach to look-ahead parsing. Queue encoded data
as it is parsed if data is already queued due to waiting for a LEARN
or similar. This may be sufficient for now but is not optimal.
Revision
354 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sun Oct 18 06:14:37 2009 UTC
(10 months, 2 weeks ago)
by
juli
File length: 4440 byte(s)
Diff to
previous 353
(
colored)
Remove magical-thinking non-entropy from the hash. More collisions, but faster
and not so much worse.
Revision
353 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sun Oct 18 06:10:16 2009 UTC
(10 months, 2 weeks ago)
by
juli
File length: 4918 byte(s)
Diff to
previous 351
(
colored)
Start working towards 0.6.0.
o) Modify XCodecWindow::dereference to return NULL rather than crashing
if a hostile remote system requests data outside of the window.
o) Have XCodecDecoder track any associated XCodecEncoder. There may not
be one, but if there is we can do other things...
o) Removall XCODEC_STATS code.
o) Reinvent XCodec protocol to use a single magic character followed by
an opcode, which uses fewer bytes in almost all circumstances, and
provably uses fewer bytes overall. The result is a non-trivial size
reduction for encoded streams. All of them.
o) Get rid of Buffer::escape and Buffer:find_if, which were awkward and
just there due to the badness of the old XCodec protocol.
o) Update the encoder to use the new output format and to do its own
data escaping.
o) Make Buffer::find() use memchr(3), which is faster than doing it by
hand.
o) Get rid of XCodec::decoder() and XCodec::encoder(), which were not in
use (and which should not have been used.)
o) Add an XCodec::side_effects() static method which will help the decoder
track whether it can disorder its evaluation of data in the stream.
o) Rewrite the decoder to handle the trivial cases of the new protocol,
leaving ASK and LEARN unimplemented. Since we can use the faster
Buffer::find() now instead of Buffer::find_if(), it's faster even though
it uses none of the old, clever speed tricks. It's going to get slower
as out-of-order parsing is implemented.
o) Update TODO to reflect new priorities.
o) Disable xcdump, as it needs rewritten.
Revision
351 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 14 20:58:03 2009 UTC
(10 months, 3 weeks ago)
by
juli
File length: 4893 byte(s)
Diff to
previous 344
(
colored)
Need to handle OOB data in the distant future. This seems not too hard, but
we'll see.
Revision
335 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Wed Sep 23 05:17:26 2009 UTC
(11 months, 2 weeks ago)
by
juli
File length: 4882 byte(s)
Diff to
previous 334
(
colored)
Improve Socket allocation in TCPClient::connect(). Callers will get the Socket
in the connect completion callback.
Revision
332 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sun Sep 20 13:47:47 2009 UTC
(11 months, 2 weeks ago)
by
juli
File length: 4666 byte(s)
Diff to
previous 329
(
colored)
o) Add a TODO item.
o) Add a null-sink Pipe (PipeNull.)
o) Add an example program using PipeNull.
Revision
317 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 11 02:41:02 2009 UTC
(11 months, 3 weeks ago)
by
juli
File length: 4053 byte(s)
Diff to
previous 308
(
colored)
o) Institutionalize the SIGPIPE workaround.
o) Make the IO system announce itself like the Event system.
Revision
308 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 10 11:40:33 2009 UTC
(11 months, 3 weeks ago)
by
juli
File length: 4327 byte(s)
Diff to
previous 301
(
colored)
Clean up some based on what I think will get done while I'm sick in bed this
weekend, etc.
Revision
283 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sun Sep 6 01:31:21 2009 UTC
(12 months ago)
by
juli
File length: 4048 byte(s)
Diff to
previous 282
(
colored)
Plan 0.5.2 to just add new poll mechanisms and to fix WANProxy on Mac OS X 10.6
and Interix.
Revision
282 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sun Sep 6 01:23:55 2009 UTC
(12 months ago)
by
juli
File length: 4006 byte(s)
Diff to
previous 280
(
colored)
o) Interix was hanging due to using poll instead of select.
o) Probably should add /dev/poll support for Solaris.
Revision
265 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 27 04:14:25 2009 UTC
(12 months, 1 week ago)
by
juli
File length: 3793 byte(s)
Diff to
previous 262
(
colored)
Mention the need for something higher-level since Pipes have a lot of duplicated code.
Revision
262 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 22 06:12:26 2009 UTC
(12 months, 2 weeks ago)
by
juli
File length: 3663 byte(s)
Diff to
previous 248
(
colored)
Some experiments with the XCodecHash suggest that it doesn't benefit from doing
an xor of bytes in the hashed data and that it costs a non-trivial amount of
performance. If nothing else, we store two copies of the byte being rolled in,
which is unacceptable. In the future, just Jenkins mixing the low 32-bits and
using the upper 32-bits for UUID is probably workable. Actually, maybe we'd be
best off just using 32-bit hashes. Dunno. Depends how we store hashes sent by
the peer and whether we generate references to them, etc.?
Revision
247 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 20 06:40:43 2009 UTC
(12 months, 2 weeks ago)
by
juli
File length: 3314 byte(s)
Diff to
previous 243
(
colored)
o) Add the SocketAddressFamilyIP type which auto-detects IPv4 or IPv6.
o) Pass the address as a hint to Socket::create where applicable.
o) Make socket_address::operator() use getaddrinfo(3) to find an appropriate
address in the desired family and to handle family inference when passed
AF_UNSPEC.
o) Remember the socket type and numeric protocol to facilitate getaddrinfo(3).
o) Reorder Socket::create to make it possible to determine which IP family to
use based on an address hint passed in.
o) While here make Socket::create's protocol argument default to empty.
o) Don't pass an empty protocol by hand to Socket::create for Unix domain
sockets anymore.
o) Make the WANProxy default configuration use the IP address family and the
"localhost" name so that it uses IPv4 or IPv6 as appropriate for that
system.
Revision
243 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 20 00:33:28 2009 UTC
(12 months, 2 weeks ago)
by
juli
File length: 3096 byte(s)
Diff to
previous 241
(
colored)
Factor out encode_declaration() and encode_reference() from the main encode() body.
Revision
241 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 19 13:24:03 2009 UTC
(12 months, 2 weeks ago)
by
juli
File length: 3177 byte(s)
Diff to
previous 235
(
colored)
Rewrite the XCodecEncoder encode function...
o) Do the entirety of processing in the first loop rather than processing
references and then declarations. This improves handling of in-stream
collisions and references to data earlier in a stream.
XXX This duplicates a lot of code. Add a TODO item to clean it up.
o) Correct an implementation bug: when we have a collision, we should still
check to see whether the last-known-good hash should be declared.
o) As a result of merging the loops add logic to handle adjacent hash collisions
(and hits) gracefully.
The net effect of this is that performance may be slightly degraded in terms of
encode throughput (merging the loops was at first a boost in throughput but
handling edge cases and better encoding possibilities ate the increase) the
compression ratio for non-random, non-uniform data is significantly better than
previously, from 1% to 10% better in some tested data sets. Random data should
be the same and veryuniform data sees a significant performance boost from the
elimination of the second loop (both in terms of eliminating the number of loops
and in terms of registering declarations earlier) -- about twice the throughput
of the previous encoder.
Revision
230 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 15 10:26:35 2009 UTC
(12 months, 3 weeks ago)
by
juli
File length: 3000 byte(s)
Diff to
previous 228
(
colored)
o) Add EOS suppport to Pipes.
o) Update TODO for EOS support being done and explain what I mean wrt flush.
Revision
227 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 15 08:42:16 2009 UTC
(12 months, 3 weeks ago)
by
juli
File length: 2366 byte(s)
Diff to
previous 226
(
colored)
o) Fix a shadowing error in PipeNull.
o) Add a bidirectional Pipe interface: PipePair.
o) Add an echo PipePair and a test for it.
Revision
226 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 15 00:51:50 2009 UTC
(12 months, 3 weeks ago)
by
juli
File length: 2408 byte(s)
Diff to
previous 224
(
colored)
Add a Pipe mechanism which will be used for producer-consumer interfaces, if all
goes well. Also include a pass-through Pipe and a test that exercises it.
Revision
222 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 13 07:24:27 2009 UTC
(12 months, 3 weeks ago)
by
juli
File length: 2016 byte(s)
Diff to
previous 221
(
colored)
o) Support using service names.
o) Give some informative errors if hosts/services are invalid.
Revision
206 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 12 23:05:12 2009 UTC
(12 months, 3 weeks ago)
by
juli
File length: 2551 byte(s)
Diff to
previous 205
(
colored)
o) Switch to single-string connect() and bind().
o) Make ports strings.
o) Use getsockname() to construct the listening address if bind() with
port of 0, rather than passing in a pointer to the port, simplifying
the API for non-0 code.
o) Add getsockname() pass-through to TCPServer.
Revision
139 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 23 12:43:58 2009 UTC
(16 months, 2 weeks ago)
by
juli
File length: 1825 byte(s)
Diff to
previous 137
(
colored)
o) Add ZZCodec, which zig-zag transforms blocks of data. This produces fewer
hits overall when used with XCodec, including greatly-reduced collisions,
which means it's probably better for repeated data, but worse for initial
compression. Need to investigate how it performs for small deltas.
o) Add zztack, which uses ZZCodec like tack uses XCodec.
Revision
126 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 7 09:32:29 2009 UTC
(17 months ago)
by
juli
File length: 1825 byte(s)
Diff to
previous 124
(
colored)
Add a TODO to finally tackle the problem of IPv6, lack of a good network address
representation, etc.
Revision
124 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 7 07:54:55 2009 UTC
(17 months ago)
by
juli
File length: 1683 byte(s)
Diff to
previous 110
(
colored)
Move networking-specific code out to 'net' library. Mostly wrappers for now,
but I'm sure that will change.
Revision
14 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Sun Feb 22 00:21:59 2009 UTC
(18 months, 2 weeks ago)
by
juli
File length: 674 byte(s)
Diff to
previous 12
(
colored)
o) If an accept fails in one of the listeners, we should keep trying to accept.
XXX Maybe we need to check the errno.
o) Switch to the new ProxyPipe code and rewrite the ProxyClient for it.
o) Update TODO to mention a race that could lead to SIGPIPE.
Revision
5 -
(
view)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 20 12:36:32 2009 UTC
(18 months, 2 weeks ago)
by
juli
File length: 523 byte(s)
Diff to
previous 1
(
colored)
Update TODO to reflect things that came up working on the SOCKS4 mode.
Revision
1 -
(
view)
(
annotate)
-
[select for diffs]
Added
Mon Feb 16 08:26:47 2009 UTC
(18 months, 2 weeks ago)
by
juli
File length: 460 byte(s)
Initial import of public WANProxy codebase.
Based on r238 in the Marvelous Proof repository.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.