From 2f19c8d8e2ae0d6218ed977c179f9f87b0940681 Mon Sep 17 00:00:00 2001 From: Orkuncakilkaya Date: Sun, 30 Aug 2026 01:30:47 +0300 Subject: [PATCH] refactor(stdlib): de-abbreviate namespaces (Mem/Sys/Net/Collide) Expand the abbreviated public namespaces to full words, part of the language-wide de-abbreviation pass: Mem -> Memory, Sys -> System, Net -> Network, Collide -> Collision Math stays (universally accepted, like int/bool). Renames the dispatch strings, LSP signatures, docs (dirs, files, frontmatter), and the inventory manifest; behavior is byte-identical (the bare rt_ targets are unchanged). Reseeded; C-free bootstrap fixpoint holds; all suites green. Co-Authored-By: Claude Opus 4.8 --- .../{collide => collision}/_section.md | 4 +- .../collision-circles.md} | 14 ++-- .../collision-point_rect.md} | 14 ++-- .../collision-rect_circle.md} | 14 ++-- .../collision-rects.md} | 14 ++-- docs/language/{mem => memory}/_section.md | 4 +- .../mem-bytes.md => memory/memory-bytes.md} | 12 +-- .../mem-copy.md => memory/memory-copy.md} | 12 +-- .../mem-fill.md => memory/memory-fill.md} | 12 +-- .../mem-peek.md => memory/memory-peek.md} | 12 +-- .../mem-poke.md => memory/memory-poke.md} | 12 +-- .../mem-words.md => memory/memory-words.md} | 12 +-- docs/language/net/net-apply.md | 14 ---- docs/language/net/net-local_id.md | 14 ---- docs/language/{net => network}/_section.md | 4 +- docs/language/network/network-apply.md | 14 ++++ .../network-is_owner.md} | 12 +-- .../network-is_server.md} | 12 +-- docs/language/network/network-local_id.md | 14 ++++ .../net-owner.md => network/network-owner.md} | 12 +-- .../net-poll.md => network/network-poll.md} | 12 +-- .../net-send.md => network/network-send.md} | 12 +-- .../network-serialize.md} | 12 +-- .../network-set_owner.md} | 12 +-- docs/language/sys/sys-file_close.md | 14 ---- docs/language/sys/sys-stderr.md | 14 ---- docs/language/sys/sys-stdout.md | 14 ---- docs/language/{sys => system}/_section.md | 4 +- .../{sys/sys-arg.md => system/system-arg.md} | 12 +-- .../system-arg_count.md} | 12 +-- .../{sys/sys-env.md => system/system-env.md} | 12 +-- .../sys-exit.md => system/system-exit.md} | 12 +-- docs/language/system/system-file_close.md | 14 ++++ .../system-file_open.md} | 12 +-- .../system-file_read.md} | 12 +-- .../system-file_seek.md} | 12 +-- .../system-file_tell.md} | 12 +-- .../system-file_write.md} | 12 +-- .../system-read_char.md} | 12 +-- .../{sys/sys-run.md => system/system-run.md} | 12 +-- docs/language/system/system-stderr.md | 14 ++++ docs/language/system/system-stdout.md | 14 ++++ selfhost/emit_collide.ludic | 2 +- selfhost/emit_expr.ludic | 12 +-- selfhost/emit_mem.ludic | 2 +- selfhost/ludicc.seed.ll | 12 +-- selfhost/tests/easecollide.ludic | 18 ++--- selfhost/tests/memsys.ludic | 26 +++---- tools/docgen/inventory.json | 74 +++++++++---------- tools/ludic-tools/lsp.ludic | 74 +++++++++---------- 50 files changed, 360 insertions(+), 360 deletions(-) rename docs/language/{collide => collision}/_section.md (89%) rename docs/language/{collide/collide-circles.md => collision/collision-circles.md} (68%) rename docs/language/{collide/collide-point_rect.md => collision/collision-point_rect.md} (63%) rename docs/language/{collide/collide-rect_circle.md => collision/collision-rect_circle.md} (66%) rename docs/language/{collide/collide-rects.md => collision/collision-rects.md} (64%) rename docs/language/{mem => memory}/_section.md (85%) rename docs/language/{mem/mem-bytes.md => memory/memory-bytes.md} (56%) rename docs/language/{mem/mem-copy.md => memory/memory-copy.md} (60%) rename docs/language/{mem/mem-fill.md => memory/memory-fill.md} (58%) rename docs/language/{mem/mem-peek.md => memory/memory-peek.md} (54%) rename docs/language/{mem/mem-poke.md => memory/memory-poke.md} (53%) rename docs/language/{mem/mem-words.md => memory/memory-words.md} (60%) delete mode 100644 docs/language/net/net-apply.md delete mode 100644 docs/language/net/net-local_id.md rename docs/language/{net => network}/_section.md (87%) create mode 100644 docs/language/network/network-apply.md rename docs/language/{net/net-is_owner.md => network/network-is_owner.md} (58%) rename docs/language/{net/net-is_server.md => network/network-is_server.md} (58%) create mode 100644 docs/language/network/network-local_id.md rename docs/language/{net/net-owner.md => network/network-owner.md} (57%) rename docs/language/{net/net-poll.md => network/network-poll.md} (65%) rename docs/language/{net/net-send.md => network/network-send.md} (65%) rename docs/language/{net/net-serialize.md => network/network-serialize.md} (62%) rename docs/language/{net/net-set_owner.md => network/network-set_owner.md} (52%) delete mode 100644 docs/language/sys/sys-file_close.md delete mode 100644 docs/language/sys/sys-stderr.md delete mode 100644 docs/language/sys/sys-stdout.md rename docs/language/{sys => system}/_section.md (87%) rename docs/language/{sys/sys-arg.md => system/system-arg.md} (62%) rename docs/language/{sys/sys-arg_count.md => system/system-arg_count.md} (58%) rename docs/language/{sys/sys-env.md => system/system-env.md} (62%) rename docs/language/{sys/sys-exit.md => system/system-exit.md} (60%) create mode 100644 docs/language/system/system-file_close.md rename docs/language/{sys/sys-file_open.md => system/system-file_open.md} (60%) rename docs/language/{sys/sys-file_read.md => system/system-file_read.md} (58%) rename docs/language/{sys/sys-file_seek.md => system/system-file_seek.md} (58%) rename docs/language/{sys/sys-file_tell.md => system/system-file_tell.md} (53%) rename docs/language/{sys/sys-file_write.md => system/system-file_write.md} (57%) rename docs/language/{sys/sys-read_char.md => system/system-read_char.md} (59%) rename docs/language/{sys/sys-run.md => system/system-run.md} (62%) create mode 100644 docs/language/system/system-stderr.md create mode 100644 docs/language/system/system-stdout.md diff --git a/docs/language/collide/_section.md b/docs/language/collision/_section.md similarity index 89% rename from docs/language/collide/_section.md rename to docs/language/collision/_section.md index 3bdc6fe7..8f5e4cea 100644 --- a/docs/language/collide/_section.md +++ b/docs/language/collision/_section.md @@ -1,6 +1,6 @@ --- -id: collide -title: Collide +id: collision +title: Collision order: 6 --- diff --git a/docs/language/collide/collide-circles.md b/docs/language/collision/collision-circles.md similarity index 68% rename from docs/language/collide/collide-circles.md rename to docs/language/collision/collision-circles.md index cb5587bc..82f41dfb 100644 --- a/docs/language/collide/collide-circles.md +++ b/docs/language/collision/collision-circles.md @@ -1,13 +1,13 @@ --- -id: collide-circles -name: Collide.circles -category: collide +id: collision-circles +name: Collision.circles +category: collision kind: namespace-method -tokens: Collide.circles -sig: Collide.circles(ax, ay, ar, bx, by, br) -> bool +tokens: Collision.circles +sig: Collision.circles(ax, ay, ar, bx, by, br) -> bool tip: Do two circles overlap? order: 2 -ns: Collide +ns: Collision member: circles --- @@ -16,7 +16,7 @@ Returns true when circles centred at (ax, ay) and bool +tokens: Collision.point_rect +sig: Collision.point_rect(px, py, rx, ry, rw, rh) -> bool tip: Is a point inside a rectangle? order: 1 -ns: Collide +ns: Collision member: point_rect --- @@ -16,7 +16,7 @@ Returns true when the point (px, py) lies within the r ```ludic program Demo { handler Step phase Update { - if Collide.point_rect(mx, my, bx, by, bw, bh) { press() } + if Collision.point_rect(mx, my, bx, by, bw, bh) { press() } } } ``` diff --git a/docs/language/collide/collide-rect_circle.md b/docs/language/collision/collision-rect_circle.md similarity index 66% rename from docs/language/collide/collide-rect_circle.md rename to docs/language/collision/collision-rect_circle.md index 6d2fb641..c0607ba3 100644 --- a/docs/language/collide/collide-rect_circle.md +++ b/docs/language/collision/collision-rect_circle.md @@ -1,13 +1,13 @@ --- -id: collide-rect_circle -name: Collide.rect_circle -category: collide +id: collision-rect_circle +name: Collision.rect_circle +category: collision kind: namespace-method -tokens: Collide.rect_circle -sig: Collide.rect_circle(rx, ry, rw, rh, cx, cy, cr) -> bool +tokens: Collision.rect_circle +sig: Collision.rect_circle(rx, ry, rw, rh, cx, cy, cr) -> bool tip: Does a rectangle overlap a circle? order: 3 -ns: Collide +ns: Collision member: rect_circle --- @@ -16,7 +16,7 @@ Returns true when the rectangle (rx, ry, rw, rh) overl ```ludic program Demo { handler Step phase Update { - if Collide.rect_circle(tx, ty, 16, 16, bx, by, 6) { block() } + if Collision.rect_circle(tx, ty, 16, 16, bx, by, 6) { block() } } } ``` diff --git a/docs/language/collide/collide-rects.md b/docs/language/collision/collision-rects.md similarity index 64% rename from docs/language/collide/collide-rects.md rename to docs/language/collision/collision-rects.md index e0a24846..7d92147d 100644 --- a/docs/language/collide/collide-rects.md +++ b/docs/language/collision/collision-rects.md @@ -1,13 +1,13 @@ --- -id: collide-rects -name: Collide.rects -category: collide +id: collision-rects +name: Collision.rects +category: collision kind: namespace-method -tokens: Collide.rects -sig: Collide.rects(ax, ay, aw, ah, bx, by, bw, bh) -> bool +tokens: Collision.rects +sig: Collision.rects(ax, ay, aw, ah, bx, by, bw, bh) -> bool tip: Do two rectangles overlap? order: 0 -ns: Collide +ns: Collision member: rects --- @@ -16,7 +16,7 @@ Returns true when the axis-aligned rectangles (ax, ay, aw, ah ```ludic program Demo { handler Step phase Update { - if Collide.rects(px, py, 16, 16, ex, ey, 16, 16) { hit() } + if Collision.rects(px, py, 16, 16, ex, ey, 16, 16) { hit() } } } ``` diff --git a/docs/language/mem/_section.md b/docs/language/memory/_section.md similarity index 85% rename from docs/language/mem/_section.md rename to docs/language/memory/_section.md index 0276b1e2..13e3de1a 100644 --- a/docs/language/mem/_section.md +++ b/docs/language/memory/_section.md @@ -1,6 +1,6 @@ --- -id: mem -title: Mem +id: memory +title: Memory order: 6 --- diff --git a/docs/language/mem/mem-bytes.md b/docs/language/memory/memory-bytes.md similarity index 56% rename from docs/language/mem/mem-bytes.md rename to docs/language/memory/memory-bytes.md index 6f56d2bb..1f0321d0 100644 --- a/docs/language/mem/mem-bytes.md +++ b/docs/language/memory/memory-bytes.md @@ -1,13 +1,13 @@ --- -id: mem-bytes -name: Mem.bytes -category: mem +id: memory-bytes +name: Memory.bytes +category: memory kind: namespace-method -tokens: Mem.bytes -sig: Mem.bytes(n) -> ptr +tokens: Memory.bytes +sig: Memory.bytes(n) -> ptr tip: Allocate n bytes. order: 0 -ns: Mem +ns: Memory member: bytes --- diff --git a/docs/language/mem/mem-copy.md b/docs/language/memory/memory-copy.md similarity index 60% rename from docs/language/mem/mem-copy.md rename to docs/language/memory/memory-copy.md index e600766f..69809377 100644 --- a/docs/language/mem/mem-copy.md +++ b/docs/language/memory/memory-copy.md @@ -1,13 +1,13 @@ --- -id: mem-copy -name: Mem.copy -category: mem +id: memory-copy +name: Memory.copy +category: memory kind: namespace-method -tokens: Mem.copy -sig: Mem.copy(dst, src, n) -> void +tokens: Memory.copy +sig: Memory.copy(dst, src, n) -> void tip: Copy n bytes between buffers. order: 2 -ns: Mem +ns: Memory member: copy --- diff --git a/docs/language/mem/mem-fill.md b/docs/language/memory/memory-fill.md similarity index 58% rename from docs/language/mem/mem-fill.md rename to docs/language/memory/memory-fill.md index 36ecd917..ed038adf 100644 --- a/docs/language/mem/mem-fill.md +++ b/docs/language/memory/memory-fill.md @@ -1,13 +1,13 @@ --- -id: mem-fill -name: Mem.fill -category: mem +id: memory-fill +name: Memory.fill +category: memory kind: namespace-method -tokens: Mem.fill -sig: Mem.fill(buf, value, n) -> void +tokens: Memory.fill +sig: Memory.fill(buf, value, n) -> void tip: Set n bytes to a value. order: 3 -ns: Mem +ns: Memory member: fill --- diff --git a/docs/language/mem/mem-peek.md b/docs/language/memory/memory-peek.md similarity index 54% rename from docs/language/mem/mem-peek.md rename to docs/language/memory/memory-peek.md index b463fbd6..43743878 100644 --- a/docs/language/mem/mem-peek.md +++ b/docs/language/memory/memory-peek.md @@ -1,13 +1,13 @@ --- -id: mem-peek -name: Mem.peek -category: mem +id: memory-peek +name: Memory.peek +category: memory kind: namespace-method -tokens: Mem.peek -sig: Mem.peek(buf, i) -> int +tokens: Memory.peek +sig: Memory.peek(buf, i) -> int tip: Read one byte. order: 4 -ns: Mem +ns: Memory member: peek --- diff --git a/docs/language/mem/mem-poke.md b/docs/language/memory/memory-poke.md similarity index 53% rename from docs/language/mem/mem-poke.md rename to docs/language/memory/memory-poke.md index ac1408f4..e4111aa3 100644 --- a/docs/language/mem/mem-poke.md +++ b/docs/language/memory/memory-poke.md @@ -1,13 +1,13 @@ --- -id: mem-poke -name: Mem.poke -category: mem +id: memory-poke +name: Memory.poke +category: memory kind: namespace-method -tokens: Mem.poke -sig: Mem.poke(buf, i, value) -> void +tokens: Memory.poke +sig: Memory.poke(buf, i, value) -> void tip: Write one byte. order: 5 -ns: Mem +ns: Memory member: poke --- diff --git a/docs/language/mem/mem-words.md b/docs/language/memory/memory-words.md similarity index 60% rename from docs/language/mem/mem-words.md rename to docs/language/memory/memory-words.md index a94f0c67..a91c7b6c 100644 --- a/docs/language/mem/mem-words.md +++ b/docs/language/memory/memory-words.md @@ -1,13 +1,13 @@ --- -id: mem-words -name: Mem.words -category: mem +id: memory-words +name: Memory.words +category: memory kind: namespace-method -tokens: Mem.words -sig: Mem.words(n) -> words +tokens: Memory.words +sig: Memory.words(n) -> words tip: Allocate n 32-bit words. order: 1 -ns: Mem +ns: Memory member: words --- diff --git a/docs/language/net/net-apply.md b/docs/language/net/net-apply.md deleted file mode 100644 index 0e271f85..00000000 --- a/docs/language/net/net-apply.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: net-apply -name: Net.apply -category: net -kind: namespace-method -tokens: Net.apply -sig: Net.apply(entity, buf) -> int -tip: Apply serialized state to an entity. -order: 3 -ns: Net -member: apply ---- - -Reads synced fields from buf into entity — the inverse of Net.serialize. diff --git a/docs/language/net/net-local_id.md b/docs/language/net/net-local_id.md deleted file mode 100644 index 831d11b0..00000000 --- a/docs/language/net/net-local_id.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: net-local_id -name: Net.local_id -category: net -kind: namespace-method -tokens: Net.local_id -sig: Net.local_id() -> int -tip: This peer's own id. -order: 8 -ns: Net -member: local_id ---- - -Returns the network id of the local peer. diff --git a/docs/language/net/_section.md b/docs/language/network/_section.md similarity index 87% rename from docs/language/net/_section.md rename to docs/language/network/_section.md index 0b4af04f..be23e48d 100644 --- a/docs/language/net/_section.md +++ b/docs/language/network/_section.md @@ -1,6 +1,6 @@ --- -id: net -title: Net +id: network +title: Network order: 6 --- diff --git a/docs/language/network/network-apply.md b/docs/language/network/network-apply.md new file mode 100644 index 00000000..8d5f8891 --- /dev/null +++ b/docs/language/network/network-apply.md @@ -0,0 +1,14 @@ +--- +id: network-apply +name: Network.apply +category: network +kind: namespace-method +tokens: Network.apply +sig: Network.apply(entity, buf) -> int +tip: Apply serialized state to an entity. +order: 3 +ns: Network +member: apply +--- + +Reads synced fields from buf into entity — the inverse of Network.serialize. diff --git a/docs/language/net/net-is_owner.md b/docs/language/network/network-is_owner.md similarity index 58% rename from docs/language/net/net-is_owner.md rename to docs/language/network/network-is_owner.md index d942a2bf..fc4034f6 100644 --- a/docs/language/net/net-is_owner.md +++ b/docs/language/network/network-is_owner.md @@ -1,13 +1,13 @@ --- -id: net-is_owner -name: Net.is_owner -category: net +id: network-is_owner +name: Network.is_owner +category: network kind: namespace-method -tokens: Net.is_owner -sig: Net.is_owner(entity) -> bool +tokens: Network.is_owner +sig: Network.is_owner(entity) -> bool tip: Does this peer own the entity? order: 7 -ns: Net +ns: Network member: is_owner --- diff --git a/docs/language/net/net-is_server.md b/docs/language/network/network-is_server.md similarity index 58% rename from docs/language/net/net-is_server.md rename to docs/language/network/network-is_server.md index 74b7f521..6b177eb0 100644 --- a/docs/language/net/net-is_server.md +++ b/docs/language/network/network-is_server.md @@ -1,13 +1,13 @@ --- -id: net-is_server -name: Net.is_server -category: net +id: network-is_server +name: Network.is_server +category: network kind: namespace-method -tokens: Net.is_server -sig: Net.is_server() -> bool +tokens: Network.is_server +sig: Network.is_server() -> bool tip: Is this peer the server? order: 6 -ns: Net +ns: Network member: is_server --- diff --git a/docs/language/network/network-local_id.md b/docs/language/network/network-local_id.md new file mode 100644 index 00000000..1dc932d0 --- /dev/null +++ b/docs/language/network/network-local_id.md @@ -0,0 +1,14 @@ +--- +id: network-local_id +name: Network.local_id +category: network +kind: namespace-method +tokens: Network.local_id +sig: Network.local_id() -> int +tip: This peer's own id. +order: 8 +ns: Network +member: local_id +--- + +Returns the network id of the local peer. diff --git a/docs/language/net/net-owner.md b/docs/language/network/network-owner.md similarity index 57% rename from docs/language/net/net-owner.md rename to docs/language/network/network-owner.md index 777a213d..095c7df6 100644 --- a/docs/language/net/net-owner.md +++ b/docs/language/network/network-owner.md @@ -1,13 +1,13 @@ --- -id: net-owner -name: Net.owner -category: net +id: network-owner +name: Network.owner +category: network kind: namespace-method -tokens: Net.owner -sig: Net.owner(entity) -> int +tokens: Network.owner +sig: Network.owner(entity) -> int tip: The peer that owns an entity. order: 4 -ns: Net +ns: Network member: owner --- diff --git a/docs/language/net/net-poll.md b/docs/language/network/network-poll.md similarity index 65% rename from docs/language/net/net-poll.md rename to docs/language/network/network-poll.md index ef8e722b..78cde615 100644 --- a/docs/language/net/net-poll.md +++ b/docs/language/network/network-poll.md @@ -1,13 +1,13 @@ --- -id: net-poll -name: Net.poll -category: net +id: network-poll +name: Network.poll +category: network kind: namespace-method -tokens: Net.poll -sig: Net.poll(buf, cap) -> int +tokens: Network.poll +sig: Network.poll(buf, cap) -> int tip: Read an inbound datagram. order: 1 -ns: Net +ns: Network member: poll --- diff --git a/docs/language/net/net-send.md b/docs/language/network/network-send.md similarity index 65% rename from docs/language/net/net-send.md rename to docs/language/network/network-send.md index 88a29e49..41a83aa0 100644 --- a/docs/language/net/net-send.md +++ b/docs/language/network/network-send.md @@ -1,13 +1,13 @@ --- -id: net-send -name: Net.send -category: net +id: network-send +name: Network.send +category: network kind: namespace-method -tokens: Net.send -sig: Net.send(peer, buf, len) -> void +tokens: Network.send +sig: Network.send(peer, buf, len) -> void tip: Put a datagram on the wire. order: 0 -ns: Net +ns: Network member: send --- diff --git a/docs/language/net/net-serialize.md b/docs/language/network/network-serialize.md similarity index 62% rename from docs/language/net/net-serialize.md rename to docs/language/network/network-serialize.md index a48f28de..faf7140d 100644 --- a/docs/language/net/net-serialize.md +++ b/docs/language/network/network-serialize.md @@ -1,13 +1,13 @@ --- -id: net-serialize -name: Net.serialize -category: net +id: network-serialize +name: Network.serialize +category: network kind: namespace-method -tokens: Net.serialize -sig: Net.serialize(entity, buf) -> int +tokens: Network.serialize +sig: Network.serialize(entity, buf) -> int tip: Serialize an entity's synced state. order: 2 -ns: Net +ns: Network member: serialize --- diff --git a/docs/language/net/net-set_owner.md b/docs/language/network/network-set_owner.md similarity index 52% rename from docs/language/net/net-set_owner.md rename to docs/language/network/network-set_owner.md index b2d33394..117048ae 100644 --- a/docs/language/net/net-set_owner.md +++ b/docs/language/network/network-set_owner.md @@ -1,13 +1,13 @@ --- -id: net-set_owner -name: Net.set_owner -category: net +id: network-set_owner +name: Network.set_owner +category: network kind: namespace-method -tokens: Net.set_owner -sig: Net.set_owner(entity, peer) -> void +tokens: Network.set_owner +sig: Network.set_owner(entity, peer) -> void tip: Assign ownership of an entity. order: 5 -ns: Net +ns: Network member: set_owner --- diff --git a/docs/language/sys/sys-file_close.md b/docs/language/sys/sys-file_close.md deleted file mode 100644 index b02fa359..00000000 --- a/docs/language/sys/sys-file_close.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: sys-file_close -name: Sys.file_close -category: sys -kind: namespace-method -tokens: Sys.file_close -sig: Sys.file_close(file) -> void -tip: Close a file. -order: 11 -ns: Sys -member: file_close ---- - -Closes file, flushing any buffered writes. diff --git a/docs/language/sys/sys-stderr.md b/docs/language/sys/sys-stderr.md deleted file mode 100644 index 3edde5fb..00000000 --- a/docs/language/sys/sys-stderr.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: sys-stderr -name: Sys.stderr -category: sys -kind: namespace-method -tokens: Sys.stderr -sig: Sys.stderr() -> ptr -tip: The standard error handle. -order: 13 -ns: Sys -member: stderr ---- - -Returns the standard-error file handle, for Sys.file_write. diff --git a/docs/language/sys/sys-stdout.md b/docs/language/sys/sys-stdout.md deleted file mode 100644 index 371c6ee5..00000000 --- a/docs/language/sys/sys-stdout.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: sys-stdout -name: Sys.stdout -category: sys -kind: namespace-method -tokens: Sys.stdout -sig: Sys.stdout() -> ptr -tip: The standard output handle. -order: 12 -ns: Sys -member: stdout ---- - -Returns the standard-output file handle, for Sys.file_write. diff --git a/docs/language/sys/_section.md b/docs/language/system/_section.md similarity index 87% rename from docs/language/sys/_section.md rename to docs/language/system/_section.md index 246c6792..7f6849a2 100644 --- a/docs/language/sys/_section.md +++ b/docs/language/system/_section.md @@ -1,6 +1,6 @@ --- -id: sys -title: Sys +id: system +title: System order: 6 --- diff --git a/docs/language/sys/sys-arg.md b/docs/language/system/system-arg.md similarity index 62% rename from docs/language/sys/sys-arg.md rename to docs/language/system/system-arg.md index 8c19297f..62f84b1c 100644 --- a/docs/language/sys/sys-arg.md +++ b/docs/language/system/system-arg.md @@ -1,13 +1,13 @@ --- -id: sys-arg -name: Sys.arg -category: sys +id: system-arg +name: System.arg +category: system kind: namespace-method -tokens: Sys.arg -sig: Sys.arg(i) -> str +tokens: System.arg +sig: System.arg(i) -> str tip: A command-line argument by index. order: 0 -ns: Sys +ns: System member: arg --- diff --git a/docs/language/sys/sys-arg_count.md b/docs/language/system/system-arg_count.md similarity index 58% rename from docs/language/sys/sys-arg_count.md rename to docs/language/system/system-arg_count.md index b3f59516..550df198 100644 --- a/docs/language/sys/sys-arg_count.md +++ b/docs/language/system/system-arg_count.md @@ -1,13 +1,13 @@ --- -id: sys-arg_count -name: Sys.arg_count -category: sys +id: system-arg_count +name: System.arg_count +category: system kind: namespace-method -tokens: Sys.arg_count -sig: Sys.arg_count() -> int +tokens: System.arg_count +sig: System.arg_count() -> int tip: The number of command-line arguments. order: 1 -ns: Sys +ns: System member: arg_count --- diff --git a/docs/language/sys/sys-env.md b/docs/language/system/system-env.md similarity index 62% rename from docs/language/sys/sys-env.md rename to docs/language/system/system-env.md index 1ed6de28..8af87a19 100644 --- a/docs/language/sys/sys-env.md +++ b/docs/language/system/system-env.md @@ -1,13 +1,13 @@ --- -id: sys-env -name: Sys.env -category: sys +id: system-env +name: System.env +category: system kind: namespace-method -tokens: Sys.env -sig: Sys.env(name) -> str +tokens: System.env +sig: System.env(name) -> str tip: Read an environment variable. order: 4 -ns: Sys +ns: System member: env --- diff --git a/docs/language/sys/sys-exit.md b/docs/language/system/system-exit.md similarity index 60% rename from docs/language/sys/sys-exit.md rename to docs/language/system/system-exit.md index f8425628..a410c4be 100644 --- a/docs/language/sys/sys-exit.md +++ b/docs/language/system/system-exit.md @@ -1,13 +1,13 @@ --- -id: sys-exit -name: Sys.exit -category: sys +id: system-exit +name: System.exit +category: system kind: namespace-method -tokens: Sys.exit -sig: Sys.exit(code) -> void +tokens: System.exit +sig: System.exit(code) -> void tip: End the process with a status code. order: 2 -ns: Sys +ns: System member: exit --- diff --git a/docs/language/system/system-file_close.md b/docs/language/system/system-file_close.md new file mode 100644 index 00000000..56bc5acc --- /dev/null +++ b/docs/language/system/system-file_close.md @@ -0,0 +1,14 @@ +--- +id: system-file_close +name: System.file_close +category: system +kind: namespace-method +tokens: System.file_close +sig: System.file_close(file) -> void +tip: Close a file. +order: 11 +ns: System +member: file_close +--- + +Closes file, flushing any buffered writes. diff --git a/docs/language/sys/sys-file_open.md b/docs/language/system/system-file_open.md similarity index 60% rename from docs/language/sys/sys-file_open.md rename to docs/language/system/system-file_open.md index d18fbf0c..538d2fda 100644 --- a/docs/language/sys/sys-file_open.md +++ b/docs/language/system/system-file_open.md @@ -1,13 +1,13 @@ --- -id: sys-file_open -name: Sys.file_open -category: sys +id: system-file_open +name: System.file_open +category: system kind: namespace-method -tokens: Sys.file_open -sig: Sys.file_open(path, mode) -> ptr +tokens: System.file_open +sig: System.file_open(path, mode) -> ptr tip: Open a file. order: 6 -ns: Sys +ns: System member: file_open --- diff --git a/docs/language/sys/sys-file_read.md b/docs/language/system/system-file_read.md similarity index 58% rename from docs/language/sys/sys-file_read.md rename to docs/language/system/system-file_read.md index 6ba1324b..db1db007 100644 --- a/docs/language/sys/sys-file_read.md +++ b/docs/language/system/system-file_read.md @@ -1,13 +1,13 @@ --- -id: sys-file_read -name: Sys.file_read -category: sys +id: system-file_read +name: System.file_read +category: system kind: namespace-method -tokens: Sys.file_read -sig: Sys.file_read(file, buf, n) -> int +tokens: System.file_read +sig: System.file_read(file, buf, n) -> int tip: Read bytes from a file. order: 7 -ns: Sys +ns: System member: file_read --- diff --git a/docs/language/sys/sys-file_seek.md b/docs/language/system/system-file_seek.md similarity index 58% rename from docs/language/sys/sys-file_seek.md rename to docs/language/system/system-file_seek.md index 4258a206..6abb50ec 100644 --- a/docs/language/sys/sys-file_seek.md +++ b/docs/language/system/system-file_seek.md @@ -1,13 +1,13 @@ --- -id: sys-file_seek -name: Sys.file_seek -category: sys +id: system-file_seek +name: System.file_seek +category: system kind: namespace-method -tokens: Sys.file_seek -sig: Sys.file_seek(file, offset, whence) -> int +tokens: System.file_seek +sig: System.file_seek(file, offset, whence) -> int tip: Move a file's read/write position. order: 9 -ns: Sys +ns: System member: file_seek --- diff --git a/docs/language/sys/sys-file_tell.md b/docs/language/system/system-file_tell.md similarity index 53% rename from docs/language/sys/sys-file_tell.md rename to docs/language/system/system-file_tell.md index 3f423a93..c2fbd888 100644 --- a/docs/language/sys/sys-file_tell.md +++ b/docs/language/system/system-file_tell.md @@ -1,13 +1,13 @@ --- -id: sys-file_tell -name: Sys.file_tell -category: sys +id: system-file_tell +name: System.file_tell +category: system kind: namespace-method -tokens: Sys.file_tell -sig: Sys.file_tell(file) -> int +tokens: System.file_tell +sig: System.file_tell(file) -> int tip: The current file position. order: 10 -ns: Sys +ns: System member: file_tell --- diff --git a/docs/language/sys/sys-file_write.md b/docs/language/system/system-file_write.md similarity index 57% rename from docs/language/sys/sys-file_write.md rename to docs/language/system/system-file_write.md index 76e2ff3f..8038cbb1 100644 --- a/docs/language/sys/sys-file_write.md +++ b/docs/language/system/system-file_write.md @@ -1,13 +1,13 @@ --- -id: sys-file_write -name: Sys.file_write -category: sys +id: system-file_write +name: System.file_write +category: system kind: namespace-method -tokens: Sys.file_write -sig: Sys.file_write(file, buf, n) -> int +tokens: System.file_write +sig: System.file_write(file, buf, n) -> int tip: Write bytes to a file. order: 8 -ns: Sys +ns: System member: file_write --- diff --git a/docs/language/sys/sys-read_char.md b/docs/language/system/system-read_char.md similarity index 59% rename from docs/language/sys/sys-read_char.md rename to docs/language/system/system-read_char.md index b854bb7f..6519be4e 100644 --- a/docs/language/sys/sys-read_char.md +++ b/docs/language/system/system-read_char.md @@ -1,13 +1,13 @@ --- -id: sys-read_char -name: Sys.read_char -category: sys +id: system-read_char +name: System.read_char +category: system kind: namespace-method -tokens: Sys.read_char -sig: Sys.read_char() -> int +tokens: System.read_char +sig: System.read_char() -> int tip: Read one byte from standard input. order: 5 -ns: Sys +ns: System member: read_char --- diff --git a/docs/language/sys/sys-run.md b/docs/language/system/system-run.md similarity index 62% rename from docs/language/sys/sys-run.md rename to docs/language/system/system-run.md index 8392dd56..f4f28c93 100644 --- a/docs/language/sys/sys-run.md +++ b/docs/language/system/system-run.md @@ -1,13 +1,13 @@ --- -id: sys-run -name: Sys.run -category: sys +id: system-run +name: System.run +category: system kind: namespace-method -tokens: Sys.run -sig: Sys.run(command) -> int +tokens: System.run +sig: System.run(command) -> int tip: Run a shell command. order: 3 -ns: Sys +ns: System member: run --- diff --git a/docs/language/system/system-stderr.md b/docs/language/system/system-stderr.md new file mode 100644 index 00000000..0f893343 --- /dev/null +++ b/docs/language/system/system-stderr.md @@ -0,0 +1,14 @@ +--- +id: system-stderr +name: System.stderr +category: system +kind: namespace-method +tokens: System.stderr +sig: System.stderr() -> ptr +tip: The standard error handle. +order: 13 +ns: System +member: stderr +--- + +Returns the standard-error file handle, for System.file_write. diff --git a/docs/language/system/system-stdout.md b/docs/language/system/system-stdout.md new file mode 100644 index 00000000..e8657703 --- /dev/null +++ b/docs/language/system/system-stdout.md @@ -0,0 +1,14 @@ +--- +id: system-stdout +name: System.stdout +category: system +kind: namespace-method +tokens: System.stdout +sig: System.stdout() -> ptr +tip: The standard output handle. +order: 12 +ns: System +member: stdout +--- + +Returns the standard-output file handle, for System.file_write. diff --git a/selfhost/emit_collide.ludic b/selfhost/emit_collide.ludic index 321900f1..4432f1ed 100644 --- a/selfhost/emit_collide.ludic +++ b/selfhost/emit_collide.ludic @@ -1,4 +1,4 @@ -# emit_collide.ludic — the Collide.* namespace: 2D overlap tests on plain +# emit_collide.ludic — the Collision.* namespace: 2D overlap tests on plain # integer coordinates (pixels or tiles). Rectangles are (x, y, w, h) with the # origin at the top-left; circles are (x, y, r). Squared distances use i64 so a # large coordinate can't overflow. Each returns a bool. diff --git a/selfhost/emit_expr.ludic b/selfhost/emit_expr.ludic index 5770c56a..d37a8b64 100644 --- a/selfhost/emit_expr.ludic +++ b/selfhost/emit_expr.ludic @@ -211,13 +211,13 @@ fn emit_ns_call(ns: ptr, meth: ptr, e: Node) -> Val { if is_ease_ns(meth) { return emit_ease_ns(meth, e) } perr(`unknown builtin Ease.{meth}`) } - if (ns == "Collide") { + if (ns == "Collision") { if is_collide_ns(meth) { return emit_collide_ns(meth, e) } - perr(`unknown builtin Collide.{meth}`) + perr(`unknown builtin Collision.{meth}`) } - if (ns == "Mem") { + if (ns == "Memory") { if is_mem_ns(meth) { return emit_mem_ns(meth, e) } - perr(`unknown builtin Mem.{meth}`) + perr(`unknown builtin Memory.{meth}`) } if (ns == "Color") { if is_colorfn_ns(meth) { return emit_colorfn_ns(meth, e) } @@ -288,7 +288,7 @@ fn emit_ns_call(ns: ptr, meth: ptr, e: Node) -> Val { if (meth == "detach") { bare = "world_detach_dyn" } if (meth == "query_next") { bare = "world_query_next" } } - if (ns == "Net") { + if (ns == "Network") { if (meth == "send") { bare = "net_send" } if (meth == "poll") { bare = "net_poll" } if (meth == "serialize") { bare = "serialize" } @@ -299,7 +299,7 @@ fn emit_ns_call(ns: ptr, meth: ptr, e: Node) -> Val { if (meth == "is_owner") { bare = "is_owner" } if (meth == "local_id") { bare = "local_id" } } - if (ns == "Sys") { + if (ns == "System") { if (meth == "arg") { bare = "arg" } if (meth == "arg_count") { bare = "arg_count" } if (meth == "exit") { bare = "exit" } diff --git a/selfhost/emit_mem.ludic b/selfhost/emit_mem.ludic index 8179857d..74894f8d 100644 --- a/selfhost/emit_mem.ludic +++ b/selfhost/emit_mem.ludic @@ -1,4 +1,4 @@ -# emit_mem.ludic — the Mem.* namespace: raw buffers and byte pokes. bytes/words +# emit_mem.ludic — the Memory.* namespace: raw buffers and byte pokes. bytes/words # allocate (as the bare builtins do); copy/fill wrap memcpy/memset; peek/poke # read and write one byte. The low-level escape hatch, PICO-8's memcpy/memset/ # peek/poke by another name. diff --git a/selfhost/ludicc.seed.ll b/selfhost/ludicc.seed.ll index 470fba51..0d2a8892 100644 --- a/selfhost/ludicc.seed.ll +++ b/selfhost/ludicc.seed.ll @@ -3227,10 +3227,10 @@ declare void @win_close() @.str3126 = private unnamed_addr constant [22 x i8] c"unknown builtin List.\00" @.str3127 = private unnamed_addr constant [5 x i8] c"Ease\00" @.str3128 = private unnamed_addr constant [22 x i8] c"unknown builtin Ease.\00" -@.str3129 = private unnamed_addr constant [8 x i8] c"Collide\00" -@.str3130 = private unnamed_addr constant [25 x i8] c"unknown builtin Collide.\00" -@.str3131 = private unnamed_addr constant [4 x i8] c"Mem\00" -@.str3132 = private unnamed_addr constant [21 x i8] c"unknown builtin Mem.\00" +@.str3129 = private unnamed_addr constant [10 x i8] c"Collision\00" +@.str3130 = private unnamed_addr constant [27 x i8] c"unknown builtin Collision.\00" +@.str3131 = private unnamed_addr constant [7 x i8] c"Memory\00" +@.str3132 = private unnamed_addr constant [24 x i8] c"unknown builtin Memory.\00" @.str3133 = private unnamed_addr constant [6 x i8] c"Color\00" @.str3134 = private unnamed_addr constant [23 x i8] c"unknown builtin Color.\00" @.str3135 = private unnamed_addr constant [5 x i8] c"Time\00" @@ -3398,7 +3398,7 @@ declare void @win_close() @.str3297 = private unnamed_addr constant [17 x i8] c"world_detach_dyn\00" @.str3298 = private unnamed_addr constant [11 x i8] c"query_next\00" @.str3299 = private unnamed_addr constant [17 x i8] c"world_query_next\00" -@.str3300 = private unnamed_addr constant [4 x i8] c"Net\00" +@.str3300 = private unnamed_addr constant [8 x i8] c"Network\00" @.str3301 = private unnamed_addr constant [5 x i8] c"send\00" @.str3302 = private unnamed_addr constant [9 x i8] c"net_send\00" @.str3303 = private unnamed_addr constant [5 x i8] c"poll\00" @@ -3417,7 +3417,7 @@ declare void @win_close() @.str3316 = private unnamed_addr constant [9 x i8] c"is_owner\00" @.str3317 = private unnamed_addr constant [9 x i8] c"local_id\00" @.str3318 = private unnamed_addr constant [9 x i8] c"local_id\00" -@.str3319 = private unnamed_addr constant [4 x i8] c"Sys\00" +@.str3319 = private unnamed_addr constant [7 x i8] c"System\00" @.str3320 = private unnamed_addr constant [4 x i8] c"arg\00" @.str3321 = private unnamed_addr constant [4 x i8] c"arg\00" @.str3322 = private unnamed_addr constant [10 x i8] c"arg_count\00" diff --git a/selfhost/tests/easecollide.ludic b/selfhost/tests/easecollide.ludic index 70c2ce8a..aceee25b 100644 --- a/selfhost/tests/easecollide.ludic +++ b/selfhost/tests/easecollide.ludic @@ -9,14 +9,14 @@ program T { print(Math.floor(Ease.bounce(0.5) * 1000.0)) # 765 print(Math.floor(Ease.back(0.5) * 1000.0)) # -88 print(Math.floor(Ease.back(1.0) * 1000.0)) # 1000 - print(Collide.rects(0, 0, 10, 10, 5, 5, 10, 10)) # 1 - print(Collide.rects(0, 0, 10, 10, 20, 20, 5, 5)) # 0 - print(Collide.point_rect(5, 5, 0, 0, 10, 10)) # 1 - print(Collide.point_rect(15, 5, 0, 0, 10, 10)) # 0 - print(Collide.point_rect(10, 5, 0, 0, 10, 10)) # 0 - print(Collide.circles(0, 0, 5, 6, 0, 5)) # 1 - print(Collide.circles(0, 0, 5, 20, 0, 5)) # 0 - print(Collide.rect_circle(0, 0, 10, 10, 15, 5, 6)) # 1 - print(Collide.rect_circle(0, 0, 10, 10, 20, 5, 6)) # 0 + print(Collision.rects(0, 0, 10, 10, 5, 5, 10, 10)) # 1 + print(Collision.rects(0, 0, 10, 10, 20, 20, 5, 5)) # 0 + print(Collision.point_rect(5, 5, 0, 0, 10, 10)) # 1 + print(Collision.point_rect(15, 5, 0, 0, 10, 10)) # 0 + print(Collision.point_rect(10, 5, 0, 0, 10, 10)) # 0 + print(Collision.circles(0, 0, 5, 6, 0, 5)) # 1 + print(Collision.circles(0, 0, 5, 20, 0, 5)) # 0 + print(Collision.rect_circle(0, 0, 10, 10, 15, 5, 6)) # 1 + print(Collision.rect_circle(0, 0, 10, 10, 20, 5, 6)) # 0 } } diff --git a/selfhost/tests/memsys.ludic b/selfhost/tests/memsys.ludic index 8ca250f5..1e2ef8c8 100644 --- a/selfhost/tests/memsys.ludic +++ b/selfhost/tests/memsys.ludic @@ -1,19 +1,19 @@ program T { entry { - let b = Mem.bytes(8) - Mem.poke(b, 0, 65) - Mem.poke(b, 1, 66) - print(Mem.peek(b, 0)) # 65 - print(Mem.peek(b, 1)) # 66 - Mem.fill(b, 0, 8) - print(Mem.peek(b, 0)) # 0 - let c = Mem.bytes(8) - Mem.poke(b, 3, 99) - Mem.copy(c, b, 8) - print(Mem.peek(c, 3)) # 99 - let w = Mem.words(4) + let b = Memory.bytes(8) + Memory.poke(b, 0, 65) + Memory.poke(b, 1, 66) + print(Memory.peek(b, 0)) # 65 + print(Memory.peek(b, 1)) # 66 + Memory.fill(b, 0, 8) + print(Memory.peek(b, 0)) # 0 + let c = Memory.bytes(8) + Memory.poke(b, 3, 99) + Memory.copy(c, b, 8) + print(Memory.peek(c, 3)) # 99 + let w = Memory.words(4) w[0] = 12345 print(w[0]) # 12345 - print(Sys.arg_count()) # 1 + print(System.arg_count()) # 1 } } diff --git a/tools/docgen/inventory.json b/tools/docgen/inventory.json index c68d12b6..394b8663 100644 --- a/tools/docgen/inventory.json +++ b/tools/docgen/inventory.json @@ -50,11 +50,11 @@ "fn-file_stdout", "fn-file_stderr" ], - "collide": [ - "collide-rects", - "collide-point_rect", - "collide-circles", - "collide-rect_circle" + "collision": [ + "collision-rects", + "collision-point_rect", + "collision-circles", + "collision-rect_circle" ], "color": [ "color-rgb", @@ -168,24 +168,24 @@ "math-asin", "math-acos" ], - "mem": [ - "mem-bytes", - "mem-words", - "mem-copy", - "mem-fill", - "mem-peek", - "mem-poke" + "memory": [ + "memory-bytes", + "memory-words", + "memory-copy", + "memory-fill", + "memory-peek", + "memory-poke" ], - "net": [ - "net-send", - "net-poll", - "net-serialize", - "net-apply", - "net-owner", - "net-set_owner", - "net-is_server", - "net-is_owner", - "net-local_id" + "network": [ + "network-send", + "network-poll", + "network-serialize", + "network-apply", + "network-owner", + "network-set_owner", + "network-is_server", + "network-is_owner", + "network-local_id" ], "networking": [ "fn-net_send", @@ -273,21 +273,21 @@ "kw-ui", "kw-enum" ], - "sys": [ - "sys-arg", - "sys-arg_count", - "sys-exit", - "sys-run", - "sys-env", - "sys-read_char", - "sys-file_open", - "sys-file_read", - "sys-file_write", - "sys-file_seek", - "sys-file_tell", - "sys-file_close", - "sys-stdout", - "sys-stderr" + "system": [ + "system-arg", + "system-arg_count", + "system-exit", + "system-run", + "system-env", + "system-read_char", + "system-file_open", + "system-file_read", + "system-file_write", + "system-file_seek", + "system-file_tell", + "system-file_close", + "system-stdout", + "system-stderr" ], "text": [ "text-length", diff --git a/tools/ludic-tools/lsp.ludic b/tools/ludic-tools/lsp.ludic index 2e533a39..54c1e0eb 100644 --- a/tools/ludic-tools/lsp.ludic +++ b/tools/ludic-tools/lsp.ludic @@ -1324,11 +1324,11 @@ program LudicLsp { if (meth == "back") { return "Ease.back(t) -> fixed" } if (meth == "bounce") { return "Ease.bounce(t) -> fixed" } } - if (ns == "Collide") { - if (meth == "rects") { return "Collide.rects(ax, ay, aw, ah, bx, by, bw, bh) -> bool" } - if (meth == "point_rect") { return "Collide.point_rect(px, py, rx, ry, rw, rh) -> bool" } - if (meth == "circles") { return "Collide.circles(ax, ay, ar, bx, by, br) -> bool" } - if (meth == "rect_circle") { return "Collide.rect_circle(rx, ry, rw, rh, cx, cy, cr) -> bool" } + if (ns == "Collision") { + if (meth == "rects") { return "Collision.rects(ax, ay, aw, ah, bx, by, bw, bh) -> bool" } + if (meth == "point_rect") { return "Collision.point_rect(px, py, rx, ry, rw, rh) -> bool" } + if (meth == "circles") { return "Collision.circles(ax, ay, ar, bx, by, br) -> bool" } + if (meth == "rect_circle") { return "Collision.rect_circle(rx, ry, rw, rh, cx, cy, cr) -> bool" } } if (ns == "World") { if (meth == "get") { return "World.get(prop_id, field_id, entity) -> int" } @@ -1348,32 +1348,32 @@ program LudicLsp { if (meth == "detach") { return "World.detach(entity, prop_id)" } if (meth == "query_next") { return "World.query_next(query_id, cursor) -> int" } } - if (ns == "Net") { - if (meth == "send") { return "Net.send(peer, buf, len)" } - if (meth == "poll") { return "Net.poll(buf, cap) -> int" } - if (meth == "serialize") { return "Net.serialize(entity, buf) -> int" } - if (meth == "apply") { return "Net.apply(entity, buf) -> int" } - if (meth == "owner") { return "Net.owner(entity) -> int" } - if (meth == "set_owner") { return "Net.set_owner(entity, peer)" } - if (meth == "is_server") { return "Net.is_server() -> bool" } - if (meth == "is_owner") { return "Net.is_owner(entity) -> bool" } - if (meth == "local_id") { return "Net.local_id() -> int" } + if (ns == "Network") { + if (meth == "send") { return "Network.send(peer, buf, len)" } + if (meth == "poll") { return "Network.poll(buf, cap) -> int" } + if (meth == "serialize") { return "Network.serialize(entity, buf) -> int" } + if (meth == "apply") { return "Network.apply(entity, buf) -> int" } + if (meth == "owner") { return "Network.owner(entity) -> int" } + if (meth == "set_owner") { return "Network.set_owner(entity, peer)" } + if (meth == "is_server") { return "Network.is_server() -> bool" } + if (meth == "is_owner") { return "Network.is_owner(entity) -> bool" } + if (meth == "local_id") { return "Network.local_id() -> int" } } - if (ns == "Sys") { - if (meth == "arg") { return "Sys.arg(i) -> str" } - if (meth == "arg_count") { return "Sys.arg_count() -> int" } - if (meth == "exit") { return "Sys.exit(code)" } - if (meth == "run") { return "Sys.run(command) -> int" } - if (meth == "env") { return "Sys.env(name) -> str" } - if (meth == "read_char") { return "Sys.read_char() -> int" } - if (meth == "file_open") { return "Sys.file_open(path, mode) -> ptr" } - if (meth == "file_read") { return "Sys.file_read(file, buf, n) -> int" } - if (meth == "file_write") { return "Sys.file_write(file, buf, n) -> int" } - if (meth == "file_seek") { return "Sys.file_seek(file, offset, whence) -> int" } - if (meth == "file_tell") { return "Sys.file_tell(file) -> int" } - if (meth == "file_close") { return "Sys.file_close(file)" } - if (meth == "stdout") { return "Sys.stdout() -> ptr" } - if (meth == "stderr") { return "Sys.stderr() -> ptr" } + if (ns == "System") { + if (meth == "arg") { return "System.arg(i) -> str" } + if (meth == "arg_count") { return "System.arg_count() -> int" } + if (meth == "exit") { return "System.exit(code)" } + if (meth == "run") { return "System.run(command) -> int" } + if (meth == "env") { return "System.env(name) -> str" } + if (meth == "read_char") { return "System.read_char() -> int" } + if (meth == "file_open") { return "System.file_open(path, mode) -> ptr" } + if (meth == "file_read") { return "System.file_read(file, buf, n) -> int" } + if (meth == "file_write") { return "System.file_write(file, buf, n) -> int" } + if (meth == "file_seek") { return "System.file_seek(file, offset, whence) -> int" } + if (meth == "file_tell") { return "System.file_tell(file) -> int" } + if (meth == "file_close") { return "System.file_close(file)" } + if (meth == "stdout") { return "System.stdout() -> ptr" } + if (meth == "stderr") { return "System.stderr() -> ptr" } } if (ns == "Save") { if (meth == "write") { return "Save.write()" } @@ -1385,13 +1385,13 @@ program LudicLsp { if (meth == "elapsed") { return "Time.elapsed() -> fixed" } if (meth == "now") { return "Time.now() -> int" } } - if (ns == "Mem") { - if (meth == "bytes") { return "Mem.bytes(n) -> ptr" } - if (meth == "words") { return "Mem.words(n) -> words" } - if (meth == "copy") { return "Mem.copy(dst, src, n)" } - if (meth == "fill") { return "Mem.fill(buf, value, n)" } - if (meth == "peek") { return "Mem.peek(buf, i) -> int" } - if (meth == "poke") { return "Mem.poke(buf, i, value)" } + if (ns == "Memory") { + if (meth == "bytes") { return "Memory.bytes(n) -> ptr" } + if (meth == "words") { return "Memory.words(n) -> words" } + if (meth == "copy") { return "Memory.copy(dst, src, n)" } + if (meth == "fill") { return "Memory.fill(buf, value, n)" } + if (meth == "peek") { return "Memory.peek(buf, i) -> int" } + if (meth == "poke") { return "Memory.poke(buf, i, value)" } } return null }