Running grep -nE 'f(32|64)\.' ./.bin/kernel.wat I can find a few occurrences of floating point instructions, and looking into the wat file I could find the following functions, with mangled names:
$_ZN4core3fmt5float29float_to_decimal_common_exact17hd806da160a15dfd7E: From https://github.com/rust-lang/rust/blob/master/library/core/src/fmt/float.rs#L29, which probably comes from inlining some of those function calls inside it. I believe this one can be circumvented by having cfg(no_fp_fmt_parse) enabled. But probably could optimized out once float dependency is removed from Unexpected.
When running
make debug
I receive the following output:Running
grep -nE 'f(32|64)\.' ./.bin/kernel.wat
I can find a few occurrences of floating point instructions, and looking into the wat file I could find the following functions, with mangled names:$_ZN77_$LT$serde..__private..de..content..Content$u20$as$u20$core..clone..Clone$GT$5clone17h12cafb7e0f652464E
: Which is the result of the Clone derive macro on https://github.com/serde-rs/serde/blob/master/serde/src/private/de.rs#L219$_ZN5serde9__private2de7content7Content10unexpected17h6a53c07a72eeeb43E
: From https://github.com/serde-rs/serde/blob/master/serde/src/private/de.rs#L274$_ZN60_$LT$serde..de..Unexpected$u20$as$u20$core..fmt..Display$GT$3fmt17hcb6eab2fe1eecf7bE
: From https://github.com/serde-rs/serde/blob/master/serde/src/de/mod.rs#L403$_ZN4core3fmt5float29float_to_decimal_common_exact17hd806da160a15dfd7E
: From https://github.com/rust-lang/rust/blob/master/library/core/src/fmt/float.rs#L29, which probably comes from inlining some of those function calls inside it. I believe this one can be circumvented by havingcfg(no_fp_fmt_parse)
enabled. But probably could optimized out once float dependency is removed fromUnexpected
.$_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hbe7611732fc77d82E
: From https://github.com/rust-lang/rust/blob/master/library/core/src/fmt/float.rs#L225I'm not sure how to solve this, but I believe we could do something with conditional compilation directly on
serde
, sincecfg(no_integer128)
(example https://github.com/serde-rs/serde/blob/master/serde/src/de/mod.rs#L121) opens this possibility.