Age | Commit message (Collapse) | Author |
|
|
|
Still to go: bootstrapping reading the initial header, saving the
header, growing streams as we write?
|
|
|
|
If so, this will fix the issue where streams randomly truncate when
accessed by multiple threads.
|
|
|
|
There's an issue somewhere sometimes and streams are being truncated. My
guess is a multi-threaded issue.
|
|
It returns "file:<requested path>" which could be made better
eventually, but it's nice, I like the format, it'll be good for memory
buffers to be able to report in a similar way.
|
|
We were only reading 1k of data in before, but if a header was more than
1k then we just would give up. Now we read as much as we can that has
loaded into the buffer and if we run out we can try again, but if it's
just a very long header we'll deal with it properly still.
|
|
We have a bug in the live version with a stream being truncated when
wer'e not expecting it. Not sure why yet.
|
|
|
|
I think the interface could be a lot better...but it does work and we
can use it examine and work with MyriadFs files.
|
|
Now it makes sure the buffer has been flushed and sets the buffer to be
sent out.
|
|
|
|
It was so stupid to use random numbers in tests, generators yes, but
random? the test won't fail the same way twice in a row, defeating the
entire point of the test!
|
|
When we encounter unexpected test results it logs them to a status file,
subsequent runs without other options will only re-run the tests that
had unexpected results, updating the status file as you go. When all
tests are returning expected results again then the status file is
deleted and the next run will process all tests again.
Of course, the --all parameter will force it to run all tests and ignore
the current status.
|
|
Just to ease the transition.
|
|
Added some features to the mkunit program, including cleanup routine
support. Added reporting modes for the UnitSuite class, and it can now
generate machine readable reports. Added a new program, rununits that
runs all unit tests and generates a synopsis of what you really care
about at the end, issues!
|
|
Strings are no longer shared.
|
|
|
|
|
|
We were bailing out when sockets closed, that was silly.
|
|
We have a last ditch effort. It turns out that the SocketTcp class
automatically closes sockets when it realizes they're at the end, it
doesn't wait for us to call close. That could be a problem, we may need
something in between, but at least we can detect it and clean it up.
|
|
We don't always clean up instantly, but the system is reusing ids before
we're ready.
|
|
It at least seems to!
|
|
|
|
|
|
Like, seriously, they're almost completely different.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
How we got away with it for this long is amazing.
|
|
Just helpers to make using json easier and easier.
|
|
|
|
|
|
I kind of want to re-engineer the entire archive system...The root
should be able to track a stateful stack of containers such as arrays
and dictionaries as well as support non-binary reads and writes in a
more robust way.
It also still bothers me that it's the only thing in the system with
base in the base class name. I should just change it...it's going to
impact many programs, though.
|
|
|
|
You can construct a BlobBuilder from a Blob now, and Blob has an extra
null byte of padding just in case you use a Blob to store a string.
|
|
|
|
This is an extra call that happens during the http handshake that allows
the implementation to set additional headers, modify existing headers,
and cancel the whole connection if desired.
|
|
It uses an integer formatting when there is no fractional component to
the number, and a fixed point format when there is.
|