On 24/02/2026 03:42, Michael Rans wrote:
Hi Riccardo,
The framerate of the game was reported by the main Windows dev to be
significantly higher with a clang build than with a gcc build. I'm not
sure about Linux.
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, with an assertion checking that an object was a ship:
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