QRUNAP2

Compatibility and adaptation

QRUNAP2 0.1 is an educational Rust interpreter for a small, evidence-linked QNAP2 subset. It is not a replacement for the complete historical environment. The inventory separates evidence from runtime policy.

AreaHistorical QNAP2QRUNAP2 0.1
Model textStations, customers, algorithms and control sectionsHistorical section spelling; numeric literals and deterministic routes only
ExecutionSimulation and multiple solution methodsDiscrete-event simulation only
StationsRich types, disciplines and synchronizationSources, single/multiple servers, FIFO, initial populations
ProgrammingVariables, expressions, procedures, loops, flags and referencesNot implemented; explicit error
RandomnessHistorical generator and stream rulesSeeded xorshift32; no stream equivalence claimed
StatisticsHistorical controls, replication and precision facilitiesTime averages and completed-visit averages; no warm-up removal or confidence intervals
InterfaceHistorical interactive commandsNew CLI and English/French browser playground
DistributionHistorical runtimeSame Rust core compiled natively and to WebAssembly

No silent migration

An unsupported construct is rejected. In particular, an original program using PRINT, GET, variables or parallel replications does not silently run with those instructions removed. The bundled historical adaptation has an explicit change record in sources.

Limits

One QUEUE declaration; at most 128 stations; capacities 1–1,024; source text up to 64 KiB; population up to 100,000; at most 1,000,000 events per run. Durations and TMAX must be positive and no greater than 1e9. Only decimal literals, no exponent notation. No zero-time service, probabilistic branching, customer classes, variable assignment, arrays, priorities, preemption, processor sharing, infinite servers, nested SERVICE code, file access or analytical solver.

Limits produce errors, not plausible-looking partial results. The browser can terminate a worker at any time. Model errors include source locations where detected; post-parse consistency errors name the relevant station when available.

Verification scope

Tests cover deterministic event counts, occupancy integration, population conservation, closed-network population, fixed-seed replay, multiple-server effects, invalid input and resource limits. Eight independent long M/M/1 runs are compared with theoretical means using documented broad regression tolerances. These tests establish internal and mathematical checks for this subset; they do not certify QNAP2 9.3 conformance.