SpaceFM 1.0.4 was released today using the streamlined release and distribution methods previously announced. Packagers in particular should make note of new download locations. This release officially introduces SpaceFM’s new net installer (which can download, build and install any branch or version), and there are a few other new features and bugfixes.
Some code that did not make it into this release but is very usable can be tried in the ‘alpha’ testing branch. To install it, just run:
(Even if you’re using a Debian package of SpaceFM, for example, you can run the above command to overwrite it, upgrading your version. This is a bit brutal but I do it all the time and you can always reinstall the repo package. If you keep both /usr/bin/spacefm executables (rename them), you can run either at will.)
The alpha branch contains some new features for faster loading of directories via background type loading, backgrounded calculation and display of deep sizes of directories, and some changes to the Refresh function. Especially the dir sizes have been a popular request for a long time, and now that I use it, it actually is a great feature to have.
Adding those features turned into a quagmire the last few weeks, mainly trying to get the threading stable. Even though my careful changes didn’t alter the threading code, the heavier load on the multi-threading revealed some ‘unmasked regressions’ which were not easy to reproduce, track down or correct (multi-threading can be very bizarre to work with – it creates some real head-scratchers). Due to some race conditions revealed, eventually I ended up redesigning some of the asynchronous thread handling modules.
While this seems to have improved the situation greatly, it still has some very obscure issues. These can cause crashes or hangs, usually only if you do something extreme like holding down the Refresh key with lots of tabs open, etc., and even that is very hard to reproduce. For normal use, you probably won’t encounter any instability, even if you try to force it to extremes. I dare ya!
So that turned into very frustrating code to work with, but sometimes that’s how it goes. I hope to make a few more minor adjustments, and OmegaPhil will be doing some memory testing for all our sakes, but for the most part it’s running solid.
The more early testing it gets in a variety of conditions, the smoother the release of this code will be. You can read the alpha details here. Thanks for testing.