mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-18 06:34:00 -05:00
Create comprehensive research-lab pack structure with mathematical and quantum computing modules from blackroad-prism-console: Math Modules: - hilbert_core.py: Hilbert space symbolic reasoning - collatz/: Distributed Collatz conjecture verification - linmath/: Linear mathematics C library - lucidia_math_forge/: Symbolic proof engine - lucidia_math_lab/: Experimental mathematics Quantum Modules: - lucidia_quantum/: Quantum core - quantum_engine/: Circuit simulation Experiments: - br_math/: Gödel gap, quantum experiments Includes pack.yaml manifest and comprehensive README. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
116 lines
3.1 KiB
Python
116 lines
3.1 KiB
Python
import os
|
|
import sqlite3
|
|
import time
|
|
from typing import Optional, Tuple
|
|
|
|
SCHEMA = """
|
|
CREATE TABLE IF NOT EXISTS jobs(
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
start_n INTEGER NOT NULL,
|
|
end_n INTEGER NOT NULL,
|
|
status TEXT NOT NULL DEFAULT 'queued', -- queued|running|done|error
|
|
claimed_at REAL,
|
|
finished_at REAL
|
|
);
|
|
CREATE TABLE IF NOT EXISTS results(
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
job_id INTEGER NOT NULL,
|
|
min_n INTEGER NOT NULL,
|
|
max_n INTEGER NOT NULL,
|
|
max_stopping_time INTEGER,
|
|
max_excursion INTEGER,
|
|
checked_count INTEGER,
|
|
verified INTEGER NOT NULL, -- 0/1
|
|
FOREIGN KEY(job_id) REFERENCES jobs(id)
|
|
);
|
|
CREATE TABLE IF NOT EXISTS anomalies(
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
n0 INTEGER NOT NULL,
|
|
reason TEXT NOT NULL,
|
|
job_id INTEGER,
|
|
trace_path TEXT,
|
|
created_at REAL
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_jobs_status ON jobs(status);
|
|
"""
|
|
|
|
|
|
def connect(path: str):
|
|
os.makedirs(os.path.dirname(path) or ".", exist_ok=True)
|
|
conn = sqlite3.connect(path, timeout=60, isolation_level=None)
|
|
conn.execute("PRAGMA journal_mode=WAL;")
|
|
for stmt in SCHEMA.strip().split(";"):
|
|
if stmt.strip():
|
|
conn.execute(stmt)
|
|
return conn
|
|
|
|
|
|
def enqueue_chunks(conn, start_n: int, end_n: int, chunk: int):
|
|
cur = conn.cursor()
|
|
n = start_n
|
|
while n <= end_n:
|
|
cur.execute(
|
|
"INSERT INTO jobs(start_n,end_n) VALUES(?,?)",
|
|
(n, min(n + chunk - 1, end_n)),
|
|
)
|
|
n += chunk
|
|
|
|
|
|
def claim_job(conn) -> Optional[Tuple[int, int, int]]:
|
|
cur = conn.cursor()
|
|
cur.execute("BEGIN IMMEDIATE;")
|
|
row = cur.execute(
|
|
"SELECT id,start_n,end_n FROM jobs WHERE status='queued' ORDER BY id LIMIT 1"
|
|
).fetchone()
|
|
if not row:
|
|
conn.execute("COMMIT;")
|
|
return None
|
|
job_id, s, e = row
|
|
conn.execute(
|
|
"UPDATE jobs SET status='running', claimed_at=? WHERE id=?",
|
|
(time.time(), job_id),
|
|
)
|
|
conn.execute("COMMIT;")
|
|
return job_id, s, e
|
|
|
|
|
|
def finish_job(
|
|
conn,
|
|
job_id: int,
|
|
verified: int,
|
|
min_n: int,
|
|
max_n: int,
|
|
max_stopping_time: int,
|
|
max_excursion: int,
|
|
checked: int,
|
|
):
|
|
conn.execute(
|
|
"INSERT INTO results(job_id,min_n,max_n,max_stopping_time,max_excursion,checked_count,verified) VALUES(?,?,?,?,?,?,?)",
|
|
(job_id, min_n, max_n, max_stopping_time, max_excursion, checked, verified),
|
|
)
|
|
conn.execute(
|
|
"UPDATE jobs SET status='done', finished_at=? WHERE id=?",
|
|
(time.time(), job_id),
|
|
)
|
|
|
|
|
|
def record_anomaly(
|
|
conn,
|
|
n0: int,
|
|
reason: str,
|
|
job_id: Optional[int],
|
|
trace_path: Optional[str],
|
|
):
|
|
conn.execute(
|
|
"INSERT INTO anomalies(n0,reason,job_id,trace_path,created_at) VALUES(?,?,?,?,?)",
|
|
(n0, reason, job_id, trace_path, time.time()),
|
|
)
|
|
|
|
|
|
def status(conn):
|
|
cur = conn.cursor()
|
|
queued = cur.execute("SELECT COUNT() FROM jobs WHERE status='queued'").fetchone()[0]
|
|
running = cur.execute("SELECT COUNT() FROM jobs WHERE status='running'").fetchone()[0]
|
|
done = cur.execute("SELECT COUNT(*) FROM jobs WHERE status='done'").fetchone()[0]
|
|
return queued, running, done
|