Did you know ... Search Documentation:
Pack asadb -- COMPATIBILITY.md

AsaDB 1.5.0 Stable Compatibility Matrix

This document separates validated behavior from conditional compatibility. Stable applies to the documented Linux/PCLinuxOS backend and source-package scope; it does not mean every SQL dialect, operating system, or third-party runtime is supported.

The 1.5.0 Stable release has passed the available Linux runtime and backend regressions. A Windows portable executable must be built and tested on Windows before this matrix can claim native Windows validation.

Release validation host

The 1.3.0 release gates were executed on 4MLinux 51.2 (Linux 6.12.94, x86_64), Intel Core i5-6300U, with 8 GB RAM. This records the actual machine profile used for the release; the capability probe remains the authoritative check when moving the package to another host.

PCLinuxOS 1.5.0 Stable verification

The current 1.5.0 Stable audit was run on PCLinuxOS 2026, Linux 6.18.37-pclos1, x86_64, with SWI-Prolog 10.0.2. The runtime capability probe, core SQL suite, Reservoir suite, 15,000-row indexed JOIN, production backup/restore checks, Guardian, POSIX launchers, and Linux/Windows-source package checks passed. The storage stress suite also completed its 100,000-row import, indexed lookup, ordered limit, update, delete, bounded-result, and restart-persistence assertions; the measured import stage was 27,309 ms.

This is a real target-host validation record, not a portability promise for every PCLinuxOS installation: run the same capability and release gates after changing SWI-Prolog, filesystem, or configuration.

Platform matrix

AreaStatusScope
Linux x86_64 package layoutValidatedClean archive root, executable modes, GPL files, checksum, and extraction are regression-tested.
POSIX `/bin/sh` launchersValidatedSyntax checked with dash; quoting and paths containing spaces have a fake-runtime regression; no Bash-only [[ ]], arrays, pipefail, or source.
BusyBox shCI-coveredGitHub Actions installs BusyBox and checks every shipped shell script.
SWI-Prolog coreValidatedCore assertions and the JOIN workload pass on the available SWI-Prolog WASM runtime; native Linux is a CI and target-host gate.
Prolog VM/JITI specializationSource-covered on SWI-Prolog 10.0.2Repeated small SQL and safe filter ASTs use bounded 128-entry caches; unsupported expressions retain the interpreter path. This is not native-code JIT.
Native HTTP/Reservoir backendRuntime-gatedcheck_linux_runtime.sh loads required HTTP, crypto, UUID, CSV, XML/SGML, ZIP, thread, core, interchange, Reservoir, and web modules before use.
Asa Process GuardianValidated on LinuxStandalone rolling source mirror and child-process supervision. It uses atomic per-file replacement, SHA-256 manifests, bounded logs, heartbeat auditing, Unix CONT nudges, and bounded crash restart. It is opt-in and never participates in SQL execution.
AsaDB production backup (`.asb`)Covered on LinuxAuthenticated backend download scans paged record storage; tampering, active transactions, and full restore row/table totals are regression-tested. It is a logical backup, not a filesystem hot copy.
MySQL/PostgreSQL/CSV/XLSX interchangeCovered on PCLinuxOSExport scans backend storage; import uses bounded Prolog conversion plus Reservoir transactions. Direct round trips, authenticated HTTP export, selected view export, CSV/XLSX Reservoir import, Unicode, NULL, quoting, OOXML validation, and a 20,000-row stress are covered. Vendor-specific procedural SQL remains outside the portable dump surface.
AsAPanel browser bundleStatic contract checked; Node gate pending on this hostapp-loader.js loads a checked-in Firefox 38 syntax-compatible bundle and polyfills NodeList.forEach, Element.append, and other small APIs needed at boot. It also ships Noto Sans JP in WOFF2 plus WOFF for JP text on browsers without system CJK fonts. Run `make test-ui` on a host with Node.js before publication.
4MLinux x86_64Validated on release hostPaths and shell syntax were exercised on the recorded 4MLinux host; a compatible feature-complete swipl is still required on any other host.
PCLinuxOS 2026 x86_64Validated for 1.5.0 StableLinux 6.18.37-pclos1 / SWI-Prolog 10.0.2; backend/package gates, TVCC, view interchange, and the 100,000-row storage stress suite passed.
Windows source-launcher ZIPPackage-checkedIncludes the same 1.5.0 source tree plus run_asadb.bat and run_panel.bat; install a compatible SWI-Prolog on Windows and place swipl on PATH. Native Windows execution has not been run on this Linux host.
Windows x86 portable executablePending native rebuildBuild it with Windows PowerShell and SWI-Prolog to validate the embedded backend; the Linux-produced source ZIP is not presented as that executable.
macOS or non-x86_64 LinuxNot release-testedSource may be portable, but it is outside this artifact's validation label.

Runtime requirements

To run the CLI or panel:

  • Linux on x86_64/amd64;
  • a writable filesystem for the catalog, `.asa.store`, `.asa.meta`, WAL, journal, and Reservoir spool;
  • swipl on PATH with threads and the SWI-Prolog libraries used by assoc, HTTP, JSON, crypto, UUID, UTF-8, file utilities, and read utilities;
  • a browser for AsAPanel. Node.js is required only for `make test-ui`. Packaging additionally requires tar, gzip, and either sha256sum or shasum.

    The release does not assert a version number alone as sufficient. Some minimal or custom SWI-Prolog builds omit packages needed by AsAPanel or Reservoir, so the capability probe is authoritative:

    ./scripts/check_linux_runtime.sh

Feature matrix

FeatureRelease statusRegression or boundary
Core DDL/DML and persistenceCoveredtests/run_tests.pl, including restart and recovery paths.
DROP TABLE cleanupCoveredCatalog, heap, and persistent B+Tree removal plus restart and `IF EXISTS`.
Qualified equality JOINCoveredINNER/LEFT/RIGHT behavior and planner counters.
15k + 15k JOINCoveredExact 15,000 matches and indexed planner path with a time bound.
v1.2.1 -> v1.3.0 storage stressMeasuredOn 4MLinux 6.12.94 / i5-6300U / 8 GB, 10k, 50k, and 100k scenarios passed; 100k completed in 59.21 s wall-clock.
Filtered projection + ordered resultCoveredA paged Double_Company-shaped regression filters a numeric column, projects a text column, orders it, verifies stable output, and has a 15-second regression guard.
Complex ON expressionCompatible fallbackNested loop; potentially expensive.
ID / JP / EN UINode gate pending on this hosttests/ui_regression.js covers localization keys, interactive language, and dynamic Asa output; run it on a host with Node.js before publication.
Long SQL pasteNode gate pending on this hosttests/ui_regression.js covers the 6,000-line caret/scroll retention scenario; run it on a host with Node.js before publication.
Startup overlayCoveredA non-interactive 650 ms visual cue replaces the 3.5-second wait and never repeats backend warmup.
Browser bootstrap / buttonsNode gate pending on this hostThe loader-to-legacy-bundle interaction test confirms language and database buttons attach even while the backend request is stalled; run it with Node.js before publication.
Reservoir queue/spoolCovered by source testsFull native execution requires thread, crypto, UUID, and HTTP-capable SWI-Prolog.
Reservoir reload/cancel/live metadataSource covered; Node UI gate pendingActive jobs are rediscovered after reload without replay, receiving/queued/processing cancellation is regression-tested, and metadata uses adaptive no-cache polling while visible. Modern and legacy bundles share a static build preflight contract; run the Node UI regression before publication.
Asa Process GuardianCovered on Linuxtests/guardian_regression.sh verifies a one-shot rolling mirror, SHA-256 manifest, exclusion rules, captured child output, and clean child completion. Windows can use the mirror and generic process APIs, but its Unix-specific CONT nudge is intentionally skipped.
Production backup and restoreCovered on Linuxtests/production_backup_regression.pl scans/restores 6,141 backend rows; verified export uses one checksum-validating pass and bounded 256-row INSERT groups. tests/production_backup_http_regression.sh checks authentication, tampering, active transactions, and clean HTTP restore.
SQL/table paging beyond 500 rowsCovered`/api/query` serves bounded pages; SQL results, table previews, and the searchable sidebar expose unobtrusive Show-more controls.
Karyawan Reservoir adviserCoveredsrc/bridge/karyawan.pl is pure Prolog, reports single-worker pressure/health, and is exercised through Reservoir snapshots and stats; no R runtime is required.
Large SQL paste / stress importCoveredThe line-number gutter remains visible for large scripts; 256-statement import batches use bounded 8,192-row storage chunks and the Linux stress-file resolver is case-tolerant. Interchange writers use 256-row SQL batches; CSV/XLSX type inference samples at most 256 rows before streaming.
MySQL 5.5 behaviorPartial compatibilityINNER/LEFT/RIGHT/CROSS, comma joins, `JOIN ... USING (...)`, boolean XOR, and `IS [NOT] TRUE/FALSE/UNKNOWN` are covered. See docs/mysql55-compatibility.md; AsaDB is not wire-compatible with MySQL.

Storage compatibility

  • Current page-storage format: 3.
  • Page size: fixed at 4,096 bytes for format compatibility.
  • Compatible list-backed v2 tables can migrate when opened by v1.3.0.
  • Keep the `.asa` catalog with its matching `.asa.store`, `.asa.meta`, WAL, journal, and Reservoir directory when moving a database.
  • Always copy or snapshot the complete database set before an upgrade.

PCLinuxOS acceptance procedure

Run these checks on the actual target machine; passing on another Linux distribution cannot prove its libc or locally built SWI-Prolog compatibility:

cd AsaDB-1.5.0-linux-x86_64
./scripts/check_linux_runtime.sh
make test
make test-join
./tests/release_package_regression.sh
./scripts/run_panel.sh /path/to/writable/data.asa 8088

`make test-ui` is optional on a minimal installation because it requires Node.js. If any runtime capability probe fails, the package is not yet ready for that host even if the shell scripts themselves start.