Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 4 additions & 16 deletions villagesql/sdk/API_ABI.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,40 +149,28 @@ more.
receive the buffer from the extension. Instead if it were typed as a char*,
the extension can just write the pointer to the struct.

### 1. Provide idiomatic C++ builders/signatures

Currently a large number of the builders take only functions with signatures
based on the C ABI:

- `encode()`
- `decode()`
- `compare()`
- `hash()`
- `prerun()`
- `postrun()`

### 2. Remove old ABI style calls
### 1. Remove old ABI style calls

The original calling convention exposed `vef_*_t*` argument types to VDF
functions. This ABI-era pattern leaked into the API surface and is still
supported by `func_builder.h`. Using it couples extension code directly to ABI
types.


### 3. Drop support for protocol v1
### 2. Drop support for protocol v1

There is very little usage of v1, and we expect the ABI and API to continue to
evolve before Beta. Because of this we expect the cost of supporting v1 will
outweigh the benefit of maintaining it. Sufficient notice will be given to
extension authors.


### 4. Controls to prevent ABI breakages
### 3. Controls to prevent ABI breakages

Add presubmit checks to warn contributors if they have broken ABI compatibility.


### 5. Compatibility testing with extensions in other repos
### 4. Compatibility testing with extensions in other repos

As part of the release process we should test server binaries with existing
extensions that are outside of the development repo.
6 changes: 0 additions & 6 deletions villagesql/sdk/include/villagesql/vsql.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,6 @@
// int complex_compare(vsql::Span<const unsigned char> a,
// vsql::Span<const unsigned char> b);
//
// TODO(villagesql-beta): from_string now uses the typed CustomResult
// wrapper (see PARAMETERIZED TYPES). Migrate the other special VDF entry
// points (to_string, compare, hash, intrinsic_default) to use CustomArg /
// CustomArgWith<P> for inputs and the appropriate typed result wrappers for
// outputs, replacing the raw Span<...> / size_t* shape.
//
// // 2. Define the type as a constexpr object
// static constexpr const char kComplexTypeName[] = "COMPLEX";
// constexpr auto COMPLEX = make_type<kComplexTypeName>()
Expand Down
Loading