Releases: capnproto/go-capnp
Releases · capnproto/go-capnp
v3.1.0-alpha.2
What's Changed
- Fix address-instability in MultiSegmentArena by storing *Segment and validating via (id, arena storage) by @saikocat in #607
New Contributors
Full Changelog: v3.1.0-alpha.1...v3.1.0-alpha.2
v3.1.0-alpha.1
What's Changed
- rpc: Start fixing TestPromiseOrdering by @matheusd in #579
- message: Fix benchmark read reuse test by @matheusd in #580
- bbr: Fix test flakes by @matheusd in #578
- Add workarounds to TestPromiseOrder by @matheusd in #582
- integration: Benchmark with/without release by @matheusd in #585
- transport: Fix double release instances of {in,out}goingMsg by @matheusd in #583
- CI: Reduce number of test runs of rpc by @matheusd in #584
- Some test and general fixes by @matheusd in #588
- Allow using the packed transport in rpc.Serve by @fpetkovski in #590
- capnp: Refactor Arenas by @matheusd in #586
- Simplify TestCanonicalize by @matheusd in #589
- chore: bump go version in CI to 1.23 by @cmackenzie1 in #587
- 3PH part 1: Prepare for 3PH support by @Semisol in #594
- Provide an option to specify base context for RPC connection by @homier in #595
- multi: Make NewMessage() usable for creating messages for reading by @matheusd in #591
- Fix failing tests and test network by @Semisol in #596
- Add a test for all-zero stream decoding by @Semisol in #599
- MultiSegmentArena: Fix release back into bufferpool by @matheusd in #598
- bufferpool: Improve performance by @matheusd in #603
- Test RPC server external context cancellation by @homier in #601
- Fix broken AnswerQueue behavior with chained pipeline calls by @ObsidianMinor in #605
New Contributors
- @fpetkovski made their first contribution in #590
- @Semisol made their first contribution in #594
- @homier made their first contribution in #595
- @ObsidianMinor made their first contribution in #605
Full Changelog: v3.0.1-alpha.2...v3.1.0-alpha.1
v3.0.1-alpha.2
What's Changed
- example: fix
hashesexample by @cmackenzie1 in #568 - chore: upgrade all dependencies by @cmackenzie1 in #569
- ci: update github actions to latest versions by @cmackenzie1 in #567
- message: Fix reuse of first segment by @matheusd in #556
- Fix build error on go1.23rc1 by @saschagrunert in #576
New Contributors
- @cmackenzie1 made their first contribution in #568
- @saschagrunert made their first contribution in #576
Full Changelog: v3.0.1-alpha.1...v3.0.1-alpha.2
v3.0.1-alpha.1
What's Changed
- When examining annotations, check the value's tag. by @zenhack in #109
- sendCap: check for nil exports table/entries by @zenhack in #113
- V3 sender promise workaround by @zenhack in #114
- Don't panic when Payload is null. by @zenhack in #157
- Add a missing format argument by @zenhack in #164
- Fix some breakage in the regen.sh script. by @zenhack in #162
- Typed refcounting by @zenhack in #163
- Add option to use packed encoding in rpc.StreamTransport. by @lthibault in #161
- Update README.md for v3 by @lthibault in #170
- Add go module & set import path to capnproto.org/go/capnp/v3 by @lthibault in #169
- Added minor installation note regarding 'GO111MODULE' by @taufik-rama in #179
- Update the bundled schema to those included with capnp-c++ 0.9 by @zenhack in #181
- Fix issues that cause linters to complain. by @lthibault in #182
- CI: run agains Go 1.17 by @zenhack in #183
- Remove old build tags by @lthibault in #184
- Fix unsafe use of reflect.StringHeader/SliceHeader. by @lthibault in #186
- Add new internal/mpsc package. by @zenhack in #191
- Improve error handling in RPC package by @lthibault in #187
- Add infalliable variants of NewMessage() by @zenhack in #195
- Fix a bug where we were calling annotate() on the wrong error. by @zenhack in #197
- Minor formatting change in comment by @zenhack in #202
- Flow control by @zenhack in #198
- Cleanup: Stop passing around a superfluous []ClientState by @zenhack in #207
- Simplify how we determine whether to embargo by @zenhack in #212
- Add some helpers for acquiring locks by @zenhack in #210
- Expose pipelineClient & do something useful with its .Brand() by @zenhack in #211
- Support arbitrary client metadata, avoid linear seach in sendCap. by @zenhack in #208
- Handle incoming
receiverAnswercap descriptors. by @zenhack in #209 - Error client: return the error via Brand() by @zenhack in #215
- Add me & Louis to FUNDING.yml by @zenhack in #217
- Transport: don't require clearing the cap table. by @zenhack in #219
- sendCap: emit receiverAnswer when appropriate. by @zenhack in #213
- Support canonicalizing interface pointers. by @zenhack in #220
- Creating example directory with books and hashes examples from wiki by @frumioj in #204
- Get rid of server.Policy.AnswerQueueSize. by @zenhack in #222
- Replace getClosedSignal() with global closed channel. by @lthibault in #223
- Use generics for mpsc by @zenhack in #226
- Remove unused contextImport constant. by @zenhack in #227
- Use generics for list types. by @zenhack in #229
- Bugfix/unbounded send queue by @lthibault in #224
- Use the embed package to do less in mktemplates. by @zenhack in #228
- Don't block when queuing methods on *Server. by @zenhack in #225
- Fix linter warning due to discarded CancelFunc in mpsc_test by @lthibault in #230
- Lintfix. Explicitly assign value to
Listfield inStructList. by @lthibault in #231 - Refactor readlimit_test.go to appease CI. by @lthibault in #233
- Fix compilation error and test on intel 32-bit by @Matherunner in #234
- Fix typo in comment. by @zenhack in #237
- Represent :Capability type as *capnp.Client. by @lthibault in #232
- flowcontrol.fixedLimiter: Swap in semaphore.Weighted. by @zenhack in #238
- Fix moar deadlocks by @zenhack in #243
- Get rid of unnecessary interface{ ... }. by @zenhack in #246
- Add typed wrapper for lists of capabilities. by @zenhack in #247
- Move Transport into its own package, and export transport.NewPipe by @zenhack in #252
- Remove Promise.Join() by @zenhack in #255
- Fix broken implemenation of .Ack() by @zenhack in #254
- Move
packedout of internal. by @zenhack in #258 - Bugfix: don't wrap nil error with fmt.Errorf. by @lthibault in #262
- Export concrete arena types. by @lthibault in #263
- Return error from generator.defineInterface by @lthibault in #264
- Implement io.WriterTo for Message by @lthibault in #266
- Assorted clean-up tasks by @lthibault in #265
- Fix race conditions due to zero-copy semantics of pipe transport. by @lthibault in #261
- Remove redundant call to setAnswerQuestion by @zenhack in #250
- Client: hide pointer indirection. by @zenhack in #260
- Bugfix/nil exc check fails by @lthibault in #268
- Defend against nil-pointer panics in question.release by @lthibault in #269
- Don't mention now-deleted Promise.Join() method by @zenhack in #270
- Remove server.Policy. by @lthibault in #273
- Embed capnp.Client in generated interface types. by @zenhack in #276
- First steps towards generics by @zenhack in #274
- Remove pointless indirection in templates. by @zenhack in #277
- Clean up formatting, inefassign and misspellings. by @lthibault in #281
- Kill the struct wrapper around Client by @zenhack in #279
- Remove a couple uses of the *_List type aliases. by @zenhack in #278
- Run gofmt by @zenhack in #282
- Kill the struct wrapper around generated Struct types. by @zenhack in #283
- Get rid of the struct wrappers around list types. by @zenhack in #284
- Add client methods to interfaceClient template by @lthibault in #285
- Add IsValid method to list types. by @lthibault in #287
- Fix 271 by @zenhack in #288
- .gitignore: ignore test coverage profiles by @zenhack in #290
- Add a .Release() method to FlowLimiter. by @zenhack in #291
- Export mpsc by @lthibault in #293
- Clean up import rendering in codegen. by @lthibault in #286
- Simplify packed encoder. by @lthibault in #295
- Import docs from the wiki into a docs/ directory. by @zenhack in #300
- Update Working-with-Cap'n-Proto-Types.md by @TheApeMachine in #302
- Reject pipelined calls when PlaceArgs returns an error. by @lthibault in #303
- Fix incorrect docs for Client.Release(). by @zenhack in #313
- Fix error message in panic. by @zenhack in #312
- Get rid of an unnecessary slice in Promise. by @zenhack in #310
- Delete clearCapTable() by @zenhack in #309
- Clarify comments by @zenhack in #308
- Fix deadlock by @zenhack in #316
- call messages: let th...
v3.0.0-alpha.30
What's Changed
- When examining annotations, check the value's tag. by @zenhack in #109
- sendCap: check for nil exports table/entries by @zenhack in #113
- V3 sender promise workaround by @zenhack in #114
- Don't panic when Payload is null. by @zenhack in #157
- Add a missing format argument by @zenhack in #164
- Fix some breakage in the regen.sh script. by @zenhack in #162
- Typed refcounting by @zenhack in #163
- Add option to use packed encoding in rpc.StreamTransport. by @lthibault in #161
- Update README.md for v3 by @lthibault in #170
- Add go module & set import path to capnproto.org/go/capnp/v3 by @lthibault in #169
- Added minor installation note regarding 'GO111MODULE' by @taufik-rama in #179
- Update the bundled schema to those included with capnp-c++ 0.9 by @zenhack in #181
- Fix issues that cause linters to complain. by @lthibault in #182
- CI: run agains Go 1.17 by @zenhack in #183
- Remove old build tags by @lthibault in #184
- Fix unsafe use of reflect.StringHeader/SliceHeader. by @lthibault in #186
- Add new internal/mpsc package. by @zenhack in #191
- Improve error handling in RPC package by @lthibault in #187
- Add infalliable variants of NewMessage() by @zenhack in #195
- Fix a bug where we were calling annotate() on the wrong error. by @zenhack in #197
- Minor formatting change in comment by @zenhack in #202
- Flow control by @zenhack in #198
- Cleanup: Stop passing around a superfluous []ClientState by @zenhack in #207
- Simplify how we determine whether to embargo by @zenhack in #212
- Add some helpers for acquiring locks by @zenhack in #210
- Expose pipelineClient & do something useful with its .Brand() by @zenhack in #211
- Support arbitrary client metadata, avoid linear seach in sendCap. by @zenhack in #208
- Handle incoming
receiverAnswercap descriptors. by @zenhack in #209 - Error client: return the error via Brand() by @zenhack in #215
- Add me & Louis to FUNDING.yml by @zenhack in #217
- Transport: don't require clearing the cap table. by @zenhack in #219
- sendCap: emit receiverAnswer when appropriate. by @zenhack in #213
- Support canonicalizing interface pointers. by @zenhack in #220
- Creating example directory with books and hashes examples from wiki by @frumioj in #204
- Get rid of server.Policy.AnswerQueueSize. by @zenhack in #222
- Replace getClosedSignal() with global closed channel. by @lthibault in #223
- Use generics for mpsc by @zenhack in #226
- Remove unused contextImport constant. by @zenhack in #227
- Use generics for list types. by @zenhack in #229
- Bugfix/unbounded send queue by @lthibault in #224
- Use the embed package to do less in mktemplates. by @zenhack in #228
- Don't block when queuing methods on *Server. by @zenhack in #225
- Fix linter warning due to discarded CancelFunc in mpsc_test by @lthibault in #230
- Lintfix. Explicitly assign value to
Listfield inStructList. by @lthibault in #231 - Refactor readlimit_test.go to appease CI. by @lthibault in #233
- Fix compilation error and test on intel 32-bit by @Matherunner in #234
- Fix typo in comment. by @zenhack in #237
- Represent :Capability type as *capnp.Client. by @lthibault in #232
- flowcontrol.fixedLimiter: Swap in semaphore.Weighted. by @zenhack in #238
- Fix moar deadlocks by @zenhack in #243
- Get rid of unnecessary interface{ ... }. by @zenhack in #246
- Add typed wrapper for lists of capabilities. by @zenhack in #247
- Move Transport into its own package, and export transport.NewPipe by @zenhack in #252
- Remove Promise.Join() by @zenhack in #255
- Fix broken implemenation of .Ack() by @zenhack in #254
- Move
packedout of internal. by @zenhack in #258 - Bugfix: don't wrap nil error with fmt.Errorf. by @lthibault in #262
- Export concrete arena types. by @lthibault in #263
- Return error from generator.defineInterface by @lthibault in #264
- Implement io.WriterTo for Message by @lthibault in #266
- Assorted clean-up tasks by @lthibault in #265
- Fix race conditions due to zero-copy semantics of pipe transport. by @lthibault in #261
- Remove redundant call to setAnswerQuestion by @zenhack in #250
- Client: hide pointer indirection. by @zenhack in #260
- Bugfix/nil exc check fails by @lthibault in #268
- Defend against nil-pointer panics in question.release by @lthibault in #269
- Don't mention now-deleted Promise.Join() method by @zenhack in #270
- Remove server.Policy. by @lthibault in #273
- Embed capnp.Client in generated interface types. by @zenhack in #276
- First steps towards generics by @zenhack in #274
- Remove pointless indirection in templates. by @zenhack in #277
- Clean up formatting, inefassign and misspellings. by @lthibault in #281
- Kill the struct wrapper around Client by @zenhack in #279
- Remove a couple uses of the *_List type aliases. by @zenhack in #278
- Run gofmt by @zenhack in #282
- Kill the struct wrapper around generated Struct types. by @zenhack in #283
- Get rid of the struct wrappers around list types. by @zenhack in #284
- Add client methods to interfaceClient template by @lthibault in #285
- Add IsValid method to list types. by @lthibault in #287
- Fix 271 by @zenhack in #288
- .gitignore: ignore test coverage profiles by @zenhack in #290
- Add a .Release() method to FlowLimiter. by @zenhack in #291
- Export mpsc by @lthibault in #293
- Clean up import rendering in codegen. by @lthibault in #286
- Simplify packed encoder. by @lthibault in #295
- Import docs from the wiki into a docs/ directory. by @zenhack in #300
- Update Working-with-Cap'n-Proto-Types.md by @TheApeMachine in #302
- Reject pipelined calls when PlaceArgs returns an error. by @lthibault in #303
- Fix incorrect docs for Client.Release(). by @zenhack in #313
- Fix error message in panic. by @zenhack in #312
- Get rid of an unnecessary slice in Promise. by @zenhack in #310
- Delete clearCapTable() by @zenhack in #309
- Clarify comments by @zenhack in #308
- Fix deadlock by @zenhack in #316
- call messages: let th...
v2.18.0
v2.17.4
v2.17.2
v2.17.1
v2.17.0
- Add
capnp.Canonicalizefunction that implements the canonicalization algorithm. (#92) - Zero-sized struct pointers are now written with an offset of -1 to distinguish them from a null pointer. (#92)
- Better support for alternate
Arenaimplementations- Document
Arenacontract in more detail - Permit an
Arenato have a single empty segment inNewMessage
- Document
Arenaallocation optimizations: bothSingleSegmentandMultiSegmentnow gradually ramp up the amount of space allocated in a single allocation as the message grows. This is similar to how built-in Goappendfunction works. Workloads with medium to large messages should expect a decrease in number of allocations, while small message workloads should remain about the same. Please file an issue if you encounter any performance regressions. (#96)- Fix double-far pointer logic. (#97) This is a long-standing bug with reading and writing multi-segment messages. I've added broader test coverage for multi-segment messages and far pointers, so it's unlikely that such a failure will persist in the future.
- Accessing a field in a union when that field is not the one set now results in a panic. (#56) This is intended to help uncover programming mistakes where a union field is accessed without checking
Which(). Prior to this change, unset union field accessors would silently return garbage. Struct.Address()andList.Address()are now deprecated. Especially forList, where the address is at the beginning of the data, not the composite literal, the return value is not well-defined and its not clear how to use it. Usecapnp.SamePtrif you need to check for pointer reference equality. File an issue if you're usingAddress()for something else.