Unresolved Issues with the Mac version of Oolite

Discussion and announcements regarding the Mac port… er, original version of Oolite.

Moderators: another_commander, winston

Post Reply
User avatar
Cholmondely
Archivist
Archivist
Posts: 4977
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Unresolved Issues with the Mac version of Oolite

Post by Cholmondely »

• Failure to compile Oolite v.1.91 on a Mac
Hiran's Summary (2023) - and read the next few posts
Aegidian posted an analysis just below (2023) of the crashing of the current AppleMac Nightly (v.1.91 for AppleMac (8th Feb 2022))

Sound cuts out
Ahruman flagged it up as an issue with MacOS 10.7 here (2nd paragraph)
2015 - issue
2018 - latest.logs, partial solution

Stations demonstrate an occasional urge to spin crazily
https://bb.oolite.space/viewtopic.php?t=13480 - this does not seem to be an OXP issue, but who knows?

Oolite Starter
There are issues getting Oolite Starter to "start up" Oolite on the AppleMac

Debug Console
There are issues getting the AppleMac Debug Console to operate with Nexus/Oolite Communicator (and thus allowing a measure of multi-player interaction).

OXP's for the AppleMac:
The Mac is more of a grammatical purist than Linux/Windows and can reject OXPs which run happily on them.


The libraries in the Mac used to parse a plist seem to be less tolerant of some things than the GNUStep libraries on Linux:

*lists are enclosed in '(' ')' with items separated by ',' and there must not be a comma after the last item in the list.
*objects are enclosed in '{' '}' and consist of pairs <key> = <value>.
Each key/value pair must have a ';' at the end, even the last pair in the object, and if the object is a value in a key/value pair in another object, it's closing '}' must be followed by a ';'.
Thanks to Dybal for this item!
Use of the AppleMac Terminal can help here.


This will be edited to include future accretions!
21st Dec 2023: Added more on sounds, the failure to compile v.1.91, the issues with the Debug console
Last edited by Cholmondely on Thu Dec 21, 2023 11:04 am, edited 5 times in total.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
dybal
---- E L I T E ----
---- E L I T E ----
Posts: 499
Joined: Mon Feb 10, 2020 12:47 pm

Re: Unresolved Issues with the Mac version of Oolite

Post by dybal »

You might add that I was talking about plists
User avatar
Cholmondely
Archivist
Archivist
Posts: 4977
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Unresolved Issues with the Mac version of Oolite

Post by Cholmondely »

dybal wrote: Wed Dec 09, 2020 7:32 pm
You might add that I was talking about plists
Oops! Sorry. How should I word it then?
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
dybal
---- E L I T E ----
---- E L I T E ----
Posts: 499
Joined: Mon Feb 10, 2020 12:47 pm

Re: Unresolved Issues with the Mac version of Oolite

Post by dybal »

"The libraries in the Mac used to parse a plist seem to be less tolerant of some things than the GNUStep libraries on Linux:"
dybal
---- E L I T E ----
---- E L I T E ----
Posts: 499
Joined: Mon Feb 10, 2020 12:47 pm

Re: Unresolved Issues with the Mac version of Oolite

Post by dybal »

I loaded 400+ OXPs and those are the ones with un-parseable plists:

Code: Select all

[plist.parse.failed]: Failed to parse /Users/dybal/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.tsoj.secretarybird.oxz/Config/shiplibrary.plist as a property list.
[plist.parse.failed]: Failed to parse /Users/dybal/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.tsoj.chrysopelea_mk-i.oxz/Config/shiplibrary.plist as a property list.
[plist.parse.failed]: Failed to parse /Users/dybal/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.tsoj.tec_apep_mk_2.oxz/Config/shiplibrary.plist as a property list.
[plist.parse.failed]: Failed to parse /Users/dybal/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.tsoj.secretarybird.oxz/Config/shiplibrary.plist as a property list.
[plist.parse.failed]: Failed to parse /Users/dybal/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.tsoj.chrysopelea_mk-i.oxz/Config/shiplibrary.plist as a property list.
[plist.parse.failed]: Failed to parse /Users/dybal/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.tsoj.tec_apep_mk_2.oxz/Config/shiplibrary.plist as a property list.
User avatar
Cholmondely
Archivist
Archivist
Posts: 4977
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Unresolved Issues with the Mac version of Oolite

Post by Cholmondely »

Nightly: v.1.91 for AppleMac (8th Feb 2022): Crashed immediately on startup (restarting a Harder Adder Jameson) while still docked and having just chosen an option on the F4 "ship and system interfaces" Screen (that of Diplomancy's "Embassy District" screen).

This is my 25th recent crash - the majority are do to with sound issues, as is this.

They all have this line: Assertion failed: (buffer == _lastBuffer), function -[OOSoundChannel getNextSoundBuffer], file /Users/getafix/Oolite-dev/oolite/src/Core/OOALSoundChannel.m, line 121.

This line (& surrounding context) reads as follows:

Code: Select all

{
	if (!_bigSound)
	{
		// we've only loaded one buffer so far
		_bigSound = YES;
		_lastBuffer = _buffer;
		[self enqueueBuffer:_sound];
	}
	else
	{
		// _lastBuffer has something in it, so only queue up
		// another one if we've finished with that
		ALint processed = 0;
		OOAL(alGetSourcei(_source, AL_BUFFERS_PROCESSED, &processed));
		if (processed > 0) // slot free
		{
			// dequeue and delete lastBuffer
			ALuint buffer;
			OOAL(alSourceUnqueueBuffers(_source, 1, &buffer));
			assert(buffer == _lastBuffer); // <---------------------------------------This is line 121
			OOAL(alDeleteBuffers(1,&_lastBuffer));
			// shuffle along, and grab the next bit
			_lastBuffer = _buffer;
			[self enqueueBuffer:_sound];
		}
	}
}
Here is the AppleMac report.

I've cut the extremely lengthy section headed binary images as (to this dumb pilot) it seemed irrelevant. Ditto for the latest.log. I have saved both of them in case they are relevant for the future.

Code: Select all

Process:               Oolite [4403]
Path:                  /Volumes/VOLUME/*/Oolite 1.91.app/Contents/MacOS/Oolite
Identifier:            org.aegidian.oolite
Version:               Oolite version 1.91 (1.91)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Oolite [4403]
User ID:               501

Date/Time:             2023-05-21 11:07:48.804 +0100
OS Version:            Mac OS X 10.15.3 (19D2064)
Report Version:        12
Bridge OS Version:     4.3 (17P3561)
Anonymous UUID:        EE586436-35C2-65D4-A9CE-FA05497FF40D

Sleep/Wake UUID:       BE1972A7-1EFE-49A9-AE75-81D6568D92FC

Time Awake Since Boot: 30000 seconds
Time Since Wake:       500 seconds

System Integrity Protection: enabled

Notes:                 Translocated Process

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
11:07:48.188 [LogEvents] GlobalLog (OOJSGlobal.m:266): mission screen opportunity
 
Assertion failed: (buffer == _lastBuffer), function -[OOSoundChannel getNextSoundBuffer], file /Users/getafix/Oolite-dev/oolite/src/Core/OOALSoundChannel.m, line 121.
 

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff64fea7fa __pthread_kill + 10
1   libsystem_pthread.dylib       	0x00007fff650a7bc1 pthread_kill + 432
2   libsystem_c.dylib             	0x00007fff64f71a1c abort + 120
3   libsystem_c.dylib             	0x00007fff64f70cd6 __assert_rtn + 314
4   org.aegidian.oolite           	0x00000001001ba94a -[OOSoundChannel getNextSoundBuffer] + 276
5   org.aegidian.oolite           	0x00000001001ba7ad -[OOSoundChannel update] + 192
6   org.aegidian.oolite           	0x000000010018d7ea -[OOSoundMixer update] + 42
7   org.aegidian.oolite           	0x0000000100008641 -[GameController doPerformGameTick] + 215
8   com.apple.Foundation          	0x00007fff30098af5 __NSFireTimer + 67
9   com.apple.CoreFoundation      	0x00007fff2d9b2804 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
10  com.apple.CoreFoundation      	0x00007fff2d9b23be __CFRunLoopDoTimer + 859
11  com.apple.CoreFoundation      	0x00007fff2d9b1e9e __CFRunLoopDoTimers + 317
12  com.apple.CoreFoundation      	0x00007fff2d996aed __CFRunLoopRun + 2213
13  com.apple.CoreFoundation      	0x00007fff2d995bd3 CFRunLoopRunSpecific + 499
14  com.apple.HIToolbox           	0x00007fff2c4eb65d RunCurrentEventLoopInMode + 292
15  com.apple.HIToolbox           	0x00007fff2c4eb39d ReceiveNextEventCommon + 600
16  com.apple.HIToolbox           	0x00007fff2c4eb127 _BlockUntilNextEventMatchingListInModeWithFilter + 64
17  com.apple.AppKit              	0x00007fff2ab5bba4 _DPSNextEvent + 990
18  com.apple.AppKit              	0x00007fff2ab5a380 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
19  com.apple.AppKit              	0x00007fff2ab4c09e -[NSApplication run] + 658
20  com.apple.AppKit              	0x00007fff2ab1e465 NSApplicationMain + 777
21  org.aegidian.oolite           	0x0000000100001d34 start + 52

Thread 1:: OOLogOutputHandler logging thread
0   libsystem_kernel.dylib        	0x00007fff64fe6ce6 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff650a81b7 _pthread_cond_wait + 751
2   com.apple.Foundation          	0x00007fff30012157 -[NSCondition waitUntilDate:] + 144
3   com.apple.Foundation          	0x00007fff30014576 -[NSConditionLock lockWhenCondition:beforeDate:] + 91
4   org.aegidian.oolite           	0x000000010013346d -[OOAsyncQueue dequeue] + 43
5   org.aegidian.oolite           	0x000000010017feb7 -[OOAsyncLogger loggerThread] + 226
6   com.apple.Foundation          	0x00007fff300317a8 __NSThread__start__ + 1064
7   libsystem_pthread.dylib       	0x00007fff650a7e65 _pthread_start + 148
8   libsystem_pthread.dylib       	0x00007fff650a383b thread_start + 15

Thread 2:
0   libsystem_kernel.dylib        	0x00007fff64fe6bba __semwait_signal + 10
1   libsystem_c.dylib             	0x00007fff64f6a0fa nanosleep + 196
2   libsystem_c.dylib             	0x00007fff64f69ff4 usleep + 53
3   org.aegidian.oolite           	0x00000001001a9ab3 -[OOJavaScriptEngine(WatchdogTimer) watchdogTimerThread] + 48
4   com.apple.Foundation          	0x00007fff300317a8 __NSThread__start__ + 1064
5   libsystem_pthread.dylib       	0x00007fff650a7e65 _pthread_start + 148
6   libsystem_pthread.dylib       	0x00007fff650a383b thread_start + 15

Thread 3:
0   libsystem_pthread.dylib       	0x00007fff650a3818 start_wqthread + 0

Thread 4:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	0x00007fff64fe425a mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff64fe45d0 mach_msg + 60
2   com.apple.CoreFoundation      	0x00007fff2d997d0b __CFRunLoopServiceMachPort + 322
3   com.apple.CoreFoundation      	0x00007fff2d9968e7 __CFRunLoopRun + 1695
4   com.apple.CoreFoundation      	0x00007fff2d995bd3 CFRunLoopRunSpecific + 499
5   com.apple.AppKit              	0x00007fff2acfe792 _NSEventThread + 132
6   libsystem_pthread.dylib       	0x00007fff650a7e65 _pthread_start + 148
7   libsystem_pthread.dylib       	0x00007fff650a383b thread_start + 15

Thread 5:: AMCP Logging Spool
0   libsystem_kernel.dylib        	0x00007fff64fe4296 semaphore_wait_trap + 10
1   com.apple.audio.caulk         	0x00007fff61087a96 caulk::mach::semaphore::wait() + 16
2   com.apple.audio.caulk         	0x00007fff61087922 caulk::semaphore::timed_wait(double) + 106
3   com.apple.audio.caulk         	0x00007fff61087734 caulk::concurrent::details::worker_thread::run() + 30
4   com.apple.audio.caulk         	0x00007fff61087174 void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*) + 45
5   libsystem_pthread.dylib       	0x00007fff650a7e65 _pthread_start + 148
6   libsystem_pthread.dylib       	0x00007fff650a383b thread_start + 15

Thread 6:
0   libsystem_kernel.dylib        	0x00007fff64fe4296 semaphore_wait_trap + 10
1   com.apple.audio.caulk         	0x00007fff61087a96 caulk::mach::semaphore::wait() + 16
2   com.apple.audio.caulk         	0x00007fff61087922 caulk::semaphore::timed_wait(double) + 106
3   com.apple.audio.caulk         	0x00007fff61087734 caulk::concurrent::details::worker_thread::run() + 30
4   com.apple.audio.caulk         	0x00007fff61087174 void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*) + 45
5   libsystem_pthread.dylib       	0x00007fff650a7e65 _pthread_start + 148
6   libsystem_pthread.dylib       	0x00007fff650a383b thread_start + 15

Thread 7:: com.apple.audio.IOThread.client
0   libsystem_kernel.dylib        	0x00007fff64fe425a mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff64fe45d0 mach_msg + 60
2   com.apple.audio.CoreAudio     	0x00007fff2d0a20c3 HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 111
3   com.apple.audio.CoreAudio     	0x00007fff2cf9c462 invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 2677
4   com.apple.audio.CoreAudio     	0x00007fff2d0d261c HALB_IOThread::Entry(void*) + 72
5   libsystem_pthread.dylib       	0x00007fff650a7e65 _pthread_start + 148
6   libsystem_pthread.dylib       	0x00007fff650a383b thread_start + 15

Thread 8:
0   libsystem_pthread.dylib       	0x00007fff650a3818 start_wqthread + 0

Thread 9:
0   libsystem_pthread.dylib       	0x00007fff650a3818 start_wqthread + 0

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x000000010ace1dc0  rcx: 0x00007ffeefbfd278  rdx: 0x0000000000000000
  rdi: 0x0000000000000307  rsi: 0x0000000000000006  rbp: 0x00007ffeefbfd2a0  rsp: 0x00007ffeefbfd278
   r8: 0x0000000000000079   r9: 0xcccccccccccccccd  r10: 0x000000010ace1dc0  r11: 0x0000000000000246
  r12: 0x0000000000000307  r13: 0x0000000105627000  r14: 0x0000000000000006  r15: 0x0000000000000016
  rip: 0x00007fff64fea7fa  rfl: 0x0000000000000246  cr2: 0x00000001164b8210
  
Logical CPU:     0
Error Code:      0x02000148
Trap Number:     133


External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 1
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 17971
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=710.4M resident=0K(0%) swapped_out_or_unallocated=710.4M(100%)
Writable regions: Total=2.9G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=2.9G(100%)
 
                                  VIRTUAL   REGION 
REGION TYPE                          SIZE    COUNT (non-coalesced) 
===========                       =======  ======= 
Accelerate framework                 384K        3 
Activity Tracing                     256K        1 
CG backing stores                    9.9M        3 
CG image                              88K        8 
CG raster data                      7584K        3 
CoreAnimation                        188K       15 
CoreGraphics                           8K        1 
CoreImage                             24K        2 
CoreUI image data                   1268K       12 
Foundation                          7920K       35 
Image IO                            2752K        2 
JS JIT generated code               6496K       81 
JS JIT generated code (reserved)      64K        1         reserved VM address space (unallocated)
Kernel Alloc Once                      8K        1 
MALLOC                               2.5G     1085 
MALLOC guard page                     32K        7 
MALLOC_LARGE (reserved)             41.4M       27         reserved VM address space (unallocated)
MALLOC_NANO (reserved)             256.0M        1         reserved VM address space (unallocated)
Memory Tag 242                        12K        1 
OpenGL GLSL                          256K        3 
STACK GUARD                         56.0M       10 
Stack                               12.6M       10 
VM_ALLOCATE                         55.3M       70 
VM_ALLOCATE (reserved)                32K        1         reserved VM address space (unallocated)
__DATA                              44.5M      403 
__DATA_CONST                         365K        6 
__FONT_DATA                            4K        1 
__GLSLBUILTINS                      5176K        1 
__LINKEDIT                         357.2M        8 
__OBJC_RO                           32.0M        1 
__OBJC_RW                           1780K        2 
__TEXT                             353.1M      395 
__UNICODE                            564K        1 
mapped file                         53.1M       19 
shared memory                        656K       20 
===========                       =======  ======= 
TOTAL                                3.8G     2240 
TOTAL, minus reserved VM space       3.5G     2240 

Model: MacBookAir9,1, BootROM 1037.87.10.0.0 (iBridge: 17.16.13561.0.0,0), 2 processors, Dual-Core Intel Core i3, 1.1 GHz, 8 GB, SMC 
Graphics: kHW_IntelIrisPlusGraphicsItem, Intel Iris Plus Graphics, spdisplays_builtin
Memory Module: BANK 0/ChannelA-DIMM0, 4 GB, LPDDR4, 3733 MHz, SK Hynix, H9HCNNNCRMALPR-NEE
Memory Module: BANK 2/ChannelB-DIMM0, 4 GB, LPDDR4, 3733 MHz, SK Hynix, H9HCNNNCRMALPR-NEE
AirPort: spairport_wireless_card_type_airport_extreme, wl0: Dec  6 2019 11:23:21 version 16.25.6.0.3.6.72 FWID 01-b0d6247f
Bluetooth: Version 7.0.3f7, 3 services, 27 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB 3.1 Bus
USB Device: USB 3.1 Bus
USB Device: Apple T2 Bus
USB Device: Touch Bar Backlight
USB Device: Apple Internal Keyboard / Trackpad
USB Device: Headset
USB Device: Ambient Light Sensor
USB Device: FaceTime HD Camera (Built-in)
USB Device: Apple T2 Controller
Thunderbolt Bus: MacBook Air, Apple Inc., 79.0
Edited to add details of what crashed!
Last edited by Cholmondely on Thu Dec 21, 2023 11:01 am, edited 1 time in total.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
hiran
Theorethicist
Posts: 2027
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Unresolved Issues with the Mac version of Oolite

Post by hiran »

Due to the absense of experts maybe it makes sense for Mac users to switch to Crossover and the Oolite Windows build.
https://bb.oolite.space/viewtopic.php?f=10&t=21382
Sunshine - Moonlight - Good Times - Oolite
User avatar
aegidian
Master and Commander
Master and Commander
Posts: 1160
Joined: Thu May 20, 2004 10:46 pm
Location: London UK
Contact:

Re: Unresolved Issues with the Mac version of Oolite

Post by aegidian »

Thanks cholmondley.

This looks to me like it could be an issue between Oolite's code and the implementation of the MacOS OpenAL library it's using.

(I'm spitballing because it's been so very, very long since I had anything to do with the code. But I recall using OpenAL at that time, mostly successfully. It was probably rewritten since, and I'm certainly not sure how well it plays with current Macs.)

If there are any current MacOS devs here, do sound off!
"The planet Rear is scourged by well-intentioned OXZs."

Oolite models and gear? click here!
User avatar
Cholmondely
Archivist
Archivist
Posts: 4977
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: Unresolved Issues with the Mac version of Oolite

Post by Cholmondely »

Just to point out that the summary post at top has been updated for the first time since 2020!


And here is a fix for the Expansions Manager using AppleMac's Terminal:
phkb wrote: Thu Dec 21, 2023 1:17 am
OK, I found the default way Apple gives you to edit these settings.

Via a command line. Oh, the irony.

Anyway, here's the method:
1. Open "Terminal", which can be done via the Launchpad (I think Terminal is in the "Other" group)
2. Type in this command exactly as shown:

Code: Select all

defaults write org.aegidian.oolite oxz-index-url http://addons.oolite.space/api/1.0/overview
Then press enter, and you're done.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
Post Reply