ludic/tools/docgen/inventory.json
Orkuncakilkaya ac1e8d157d
All checks were successful
docs / build-and-deploy (push) Successful in 2s
refactor(stdlib): consolidate System.* onto Os.*, retire duplicated members
`System.*` and the newer `Os.*` (added in #21) both covered the environment
around the game, with four members (`arg`, `arg_count`, `env`, `exit`) lowering
byte-for-byte identically and the standard streams overlapping in concern. That
is a user-facing ambiguity (`System.env` vs `Os.env` are indistinguishable) and
a drift hazard (two copy-pasted codegen paths).

Make `Os.*` the single canonical environment/process namespace and retire the
overlapping `System.*` members:

- Remove `System.{arg, arg_count, env, exit, stdout, stderr}` from the namespace
  dispatch (selfhost/emit_expr.ludic). Use `Os.arg`/`Os.arg_count`/`Os.env`/
  `Os.exit` and `Os.stdout_write`/`Os.stderr_write` instead.
- `System.*` now covers only its unique low-level surface: the raw file handles
  (`file_open/read/write/seek/tell/close`), `read_char`, and `run`.
- The bare `arg`/`exit`/`getenv`/`file_stdout`/`file_stderr` intrinsics stay —
  they are the primitive layer the self-hosted compiler itself uses; only the
  redundant *namespaced* sugar is gone.
- Docs: drop the six retired `docs/language/system/*` pages, retune the section
  blurb, update inventory.json and the LSP signature table.
- Secondary finding from the issue: cross-link `Text.upper`/`Text.lower`
  (ASCII-only) to `Unicode.upper`/`Unicode.lower` (full Unicode case mapping).

Reseeded; C-free bootstrap fixpoint holds. All suites green (56 test / 29
selfhost / 29 test-tools); docs cover every implemented feature (291 ns-methods).

Closes #40

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-30 22:54:28 +03:00

490 lines
8.5 KiB
JSON

{
"annotations": [
"annot-queries",
"annot-computed",
"annot-onstart",
"annot-onquit",
"annot-onspawn",
"annot-ondespawn",
"annot-onattach",
"annot-ondetach",
"annot-onenable",
"annot-ondisable",
"annot-on",
"annot-public",
"annot-handles",
"annot-export",
"annot-reads",
"annot-writes",
"annot-sync",
"annot-owned",
"annot-server",
"annot-predicted",
"annot-toserver",
"annot-toclients"
],
"builtins": [
"fn-print",
"fn-string",
"fn-quit",
"fn-save",
"fn-load",
"fn-len",
"fn-push",
"fn-min",
"fn-max",
"fn-abs",
"fn-clamp",
"fn-fixed",
"fn-floor",
"fn-bytes",
"fn-words",
"fn-ui_build",
"fn-arg_count",
"fn-arg",
"fn-exit",
"fn-run",
"fn-getenv",
"fn-read_char",
"fn-file_write",
"fn-file_stdout",
"fn-file_stderr"
],
"collision": [
"collision-rects",
"collision-point_rect",
"collision-circles",
"collision-rect_circle"
],
"color": [
"color-rgb",
"color-rgba",
"color-lerp",
"color-darken",
"color-lighten",
"color-with_alpha"
],
"control": [
"kw-if",
"kw-while",
"kw-for",
"kw-in",
"kw-match",
"kw-machine",
"kw-state",
"kw-become"
],
"ease": [
"ease-in",
"ease-out",
"ease-in_out",
"ease-back",
"ease-bounce"
],
"ecs": [
"kw-spawn",
"kw-despawn",
"kw-query",
"kw-self",
"kw-enable",
"kw-disable",
"kw-attach",
"kw-detach",
"fn-world_get",
"fn-world_set",
"fn-world_has",
"fn-world_count",
"fn-world_spawn",
"fn-world_size",
"fn-world_save",
"fn-world_load",
"fn-world_field_id",
"fn-world_prop_id",
"fn-world_model_id",
"fn-world_kind",
"fn-world_register_prop",
"fn-world_attach_dyn",
"fn-world_detach_dyn",
"fn-world_query_next"
],
"events": [
"kw-event",
"kw-emit",
"kw-cancel",
"kw-cancellable"
],
"input": [
"input-key"
],
"list": [
"list-len",
"list-push",
"list-clear",
"list-first",
"list-last",
"list-pop",
"list-swap",
"list-contains",
"list-index_of",
"list-reverse",
"list-insert",
"list-remove_at",
"list-remove",
"list-sort"
],
"map": [
"map-size",
"map-row",
"map-tile"
],
"math": [
"math-min",
"math-max",
"math-abs",
"math-clamp",
"math-sign",
"math-floor",
"math-ceil",
"math-round",
"math-lerp",
"math-inverse_lerp",
"math-remap",
"math-sqrt",
"math-sin",
"math-cos",
"math-tan",
"math-hypot",
"math-dist",
"math-dist2",
"math-deg_to_rad",
"math-rad_to_deg",
"math-posmod",
"math-wrap",
"math-ping_pong",
"math-snapped",
"math-move_toward",
"math-smoothstep",
"math-atan2",
"math-asin",
"math-acos"
],
"memory": [
"memory-bytes",
"memory-words",
"memory-copy",
"memory-fill",
"memory-peek",
"memory-poke"
],
"network": [
"network-send",
"network-poll",
"network-serialize",
"network-apply",
"network-owner",
"network-set_owner",
"network-is_server",
"network-is_owner",
"network-local_id"
],
"operators": [
"op-arith",
"op-compare",
"op-logical",
"op-bitwise",
"op-range",
"op-assign",
"op-access",
"op-interp",
"op-literals",
"op-comment"
],
"phases": [
"phase-fixedupdate",
"phase-input",
"phase-lateupdate",
"phase-render",
"phase-start",
"phase-update"
],
"random": [
"random-range",
"random-chance",
"random-seed",
"random-value",
"random-int",
"random-sign"
],
"save": [
"save-write",
"save-read"
],
"scenes": [
"kw-scene",
"kw-layer",
"kw-on",
"kw-enter",
"kw-exit",
"kw-start"
],
"screen": [
"screen-clear",
"screen-fill_rectangle",
"screen-draw_rectangle",
"screen-put_pixel",
"screen-draw_text",
"screen-draw_number",
"screen-show",
"screen-width",
"screen-height",
"screen-status",
"screen-line",
"screen-circle",
"screen-fill_circle",
"screen-triangle",
"screen-fill_triangle",
"screen-sprite",
"screen-sprite_scaled"
],
"structure": [
"kw-program",
"kw-property",
"kw-model",
"kw-handler",
"kw-phase",
"kw-const",
"kw-var",
"kw-let",
"kw-function",
"kw-return",
"kw-import",
"kw-extern",
"kw-ui",
"kw-enum"
],
"system": [
"system-run",
"system-read_char",
"system-file_open",
"system-file_read",
"system-file_write",
"system-file_seek",
"system-file_tell",
"system-file_close"
],
"text": [
"text-length",
"text-char_at",
"text-slice",
"text-starts_with",
"text-ends_with",
"text-contains",
"text-index_of",
"text-equals",
"text-concat",
"text-to_int",
"text-from_int",
"text-upper",
"text-lower",
"text-trim",
"text-repeat",
"text-pad_left",
"text-pad_right",
"text-split",
"text-join",
"text-replace"
],
"time": [
"time-frame",
"time-delta",
"time-elapsed",
"time-now",
"time-since"
],
"types": [
"type-bool",
"type-byte",
"type-entity",
"type-fixed",
"type-fixeds",
"type-int",
"type-pointer",
"type-pointers",
"type-slices",
"type-string",
"type-void",
"type-words",
"type-vector"
],
"world": [
"world-get",
"world-set",
"world-has",
"world-count",
"world-size",
"world-spawn",
"world-save",
"world-load",
"world-prop_id",
"world-field_id",
"world-model_id",
"world-kind",
"world-register_prop",
"world-attach",
"world-detach",
"world-query_next"
],
"vector": [
"vector-make",
"vector-zero",
"vector-x",
"vector-y",
"vector-add",
"vector-sub",
"vector-scale",
"vector-dot",
"vector-length",
"vector-distance",
"vector-normalize",
"vector-lerp",
"vector-rotate",
"vector-angle",
"vector-from_angle"
],
"duration": [
"duration-seconds",
"duration-minutes",
"duration-hours",
"duration-days",
"duration-as_seconds",
"duration-as_minutes",
"duration-as_hours",
"duration-as_days"
],
"date": [
"date-new",
"date-year",
"date-month",
"date-day",
"date-weekday",
"date-is_leap",
"date-days_in_month",
"date-to_epoch",
"date-add_days",
"date-diff_days"
],
"datetime": [
"datetime-from",
"datetime-date",
"datetime-add",
"datetime-year",
"datetime-month",
"datetime-day",
"datetime-weekday",
"datetime-hour",
"datetime-minute",
"datetime-second",
"datetime-format",
"datetime-parse"
],
"clock": [
"clock-now",
"clock-set",
"clock-advance",
"clock-reset"
],
"crypto": [
"crypto-sha256",
"crypto-hmac_sha256",
"crypto-verify_hmac",
"crypto-hex",
"crypto-ct_equal",
"crypto-random_bytes",
"crypto-random_hex",
"crypto-random_u32",
"crypto-base64"
],
"uuid": [
"uuid-new",
"uuid-v4",
"uuid-new_v7",
"uuid-v7",
"uuid-parse",
"uuid-is_valid",
"uuid-to_text",
"uuid-equals",
"uuid-nil"
],
"noise": [
"noise-value2",
"noise-perlin2",
"noise-simplex2",
"noise-fbm2",
"noise-cellular2",
"noise-cellular2_id",
"noise-unit"
],
"log": [
"log-trace",
"log-debug",
"log-info",
"log-warn",
"log-error",
"log-set_level",
"log-level"
],
"os": [
"os-args",
"os-arg_count",
"os-arg",
"os-env",
"os-env_or",
"os-has_env",
"os-set_env",
"os-unset_env",
"os-exit",
"os-platform",
"os-arch",
"os-stdout_write",
"os-stderr_write",
"os-save_dir",
"os-config_dir",
"os-cache_dir",
"os-temp_dir"
],
"unicode": [
"unicode-len",
"unicode-byte_len",
"unicode-is_valid_utf8",
"unicode-char_at",
"unicode-chars",
"unicode-upper",
"unicode-lower",
"unicode-truncate",
"unicode-grapheme_len"
],
"path": [
"path-join",
"path-dir",
"path-base",
"path-ext",
"path-stem",
"path-normalize"
],
"fs": [
"fs-exists",
"fs-is_dir",
"fs-read_text",
"fs-write_text",
"fs-append_text",
"fs-remove",
"fs-size",
"fs-mkdir",
"fs-copy",
"fs-list"
],
"mime": [
"mime-of",
"mime-sniff"
]
}