Regarding the crash, that is odd since the AppImage is built on clang
using Ubuntu and the Flatpak also uses clang. Did you use
ShellScripts/Linux/checkout_deps.sh to build GNUstep? The versions of
GNUstep libraries needed by Oolite are newer than the latest stable
releases because certain fixes and additions since the last stable
releases are needed. The script checks out from GitHub the latest commit
of each of the GNUstep libraries. Once new stable releases are made, I
will change to use them. This will be particularly beneficial in
simplifying the Windows build assuming those new stable releases are put
up as MSYS2 packages. It would be nice if there could also be stable
clang packages for major distros flavours like Debian, Fedora and Arch
in future, but until then for clang, building the libraries will be needed.
I want to make a clarification about framerate as I misunderstood what
our main Windows dev said about it. I'll just quote him directly to
avoid confusion:
"The framerate of the Clang build on Windows is not significantly higher
than gcc's, but it is a bit better, there is indeed a small difference
when comparing similar build configurations at uncapped framerate and
under similar entity loads at the same location between the two builds
but it is not that significant. Both hit 400+ fps on my tests but it's
not like Clang hitting 600 fps and gcc hitting only 450. Plus, at the
end of the day almost everyone plays with v-sync on, which limits
framerate to the monitor refresh anyway (60, 70, 120, 144 fps etc.).
Where the Clang build shines though, is maintaining a steady frame pace.
The Clang build for me offers a gameplay experience that just feels
smoother - that's why I recommend it."
Apologies for my incorrect reporting on that.
Please let me know if using the latest builds of GNUstep libraries makes
any difference to the crash.
Thanks,
Mike
On Wed, Feb 25, 2026 at 11:45 AM, R Frith-Macdonald wrote:
I thought I'd try that out on Debian. Using current (from the
respective git repositories this morning) gnustep and oolite code, I
built with gcc and with clang.
On my system in the tutorial the gcc version was reporting a frame
rate in the 70s.
Unfortunately, the clang version crashed after displaying the
startup screen...
1 0x00007ffff68064ac in __GI_abort () at ./stdlib/abort.c:77
#2 0x00007ffff6806420 in __assert_fail_base (fmt=<optimized out>,
assertion=<optimized out>, file=<optimized out>, line=14876,
function=<optimized out>) at ./assert/assert.c:118
#3 0x00007ffff68166dc in __assert_fail (assertion=<optimized out>,
file=<optimized out>, line=<optimized out>, function=<optimized out>)
at ./assert/assert.c:127
#4 0x0000555555aab11b in -[ShipEntity(SubEntityRelationship)
isShipWithSubEntityShip:] (self=0x52300003d508, _cmd=<optimized
out>, other=0x51f000131688)
at src/Core/Entities/ShipEntity.m:14876
#5 0x000055555596fadb in -[Entity parentEntity] (self=0x51f000131688,
_cmd=<optimized out>) at src/Core/Entities/Entity.m:592
#6 0x00005555559708bf in -[Entity absolutePositionForSubentityOffset:] (
self=<optimized out>, _cmd=<optimized out>, offset=...)
at src/Core/Entities/Entity.m:679
#7 0x00005555559705ed in -[Entity absolutePositionForSubentity] (
self=0x7ffff21790d0, _cmd=<optimized out>)
at src/Core/Entities/Entity.m:671
#8 0x00005555559703f5 in -[Entity updateCameraRelativePosition] (
self=0x51f000131688, _cmd=<optimized out>)
at src/Core/Entities/Entity.m:665
#9 0x0000555555970246 in -[Entity setPosition:] (self=<optimized out>,
--Type <RET> for more, q to quit, c to continue without paging--
_cmd=<optimized out>, posn=...) at src/Core/Entities/Entity.m:650
#10 0x0000555555ade17c in -[OOExhaustPlumeEntity
initForShip:withDefinition:andScale:] (self=0x51f000131688,
_cmd=<optimized out>, ship=<optimized out>,
definition=<optimized out>, scaleFactor=<optimized out>)
at src/Core/Entities/OOExhaustPlumeEntity.m:79
#11 0x0000555555addfb5 in +[OOExhaustPlumeEntity
exhaustForShip:withDefinition:andScale:] (self=<optimized out>,
_cmd=<optimized out>, ship=0x52300003d508,
definition=0x50400138bc58,
scale=<error reading variable: Value cannot be represented as
integer of 8 bytes.>) at src/Core/Entities/OOExhaustPlumeEntity.m:63
#12 0x0000555555a4fa31 in -[ShipEntity setUpSubEntities] (
self=<optimized out>, _cmd=<optimized out>)
at src/Core/Entities/ShipEntity.m:869
#13 0x0000555555a4c4b1 in -[ShipEntity setUpFromDictionary:] (
self=<optimized out>, _cmd=<optimized out>, shipDict=0x507000113da8)
at src/Core/Entities/ShipEntity.m:446
#14 0x00005555559879c7 in -[PlayerEntity setUpShipFromDictionary:] (
self=0x52300003d508, _cmd=<optimized out>, shipDict=<optimized out>)
at src/Core/Entities/PlayerEntity.m:2285
#15 0x0000555555d3694a in -[Universe setUpInitialUniverse] (
self=<optimized out>, _cmd=<optimized out>) at
src/Core/Universe.m:10573 #16 0x0000555555cfe793 in -[Universe
initWithGameView:] (self=0x52d000adc408,
_cmd=<optimized out>, inGameView=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--
at src/Core/Universe.m:834
#17 0x0000555555cba6dd in -[GameController applicationDidFinishLaunching:] (
self=0x511000009788, _cmd=<optimized out>,
notification=<optimized out>)
at src/Core/GameController.m:253
#18 0x0000555555cc4061 in main (argc=<optimized out>, argv=<optimized out>)
at src/SDL/main.m:209