Date | Commit message (Collapse) |
|
Added siphash24 and some murmur3 variants as option. Many internal
updates and compatibility fixes for future Ruby versions. License is
now LGPLv2.1+ (from LGPLv3+) for compatibility with GPLv2-only software.
See "git log" for full details.
|
|
It's been a while since 1.9.2
|
|
LGPLv3+ is not compatible with GPLv2-only, unfortunately,
there are still many GPLv2-only packages around.
|
|
|
|
st.h should probably not be part of the public Ruby API,
and it may well be removed one day (I would support it).
|
|
Not sure if it's an rbx implementation difference or not,
but initialize is obviously wrapped and probably(?) private
depending on the version/implemntation of Ruby...
|
|
It's the preferred hash function nowadays by Ruby itself, so it
probably makes sense to add it
|
|
It'll be OK to use rb_thread_call_without_gvl when
rb_thread_blocking_region is not detectable at all.
We still use rb_thread_blocking_region for Ruby 2.0-2.1 because
rb_thread_call_without_gvl was detectable in 1.9.3, but not
usable as an internal symbol.
ref: https://bugs.ruby-lang.org/issues/9502
|
|
|
|
force inline didn't work for non-static functions (probably without
extern), and we didn't need non-static functions in those cases
anyways, so just use static inline and trust the compiler to do
its thing.
|
|
RAA is dead.
|
|
We don't want path names silently truncated when passed to
the C API.
|
|
This is where our built objects go
|
|
This is faster for larger keys on x86_64
|
|
|
|
It's common to a bunch of other Ruby/C extensions I maintain..
|
|
Just in case something was horribly wrong in my C++ -> C
ports.
|
|
It should be slightly faster than murmur2
|
|
Just in case...
|
|
bogomips.org went on a URL diet
|
|
|
|
Eric Wong (5):
doc: add HACKING document
switch site to wrongdoc
test_tdb: fix and expand the repack test
fetch and delete may be passed destination buffer
multithreaded TDB is dangerous, discourage it
|
|
Lets just avoid threads for now :) The torture test
still fails and there doesn't appear to be a good way to
fix it without upstream supporting it.
|
|
This allows apps to reduce GC thrashing by reusing
a string buffer.
|
|
We can't repack an in-memory DB, only files
|
|
No more JavaScript! Down with JavaScript! \o/
|
|
It was referenced in the README and not included for some
reason.
|
|
There are attempts at improving thread-safety, but
still tread carefully since it's not ideal as upstream
does not yet support it.
|
|
Just in case it wasn't long enough to expose any issues
or crash the system.
|
|
TDB objects aren't created often, so this shouldn't
be noticeable, and there's no other way if any notion
of thread-safety is desired.
|
|
Too tricky to support, for now.
|
|
It's nice to have common hash functions available...
|
|
Might as well enable it to help people
browse code.
|
|
There is now basic thread-safety for Ruby 1.9 users
that can be enabled by passing :threadsafe => true
to TDB.new
MRI 1.8 users do not need thread-safety as native threads
are not used.
|
|
Oops.
|
|
TDB#clear maps to tdb_wipe_all and TDB#repack maps
to TDB#repack.
|
|
One limitation that's easy to work around, for now.
|
|
Thread-safety is useful sometimes and needless overhead
otherwise. Default to whatever TDB upstream defaults to.
|
|
Hopefully upstream fixes this soon for everyone else.
|
|
This appears to be needed on x86 Debian Lenny but not x86_64
|
|
We're not perfect, so don't raise expectations too high!
|
|
We still need a lot of work in this area, but this is better
than nothing.
|
|
1.9.2 does not like this.
|
|
|
|
|