This commit is contained in:
bQUARKz 2026-02-04 02:06:47 +00:00
parent eb3156dd8c
commit 92df0ae074
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
29 changed files with 66 additions and 77 deletions

15
Cargo.lock generated
View File

@ -1927,6 +1927,20 @@ dependencies = [
"url",
]
[[package]]
name = "prometeu-firmware"
version = "0.1.0"
dependencies = [
"prometeu-abi",
"prometeu-bytecode",
"prometeu-core",
"prometeu-hardware-contract",
"prometeu-kernel",
"prometeu-vm",
"serde",
"serde_json",
]
[[package]]
name = "prometeu-hardware-contract"
version = "0.1.0"
@ -1968,6 +1982,7 @@ dependencies = [
"cpal",
"pixels",
"prometeu-core",
"prometeu-firmware",
"ringbuf",
"serde_json",
"winit",

View File

@ -8,6 +8,7 @@ members = [
"crates/prometeu",
"crates/prometeu-bytecode",
"crates/prometeu-compiler",
"crates/prometeu-firmware",
"crates/prometeu-analysis",
"crates/prometeu-lsp",
"crates/prometeu-hardware-contract"

View File

@ -8,7 +8,6 @@
//! - [`hardware`]: Virtual peripheral definitions (Graphics, Audio, Input).
//! - [`virtual_machine`]: The stack-based execution engine for Prometeu ByteCode.
//! - [`prometeu_os`]: Resource management, filesystem access, and syscall dispatching.
//! - [`firmware`]: System state machine (Boot, Hub, Game Loading, Crash Handler).
//! - [`model`]: Common data structures (Colors, Sprites, Cartridges).
//! - [`fs`]: Virtualized filesystem abstraction for sandboxed access.
//! - [`log`]: Centralized logging and telemetry service.
@ -16,10 +15,7 @@
//! The "Source of Truth" for the console's behavior lives here.
pub mod hardware;
pub mod firmware;
// pub mod fs;
// pub mod prometeu_os;
mod prometeu_hub;
pub mod fs {
pub use prometeu_kernel::fs::*;

View File

@ -0,0 +1,15 @@
[package]
name = "prometeu-firmware"
version = "0.1.0"
edition = "2024"
license.workspace = true
[dependencies]
prometeu-core = { path = "../prometeu-core" }
prometeu-vm = { path = "../prometeu-vm" }
prometeu-kernel = { path = "../prometeu-kernel" }
prometeu-bytecode = { path = "../prometeu-bytecode" }
prometeu-abi = { path = "../prometeu-abi" }
prometeu-hardware-contract = { path = "../prometeu-hardware-contract" }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"

View File

@ -2,12 +2,12 @@ use prometeu_vm::VirtualMachine;
use crate::firmware::boot_target::BootTarget;
use crate::firmware::firmware_state::{FirmwareState, LoadCartridgeStep, ResetStep};
use crate::firmware::prometeu_context::PrometeuContext;
use crate::hardware::{HardwareBridge, InputSignals};
use crate::model::Cartridge;
use prometeu_core::hardware::{HardwareBridge, InputSignals};
use prometeu_core::abi::model::Cartridge;
use crate::prometeu_hub::PrometeuHub;
use crate::prometeu_os::PrometeuOS;
use prometeu_core::prometeu_os::PrometeuOS;
use crate::telemetry::CertificationConfig;
use prometeu_core::abi::telemetry::CertificationConfig;
/// PROMETEU Firmware.
///

View File

@ -1,7 +1,7 @@
use crate::firmware::firmware_state::{FirmwareState, LaunchHubStep};
use crate::firmware::prometeu_context::PrometeuContext;
use crate::log::{LogLevel, LogSource};
use crate::model::Color;
use prometeu_core::abi::log::{LogLevel, LogSource};
use prometeu_core::abi::model::Color;
#[derive(Debug, Clone)]
pub struct AppCrashesStep {

View File

@ -1,6 +1,6 @@
use crate::firmware::firmware_state::{AppCrashesStep, FirmwareState};
use crate::firmware::prometeu_context::PrometeuContext;
use crate::log::{LogLevel, LogSource};
use prometeu_core::abi::log::{LogLevel, LogSource};
#[derive(Debug, Clone)]
pub struct GameRunningStep;

View File

@ -1,6 +1,6 @@
use crate::firmware::firmware_state::{AppCrashesStep, FirmwareState};
use crate::firmware::prometeu_context::PrometeuContext;
use crate::log::{LogLevel, LogSource};
use prometeu_core::abi::log::{LogLevel, LogSource};
#[derive(Debug, Clone)]
pub struct HubHomeStep;

View File

@ -1,8 +1,8 @@
use crate::firmware::boot_target::BootTarget;
use crate::firmware::firmware_state::{FirmwareState, HubHomeStep, LoadCartridgeStep};
use crate::firmware::prometeu_context::PrometeuContext;
use crate::log::{LogLevel, LogSource};
use crate::model::CartridgeLoader;
use prometeu_core::abi::log::{LogLevel, LogSource};
use prometeu_core::abi::model::CartridgeLoader;
#[derive(Debug, Clone)]
pub struct LaunchHubStep;

View File

@ -1,7 +1,7 @@
use crate::firmware::firmware_state::{FirmwareState, GameRunningStep, HubHomeStep};
use crate::firmware::prometeu_context::PrometeuContext;
use crate::log::{LogLevel, LogSource};
use crate::model::{AppMode, Cartridge, Color, Rect};
use prometeu_core::abi::log::{LogLevel, LogSource};
use prometeu_core::abi::model::{AppMode, Cartridge, Color, Rect};
#[derive(Debug, Clone)]
pub struct LoadCartridgeStep {

View File

@ -1,7 +1,7 @@
use crate::firmware::boot_target::BootTarget;
use crate::firmware::firmware_state::{FirmwareState, LaunchHubStep, SplashScreenStep};
use crate::firmware::prometeu_context::PrometeuContext;
use crate::log::{LogLevel, LogSource};
use prometeu_core::abi::log::{LogLevel, LogSource};
#[derive(Debug, Clone)]
pub struct ResetStep;

View File

@ -1,7 +1,7 @@
use crate::firmware::firmware_state::{FirmwareState, LaunchHubStep};
use crate::firmware::prometeu_context::PrometeuContext;
use crate::log::{LogLevel, LogSource};
use crate::model::Color;
use prometeu_core::abi::log::{LogLevel, LogSource};
use prometeu_core::abi::model::Color;
#[derive(Debug, Clone)]
pub struct SplashScreenStep {

View File

@ -1,8 +1,8 @@
use prometeu_vm::VirtualMachine;
use crate::firmware::boot_target::BootTarget;
use crate::hardware::{HardwareBridge, InputSignals};
use prometeu_core::hardware::{HardwareBridge, InputSignals};
use crate::prometeu_hub::PrometeuHub;
use crate::prometeu_os::PrometeuOS;
use prometeu_core::prometeu_os::PrometeuOS;
pub struct PrometeuContext<'a> {
pub vm: &'a mut VirtualMachine,

View File

@ -0,0 +1,5 @@
pub mod firmware;
pub mod prometeu_hub;
pub use firmware::*;
pub use prometeu_hub::*;

View File

@ -1,8 +1,8 @@
use crate::hardware::HardwareBridge;
use crate::log::{LogLevel, LogSource};
use crate::model::{Color, Rect};
use prometeu_core::hardware::HardwareBridge;
use prometeu_core::abi::log::{LogLevel, LogSource};
use prometeu_core::abi::model::{Color, Rect};
use crate::prometeu_hub::window_manager::WindowManager;
use crate::prometeu_os::PrometeuOS;
use prometeu_core::prometeu_os::PrometeuOS;
/// PrometeuHub: Launcher and system UI environment.
pub struct PrometeuHub {

View File

@ -1,4 +1,4 @@
use crate::model::{Color, Rect, Window, WindowId};
use prometeu_core::abi::model::{Color, Rect, Window, WindowId};
/// PROMETEU Window Manager.
pub struct WindowManager {
@ -50,7 +50,7 @@ impl WindowManager {
#[cfg(test)]
mod tests {
use super::*;
use crate::model::Rect;
use prometeu_core::abi::model::Rect;
#[test]
fn test_window_manager_focus() {

View File

@ -15,6 +15,7 @@ include = ["../../VERSION.txt"]
[dependencies]
prometeu-core = { path = "../prometeu-core" }
prometeu-firmware = { path = "../prometeu-firmware" }
winit = "0.30.12"
pixels = "0.15.0"
cpal = "0.15.3"

View File

@ -1,6 +1,6 @@
use prometeu_core::debugger_protocol::*;
use prometeu_core::firmware::{BootTarget, Firmware};
use prometeu_core::model::CartridgeLoader;
use prometeu_firmware::{BootTarget, Firmware};
use prometeu_core::abi::model::CartridgeLoader;
use prometeu_core::Hardware;
use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};

View File

@ -10,7 +10,7 @@ pub mod utilities;
use cap::load_cap_config;
use clap::Parser;
use prometeu_core::firmware::BootTarget;
use prometeu_firmware::BootTarget;
use runner::HostRunner;
use winit::event_loop::EventLoop;

View File

@ -7,7 +7,7 @@ use crate::stats::HostStats;
use crate::utilities::draw_rgb565_to_rgba8;
use pixels::wgpu::PresentMode;
use pixels::{Pixels, PixelsBuilder, SurfaceTexture};
use prometeu_core::firmware::{BootTarget, Firmware};
use prometeu_firmware::{BootTarget, Firmware};
use prometeu_core::Hardware;
use std::time::{Duration, Instant};
use winit::application::ApplicationHandler;
@ -344,7 +344,7 @@ impl ApplicationHandler for HostRunner {
mod tests {
use super::*;
use prometeu_core::debugger_protocol::DEVTOOLS_PROTOCOL_VERSION;
use prometeu_core::firmware::BootTarget;
use prometeu_firmware::BootTarget;
use std::io::{Read, Write};
use std::net::TcpStream;

View File

@ -1,4 +1,4 @@
use prometeu_core::firmware::Firmware;
use prometeu_firmware::Firmware;
use prometeu_core::Hardware;
use std::time::{Duration, Instant};
use winit::window::Window;

View File

@ -404,36 +404,6 @@ pub struct AnalysisDb {
> 3. Sempre manter o workspace compilável a cada PR.
---
## PR-00.3 — Extrair `prometeu-kernel` (OS + FS + syscalls)
**Branch:** `pr-00-3-prometeu-kernel`
### Objetivo
Mover `prometeu_os/*` + `fs/*` (e qualquer dispatcher de syscalls) para `crates/prometeu-kernel/`.
### Passos prescritivos
1. Criar crate `crates/prometeu-kernel/`.
2. Mover:
* `crates/prometeu-core/src/prometeu_os/**` → `crates/prometeu-kernel/src/**`
* `crates/prometeu-core/src/fs/**` → `crates/prometeu-kernel/src/fs/**`
3. Garantir que o kernel **depende** de:
* `prometeu-abi`
* `prometeu-vm`
4. Garantir que a VM chama syscalls via interface implementada pelo kernel.
5. Manter shim temporário no `prometeu-core` (se existir): `pub mod prometeu_os { pub use prometeu_kernel::*; }`
### Critérios de aceite
* `cargo test` verde.
* Sem mudança comportamental (mesmo conjunto de syscalls e traps).
---
## PR-00.4 — Depurar `prometeu-core`: remover execução e virar apenas compat layer
**Branch:** `pr-00-4-deprecate-prometeu-core`
@ -457,20 +427,6 @@ Eliminar o conteúdo executável restante do `prometeu-core`, deixando-o como re
---
## PR-00.5 — (Opcional) Extrair `prometeu-firmware` (hub/boot)
**Branch:** `pr-00-5-prometeu-firmware`
### Objetivo
Mover `firmware/*` + `prometeu_hub/*` para `crates/prometeu-firmware/`.
### Critérios
* runtime desktop depende de `prometeu-firmware`.
---
## PR-00.6 — Remover `prometeu-core` e migrar consumidores
**Branch:** `pr-00-6-remove-prometeu-core`