Stdlib index
- Captured-borrow migration worklist (3.3.3)
- Owned-bind migration worklist (8.2.7)
- Return-side title audit — the ride-through enumeration
- stdlib ownership audit
- stdlib ownership dispositions (plan 1.3.1 / 4.3.1)
codec
codec / csv
codec / json
collection
- ArrayList
- BPlusTree
- Cache
- Collectors
- HashMap
- HashSet
- Heap
- ImmutableList
- ImmutableMap
- ImmutableSet
- LinkedList
- RedBlackTree
- Sort
collection / ltm
concurrent
error
gfx
hash
ifx
io
io / file
io / net
io / net / dns
io / net / tls
io / net / uri
lang
lang / stream
math
math / fft
math / linalg
math / npio
math / poly
math / random
math / stats
nucleo
- Columns — the Arrow-laid-out substrate
- Fused tensor expressions — Fuse
- Table — the lazy, typed dataframe
- Tape — define-by-run autograd
- Transform intrinsics — Grad, Vmap, Jit
process
reflect
search / distance
search / fuzzy
search / ngram
session
time
- Clock
- DateTimeFormatter
- Duration
- Instant
- LocalDate
- LocalDateTime
- LocalTime
- Period
- ZonedDateTime
- ZoneId
- ZoneOffset
wire
xpu
xpu / mesh
Return-side title audit — the ride-through enumeration
Generated by tools/ownership/report_return_titles.py from a build
run with CAJETA_AUDIT_RETURN_TITLES=1. Plan item 8.1.1; see
specs/stdlib-ownership-convention-spec.md.
The numbers are the COMPILER’s decision at each return
(ReturnStatement::generateCode’s returnTitleFlag), not a
source-shape classification. Coverage is what the harvested builds
compiled: a method no build reached is a method nobody measured.
| Measure | Count |
|---|---|
| Plain-return, class-returning methods compiled | 424 |
| …of those, methods whose return can carry a title | 32 |
| Ride-through rate | 7.5% |
By mechanism
| Mechanism | Methods | What the caller sees |
|---|---|---|
call-ride | 31 | tail-calls a plain-return method; the decision is deferred one more frame (the fluent-builder chain) |
call-ride# | 2 | tail-calls a method that DECLARES #; a title rides out through a signature that says borrow — the viaPlain shape |
Coverage
One row per harvested build. Every build ran to completion, so the denominator above is a CENSUS of what these libraries compile — the only remaining coverage limit is stdlib methods no library reaches.
| Harvest | Plain returns seen | Title notes | Ran to completion |
|---|---|---|---|
cajeta-codec.stderr | 230 | 54 | yes |
cajeta-http.stderr | 388 | 66 | yes |
cajeta-logging.stderr | 246 | 58 | yes |
cajeta-ml.stderr | 616 | 123 | yes |
cajeta-timeseries.stderr | 535 | 103 | yes |
By package
| Package | Ride-through methods |
|---|---|
cajeta.codec.json | 5 |
cajeta.nucleo.frame | 1 |
cajeta.reflect | 1 |
dev.cajeta.codec.ion | 2 |
dev.cajeta.http.body | 3 |
dev.cajeta.http.client | 1 |
dev.cajeta.http.h2 | 2 |
dev.cajeta.http.sse | 1 |
dev.cajeta.http.ws | 4 |
dev.cajeta.logging | 1 |
dev.cajeta.ml.io | 4 |
dev.cajeta.ml.linear | 1 |
dev.cajeta.ml.nn | 3 |
dev.cajeta.ml.train | 2 |
dev.cajeta.ml.zoo | 1 |
Every site
One row per return. A generic method compiled against several
element types is ONE row — the instantiations agree on the stance,
and the extra return type is noted rather than repeated.
| Method | Line | Carry | Via | Returns |
|---|---|---|---|---|
cajeta.codec.json.JsonObject.get | 109 | runtime | call-ride | cajeta.codec.json.JsonValue |
cajeta.codec.json.JsonObject.get | 111 | runtime | call-ride | cajeta.codec.json.JsonValue |
cajeta.codec.json.JsonValue.setString | 227 | runtime | call-ride | cajeta.codec.json.JsonValue |
cajeta.codec.json.JsonValue.setString | 229 | runtime | call-ride | cajeta.codec.json.JsonValue |
cajeta.codec.json.JsonWriter.key | 307 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.key | 309 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.writeString | 275 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.writeString | 277 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.writeValue | 374 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.writeValue | 377 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.writeValue | 381 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.writeValue | 383 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.writeValue | 386 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.codec.json.JsonWriter.writeValue | 412 | runtime | call-ride | cajeta.codec.json.JsonWriter |
cajeta.nucleo.frame.SortKey.name | 98 | runtime | call-ride | cajeta.lang.String |
cajeta.nucleo.frame.SortKey.name | 99 | runtime | call-ride | cajeta.lang.String |
cajeta.nucleo.frame.SortKey.name | 100 | runtime | call-ride | cajeta.lang.String |
cajeta.reflect.TemplateArgument.getType | 67 | runtime | call-ride | cajeta.reflect.Class<?> |
dev.cajeta.codec.ion.IonCursor.readSymbol | 166 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.codec.ion.IonSymbolTable.resolve | 56 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.http.body.MultipartBody.addField | 167 | runtime | call-ride | dev.cajeta.http.body.MultipartBody |
dev.cajeta.http.body.MultipartBody.addFile | 174 | runtime | call-ride | dev.cajeta.http.body.MultipartBody |
dev.cajeta.http.body.MultipartPart.contentType | 148 | runtime | call-ride | dev.cajeta.http.MediaType |
dev.cajeta.http.client.ConnectionPool.lockedEntryFor | 176 | runtime | call-ride | dev.cajeta.http.client.OriginEntry |
dev.cajeta.http.h2.HpackDecoder.nameForIndex | 142 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.http.h2.HpackDecoder.nameForIndex | 146 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.http.h2.HpackDecoder.valueForIndex | 154 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.http.h2.HpackDecoder.valueForIndex | 158 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.http.sse.SseClient.lastEventId | 125 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.http.ws.WebSocket.peerCloseReason | 642 | runtime | call-ride | dev.cajeta.http.ws.WsCloseReason |
dev.cajeta.http.ws.WebSocketConnection.subprotocol | 43 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.http.ws.WsMessageAssembler.accept | 185 | runtime | call-ride | dev.cajeta.http.ws.WsMessage |
dev.cajeta.http.ws.WsMessageAssembler.accept | 216 | runtime | call-ride# | dev.cajeta.http.ws.WsMessage |
dev.cajeta.http.ws.WsMessageAssembler.finishMessage | 305 | runtime | call-ride# | dev.cajeta.http.ws.WsMessage |
dev.cajeta.logging.CapturingAppender.get | 31 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.ml.io.StateDict.get | 69 | runtime | call-ride | cajeta.math.Tensor<float32> |
dev.cajeta.ml.io.StateDict.nameAt | 39 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.ml.io.StateDict.valueAt | 43 | runtime | call-ride | cajeta.math.Tensor<float32> |
dev.cajeta.ml.io.Unpickler.topStr | 135 | runtime | call-ride | cajeta.lang.String |
dev.cajeta.ml.linear.Lasso.coef | 52 | runtime | call-ride | cajeta.math.Tensor<float64> |
dev.cajeta.ml.nn.LoraLinear.biasParam | 82 | runtime | call-ride | dev.cajeta.ml.nn.Parameter |
dev.cajeta.ml.nn.LoraLinear.weightParam | 78 | runtime | call-ride | dev.cajeta.ml.nn.Parameter |
dev.cajeta.ml.nn.Sequential.at | 35 | runtime | call-ride | dev.cajeta.ml.nn.Module |
dev.cajeta.ml.train.SpelaTrainer.classVectorsAt | 163 | runtime | call-ride | cajeta.math.Tensor<float32> |
dev.cajeta.ml.train.SpelaTrainer.layerAt | 156 | runtime | call-ride | dev.cajeta.ml.nn.Module |
dev.cajeta.ml.zoo.EncoderStack.blockAt | 44 | runtime | call-ride | dev.cajeta.ml.nn.Module |