dtolnay / ryu

Fast floating point to string conversion
Apache License 2.0
606 stars 27 forks source link

ryu 1.0.1 fails to build with emscripten #18

Closed CryZe closed 5 years ago

CryZe commented 5 years ago
error[E0308]: mismatched types
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/ryu-1.0.1/src/d2s.rs:222:15
    |
222 |             { vp_uninit.as_mut_ptr() },
    |               ^^^^^^^^^^^^^^^^^^^^^^ expected &mut u64, found *-ptr
    |
    = note: expected type `&mut u64`
               found type `*mut u64`

error[E0308]: mismatched types
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/ryu-1.0.1/src/d2s.rs:226:15
    |
226 |             { vm_uninit.as_mut_ptr() },
    |               ^^^^^^^^^^^^^^^^^^^^^^ expected &mut u64, found *-ptr
    |
    = note: expected type `&mut u64`
               found type `*mut u64`

error[E0308]: mismatched types
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/ryu-1.0.1/src/d2s.rs:273:15
    |
273 |             { vp_uninit.as_mut_ptr() },
    |               ^^^^^^^^^^^^^^^^^^^^^^ expected &mut u64, found *-ptr
    |
    = note: expected type `&mut u64`
               found type `*mut u64`

error[E0308]: mismatched types
   --> /cargo/registry/src/github.com-1ecc6299db9ec823/ryu-1.0.1/src/d2s.rs:277:15
    |
277 |             { vm_uninit.as_mut_ptr() },
    |               ^^^^^^^^^^^^^^^^^^^^^^ expected &mut u64, found *-ptr
    |
    = note: expected type `&mut u64`
               found type `*mut u64`

https://github.com/LiveSplit/livesplit-core/pull/257/checks?check_run_id=259206571

Seems like it has cfg(maybe_uninit) but not cfg(integer128), which then uses MaybeUninit, but the signature of mul_shift_all uses mutable references then.

dtolnay commented 5 years ago

Sorry about the breakage! Should be fixed in ryu 1.0.2. I filed #20 to set up a CI builder on Emscripten to catch this sort of thing.