Skip to content

Removing some architectures, platforms, or code paths, better support for others #1386

Description

@Aidan63

I've been thinking about all the various different code paths and platforms which are scattered around and if we could trim some of them down and add better support in the form of CI testing for other platforms.

Removals

32bit
Do we need to support 32bit systems any more? Mobile is all 64bit now, Apple is all 64bit, Windows 11 only provides 64bit images, most Linux distros only provide 64bit images. I'm guessing you can still get very low powered 32bit arm chips, but I can't imagine hxcpp is going to be running on them.
There's very little cpp code which is 32/64 conditional, but it would allow a good bit of cleanup in the build tool and xml toolchains.

x86 MacOS
Current version of MacOS is the last version to support x86, and if past MacOS versions support periods are to go by support will end late 27 / early 28. They've also said they're getting rid of all the translation stuff mid 27. So this seems like a platform which will soon have very little use.

Android GCC
I have basically no mobile knowledge, but my understanding is that now clang is the only way to go, so is there any reason to keep the gcc android toolchain around?

gcw0 and gph
I don't know what these are, gph especially hasn't been modified in years.

Blackberry
I don't think Blackberry devices exists any more, wasn't the last revival attempt was just an Android device? I can't imagine we need this.

WebOS
WebOS is still a thing, but this toolchain hasn't been modified since 2015. Does it still work, does anyone use it?

Non-Aligned Allocs
I think it was something related to atomics where aligned allocations are now always used, is there any use for keeping the unaligned code around? It seems like it's now primed to fall into bit rot like the non smart strings paths.

Better Support / Additions

Windows ARM
Some manufacturers seem to be having another crack at Windows on ARM, probably won't take off like the other attempts but it might be nice to run Windows ARM as part of the CI. Github provide Windows 11 ARM images.

Mobile
There's an open PR to get Android building on the CI, but it would be nice to have one for iOS as well. I don't know how easy it would then be to have the tests run in some sort of simulator? As mentioned above, I have no mobile experience.

Emscripten/WASM
I would have put this under the "is anyone using this" given that Haxe has a JS output, but Hugh has been committing some fixes for it. It doesn't seem like it should be that difficult to get it building and running tests on the CI.

Different GC Paths
It seems like most test code is ran under the standard non moving GC and then some under the generational GC, I don't think any are ran with just the moving option. It would be nice if some GC specific tests could be ran on a wider range of GC options to catch issues. Hopefully this wouldn't balloon the CI too much.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions