docs / stdlib

Stdlib index
  1. Overview
  1. Captured-borrow migration worklist (3.3.3)
  2. Owned-bind migration worklist (8.2.7)
  3. Return-side title audit — the ride-through enumeration
  4. stdlib ownership audit
  5. stdlib ownership dispositions (plan 1.3.1 / 4.3.1)

codec

  1. Base64

codec / csv

  1. Csv

codec / json

  1. Json

collection

  1. ArrayList
  2. BPlusTree
  3. Cache
  4. Collectors
  5. HashMap
  6. HashSet
  7. Heap
  8. ImmutableList
  9. ImmutableMap
  10. ImmutableSet
  11. LinkedList
  12. RedBlackTree
  13. Sort

collection / ltm

  1. LtmBPlusTree

concurrent

  1. AtomicInt32
  2. AtomicInt64
  3. Channel
  4. FiberLocal
  5. Lock
  6. Mutex
  7. RwLock
  8. Semaphore
  9. Tasks

error

  1. Exception
  2. NoOptionalValueException
  3. RecoverableException
  4. Throwable
  5. UnrecoverableException

gfx

  1. Sampler
  2. Texture2D

hash

  1. Blake3
  2. DefaultHasher
  3. Hash
  4. MD5
  5. Sha1
  6. Sha256
  7. SipHash
  8. XXHash3

ifx

  1. BackendRegistry
  2. Window

io

  1. Buffer

io / file

  1. File
  2. FileInfo
  3. FileReader
  4. FileWriter
  5. Path
  6. Watcher

io / net

  1. IpAddress
  2. Server
  3. ServerBuilder
  4. SocketAddress
  5. TcpListener
  6. TcpStream
  7. UdpSocket

io / net / dns

  1. Dns

io / net / tls

  1. TlsConnection
  2. TlsListener

io / net / uri

  1. Uri
  2. UriBuilder

lang

  1. Guid
  2. Math
  3. Optional
  4. Pair
  5. Slice
  6. String
  7. StringBuilder

lang / stream

  1. ArrayStream
  2. Stream

math

  1. Camera
  2. Color
  3. DType
  4. Ray
  5. Rotation
  6. Tensor
  7. Transform

math / fft

  1. Fft

math / linalg

  1. LinAlg

math / npio

  1. Npy

math / poly

  1. Poly

math / random

  1. Generator

math / stats

  1. Stats

nucleo

  1. Columns — the Arrow-laid-out substrate
  2. Fused tensor expressions — Fuse
  3. Table — the lazy, typed dataframe
  4. Tape — define-by-run autograd
  5. Transform intrinsics — Grad, Vmap, Jit

process

  1. Command
  2. Process

reflect

  1. Class

search / distance

  1. Distance

search / fuzzy

  1. Matcher

search / ngram

  1. Index

session

  1. PackageInstallException
  2. Packages

time

  1. Clock
  2. DateTimeFormatter
  3. Duration
  4. Instant
  5. LocalDate
  6. LocalDateTime
  7. LocalTime
  8. Period
  9. ZonedDateTime
  10. ZoneId
  11. ZoneOffset

wire

  1. Compressor
  2. Decompressor
  3. Encoder
  4. Schema
  5. SchemaEncoder

xpu

  1. Device
  2. KernelBuffer
  3. KernelStream

xpu / mesh

  1. MeshSimplifier

Captured-borrow migration worklist (3.3.3)

30 distinct capture sites across 25 methods in 25 classes.

Generated by tools/ownership/report_captured_borrows.py from a CAJETA_CAPTURED_BORROW=warn harvest. Each row is a plain (=) store of a borrowed parameter into a field or element — the callee keeping what the caller only lent.

The three sanctioned fixes, in the order to try them:

  1. #T on the parameter — the API really does keep the value, so say so and make every call site surrender it.
  2. #= on the store — the type is a SINK whose caller chooses per call (the ArrayList.add model, spec §2.3). No signature change; the store form is the opt-out.
  3. copy — the API keeps a value it was only shown.

Coverage

Only what these builds compiled. A class no build reached is a class nobody measured — not a class with no captures.

  • build/captured-borrow-harvest/cajeta-codec.stderr
  • build/captured-borrow-harvest/cajeta-http.stderr
  • build/captured-borrow-harvest/cajeta-logging.stderr
  • build/captured-borrow-harvest/cajeta-ml.stderr
  • build/captured-borrow-harvest/cajeta-timeseries.stderr

Sites

dev.cajeta.ml.io.Unpickler — 4

methodlineparameterintotype
Unpickler57rawfield rawint8[]
Unpickler60entryNamesfield entryNamescajeta.collection.ArrayList
Unpickler61entryOffsetsfield entryOffsetscajeta.collection.ArrayList
Unpickler62entrySizesfield entrySizescajeta.collection.ArrayList

dev.cajeta.http.body.GzipCompressChannel — 2

methodlineparameterintotype
GzipCompressChannel44srcfield srccajeta.io.net.AsyncReader
GzipCompressChannel58srcfield srccajeta.io.net.AsyncReader

dev.cajeta.ml.data.Batches — 2

methodlineparameterintotype
Batches46xfield xcajeta.math.Tensor
Batches47yfield ycajeta.math.Tensor

cajeta.math.TensorProtocol — 1

methodlineparameterintotype
TensorProtocol51basefield baseStorecajeta.lang.Object

cajeta.nucleo.frame.AggResult — 1

methodlineparameterintotype
setStr53velement of svcajeta.lang.String

cajeta.nucleo.frame.DynFrame — 1

methodlineparameterintotype
addIndexed83nameelement of indexedcajeta.lang.String

dev.cajeta.codec.avro.AvroContainer — 1

methodlineparameterintotype
AvroContainer36bfield bint8[]

dev.cajeta.codec.avro.AvroCursor — 1

methodlineparameterintotype
AvroCursor16bfield bint8[]

dev.cajeta.codec.compress.Deflate — 1

methodlineparameterintotype
Deflate39srcfield srcint8[]

dev.cajeta.codec.ion.IonCursor — 1

methodlineparameterintotype
IonCursor29bfield bint8[]

dev.cajeta.codec.ion.IonWriter — 1

methodlineparameterintotype
intern269nameelement of localscajeta.lang.String

dev.cajeta.codec.orc.OrcRleV2 — 1

methodlineparameterintotype
OrcRleV221srcfield srcint8[]

dev.cajeta.codec.parquet.ThriftCompactReader — 1

methodlineparameterintotype
ThriftCompactReader44bfield bint8[]

dev.cajeta.codec.protobuf.ProtobufCursor — 1

methodlineparameterintotype
ProtobufCursor21bfield bint8[]

dev.cajeta.http.body.BytesChannel — 1

methodlineparameterintotype
BytesChannel27datafield dataint8[]

dev.cajeta.http.h2.HpackReader — 1

methodlineparameterintotype
HpackReader22buffield bufint8[]

dev.cajeta.http.h2.Http2Connection — 1

methodlineparameterintotype
Http2Connection70readerfield readercajeta.io.net.AsyncReader

dev.cajeta.http.h2.Http2FrameReader — 1

methodlineparameterintotype
Http2FrameReader31buffield bufint8[]

dev.cajeta.http.h2.Http2WriteSide — 1

methodlineparameterintotype
Http2WriteSide38writerfield writercajeta.io.net.AsyncWriter

dev.cajeta.http.server.HttpServerBuilder — 1

methodlineparameterintotype
model1748modelfield modelcajeta.io.net.ServerModel

dev.cajeta.http.server.RequestBodyChannel — 1

methodlineparameterintotype
RequestBodyChannel29streamfield streamdev.cajeta.http.server.RequestBodyStream

dev.cajeta.http.server.RequestBodyStream — 1

methodlineparameterintotype
RequestBodyStream101readerfield readercajeta.io.net.AsyncReader

dev.cajeta.http.server.ResponseBodyWriter — 1

methodlineparameterintotype
ResponseBodyWriter72writerfield writercajeta.io.net.AsyncWriter

dev.cajeta.http.ws.WebSocketConnection — 1

methodlineparameterintotype
WebSocketConnection21wsfield wsdev.cajeta.http.ws.WebSocket

dev.cajeta.ml.train.BackpropTrainer — 1

methodlineparameterintotype
BackpropTrainer49netfield netdev.cajeta.ml.nn.Module

Source: docs/stdlib/captured-borrow-worklist.md · 5 min read · 1171 words