[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gambas-bugtracker] Bug #3221: using fast unsafe, when var is used in a loop and then printed after it is not optimized, can it be fixed
[Thread Prev] | [Thread Next]
- Subject: [Gambas-bugtracker] Bug #3221: using fast unsafe, when var is used in a loop and then printed after it is not optimized, can it be fixed
- From: <bugtracker@xxxxxxxxxxxxxx>
- Date: Fri, 25 Sep 2026 22:09:21 GMT
- To: brian@xxxxxxxxxxxxxxxx,bugtracker@xxxxxxxxxxxxxxxxxxxxxx
http://gambaswiki.org/bugtracker/edit?object=BUG.3221&from=L21haW4- Brian G reported a new bug. Summary ------- using fast unsafe, when var is used in a loop and then printed after it is not optimized, can it be fixed Type : Request Priority : High Gambas version : Master Product : JIT compiler Description ----------- When a variable is used in a loop and then is not used after the loop, the loop is extremely fast. but if the variable is referenced after the loop then the loop is extremely slow. It looks like the variables are moved to registers for the loop. but if referenced later after the loop then they are stored each time or doing actual work on the variables. It becomes an order of magnitude slower. I have attached a project as an example. Would it be possible to store the registers into the variables as the loop exits instead of updating them within the loop? the jit would have to know when the loop does an exit. wherever it happens. see attached program System information ------------------ [System] Gambas=3.22.99 1341824 (master) OperatingSystem=Linux Distribution=Linux Mint 22.3 (Zena) Kernel=7.2.0-070200-generic Architecture=x86_64 Cores=8 Memory=13923M Language=en_US.UTF-8 Platform=x11 Desktop=MATE DesktopResolution=96 DesktopScale=7 WidgetTheme=proxy Font=Ubuntu Mono,10 DarkTheme=False [Programs] appimage-builder=appimage-builder: 1.1.0 dpkg=Debian 'dpkg' package management program version 1.22.6 (amd64). gcc=gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0 git=git version 2.43.0 msgmerge=msgmerge (GNU gettext-tools) 0.21 rpmbuild=RPM version 4.18.2 [Libraries] Cairo=libcairo.so.2.11800.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.2409.32 GStreamer=libgstreamer-1.0.so.0.2402.0 GTK+2=libgtk-x11-2.0.so.0.2400.33 GTK+3=libgtk-3.so.0.2409.32 OpenGL=libGL.so.1.7.0 Poppler=libpoppler.so.134.0.0 QT5=libQt5Core.so.5.15.13 QT6=libQt6Core.so.6.4.2 RSvg=librsvg-2.so.2.50.0 SDL=libSDL2-2.0.so.0.3000.0 SQLite3=libsqlite3.so.0.8.6 [Environment] CLUTTER_BACKEND=x11 COMPIZ_CONFIG_PROFILE=mint DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus DESKTOP_SESSION=mate DISPLAY=:0 GB_GUI=gb.qt6 GDMSESSION=mate GDM_LANG=en_US GIO_LAUNCHED_DESKTOP_FILE_PID=545212 GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1 GTK3_MODULES=xapp-gtk3-module GTK_MODULES=gail:atk-bridge GTK_OVERLAY_SCROLLING=0 HOME=<home> LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_TIME=en_US.UTF-8 LIBVIRT_DEFAULT_URI=qemu:///system LOGNAME=<user> MATE_DESKTOP_SESSION_ID=this-is-deprecated NVM_BIN=<home>/.nvm/versions/node/v24.11.0/bin NVM_CD_FLAGS= NVM_DIR=<home>/.nvm NVM_INC=<home>/.nvm/versions/node/v24.11.0/include/node PAPERSIZE=a4 PATH=<home>/.nvm/versions/node/v24.11.0/bin:<home>/.config/emacs/bin:<home>/.local/bin:<home>/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin PICO_SDK_PATH=<home>/Projects/picomite/pico/pico-sdk PWD=<home> QT_ACCESSIBILITY=1 QT_FONT_DPI=96 QT_LOGGING_RULES=*.debug=false QT_SCALE_FACTOR=1 SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/28376,unix/<hostname>:/tmp/.ICE-unix/28376 SHELL=/usr/bin/gsh SHLVL=0 SSH_AUTH_SOCK=/run/user/1000/keyring/ssh TZ=:/etc/localtime USER=<user> XAUTHORITY=<home>/.Xauthority XDG_ACTIVATION_TOKEN=mate-panel-28878-<hostname>-gambas3-19_TIME77818771 XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg XDG_CURRENT_DESKTOP=MATE XDG_DATA_DIRS=/usr/share/mate:<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user> XDG_RUNTIME_DIR=/run/user/1000 XDG_SEAT=seat0 XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 XDG_SESSION_CLASS=user XDG_SESSION_DESKTOP=mate XDG_SESSION_ID=c4 XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1 XDG_SESSION_TYPE=x11 XDG_VTNR=7 gshlibrary=<home>/Projects/gshlibrary gshproject=<home>/Projects/gsh ----[ Gambas bugtracker-list is hosted by https://www.hostsharing.net ]----