Commit Graph

19 Commits

Author SHA1 Message Date
21cd1fa4e6 progress on modem and basic todo 2026-04-07 15:55:57 +02:00
5d7725d77b fixed a deadlock 2026-04-07 09:56:47 +02:00
79ae1e13f8 bunch of progress 2026-04-05 19:48:13 +02:00
dad8e34cca work on network encoding and documenting eventual component interfaces 2026-04-05 01:04:24 +02:00
32f94cf02b drives, rebalancing, and a broken tmpfs impl
that tmpfs impl needs to be reworked to heck and back!
2026-04-03 23:58:23 +02:00
shorekeeper
d41e110cdf Fix some GPU bugs and add clamping 2026-04-03 00:44:00 +03:00
a2069eea74 minor tweaks 2026-04-02 21:26:38 +02:00
shorekeeper
8d37628ae7 Fix Windows build and several cross-platform bugs
Cross-platform bugs:

- ncomplib.c: fseek was called as fseek(f, whence, offset) instead of
  fseek(f, offset, whence). Seeks only worked correctly when offset
  happened to numerically equal a valid whence constant.

- neonucleus.c: nn_realloc passed memory pointer instead of ctx to
  nn_alloc in the NULL and sentinel paths. Any call with memory=NULL
  dereferences NULL as a context struct and crashes. Confirmed by
  test_realloc.c which crashes before fix and passes after.

- neonucleus.h: NN_TiB was defined as (1024 * NN_TiB), referencing
  itself. Fixed to ((size_t)1024 * NN_GiB).

- luaarch.c: unicode functions were registered on the component Lua
  table instead of the unicode table. Wrong stack index variable was
  used in all five lua_setfield calls.

- neonucleus.c: NN_ATOMIC_NONE versions of nn_incRef/nn_decRef took
  1 argument but were called with 2 everywhere. Added the missing
  size_t n parameter.

Windows build:

- neonucleus.c: NN_LOCK_CREATE in NN_THREAD_WINDOWS was missing a
  return statement, falling through into NN_LOCK_DESTROY and
  immediately closing the freshly created mutex handle.

- ncomplib.c: Added Windows implementations for opendir, readdir,
  closedir, stat, mkdir and directory removal using FindFirstFileA,
  FindNextFileA, _stat, _mkdir and _rmdir.

- main.c: Fall back to USERNAME env var when USER is not set.

- neonucleus.h: Added NN_VLA macro. Expands to a plain VLA on
  GCC/Clang, uses _alloca on MSVC. Applied in luaarch.c and
  neonucleus.c where VLAs were used.

- neonucleus.h: Added NN_INIT macro. Expands to a compound literal
  cast on GCC/Clang, expands to nothing on MSVC which does not
  support compound literals as constant initializers at file scope.
  Applied to all global struct initializers in neonucleus.c.

- neonucleus.c: Auto-define NN_ATOMIC_NONE on MSVC in C mode since
  MSVC does not provide stdatomic.h outside of C++ mode.
2026-04-01 19:18:00 +03:00
3f6ef63737 small rework 2026-04-01 14:40:12 +02:00
d95726cbf6 slight bugfix and work on drive 2026-04-01 12:34:57 +02:00
9291d81d41 small tweak 2026-03-31 18:54:19 +02:00
2a31dc838d perfectly accurate fs
turns out, file cost is 0 for loot disks, so there was never an actual
discrepancy
2026-03-31 18:00:18 +02:00
917427c2e1 initial work on GPU 2026-03-31 14:43:10 +02:00
76b14524c5 more work on FS 2026-03-31 13:13:11 +02:00
5c854e5c4a extremely primitive screen impl 2026-03-30 23:25:56 +02:00
6086208879 more complete fs impl 2026-03-30 18:05:16 +02:00
2b72e47ba5 mkdir 2026-03-30 11:42:28 +02:00
37cc73a21c huge progress on ncomplib 2026-03-29 19:50:16 +02:00
30547b2dc8 reworking a large part of the architecture 2026-03-28 22:38:00 +01:00