Single source of truth for PTC-Lisp function metadata.
Loads priv/functions.exs at compile time via @external_resource.
No runtime file I/O — recompiles automatically when the registry changes.
Usage
Registry.doc("filter")
#=> %{name: "filter", signatures: [...], ...}
Registry.builtins_by_category(:string)
#=> [:format, :name, :str, ...]
Registry.find_doc("sort")
#=> [%{name: "sort", ...}, %{name: "sort-by", ...}]See also: PtcRunner.Lisp.Env, PtcRunner.Lisp.Analyze
Summary
Functions
Returns env-dispatched builtin names for the given category.
Returns a human-readable name for a category.
Returns all clojure.core audit entries.
Returns all clojure.set audit entries.
Returns all clojure.string audit entries.
Looks up documentation for a function by exact name.
Searches functions by name, description, or section pattern.
Returns all implemented function entries.
Returns all Java interop entries.
Returns all java.lang.Math audit entries.
Functions
Returns env-dispatched builtin names for the given category.
Examples
iex> :join in PtcRunner.Lisp.Registry.builtins_by_category(:string)
true
iex> :set in PtcRunner.Lisp.Registry.builtins_by_category(:set)
true
Returns a human-readable name for a category.
Examples
iex> PtcRunner.Lisp.Registry.category_name(:string)
"String"
iex> PtcRunner.Lisp.Registry.category_name(:core)
"Core"
@spec clojure_core_audit() :: [map()]
Returns all clojure.core audit entries.
Examples
iex> entries = PtcRunner.Lisp.Registry.clojure_core_audit()
iex> is_list(entries) and length(entries) > 400
true
@spec clojure_set_audit() :: [map()]
Returns all clojure.set audit entries.
Examples
iex> entries = PtcRunner.Lisp.Registry.clojure_set_audit()
iex> is_list(entries) and length(entries) > 8
true
@spec clojure_string_audit() :: [map()]
Returns all clojure.string audit entries.
Examples
iex> entries = PtcRunner.Lisp.Registry.clojure_string_audit()
iex> is_list(entries) and length(entries) > 15
true
Looks up documentation for a function by exact name.
Handles namespace-qualified names (e.g., "LocalDate/parse" → "parse",
"System/currentTimeMillis" → "currentTimeMillis").
Examples
iex> entry = PtcRunner.Lisp.Registry.doc("filter")
iex> entry.name
"filter"
iex> entry = PtcRunner.Lisp.Registry.doc("LocalDate/parse")
iex> entry.name
"parse"
Searches functions by name, description, or section pattern.
Examples
iex> results = PtcRunner.Lisp.Registry.find_doc("sort")
iex> Enum.any?(results, & &1.name == "sort")
true
iex> results = PtcRunner.Lisp.Registry.find_doc("interop")
iex> Enum.all?(results, & &1.section == "Interop")
true
@spec implemented() :: [map()]
Returns all implemented function entries.
Examples
iex> entries = PtcRunner.Lisp.Registry.implemented()
iex> is_list(entries) and length(entries) > 100
true
@spec java_interop() :: [map()]
Returns all Java interop entries.
Examples
iex> entries = PtcRunner.Lisp.Registry.java_interop()
iex> is_list(entries) and length(entries) > 5
true
@spec java_math_audit() :: [map()]
Returns all java.lang.Math audit entries.
Examples
iex> entries = PtcRunner.Lisp.Registry.java_math_audit()
iex> is_list(entries) and length(entries) > 30
true