PtcRunner.Lisp.Registry (PtcRunner v0.10.1)

Copy Markdown View Source

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

builtins_by_category(category)

@spec builtins_by_category(atom()) :: [atom()]

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

category_name(atom)

@spec category_name(atom()) :: String.t()

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"

clojure_core_audit()

@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

clojure_set_audit()

@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

clojure_string_audit()

@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

doc(name)

@spec doc(String.t()) :: map() | nil

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"

find_doc(pattern)

@spec find_doc(String.t()) :: [map()]

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

implemented()

@spec implemented() :: [map()]

Returns all implemented function entries.

Examples

iex> entries = PtcRunner.Lisp.Registry.implemented()
iex> is_list(entries) and length(entries) > 100
true

java_interop()

@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

java_math_audit()

@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