OpenXTalkPaul wrote: ↑Tue Feb 11, 2025 3:51 am
OK if I scanned through this idea accurately then this method is basically run the Linux build in a mini VM of Linux on macOS via XQuartz (macOS X11), but then it would have to use QEMU to emulate X86 on ARM, likewise if you are running the ARM Linux on ARM Mac you would still need to emulate x86 instruction set. UNLESS you can build the ARM version on Linux, then you have CPU-native ARM Linux on Mac ARM, no emulation.
Not exactly, as that web page is running an entire virtualisation in-browser as far as I understand it. So the real work is being done via the server hosting the page as far as I can work out. Meaning it's platform / processor agnostic - even though you do end up being booted into a linux OS, you could in theory run that page and attach the ISO on an ARM mac (in theory). Not that I have access to one.
Although, QEMU will run x86 intel programs on ARM macs, just a bit slower. As you said (
This Reddit thread explains why it's slower for everyone who might be following along), but that's not the route I was going down - essentially the idea was the emulation load was happening on a server farm somewhere (possibly, if it's indeed doing what it
seems to be doing)
OpenXTalkPaul wrote: ↑Tue Feb 11, 2025 3:51 am
The Linux AppImage does include some built GTK2 libraries but unfortunately not all of the related libraries (such as libwebkit2gtk+)
I think we might be talking about two different things here, but I'll try to address both of them.
When the engine is compiled on Linux, it's pulling 'just enough gtk2' in order to launch and embedding it inside the binary when compiled. So it's kind of already an appimage in some ways, although not what you'd class as an appimage. It's statically linked.
Instead of being dynamically linked, - so it doesn't require those dependencies to be installed on a user's target system to run.
I agree though, with an appimage - we could bundle everything we want to include (I'm thinking the video dependencies) - so that if they aren't available on the user's target system, at least they can run. I know the video 'player' object is pretty sketchy on all platforms to various degrees - but that's another discussion.
OpenXTalkPaul wrote: ↑Tue Feb 11, 2025 3:51 am
...that's the nice thing about 'container' things like AppImage or Docker, you can include all of the requirements WITHOUT embedding them into the engine (in my opinion every thing like that should all be separate, dynamic loaded libraries that can be updated without recompiling the engine). So that AppImage should continue to work so long as AppImage and x86_64 instruction-set is supported on the system. No GTK needs to be pre-installed on the Linux with AppImage because bits of GTK2 are included inside the .AppImage (along with some other libraries like libFluidSynth) they're like disk-images that get mounted when run and the mounted volume is used in searching for libraries (I think you can add other library search paths too in the app-launcher which is just a shell script).
This is the second bit to it. As far as I can tell, all the other GTK libraries you might need - for things like webkit rendering etc, that's where GTK libraries would be handy if they were part of an appimage. However, because the browser widget doesn't work anyway even with these installed, it's a bit of a moot point.
OpenXTalkPaul wrote: ↑Tue Feb 11, 2025 3:51 am
Still the point remains that there is no (current) Linux ARM build of the Engine, which is a real shame because I think it makes a great dev environment for the resource limited SoC like Raspberry Pis. I remember the Linux ARM build of LC CE 7.x ran surprisingly well on the RPi B+ I used to have.
I would love to see the 9.x engine recompiled for ARM to work on Raspberry PI's (and other system-on-chip single-board computers), and there are various options at compile time to try and compile for these systems on Linux. However, it then asks for ARM-specific prebuilts.... which we don't have.
FourthWorld wrote: ↑Sat Feb 01, 2025 5:43 pm
Dan Gelder's HT->JS transpiler is amazingly efficient, and elegantly crafted.
richmond62 wrote: ↑Sat Feb 01, 2025 6:14 pm
And it would be available where?
Your guess is as good as mine.
I'm leaning more and more towards my browser version anyway. I have been adding various extra functions to my javascript implementation, and
looking back for inspiration at the old hypercard stacks with XCMDs in.
I'd say about 90% of those XCMDs and XFCNs all have one thing in common - they are all geared up to get information about the physical hardware (boot device name, system folder location, moving resource-forks into data-forks and vice-versa...) things that just aren't applicable to a browser-based implementation. There are a few extra things I've added,
which I'll detail on that topic.