Age | Commit message (Collapse) | Author |
|
append one list to another and the like.
Also, wow, I found a bug that's been around for ages, I guess we don't copy
hash tables often. The interesting thing is that it actually worked, it copied
but it would include any data that had been deleted in the old hash table but
not reclaimed yet and insert it as new data. Usually the key had been
completely destroyed (like with a string) so it came out as keyed to blank
string. So in cases like that, all deleted keys would collapse into one deleted
key in the new hash table.
|
|
just too many cases where that was causing trouble. Now it seems like
everything is working correctly again.
|
|
wasn't in a namespace, and it was a little too generic. I like the idea of
putting all the parser exceptions under a new class called ParseException, but
well do it a little later.
|
|
clear function to Bu::Stack
|
|
|
|
|
|
unary operators now, such as negate and not, and it now handles functions.
Functions are actually implemented as unary operators at the moment, so they'll
only act on a single value, no commas :-P, but it would probably be pretty easy
to make it work on longer call lists. Although I do think that this will work
for pretty much all cases out there.
|
|
wasn't that happening before?
|
|
|
|
Bu::Socket::read will throw an exception if the socket has been closed. Also,
you'll get an exception at object creation if the socket could connect to a
computer, but not the given port.
|
|
lot of problems. This may require a little more research, but basically, you
can't just call them inline wherever you'd like. I managed to get it to work
by providing simple one line wrapper functions for each function we acquired as
a pointer. Crazy mess. Anyway, it should load the library just once now, and
Bu::Socket looks a little bit cleaner, but not a heck of a lot.
I also added some more docs and removed the author references.
|
|
all should, but they don't really haaave to.
|
|
one to a Calc and one to a Store. It takes ownership of the two objects, and
deletes them when it gets cleaned up.
|
|
Isn't that great?
|
|
statement clearer (good coding guide).
Made the Taf code getters report their own errors, so much nicer. They actually
tell you what was looked for from where and that it couldn't be found instead of
a horrible old Bu::HashException key not found error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addresses. Windows wouldn't work with the other way at all. But, fortunately,
this seems to work, it does more for us, and it looks pretty cute.
|
|
|
|
|
|
errno out of ::read for no apparent reason. Now it treats it as expected, it
just returns zero bytes read.
|
|
case that you'll never care about. It didn't fix the strange warning messages
though.
|
|
properly formed iterator. That caused a few problems. I think it's all set
now though.
|
|
implement in Bu::ItoServer, but I'll get to it. Basically you can trigger a
"tick" any time you want and it will propegate as an onTick event to all active
clients. You can also have these generated automatically everytime the system
passes through a polling cycle. In this case, you should never ever write
data to the socket every tick. It will cause your program to go bursurk.
|
|
just aweful!
Well, he's not forgotten now.
|
|
|
|
have been. Also made the Unit tests actually use expected values, so you can
mark a test as "expected fail" and it'll know. It also prints out cute reports
at the end of each run.
|
|
files. This won't affect any programs at all anywhere. This will just make it
easier to maintain and extend later. You still want to include "bu/fstring.h"
and use Bu::FString in code.
The other is kinda fun. I created a special format for unit tests, they use the
extension .unit now and use the mkunit.sh script to convert them to c++ code.
There are some nice features here too, maintaining unit tests is much, much
easier, and we can have more features without making the code any harder to use.
Also, it will be easier to have the unit tests generate reports and be run from
a master program and the like.
|
|
me, is much less messy, and makes the syntax work a little better for me as
well. What the hell was a CPtr? Who knows, but a Cache::Ptr, that makes sense.
Also, fewer includes to deal with now, just need Cache and you're set.
Oh, also, made Cache::Ptr behave much more like a regular pointer, they can be
assigned now, as well as created empty (NULL).
|
|
size of the table, it had to do with using non pointer types for the key (some
more complex types worked as well, probably because of lazy memory collection)
and then using the [] indexing operators. You wound up with pointers to local
variables that didn't exist by the end of the assignemnt operator.
Strange, but I didn't actually use references inside of all of the Bu::Hash
accessor functions, that means in cases where more complex variables are used
as keys (like Bu::FString) it was making several copies of them per operation
and destroying them all immediately. Now it will be even faster and use much
less memory.
Good catch, David.
|
|
("insert3")... with a hash of type Bu::Hash<int, Bu::FString>, when the size of the hash reaches certain points (11, 23, 46, 94, etc...), it seems to reset itself and not have any data in it...
|
|
out and allocating all memory, now it just throws an exception.
|
|
adding a property to a group that had a name but an empty value.
Also added a isEmpty() function to Bu::FString, finally.
|
|
|
|
in the deconstructors. When you deleted a server it wouldn't close it's
sockets. We never noticed because servers normally last the entire lifetime
of the program they're in.
|
|
that we need a concatination operator for both const chr * and chr *. This
fixed a suprising number of problems.
|
|
added some more tests and whatnot. A lot happened, but I can't remember
everything.
Also, Bu::File reports errors in more error cases.
|
|
Bu::CacheCalc still needs to reference the Bu::Cache so that it can make the
changes it needs to.
|
|
binary data much better, actually escaping it properly and not stopping on null.
Bu::FString has an iterator, it's actually just a raw datatype, but it may have
more function later, so careful assuming that it's a char and using it in any
non-iterator like way.
Also augmented the taf unit test, and added the Bu::CacheCalc base class, the
rest of the simple develpment cycle will happen between here and project hhp.
|
|
|
|
it was off two characters on the first line for error reporting.
|
|
keytypes. It doesn't yet use the stackable CacheStore concept, but the code
is all in place to make it easy to switch to. There also needs to be some more
accounting code in place, so that we can actually use the Schedulers, whatever
they happen to be called in the future.
A whacky side note, it turns out that we totally need to ensure an object is
loaded from the cache in order to delete it, we can't ensure that any
references to other objects that are in the cache will be loaded otherwise.
|
|
can be hashed. And we're about to test actually loading and saving persistant
cache items. Fun.
|
|
do a few more tests, and hopefully get something loading/saving.
|
|
|
|
tests to test it
|