Hoewel Gambas al een tijdje standaard aanwezig is in de Raspberry Pi systemen, ondervind ik in maart 2024 een probleem met Gambas3 3.18.0 op een Raspberry Pi 5 (4GB versie) met Debian GNU/Linux 12 Raspberry Pi Debian 1:6.6.47 aarch64 (onderaan de volledige gambas system info).
Ik kon Gambas installeren, ik kan de IDE starten, ik kan een project openen, en zelfs het project compileren en uitvoeren.
Maar er is iets fout met de IDE van Gambas3; als ik in de linkse kolom op een tekstbestand klik, bv Changes.txt, crasht de IDE met:
This application has raised an unexpected error and must abort.
Read-only array (#65).
[gb.gui.base].^^Desktop.GetDesktop.58
Twee knoppen bij die melding: Negeer en Sluiten.
– Negeer: geeft terug dezelfde fout, en opnieuw en opnieuw, tientallen keren.
– Sluiten: Gambas IDE sluit af.
Ik vind die foutmelding terug op https://gambaswiki.org/wiki/error/sarray
Read-only array (65)
A method or a property cannot be applied to a read-only array.
Dus, het lijkt een Gambas foutmelding te zijn? De IDE is gemaakt in Gambas, dus een foutmelding uit de IDE? De IDE is zelf een Gambas project….
– ik haal de gambas master af: 3.19.90. Compileert niet, foutmeldingen die waarschijnlijk te maken hebben met backward compatibility problemen.
– ik haal 3.18.4 af. Open in IDE. Run… ok!! En die crasht ook. Op lijn 588 in FMain:
hProgList = DesktopFile.FromMime(sMime)
Ik begrijp niets van de foutmelding ivm read only, maar ik wel wel even zien wat het programma zou doen als het voorbij deze fout geraakt:
Try hProgList = DesktopFile.FromMime(sMime)
Niets. Of beter: alles. Geen probleem meer, ik kan de Data bestanden openen in de IDE en er in werken. Opgelost!? Nog raar: als ik de in Gambas gecompileerde 3.18.4 start, geeft die als versienummer toch 3.18.0… ik heb het gevoel dat er niets niet klopt…
Omzeilen
Eigenaardig genoeg werkt de Gambas3 programmeeromgeving perfect zolang je niet klikt op de verkeerde plaats. Je kan dus WEL:
– een project openen
– een Form wijzigen
– de Form code wijzigen
– het project compileren, uitvoeren, executable maken
– een nieuw bestand bijmaken
Je kan ook het onderdeel “Data” openklikken, maar dan …
De “verkeerde klik” is op alles wat onder “Data” zit, in mijn geval Changes.txt, README.md, License.txt enz..
Dus: als je die tekstbestanden edit van buitenaf kan je eigenlijk de hele programmeeromgeving gebruiken …
Ps:
Soms werkt Gambas niet als verwacht omdat er bepaalde onderdelen niet mee geïnstalleerd zijn.
Geprobeerd gambas3 te vervolledigen om van de fout van het laden van stockpi-lib af te geraken.
sudo apt install gambas3*
fout blijft…
Die Pi5 is een tijdje blijven liggen, nu probeer ik eerst een upgrade:
sudo rpi-update
fout blijft…
Uitwijkmogelijkheid:
– van broncode compileren (kan wel wat duren op een Pi..)
– De ontwikkelaar van Gambas werkt met Ubuntu denk ik, en er bestaat een ubuntu voor Raspberry Pi: https://ubuntu.com/download/raspberry-pi.
[System]
Gambas=3.18
OperatingSystem=Linux
Kernel=6.6.47+rpt-rpi-2712
Architecture=aarch64
Distribution=debian 12.7
Desktop=
Font=PibotoLt,12
Scale=9
Theme=pixflat
Language=nl_BE.UTF-8
Memory=4041M
[Programs]
gcc=gcc (Debian 12.2.0-14) 12.2.0
git=git version 2.39.5
[Libraries]
Cairo=libcairo.so.2.11600.0
Curl=libcurl.so.4.8.0
DBus=libdbus-1.so.3.32.4
GDK2=libgdk-x11-2.0.so.0.2400.33
GDK3=libgdk-3.so.0.2406.32
GStreamer=libgstreamer-1.0.so.0.2200.0
GTK+2=libgtk-x11-2.0.so.0.2400.33
GTK+3=libgtk-3.so.0.2406.32
OpenGL=libGL.so.1.7.0
Poppler=libpoppler.so.126.0.0
QT5=libQt5Core.so.5.15.8
RSvg=librsvg-2.so.2.48.0
SDL=libSDL-1.2.so.0.11.4
SQLite=libsqlite3.so.0.8.6
[Environment]
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=LXDE-pi-wayfire
DISPLAY=:0
GB_GUI=gb.gtk3
GDMSESSION=LXDE-pi-wayfire
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
HOME=
LANG=nl_BE.UTF-8
LANGUAGE=nl_BE.UTF-8
LC_ALL=nl_BE.UTF-8
LOGNAME=
NO_AT_BRIDGE=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
PWD=
QT_LOGGING_RULES=*.debug=false
QT_QPA_PLATFORMTHEME=qt5ct
QT_WAYLAND_DISABLE_WINDOWDECORATION=1
SAL_USE_VCLPLUGIN=gtk3
SHELL=/bin/bash
SSH_AGENT_PID=1053
SSH_AUTH_SOCK=/tmp/ssh-XXXXXXY12Hu5/agent.992
TEXTDOMAIN=Linux-PAM
TZ=:/etc/localtime
USER=
WAYFIRE_CONFIG_FILE=
WAYLAND_DISPLAY=wayland-1
WLR_DRM_NAME=/dev/dri/card1
WLR_XWAYLAND=/usr/bin/xwayland-xauth
XAUTHORITY=
XCURSOR_SIZE=24
XCURSOR_THEME=PiXflat
XDG_DATA_DIRS=/usr/local/share:/usr/share/raspi-ui-overrides:/usr/share:/usr/share/gdm:/var/lib/menu-xdg
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/
XDG_MENU_PREFIX=lxde-pi-
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=LXDE-pi-wayfire
XDG_SESSION_ID=1
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=wayland
XDG_VTNR=7
_JAVA_AWT_WM_NONREPARENTING=1