Commit Graph

1040 Commits

Author SHA1 Message Date
vasilito afad19ff1a kernel: fix early-boot excp_handler panic on bare metal
Updates kernel submodule to 573b3e6 which replaces context::current()
with context::try_current() in excp_handler(), preventing the cascading
'not inside of context' panic when a page fault occurs during BSP's
start() before context::init() runs.
2026-07-02 22:34:40 +03:00
vasilito eb53e8190a redbear-power: multi-threaded collector + Tier 1/2 display enhancements
Tier 1 (display Phase 0 infrastructure):
- sched.rs: read /scheme/sys/stat and /scheme/sys/sched for per-CPU
  scheduler stats (switches, steals, queue_depth, IRQs)
- msr.rs: HWP capabilities/requests, RAPL domain energy readings
- process.rs: derive_sched_policy() for SCHED column
- render.rs: System tab shows RAPL power, scheduler stats; Per-CPU
  table has IRQs/steals columns; HWP expansion rows
- acpi.rs: ACPI throttle status reading

Multi-threaded collector (exercises Phase 0 threading):
- collector.rs: parallel collect() using thread::scope + Barrier,
  exercises pthread_create, futex barriers, sched_setaffinity
- app.rs: sequential per-CPU loop replaced with parallel collector
- render.rs: System tab shows Collector stats (threads, pinned, barrier)

Tier 2 kernel wiring (submodule pointer updates):
- kernel: per-CPU sched stats (/scheme/sys/sched), NUMA-aware
  scheduling, numa::init_default() at boot
- relibc: robust mutex cleanup in exit_current_thread()
2026-07-02 21:41:25 +03:00
vasilito 6d13dee2a6 redbear-power(0.2.5): fix missing hwp field in CpuRow initializer
Pre-existing bug: CpuRow struct gained an hwp field but the initializer
at line 319 was not updated.
2026-07-02 19:22:19 +03:00
vasilito a43cca122d qtwayland(0.2.5): add PCH disable + SBOM disable flags 2026-07-02 19:13:10 +03:00
vasilito fc0c1e4576 qtshadertools(0.2.5): wire ShaderToolsMacros into Config.cmake
The cmake-generated Qt6ShaderToolsConfig.cmake has an empty
extra_cmake_include list. Patch it to include Qt6ShaderToolsMacros.cmake
so qt_internal_add_shaders is defined for downstream modules.
2026-07-02 18:38:45 +03:00
vasilito 83f47db352 qtshadertools(0.2.5): install Qt6ShaderToolsMacros.cmake
cmake install skipped this 405-line macros file that defines
qt_internal_add_shaders/qt6_add_shaders. Without it, downstream Qt
modules (qtdeclarative) fail at cmake configure with 'Unknown CMake
command qt_internal_add_shaders'.
2026-07-02 18:34:21 +03:00
vasilito f877419c43 qt modules(0.2.5): disable PCH for cross-compile
Add CMAKE_DISABLE_PRECOMPILE_HEADERS=ON to qtdeclarative, qtwayland,
and qt6-sensors — same cross-compiler PCH issue as qtshadertools.
2026-07-02 18:31:00 +03:00
vasilito ac0712e8b9 qtshadertools(0.2.5): disable PCH (cross-compiler silent crash)
Redox cross-compiler fails silently on PCH generation. Disable
precompiled headers for the cross-compile step.
2026-07-02 18:19:26 +03:00
vasilito d097261be3 qtshadertools(0.2.5): disable SBOM generation (cross-compile)
Qt 6.11 SBOM install fails referencing qtbase SBOM docs during
cross-compile. SBOM is metadata only — no impact on libs/binaries.
2026-07-02 18:13:38 +03:00
vasilito 8ce2ec6b21 pam-redbear(0.2.5): regenerate Cargo.lock after version bump
redbear-login-protocol path dependency bumped to 0.2.5 but Cargo.lock
was stale. Regenerated to pick up the new version.
2026-07-02 18:08:23 +03:00
vasilito 5e68844868 qtshadertools(0.2.5): fix TOML parse - use shell heredocs for cmake pkg gen
Python f-string triple-quotes conflicted with TOML script delimiter.
Rewrote cmake package generation using shell heredocs instead.
2026-07-02 18:08:22 +03:00
vasilito 217ca485b7 qtshadertools(0.2.5): generate Qt6ShaderToolsTools cmake package
Qt6's standalone module build installs qsb binary but does not generate
the Qt6ShaderToolsTools cmake wrapper package needed by cross-compile.
Added a Python generator that creates the minimal cmake package files
(Config, Targets, Targets-release, Precheck, AdditionalTargetInfo,
VersionlessTargets, Dependencies, ConfigVersion) following the exact
pattern of Qt6WaylandScannerTools from qtbase host build.
2026-07-02 18:01:51 +03:00
vasilito 5b42305568 qtshadertools(0.2.5): add host build step for qsb tool
qtshadertools cross-compile needs the host 'qsb' (Qt Shader Builder)
tool, just like qtbase needs host moc/rcc/uic. Added a native cmake
build step that compiles qsb from the 6.11.1 source and installs it
into the shared qt-host-build prefix.

Also regenerate pam-redbear Cargo.lock (stale after 0.2.5 version bump
of redbear-login-protocol path dependency).
2026-07-02 17:51:45 +03:00
vasilito f988cc0d58 feat: redbear-mini boots to login prompt with Phase 0 threading patches
Kernel (local/sources/kernel):
- Per-CPU idle context race fix (try_idle_context)
- Pinned to nightly-2026-04-11
- Futex sharding, cache-affine context, per-CPU scheduler
- NUMA topology, proc lock ordering, sched policy handles
- ACPI FADT type fix

relibc (local/sources/relibc):
- Non-robust mutex ENOTRECOVERABLE false positive fix
- pthread_cond_signal POSIX fix
- Pthread yield, barrier SMP futex, robust mutexes
- sched API, comprehensive semaphore, pthread affinity+setname
- stdint.h in sched.h cbindgen

Boot verified: UEFI -> kernel -> init -> drivers -> services -> login prompt
All Red Bear init stages pass (02->04->06->08)
xhcid no longer crashes, D-Bus services online
2026-07-02 17:13:06 +03:00
vasilito bc7bbfb293 qtbase(0.2.5): update host profile to 6.11.1
The host tool build profile was hardcoded with '6.11.0', causing the
stale 6.11.0 host tools to be reused for the 6.11.1 cross-compile.
Updated profile string to invalidate old host build.
2026-07-02 17:04:38 +03:00
vasilito 9c93a3fc5b qtbase(0.2.5): rebase redox.patch for Qt 6.11.1 — drop obsolete OpenGL guard hunks
Upstream Qt 6.11.1 already absorbed the #if QT_CONFIG(opengl) guards in
qwaylandclientbufferintegration_p.h that our redox.patch was adding.
Removed the now-obsolete hunks per patch governance (rebase, drop if
upstream absorbed it).

All remaining hunks apply cleanly against 6.11.1 with minor line offsets.
2026-07-02 16:21:26 +03:00
vasilito 7902864a32 version(0.2.5): bump project version to 0.2.5
- Cookbook Cargo.toml: 0.1.0 → 0.2.5
- All 61 in-house crate Cargo.toml versions: 0.2.4 → 0.2.5
- os-release.in: fix URLs from github.com to gitea.redbearos.org
- sync-versions.sh --check passes with zero drift

The OS version is derived from the git branch name at build time.
Building on branch 0.2.5 produces os-release with VERSION_ID=0.2.5.
2026-07-02 15:36:28 +03:00
vasilito 8b627c40af graphics(0.2.5): bump all KF6 frameworks 6.10→6.27, Plasma 6.3.4→6.7.2, remaining libs to latest stable
KF6 frameworks: 44 frameworks bumped from 6.10.0/6.26.0 to 6.27.0 (latest stable).
All switched to download.kde.org canonical release URLs with BLAKE3 hashes.

KDE Plasma packages bumped to 6.7.2 (latest stable):
- breeze 6.3.4→6.7.2
- plasma-workspace 6.3.4→6.7.2
- kf6-kwayland 6.3.4→6.7.2
- kf6-plasma-activities 6.6.5→6.7.2

Other graphics libs bumped to latest stable:
- libxkbcommon 1.9.2→1.11.0
- seatd-redox 0.9.3→0.10.1 (URL switched to gitlab.freedesktop.org)
- plasma-wayland-protocols 1.16.0→1.21.0

All BLAKE3 hashes computed from actual upstream tarballs.
2026-07-02 15:31:30 +03:00
Red Bear Build System 0757975704 docs(0.2.5): execution log of commits made against the freeze plan
Records actual recipes bumped in 0.2.5 on 2026-07-02:

- Qt stack 6.8.2/6.11.0a1 -> 6.11.1 (all 6 sub-recipes, verified BLAKE3)
- Wayland/DRM/Input/expat/seatd to upstream latest stable (8 recipes,
  verified BLAKE3)
- KWin 6.3.4 -> 6.7.2 + kdecoration 6.3.4 -> 6.7.2 + konsole 24.08.3
  -> 26.04.3

Plus structural fix: created the missing qtshadertools recipe so the
qtdeclarative dependency chain resolves.

Documents what was deliberately NOT done:
- KF6 6.10 -> 6.27.0: 38 frameworks, 17-minor delta. Per AGENTS.md
  patch-governance, no commit that bumps recipe.toml URLs without
  first rebasing the local patches can be made honestly. Rebase
  work (17-minor * 38 recipes) is multi-day and recorded as open.
- Mesa 24.0.8 -> 26.1.4: blocked on redox-os/mesa fork rebase
  (0.3.0 work).

Includes the rebase order for the next session that plans to run
'make all CONFIG_NAME=redbear-full' against the bumped pins.
2026-07-02 14:38:19 +03:00
Red Bear Build System 3539e621a2 kde(0.2.5): bump KWin 6.6.5->6.7.2, kdecoration 6.3.4->6.7.2, konsole 24.08.3->26.04.3
Bump KDE Plasma + KDE utility recipes to upstream latest stable
on 2026-07-02.

Versions resolved against download.kde.org/stable/plasma/ and
invent.kde.org/plasma/* tags:

  kwin         6.3.4  -> 6.7.2   (invent.kde.org/plasma/kwin)
  kdecoration  6.3.4  -> 6.7.2   (invent.kde.org/plasma/kdecoration)
  konsole      24.08.3 -> 26.04.3 (invent.kde.org/utilities/konsole;
                                    note: KDE utility versioning switched
                                    from YY.MM calendars to v26.04-style)

BLAKE3 hashes verified against the actual downloaded upstream tarballs.

State of source trees on disk (NOT touched by this commit):
  - local/recipes/kde/kwin/source/         : still KWin 6.6.5 (prior
    session imported 6.6.5 source; new tarball at v6.7.2 will replace
    on next repo fetch).
  - local/recipes/kde/kdecoration/source/  : still 6.3.4
  - local/recipes/kde/konsole/source/      : still 24.08 (RELEASE_SERVICE_
    VERSION_MAJOR/MINOR).

Per AGENTS.md fork-adaptation policy, patches in local/patches/
{kwin,kdecoration,konsole}/ must be re-applied against the new
upstream source trees after fetch; rebase is open work for the
next session. Disabling patches or wrapping with feature flags is
NOT acceptable per the in-tree stub/workaround zero-tolerance rule.

This commit does NOT bump any KF6 framework recipe (38 recipes,
17-minor upstream delta). That work is multi-day patch rebase and
remains open.
2026-07-02 14:36:39 +03:00
Red Bear Build System 7bbf56217e graphics(0.2.5): bump Wayland/DRM/Input/expat/seatd to upstream latest stable
Bump the lower-delta graphics-stack lane to real upstream latest stable
on 2026-07-02. Per AGENTS.md fork-adaptation policy, the local patches
in local/patches/{libdrm,libwayland,libevdev,libinput}/ must be re-applied
against the new source trees before the next build; rebase is open work.

Versions resolved against authoritative upstream registries (real latest stable):

  libwayland         1.24.0    -> 1.25.0   (gitlab.freedesktop.org/wayland/wayland)
  wayland-protocols  1.38      -> 1.49     (gitlab.freedesktop.org/wayland/wayland-protocols)
  libdrm             2.4.125   -> 2.4.134  (gitlab.freedesktop.org/mesa/libdrm)
  libxkbcommon       1.7.0     -> 1.9.2    (github.com/xkbcommon/libxkbcommon mirror)
  libevdev           1.13.2    -> 1.13.6   (freedesktop.org/software/libevdev)
  libinput           1.30.2    -> 1.31.3   (gitlab.freedesktop.org/libinput/libinput)
  seatd-redox        0.9.1     -> 0.9.3    (git.sr.ht/~kennylevinsen/seatd)
  expat              2.5.0     -> 2.8.2    (github.com/libexpat/libexpat)

BLAKE3 hashes verified against the actual downloaded upstream tarballs.

Not changed (already at or near upstream latest):
  - dbus 1.16.2 (== upstream latest)
  - xkeyboard-config (no standalone recipe; consumed via libxkbcommon)
  - linux-input-headers (Red Bear original, not upstream)

Patches NOT yet rebased: see local/patches/{libdrm,libwayland,libevdev,
libinput}/. The dependency surfaces they patch (libdrm 2.4.134 has new
DRM modifier code, libwayland 1.25.0 has new server-decoder helpers,
libinput 1.31 has new touchpad gesture tables) will need review before
re-fetch.
2026-07-02 14:34:50 +03:00
Red Bear Build System 097dc10f70 qt(0.2.5): bump stack to Qt 6.11.1 (real upstream latest stable)
Bump the entire Qt 6 recipe surface to 6.11.1 as resolved from
download.qt.io on 2026-07-02. Per AGENTS.md fork-adaptation policy,
patches in local/patches/qtbase/* and local/patches/qtdeclarative/*
must be re-applied against the 6.11.1 source tree after this commit;
rebase is open work for the next session.

Verified BLAKE3 hashes for the 6.11.1 tarballs:

  qtbase        c3b83023dc54f1173831bbc80abca1901418ef517875bf8071a4895d3c4a3162
  qtdeclarative 10f2d0662047ceb0ef221b725b59e7fec5c9092a4c10d5acc7daefea5f11b962
  qtwayland     154b80972e472b10330c82d3b171a915959a5d06139289d5b898c16c58de4de8
  qtsvg         49b947e1a96bf0a29a1ee84c231a518a1413d9f3ec360617e405400e510508b2
  qtshadertools 24dcd88b9e752a380067182687032b2139d2f6220d64e4193428434970102ae2
  qtsensors     52ad8a724bc34f724feef197cf29f1cb535831ddd0fbad6e9dfedaa01eef1379

Also:

- qtbase: bumped from 6.8.2 -> 6.11.1. The 6.11.0 source tree had been
  imported under local/recipes/qt/qtbase/source/ by a prior session
  without updating the recipe.toml. This commit aligns the recipe
  with both the imported source and the resolved upstream latest.

- qtshadertools: NEW recipe created. The recipes/qt/qtshadertools
  symlink was dangling (target directory did not exist), making
  qtdeclarative's qtshadertools dependency unresolvable. Now wired
  up following the qt6-sensors recipe pattern. Source tar URL is
  the resolved 6.11.1 upstream; per-repo fetch will populate
  source/ on next build.

What's NOT done (deliberately):

- Patch rebase in local/patches/qtbase/P*.patch and
  local/patches/qtdeclarative/P1-skip-tools-crosscompile.patch.
  These must be re-applied against the 6.11.1 source tree before
  the next build. AGENTS.md policy: rebase, do not remove.

- KF6 6.10 -> 6.27.0 bump (38 framework recipes, 17-minor delta).
  Deferred — multi-day patch-rebase work, out of scope for one session.
  See local/docs/0.2.5-GRAPHICS-FREEZE-PLAN.md §2.2.

- KWin 6.6.5 -> 6.7.2 + wayland-protocols/libdrm/libwayland/...
  bumps (remaining graphics recipes). Deferred.

- No build was attempted. recipe.toml pin is now consistent with
  resolved upstream latest-stable; no source tree replacement has
  happened.
2026-07-02 14:27:27 +03:00
vasilito 327aed1e5d git: bump submodule/kernel for cargo -Zunstable-options 2026-07-02 14:22:35 +03:00
Red Bear Build System db6fbe5155 docs(0.2.5): graphics freeze plan with real upstream-latest-stable targets
Plan-only artifact for the 0.2.5 graphics path. No recipe.toml changes,
no build attempted. Documents:

- Per-recipe upstream-latest-stable versions resolved via download.qt.io,
  download.kde.org, gitlab.freedesktop.org, and git ls-remote on
  invent.kde.org projects (no human guessing).
- Pre-build actions required (re-pull, re-blake3, validate-patches).
- Patch surface to re-evaluate across 17-minor KF6 bump and 1-minor
  KWin bump.
- Mesa fork situation (24.0.8 vs 26.1.4): freeze at current fork,
  rebase is 0.3.0 work.
- Freeze-when-green criteria for cutting 0.2.5.
- Out-of-scope items (Plasma workspace, real libepoxy, etc.).

Decisions in this plan are reversible; no recipe.toml field has been
modified. All work-in-progress from prior session is preserved as
uncommitted files in the working tree.
2026-07-02 13:44:49 +03:00
vasilito 7fdf828c75 git: bump submodule/kernel for Cargo.lock refresh 2026-07-02 13:43:15 +03:00
vasilito 7aeb3bb475 build: capture build script auto-stash changes from 0.2.5 kernel/relibc/base build
The build-redbear.sh script auto-stashes working tree changes
in nested relibc and base source trees before running the
build. These changes were captured by the failed kernel
build attempt that hit the json-target-spec / kernel rust
toolchain mismatch (fixed in 0.2.5 by creating the local
0.2.5 branch).

Captured changes:
- local/recipes/kde/* : KDE Frameworks 6 source CMakeLists
  whitespace changes from the autostash (preserved)
- local/recipes/qt/qtbase/* : qtypes.h whitespace from the
  autostash (preserved)
- local/sources/kernel/Cargo.lock : dependency lock from
  the kernel relibc rebuild attempt
- local/sources/kernel/src/lib.rs : touched (mtime) by the
  build script's touch + make prefix command

This is a bookkeeping commit — the actual code changes
for the threading plan are on the 4 submodule branches
(kernel, relibc, base, libredox) and will be pushed
separately.

0.2.5 branch was created from 0.2.4 (HEAD cd3950072e) to
continue Phase 0 of the multi-threading plan work in a
clean branch.
2026-07-02 13:41:03 +03:00
vasilito cd3950072e git: bump submodule/base for acpid comment fix 2026-07-02 12:47:15 +03:00
vasilito 1baa769241 git: bump submodule/base for acpid brace fix 2026-07-02 11:37:58 +03:00
vasilito a998484765 git: bump submodule/libredox for default features fix 2026-07-02 11:09:44 +03:00
vasilito af21591a98 git: bump submodule/libredox for Cargo.toml regen 2026-07-02 10:59:47 +03:00
vasilito 32a217f9e5 git: bump submodule/kernel for proc path fix 2026-07-02 10:53:53 +03:00
vasilito a53946aecf git: bump submodule/kernel for scheduler deadlock fix 2026-07-02 10:36:18 +03:00
vasilito 27bb5e3f0e git: bump submodule/relibc for [u64; 2] affinity mask 2026-07-02 10:30:50 +03:00
vasilito b8fbb8bfc5 git: bump submodule/relibc for robust_list_head init + null guard 2026-07-02 10:22:30 +03:00
vasilito 14913dc6f3 git: bump submodule/kernel for nice mapping fix 2026-07-02 10:19:09 +03:00
vasilito 1d34a67dd3 git: bump submodule/libredox for non-optional redox_syscall dep 2026-07-02 08:25:52 +03:00
vasilito ff05c9f596 git: bump submodule/relibc for unused import removal 2026-07-02 08:15:21 +03:00
vasilito 44e6665a4a git: bump submodule/relibc for Sys::open/close Result handling 2026-07-02 07:57:52 +03:00
vasilito fb827fad85 git: bump submodule/relibc for Sys::open NulStr fixes 2026-07-02 07:55:29 +03:00
vasilito 3d2392eb2e git: bump submodule/libredox to 0.1.18 with Phase J acpi module 2026-07-02 07:55:05 +03:00
vasilito e524350cf3 git: bump submodule/relibc for PthreadFlags + robust_list_head + comprehensive semaphores 2026-07-02 07:45:31 +03:00
vasilito 32a776771c cookbook: self-heal git-sourced recipe source dirs with missing .git
When a git-sourced recipe's source/ directory exists but has no
embedded .git (e.g., a cleanup pass removed .git directories from
build-cache sources, or the dir was extracted from an archive without
.git), the cookbook previously hard-bailed with
  '{:?} is not a git repository, but recipe indicated git source'

This required manual intervention: the operator had to find the
broken source/ dir, rm -rf it, and re-run the build. With many
local recipes that use git URLs and embedded .git directories as
build caches (e.g., local/recipes/dev/ninja-build, local/recipes/kde/*),
this happened easily.

Fix: detect the missing .git, wipe the source dir, and re-clone from
the recipe's git URL. The fresh-clone logic is extracted to a new
reclone_git_source() helper used by both the initial-fetch path and
the self-heal path. After the self-heal, the source/ has a valid
.git and the rest of the fetch flow continues normally.

Tested by: deleting local/recipes/dev/ninja-build/source/.git (the
exact regression that triggered this fix) and running
./local/scripts/build-redbear.sh --upstream redbear-mini
which now self-heals instead of hard-failing.
2026-07-02 07:34:27 +03:00
vasilito 34a11d845b git: bump submodule/relibc for Phase 0e progress
The relibc fork just gained 8 commits:
  - P3-pthread-yield (sched_yield via proc scheme)
  - P3-barrier-smp-futex (SMP-safe barrier)
  - P5-robust-mutexes (robust mutex implementation)
  - P5-sched-api (replaces todo!() in sched_* functions)
  - P3-threads (C11 <threads.h>)
  - P7-pthread-affinity + P7-pthread-setname (manual surgical,
    including cpu_set_t struct, sched-affinity proc scheme handle,
    sched C-export, setname/getname_np)
  - P3-semaphore-comprehensive (POSIX semaphores)
  - P5-signal-handler-panic-hardening
  - P3-semaphore-varargs-header
  - P5-robust-mutex-enotrec-fix (ENOTRECOVERABLE handling)

Combined with the previous pthread_cond_signal POSIX fix, relibc
now provides:
  - sched_getscheduler/setscheduler/getparam/setparam (real impls)
  - pthread_setaffinity_np/getaffinity_np
  - pthread_setname_np/getname_np
  - pthread_setcancelstate/setcanceltype (already worked)
  - C11 <threads.h>
  - POSIX semaphores (sem_init, sem_wait, sem_post, etc.)
  - SMP-safe barrier
  - Robust mutex infrastructure (pending kernel FUTEX_OWNER_DIED
    for full functionality)

Phase 0e is ~70% complete on the relibc side. Remaining 6 patches
need 3-way rebase or manual surgical edits.

Phase 1 (FUTEX_REQUEUE/PI/robust) is now a logical follow-on: the
relibc infrastructure is in place to use them when the kernel
futex layer is extended.
2026-07-02 07:13:42 +03:00
vasilito 533a1c2969 docs: update multi-threading plan with Phase 0c status
Prepend an UPDATE block at the top of the plan document recording:

  - The 8 commits that landed Phase 0c (futex sharding, per-CPU run
    queues, vruntime, work stealing, load balancing, cache-affine,
    initial placement, NUMA topology, proc scheme handles, fadt fix)
  - The upstream-redox kernel audit finding (upstream has none of
    these features; local fork is sole implementation)
  - A plan-vs-actual state table showing which claimed 'missing'
    features are now present
  - The kernel-side Phase 0c is complete; remaining work is
    relibc-side (Phase 0e) and futex-REQUEUE/PI/robust (Phase 1)

The detailed §1–§9 analysis is preserved unchanged as historical
record. The status column 'Missing' in §1 should be re-read as
'now present in local kernel fork, pending relibc userspace wiring.'

cargo check now exits 0 with 0 errors in the local kernel fork.
2026-07-02 07:01:16 +03:00
vasilito f495587972 git: bump submodule/kernel for Phase 0c completion
The local kernel fork just gained 3 commits:
  - add Context::set_sched_policy and set_sched_other_prio
  - acpi/fadt: fix pre-existing usize/u32 type mismatch on x86_64
  - add SchedPolicy/Name/Priority proc scheme handles

After these, the local kernel fork:
  - Has 13 of the 18 P5-P9 plan patches re-applied (3 obsolete by
    refactor, 1 misnamed, 1 already in fork from P4)
  - cargo check exits 0 with 0 errors
  - Provides userspace API for pthread_setname_np, sched_setscheduler,
    and setpriority via /proc/<tid>/{name, sched-policy, priority}
  - Fixes a long-standing pre-existing ACPI FADT type mismatch

Phase 0c (patch recovery) is functionally complete for the kernel
side. Remaining P5-P9 work is in relibc fork (P3/P5/P7/P9 threading
patches) which is a separate, more self-contained effort.
2026-07-02 07:00:24 +03:00
vasilito 8e98ae1270 git: bump submodule/kernel for Phase 0c placement + NUMA + lock order 2026-07-02 06:43:25 +03:00
vasilito bb6d2ad95e git: bump submodule/kernel for Phase 0c per-CPU run queue wiring 2026-07-02 06:42:24 +03:00
vasilito c52cec97cd git: bump submodule/kernel for Phase 0c start (P6-futex-sharding + RUN_QUEUE_COUNT)
The local kernel fork just gained two commits:
  - P6-futex-sharding: replaces single global Mutex<L1, FutexList> with
    64-shard hash table, eliminating contention between futex operations
    on different addresses.
  - RUN_QUEUE_COUNT: pre-flight constant at context::RUN_QUEUE_COUNT = 40
    that downstream patches (P8-percpu-sched, P8-percpu-wiring) need but
    none of the existing P5–P9 patches define.

Phase 0c, plan orders #1 and pre-flight.
2026-07-02 06:33:28 +03:00
vasilito 768010de46 git: bump submodule/relibc for pthread_cond_signal POSIX fix
The relibc fork at local/sources/relibc just gained a one-line
correctness fix for pthread_cond_signal (was calling broadcast() which
wakes all waiters; POSIX requires wake exactly one). The fix was
committed to the fork as 6caad3a5 and pushed to the submodule/relibc
branch on the canonical RedBear-OS repo.

This parent-repo commit updates the gitlink so a fresh clone picks
up the new relibc fork HEAD.

First execution of the multi-threading plan (Phase 0a).
2026-07-02 06:23:40 +03:00
vasilito c120c3519f git: restore clean submodule tracking and add libredox fork
The working tree had accumulated git-tracking drift across the
local/sources, local/recipes/*/source, and local/reference trees.

Restored:
  - local/sources/libredox: add missing 160000 gitlink at
    d01da350 (submodule/libredox). The .gitmodules entry already
    declared this fork; the parent tree entry was missing so a
    fresh clone of the parent would not pull the libredox source.
  - .gitignore: mark the four local/recipes/*/source build-cache
    trees (uutils-tar, ninja-build, sddm, sddm/source-pristine)
    and the two local/reference/* entries (linux-7.1, seL4) as
    ignored. These are build caches and external references, not
    durable Red Bear code. The durable code for the four recipes
    is recipe.toml + the corresponding patch (redox.patch).
  - Note in .gitignore: do not extend local/recipes/**/source to
    a blanket rule, because ~150 Red Bear fork recipes do keep
    their durable source under local/recipes/<name>/source/.

Removed six broken 160000 gitlinks:
  - local/recipes/archives/uutils-tar/source (e4c2affa...): on-disk
    working tree was a self-clone of RedBear-OS; gitlink pointed to
    a non-existent commit in the parent object database.
  - local/recipes/dev/ninja-build/source (d829f42b...): gitlink
    was a dangling commit on a diverged branch that has since been
    rewritten; the on-disk HEAD is upstream v1.13.1 (79feac0) which
    the recipe re-fetches via recipe.toml anyway. The 6.4MB
    embedded .git directory was also removed.
  - local/recipes/kde/sddm/source (63780fcd...): build cache for
    sddm 0.21.0 re-fetched via recipe.toml. The 11MB embedded
    .git directory was also removed.
  - local/recipes/kde/sddm/source-pristine (63780fcd...): empty
    placeholder, build cache. Removed.
  - local/reference/linux-7.1 (ab9de95c...): external Linux
    reference tree, gitignored by size. The on-disk directory
    is preserved per AGENTS.md 'NEVER delete the reference tree'.
  - local/reference/seL4 (a0b4f2d2...): empty placeholder,
    gitignored.

Removed untracked pollution at repo root:
  - kernel (empty 0-byte file)
  - qqmljsgrammar.cpp, qqmljsgrammar_p.h, qqmljsparser.cpp,
    qqmljsparser_p.h (393KB total: build artifacts that escaped
    a qtdeclarative build into the working tree root; they belong
    inside the recipe source tree, not at the parent level)

Added:
  - local/docs/MULTITHREADING-COMPREHENSIVE-ASSESSMENT-AND-PLAN.md:
    comprehensive multi-threading audit and implementation plan
    covering kernel scheduler, kernel futex, syscall ABI, relibc
    pthreads, and userspace threading correctness. Will drive
    the next implementation cycle after the git tracking work
    is wrapped.

After this commit:
  - 9 submodule entries in HEAD, all of local/sources/* forks.
  - All previously-existing 8 fork submodules unchanged.
  - libredox is now durable across clones (was previously lost).
  - No untracked files at root.
  - No dangling or self-referencing gitlinks.
2026-07-02 06:04:52 +03:00