compiler-explorer icon indicating copy to clipboard operation
compiler-explorer copied to clipboard

Proposal: Migrate Compiler Explorer configuration to TOML

Open mattgodbolt opened this issue 8 months ago • 2 comments

Description

This PR adds a proposal document for migrating Compiler Explorer's configuration system from .properties files to TOML format. The document includes:

  • Analysis of current configuration limitations
  • Benefits of TOML format
  • Audit of array usage patterns in current configs
  • Phased migration approach
  • Conversion examples
  • Implementation details

The proposal addresses issues raised in #7150 regarding group property inheritance and #7341 regarding readability of long configuration lines.

Checklist

  • [x] Documentation change only (no code changes)
  • [x] Issue addressed: #7150, #7341

This is a draft PR to gather feedback on the migration approach before any implementation work begins.

Testing

  • The document has been reviewed for technical accuracy
  • No code changes in this PR

mattgodbolt avatar Apr 27 '25 04:04 mattgodbolt

General thoughts

I think the estimations might be too low, but not by much.

And then the question is; is this really worth 2 months of anyone's time?

Details

  • Don't forget that https://github.com/compiler-explorer/infra/blob/main/bin/lib/amazon_properties.py needs changing too, but that's probably the easiest part as it doesn't require a full implementation.
  • It might be good to actually get rid of the top level lists of compilers=[...], libs, tools etc, they're redundant, long and awkward to change when adding a library for example.
    • The context can be determined from the header of each section.
    • Group level compiler list should ofc be kept, otherwise you can't group them. This also means you always need to have a minimum of 1 compiler group, I don't think that would be a bad thing.
    • This might be something we can add later as it would require breaking backwards compatibility.
  • As a prerequisite for this we should get rid of the links that exist in other prop files and "just" add them in the normal way.
    • It has proven to be super confusing for new users that want to try out the amazon prop files. It's annoying even for me to change every time I want a fresh amazon prop file.
    • We're not using it anyway as intended; because we can't, because you can't have duplicate compiler id's.
    • (example https://github.com/compiler-explorer/compiler-explorer/blob/main/etc/config/c%2B%2B.gpu.properties#L2)

partouf avatar Apr 27 '25 12:04 partouf

Yeah time is definitely a good question here. Maybe it's good enough of an improvement to fix up some of the annoying bits like no newlines

junlarsen avatar Apr 27 '25 13:04 junlarsen