Added Database immediate-commit wrappers for Get, GetKey, GetRange, GetRangeSelector, GetRangeStartsWith, Set, Clear, ClearRange, ClearRangeStartsWith, GetAndWatch, SetAndWatch, ClearAndWatch
Added Database immediate-commit wrappers for generated atomic operations in the translator, updated generated.go with new output
GetSliceWithError of RangeResult was not checking the internal iterator for errors after Advance (normally this error would be checked by the iterator, but we're poking its internals in this function)
tuple was moved into a package underneath fdb (not sure how I feel about this yet)
Added FutureVersion type, along with GetReadVersion to ReadTransaction interface, Transaction and Snapshot
Added semi-working stacktester implementation for testing the correctness of this FDB binding. It is correct for the scripted test but still has (depending on seed) somewhere between zero and a handful of divergences from our other bindings. Will track it down tomorrow when I'm back in the office.
Added method to construct fdb.Error from int code (only needed for stacktester, yuck)
The channel used internally for blocking on a future until ready was not buffered, which leads to an infrequent deadlock when a future becomes ready after the call to fdb_future_is_ready but before the set_callback call, causing the callback to be invoked on the stack. The attempt to signal the channel then occurs before the read from the channel, which when unbuffered is a deadlock.