ludic/docs/language
Orkuncakilkaya 1a2c6ec2c7
Some checks are pending
docs / build-and-deploy (push) Waiting to run
feat(stdlib): Time/Date/Duration calendar-clock core (issue #9)
Implement the calendar/clock half of #9 as plain-i32 integer epochs — no
new type, no floating point (the issue's "integer epochs to avoid drift") —
so every operation is deterministic and bit-identical on every platform:

  Duration — a span in whole seconds; seconds/minutes/hours/days build one,
             as_seconds/as_minutes/as_hours/as_days read it back. Because a
             duration is just an int, `+` and `>` work with no extra machinery
             (Duration.minutes(5) + Duration.seconds(30), away > Duration.hours(3)).
  Date     — a civil day as days-since-1970 (UTC): new/year/month/day/weekday/
             is_leap/days_in_month/to_epoch/add_days/diff_days.
  DateTime — an instant as seconds-since-1970 (UTC, matching Time.now):
             from/date/add/year/month/day/weekday/hour/minute/second.
  Time.since(past) = now - past, for offline-progress / "time away" checks.

New selfhost/emit_datetime.ludic (is_/emit_ for the three namespaces, wired
into emit_ns_call + the frag list). The two civil<->epoch conversions are
Howard Hinnant's public-domain proleptic-Gregorian algorithms, emitted once
per program as the @fn_days_from_civil / @fn_civil_from_days prelude and gated
by g_uses_datert; days_in_month is next-month-day-0 (no lookup table). Time
gains `since`. Docs (Duration/Date/DateTime sections, 28 method pages +
time-since), inventory, and LSP hover kept in sync; a registered test checks
component math against hand-computed values. Reseeded; C-free fixpoint holds;
all suites green (26 self-host / 45 regression / 29 tools); check.py,
check-impl.py and validate.py OK.

format/parse, a game-controlled simulated clock, and timezones are tracked
follow-ups; v1 is UTC-only and, on the i32 epoch, valid through 2038.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-30 03:37:38 +03:00
..
annotations refactor(lang): rename the ptr/ptrs types to pointer/pointers 2026-08-30 01:58:54 +03:00
builtins refactor(lang): rename builtins flr->floor and fx->fixed 2026-08-30 02:01:56 +03:00
collision refactor(stdlib): de-abbreviate namespaces (Mem/Sys/Net/Collide) 2026-08-30 01:30:47 +03:00
color feat(stdlib): namespaced standard library (issue #2) 2026-08-30 00:26:19 +03:00
colors docs: add Networking section + process/OS builtins (net_send, owner, is_server, serialize/apply, arg, exit, run, getenv, read_char, file_*) 2026-08-29 16:39:29 +03:00
control feat(stdlib): namespaced standard library (issue #2) 2026-08-30 00:26:19 +03:00
date feat(stdlib): Time/Date/Duration calendar-clock core (issue #9) 2026-08-30 03:37:38 +03:00
datetime feat(stdlib): Time/Date/Duration calendar-clock core (issue #9) 2026-08-30 03:37:38 +03:00
duration feat(stdlib): Time/Date/Duration calendar-clock core (issue #9) 2026-08-30 03:37:38 +03:00
ease feat(stdlib): Math.exp/log/pow + Ease.elastic transcendentals (issue #25) 2026-08-30 01:19:44 +03:00
ecs refactor(lang): rename the str type (and stringify builtin) to string 2026-08-30 01:51:11 +03:00
events docs(api): per-symbol pages, fuzzy search, deep token linking, hover cards 2026-08-29 17:53:22 +03:00
hash feat(lang,stdlib): 64-bit long type + 64-bit Hash variants (issue #17) 2026-08-30 01:01:06 +03:00
input docs(api): per-symbol pages, fuzzy search, deep token linking, hover cards 2026-08-29 17:53:22 +03:00
list feat(stdlib): namespaced standard library (issue #2) 2026-08-30 00:26:19 +03:00
map docs(api): per-symbol pages, fuzzy search, deep token linking, hover cards 2026-08-29 17:53:22 +03:00
math refactor(lang): rename builtins flr->floor and fx->fixed 2026-08-30 02:01:56 +03:00
memory refactor(lang): rename the ptr/ptrs types to pointer/pointers 2026-08-30 01:58:54 +03:00
network refactor(stdlib): de-abbreviate namespaces (Mem/Sys/Net/Collide) 2026-08-30 01:30:47 +03:00
networking docs(api): per-symbol pages, fuzzy search, deep token linking, hover cards 2026-08-29 17:53:22 +03:00
operators refactor(lang): rename the ptr/ptrs types to pointer/pointers 2026-08-30 01:58:54 +03:00
phases docs(api): per-symbol pages, fuzzy search, deep token linking, hover cards 2026-08-29 17:53:22 +03:00
random feat(stdlib): namespaced standard library (issue #2) 2026-08-30 00:26:19 +03:00
save feat(stdlib): namespaced standard library (issue #2) 2026-08-30 00:26:19 +03:00
scenes docs(api): per-symbol pages, fuzzy search, deep token linking, hover cards 2026-08-29 17:53:22 +03:00
screen feat(stdlib): namespaced standard library (issue #2) 2026-08-30 00:26:19 +03:00
structure refactor(lang): rename builtins flr->floor and fx->fixed 2026-08-30 02:01:56 +03:00
system refactor(lang): rename the ptr/ptrs types to pointer/pointers 2026-08-30 01:58:54 +03:00
text refactor(lang): rename the str type (and stringify builtin) to string 2026-08-30 01:51:11 +03:00
time feat(stdlib): Time/Date/Duration calendar-clock core (issue #9) 2026-08-30 03:37:38 +03:00
types feat(stdlib): 2D Vector type + Vector.* namespace (issue #25) 2026-08-30 02:09:38 +03:00
vector feat(stdlib): 2D Vector type + Vector.* namespace (issue #25) 2026-08-30 02:09:38 +03:00
world feat(stdlib): namespaced standard library (issue #2) 2026-08-30 00:26:19 +03:00