The only change is bumping Electron to release 11.0.4, and updating the build targets.
Electron 11 adds a port for Apple Silicon (ARM) Macs. Therefore, there are now two Mac builds: macos-x86 (Intel) and macos-arm64 (Apple Silicon). The x86 build should run on ARM Macs, thanks to Rosetta, but it won’t be as fast as the native ARM build.
(Note that the macos-arm64 is untested, as I don’t have one of them speedy Macs yet! Maybe next year… If someone out there has an ARM Mac, please try the new Lectrote and report back.)
Did some more testing.
The app in Lectrote-1.3.10-macos-arm64.dmg contains the intel version (and not the arm).
I found the correct arm version in the Lectrote-darwin-arm64 directory (after i ran the build myself), and the dmg file still contains intel version.
Also it seems that TADS games are not opening (just a white Lectrote screen without the loading image).
The intel version handles opening TADS without any problems.
The underlying components have been restructured a bit, but there should be no visible changes.
(I still don’t know what’s going on with the TADS VM on ARM, I’m afraid. So that’s not likely to be fixed.)
We now have a Mac universal build! Notice that it’s twice the size of the single-platform (Intel and ARM) builds. That’s because it’s both of them stitched together.
Most Mac users should download the build for their machine ( macos-x86 for Intel, macos-arm64 for Apple Silicon). The universal build is only important if you need to distribute one binary to a bunch of people.
Why these quick minor updates? Because I keep fiddling with the library structure, and I don’t think I broke any interpreters, but if I did I’d rather find out sooner.
Doing more debug, with my unprofessional perspective it looks like the problem is deeper (electron or node).
I’m going to open a bug issue in electron.
I’m attaching a bigger output of the starting process and errors, maybe you’ll get an idea what to check next.
> lectrote@1.3.12 start
> electron .
RL: load_prefs start
RL: load_prefs readFileSync done
[42924:0118/164018.915276:ERROR:node_bindings.cc(264)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.
[42921:0118/164018.987389:INFO:CONSOLE(111)] "%cElectron Security Warning (Insecure Content-Security-Policy) font-weight: bold; This renderer process has either no Content Security
Policy set or a policy with "unsafe-eval" enabled. This exposes users of
this app to unnecessary security risks.
For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.", source: electron/js2c/renderer_init.js (111)
RL: game_file_discriminate start
RL: game_file_discriminate openSync
RL: game_file_discriminate Buffer.alloc
RL: game_file_discriminate readSync
[42927:0118/164022.179058:ERROR:node_bindings.cc(264)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.
RL: load_named_game start
RL: load_named_game readFileSync start
RL: load_named_game readFileSync done
[42921:0118/164022.237876:INFO:CONSOLE(225)] "GiLoad: trying pre-loaded load (array)...", source: /Users/duracula/Documents/GitHub/lectrote/quixe/lib/elkote.min.js (225)
[42921:0118/164022.247919:INFO:CONSOLE(111)] "%cElectron Security Warning (Insecure Content-Security-Policy) font-weight: bold; This renderer process has either no Content Security
Policy set or a policy with "unsafe-eval" enabled. This exposes users of
this app to unnecessary security risks.
For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.", source: electron/js2c/renderer_init.js (111)
RL: game_file_discriminate start
RL: game_file_discriminate openSync
RL: game_file_discriminate Buffer.alloc
RL: game_file_discriminate readSync
[42935:0118/164026.267293:ERROR:node_bindings.cc(264)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.
RL: load_named_game start
RL: load_named_game readFileSync start
RL: load_named_game readFileSync done
RL: common_emglken_load start (loading tads)
RL: common_emglken_load created engine
RL: common_emglken_load data created
RL: common_emglken_load returning
[42921:0118/164026.351093:INFO:CONSOLE(225)] "GiLoad: trying pre-loaded load (array)...", source: /Users/duracula/Documents/GitHub/lectrote/quixe/lib/elkote.min.js (225)
[42921:0118/164026.356984:INFO:CONSOLE(40)] "Blorb is not inited after load_run()!", source: /Users/duracula/Documents/GitHub/lectrote/apphooks.js (40)
[42921:0118/164026.357699:INFO:CONSOLE(111)] "%cElectron Security Warning (Insecure Content-Security-Policy) font-weight: bold; This renderer process has either no Content Security
Policy set or a policy with "unsafe-eval" enabled. This exposes users of
this app to unnecessary security risks.
For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.", source: electron/js2c/renderer_init.js (111)
<--- Last few GCs --->
[42935:0x7100000000] 44 ms: Scavenge 3.0 (4.3) -> 2.9 (4.8) MB, 0.5 / 0.0 ms (average mu = 1.000, current mu = 1.000) allocation failure
[42935:0x7100000000] 52 ms: Scavenge 4.1 (5.5) -> 3.7 (8.3) MB, 0.4 / 0.0 ms (average mu = 1.000, current mu = 1.000) allocation failure
[42935:0x7100000000] 99 ms: Scavenge 4.8 (8.8) -> 4.4 (9.3) MB, 0.4 / 0.0 ms (average mu = 1.000, current mu = 1.000) external memory pressure
<--- JS stacktrace --->
[42922:0118/164026.363858:ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. 2D:F7:47:72:BB:D7:45:F0:02:14:9C:1F:FB:23:98:53
[42922:0118/164026.364130:ERROR:gles2_cmd_decoder.cc(19029)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[42922:0118/164026.364163:ERROR:gles2_cmd_decoder.cc(19050)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.364183:ERROR:gles2_cmd_decoder.cc(13915)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[42922:0118/164026.364197:ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. A2:95:DD:00:57:0D:3A:46:DF:E7:24:1A:FD:5D:E1:FF
[42922:0118/164026.364214:ERROR:gles2_cmd_decoder.cc(19029)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[42922:0118/164026.364227:ERROR:gles2_cmd_decoder.cc(19050)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.364239:ERROR:gles2_cmd_decoder.cc(13915)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[42922:0118/164026.364252:ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. B1:C2:52:0E:1C:C2:B9:3B:E0:A5:5D:09:87:D5:BB:73
Renderer process crashed - see https://www.electronjs.org/docs/tutorial/application-debugging for potential debugging information.
[42922:0118/164026.364274:ERROR:gles2_cmd_decoder.cc(19029)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[42922:0118/164026.364298:ERROR:gles2_cmd_decoder.cc(19050)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.364316:ERROR:gles2_cmd_decoder.cc(13915)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[42922:0118/164026.364330:ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. 92:DA:A0:B6:19:71:8D:6D:5C:75:A2:50:C9:F2:10:59
[42922:0118/164026.364347:ERROR:gles2_cmd_decoder.cc(19029)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[42922:0118/164026.364359:ERROR:gles2_cmd_decoder.cc(19050)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.364378:ERROR:gles2_cmd_decoder.cc(13915)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[42922:0118/164026.372338:ERROR:gles2_cmd_decoder.cc(19079)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.372365:ERROR:gles2_cmd_decoder.cc(19079)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.372381:ERROR:gles2_cmd_decoder.cc(19079)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.372395:ERROR:gles2_cmd_decoder.cc(19079)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image