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

Configure which platforms have f16 and f128 enabled by default #652

Merged
merged 8 commits into from
Aug 4, 2024

Commits on Aug 3, 2024

  1. Configuration menu
    Copy the full SHA
    b7af607 View commit details
    Browse the repository at this point in the history
  2. Add back remaining config on arm_aeabi_alias

    Intrinsics marked with `arm_aeabi_alias = ...` were having the rest of
    their attributes eaten. Add them back.
    tgross35 committed Aug 3, 2024
    Configuration menu
    Copy the full SHA
    e3de4ab View commit details
    Browse the repository at this point in the history
  3. Configure which platforms get f16 and f128 enabled by default

    By moving the logic for which platforms get symbols to
    `compiler_builtins` rather than rust-lang/rust, we can control where
    symbols get enabled without relying on Cargo features. Using Cargo
    features turned out to be a problem in [1].
    
    This will help resolve errors like [2].
    
    [1]: rust-lang/rust#128358
    [2]: rust-lang/rust#128401
    tgross35 committed Aug 3, 2024
    Configuration menu
    Copy the full SHA
    d91dcf4 View commit details
    Browse the repository at this point in the history
  4. Make use of new f16 and f128 config options

    Change from `not(feature = "no-f16-f128")` to `f16_enabled` or
    `f128_disabled`, as applicable.
    tgross35 committed Aug 3, 2024
    Configuration menu
    Copy the full SHA
    ce16d53 View commit details
    Browse the repository at this point in the history
  5. Update which platforms have no f16 symbols

    Previously we were building the C versions of these symbols. Since we
    added the Rust version and updated compiler builtins, these are no
    longer available by default. This is unintentional, but it gives a
    better indicator of which symbol versions are not actually provided by
    the system.
    
    Use the list of build failures to correct the list of platforms that do
    not have `f16` symbols.
    tgross35 committed Aug 3, 2024
    Configuration menu
    Copy the full SHA
    f2de609 View commit details
    Browse the repository at this point in the history
  6. Correct sys_avialable for f64 -> f16 truncation

    The `sys_available` gate was incorrect. Update it.
    tgross35 committed Aug 3, 2024
    Configuration menu
    Copy the full SHA
    662a224 View commit details
    Browse the repository at this point in the history
  7. Update to the latest rustc_apfloat

    The latest version has a convenient `.unwrap()`. Increase the version so
    we can use this.
    tgross35 committed Aug 3, 2024
    Configuration menu
    Copy the full SHA
    614f96b View commit details
    Browse the repository at this point in the history
  8. Update float conversion tests

    Since there are more platforms that do not have symbols present, we need
    to use `rustc_apfloat` for more conversion tests. Make use of the
    fallback like other tests, and refactor so each test gets its own
    function.
    
    Previously we were testing both apfloat and system conversion methods
    when possible. This changes to only test one or the other, depending on
    whether or not the system version is available. This seems reasonable
    because it is consistent with all other tests, but we should consider
    updating all tests to check both at some point.
    
    This also includes an adjustment of PowerPC configuration to account for
    the linking errors at [1].
    
    [1]: rust-lang#655
    tgross35 committed Aug 3, 2024
    Configuration menu
    Copy the full SHA
    c6f95d7 View commit details
    Browse the repository at this point in the history