Skip to content

Repository files navigation

SemanticQt – Qt/PySide6 Semantic module

Goal: produce one source-complete SemanticQt module from the selected Qt 6.11.2 and PySide6 source surface while preserving all upstream license and third-party notices.

Current generated artifact: SemanticQt.module.zip and module/SemanticQt/. Each transpiled unit is distributed as a readable .se Semantic Programming document; JSON is used only as an intermediate conversion format.

GitHub description: Source-complete Qt/PySide6 Semantic module with readable .se units, per-file provenance, license preservation, and transparent parser-recovery reporting.

The user-facing operation is one command:

powershell -ExecutionPolicy Bypass -File .\RUN-ALL.ps1

Internally the pipeline is deliberately unit-based:

  1. Acquire Qt 6.11.2 source and supporting API/binding sources.
  2. Harvest original license / notice / SPDX / SBOM files.
  3. Apply a fail-closed license gate.
  4. Inventory C, C++, headers and Python sources.
  5. Export each accepted source file to its own SemanticProgram unit.
  6. Preserve per-unit source provenance and license provenance.
  7. Normalize Qt / PySide API evidence into one module namespace.
  8. Package all units into one SemanticQt.module.zip.

This is intentionally not a giant merged AST. It is one module containing many Semantic compilation units. This avoids multi-GB giant-UAST memory growth.

Source roles

  • Qt 6.11.2 C/C++: primary implementation source.
  • PySide6 6.11.2: LGPL-capable binding/API source and evidence.
  • Qt.py: API-normalization evidence. MIT license is preserved if code is ever included.
  • qtwebview2: WebView2 integration evidence. MPL-2.0 code is quarantined by default.
  • PyQt5 / PyQt6: GPL evidence only. Never transpiled into the LGPL-safe module by default.

Important limitation

Raw Qt sources rely heavily on generated configuration headers, the C preprocessor, moc/uic/rcc generated code, platform conditions, templates and build-time feature probes. The supplied pipeline is fail-closed: unsupported or unparsed files are written to work/reports/failures.jsonl; they are not silently omitted from a “complete” build.

The current run has 7,135 readable .se units and zero hard transpilation failures. 33 units are marked opaque-source-fallback and retain their exact source bytes, but are not claimed as fully analysed semantic graphs. See module/SemanticQt/README.md and its manifest.

SemanticQt-authored material is GPL-3.0-only, copyright Semantic Tarek Wasfy. Upstream licenses remain applicable to their respective files; see LICENSE and LICENSE.md.

Licensing model

“LGPL-safe” here means: no GPL-only Qt/PyQt code is allowed into the produced SemanticQt module. Qt also contains third-party software under permissive or other compatible licenses; those notices must remain present. The pipeline therefore harvests all license and SBOM files from the exact sources used rather than pretending that every file is literally LGPL-3.0.

A direct transformation of LGPL-covered Qt/PySide source remains subject to the applicable LGPL obligations. Keep the transformed Semantic source available as corresponding source for the transformed module, together with the original notices.

About

SemanticQt is a complete Semantic Programming Language module for Qt 6.11.2, containing 7,135 transpiled units with support status metadata and GPL-compatible licensing.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages