23 December 2025

bibref: Support for LXX 3.2 and StatResGNT 1.4, and some technical infos

During the last weeks I have been working on the bibref tool to provide a new release. The main update is supporting the newest version of the LXX module in SWORD, and finalizing and plugging the StatResGNT module by fixing some minor issues.

Meanwhile new versions of the software libraries have been available. This latest bibref version uses the newest Qt framework 6.10.1, although, for some platforms still older framework versions are used. On Linux, Qt's WebEngine module have been introduced: it allows the user to view a full-fledged HTML document in a native window. To display SVG images with full support, this is a great option, however, it requires a large amount of disk space (and longer installation and update time) to provide the whole HTML renderer engine. On Windows and macOS, however, I faced some technical difficulties that originated from version changes of several libraries when updating MSYS2 and Homebrew.

It turned out that the web version has difficulties with handling exceptions. To work around the problem, all dialog boxes had to be rewritten to use asynchronuous communication. By default, Qt's WebAssembly platform handles the situation with an automated asyncifying, but when exceptions are used, that technique is not available. More precisely, Qt's WebAssembly can support three models: asyncifying, JSPI (JavaScript Promise Integration), or WASM exceptions. Formerly, bibref-qt used the first one, but now it uses the third one. As a positive side effect, the web version starts faster because a reasonable amount of the WASM code could be removed. For this change, however, one needs to recompile Qt from scratch, because only the first method is supported by the factory installation of Qt.

The newest releases fix several annoying bugs, including random crashes on longer computations. It turned out that using threads in Qt requires some sophisticated techniques. Some of these requirements do not seem to be documented clearly enough, so I had to contact the Qt developers a couple of times to get help, by issuing bug reports. For example, it was a challenge to find why changing the mouse cursor implies a crash in the WebAssembly version, but finally it turned out that changing the mouse cursor has to be done in the main thread of the application.

I learned a lot on programming Qt and WASM, by changing the static code to be dynamic, and to use signalling via slots, in order to have a platform-independent stable version. Last but not least, ChatGPT did a quite good job in instructing me on the details. Of course, I had to fine-tune its hints for my own situation, but definitely, it was extremely helpful and shortened my learning and coding time substantially.

Some useful minor GUI improvements have also been added. For example, when the user types the lookup parameters, there is a hint for the Bible edition and for the book. The hint can be accepted by pressing the End key. The web version lacked getting autofocus for the input dialogs: now this is fixed (by following ChatGPT's hints on this). As a result, the web version is quite convenient now to use it without a mouse: most features can be reached by using the keyboard only.


As an illustration, here is a screenshot of the latest version, released one day before Christmas. The main window has been resized to highlight the multi-window feature of the program. Statement Editor shows a loaded BRST file (containing Ephesians 6:2) and it is displayed in the Visualize window. Meanwhile, references for Psalm 118 are computed, and if the user wants to start another computation in parallel, it is not allowed by the program (therefore, an error message is shown).

My aim is to support the community with this freely available tool to encourage studying the Bible, by providing a software package to better understand God's love and salvation work.


Entries on topic technical developments

  1. Embedding realgeom in GeoGebra (9 July 2021)
  2. Web version of Tarski (1 October 2021)
  3. Developing Giac with Qt Creator on Windows (24 January 2022)
  4. Compiling Giac via MSYS2/CLANG32 (2 April 2022)
  5. Terminals on the web (28 June 2022)
  6. Torus puzzle (15 April 2023)
  7. Tube amoeba (16 April 2023)
  8. XaoS in WebAssembly (30 August 2023)
  9. Debut of GNU Aris in WebAssembly (11 November 2023)
  10. JGEX 0.81 (in Hungarian) (10 December 2023)
  11. xaos.app (2 January 2024)
  12. Compiling and running bibref-qt on Wine (22 August 2024)
  13. Treasure of Count Goldenwald (6 January 2025)
  14. Developing C++ code for desktop and web with cmake (7 March 2025)
  15. Statement analysis in bibref (8 March 2025)
  16. An online Qt GUI version of bibref (20 April 2025)
  17. JGEX via CheerpJ (5 July 2025)
  18. Connecting ISBTF's LXX-NT database with bibref (10 July 2025)
  19. GraphViz as a WebAssembly module (13 August 2025)
  20. bibref: Support for LXX 3.2 and StatResGNT 1.4, and some technical infos (23 December 2025)

Zoltán Kovács
Linz School of Education
Johannes Kepler University
Altenberger Strasse 69
A-4040 Linz