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.
Continue reading…
See also a filtered list of the entries on topics
GeoGebra,
technical developments or
internal references in the Bible.
|
Zoltán Kovács
Linz School of Education
Johannes Kepler University
Altenberger Strasse 69
A-4040 Linz
|