Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next major release wishlist/ideas #1

Open
11 tasks
LunarLambda opened this issue Jun 21, 2024 · 0 comments
Open
11 tasks

Next major release wishlist/ideas #1

LunarLambda opened this issue Jun 21, 2024 · 0 comments

Comments

@LunarLambda
Copy link
Contributor

LunarLambda commented Jun 21, 2024

The runtime is probably overdue for its next major overhaul.

Some ideas/features:

  • wonderful toolchain support. Mostly regarding special symbols needed and compiler/linker flags. This is mainly a meson.build matter.
  • docs! docs all the things. desperately.

Linker:

  • Unify linker scripts and configuration, create a python tool that allows people to declaratively customize the link setup.
  • Consider handling overlays for various sections the same way.
  • Consider meson.build ergonomics for this. Should be easy enough to integrate with Make/CMake, but need to be careful with mismatches / partial_dependency. Needs docs.
  • Better VRAM sections?

Runtime:

  • Unconditionally drop fini/exit support for GBA? Gets rid of a lot of code. We may still want the picoexit-based stuff for future NDS support.
  • Dropping exit for GBA would also let us unify the C/Rust start.c code
  • Finally create a faster startup memcpy/memset to replace calling CpuSet? Since section align is a solved problem now.
  • Generally clean up rt0.s a bit. Ideally hoist the generation of the table for the startup copies and some version strings into the ldscript.

Language integration:

  • Figure out what the user interface for integrating minrt into Rust projects should be. In particular, can we integrate the custom link script feature in an easy to use fashion? Can we avoid needing meson? Don't think we can get away with just cc but maybe we can? Would require some duplicated work but maybe not a ton.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant