% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/kernel_registry.R
\name{register_kernel}
\alias{register_kernel}
\title{Register a shard kernel}
\usage{
register_kernel(
  name,
  impl,
  signature = NULL,
  footprint = NULL,
  supports_views = TRUE,
  description = NULL
)
}
\arguments{
\item{name}{Kernel name (string).}

\item{impl}{Function implementing the kernel. It must accept the shard
descriptor as its first argument.}

\item{signature}{Optional short signature string for documentation.}

\item{footprint}{Optional footprint hint. Either a constant (bytes) or a
function \verb{(shard, ...) -> list(class='tiny'|'medium'|'huge', bytes=...)}.}

\item{supports_views}{Logical. Whether the kernel is intended to operate on
shard views without slice materialization.}

\item{description}{Optional human-readable description.}
}
\value{
Invisibly, the registered kernel metadata.
}
\description{
Registers a named kernel implementation that can be selected by
\code{shard_map(..., kernel = "name")}.
}
\details{
A "kernel" is just a function that shard_map can call for each shard. The
registry lets shard_map attach additional metadata (footprint hints,
supports_views) for scheduling/autotuning.
}
\examples{
list_kernels()
}
