Checkpoint the party/runtime stack before share-program and malicious-mode work.

Ship the TLS mesh, composer, Beaver/Yao/leaf MPC, prep/online paths, apps, and docs so the tree is pushable before elevating share_expr, security_mode, and prep resume.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ryan Henry 2026-09-28 05:59:19 -06:00
parent 695f8e84f7
commit 0d22946a0e
1835 changed files with 170291 additions and 2849 deletions

View file

@ -28,6 +28,10 @@
namespace grotto
{
/// \complexity Extracts the IEEE fields and prints a fixed-size mantissa. `Θ(1)`.
/// @see grotto::from_hexfloat
/// @param x the double
/// @return the hexfloat spelling
template <class CharT = char,
class Traits = std::char_traits<CharT>,
@ -339,7 +343,7 @@ inline void shift_right_limbs(std::vector<std::uint64_t> & limbs, unsigned shift
/// significand * 2^(exponent + fractional_bits), floored toward -inf on the
/// discarded fraction and wrapped modulo 2^width.
/// @tparam T value type
/// @param text the `text`
/// @param text hexfloat spelling
/// @param fractional_bits the number of fractional bits
/// @return the returned `T`
/// @throws std::invalid_argument if `empty hexfloat`
@ -473,6 +477,8 @@ T integer_from_hexfloat(std::string_view text, int fractional_bits)
}
} // namespace detail
/// \complexity `format_hexfloat` walks the bits below the highest set bit, four per nibble. `Θ(width)` with `width = bitlength_of_v<T>` (at most 256). Extra space is the nibble string, `Θ(width)`.
/// @see grotto::fixedpoint
template <typename T>
std::enable_if_t<detail::is_hexfloat_integer<T>, std::string>
@ -480,12 +486,21 @@ to_hexfloat(T value)
{
return detail::format_hexfloat(value, 0);
}
/// \complexity Forwards the raw word to `format_hexfloat` with `FractionalBits` as the binary point. `Θ(backend width)`.
/// @see grotto::fixedpoint
/// @note Prints the mathematical value of the fixed-point word, using `integral_representation()`.
template <unsigned FractionalBits, typename Integral>
std::string to_hexfloat(fixedpoint<FractionalBits, Integral> value)
{
return detail::format_hexfloat(value.integral_representation(), FractionalBits);
}
/// \complexity Scans the text once. Integer and fixed-point paths shift a limb vector by the exponent. Time `Θ(digits + |exponent shift|)`. Extra space is that limb vector.
/// A `double` target uses `strtod`.
/// @see grotto::to_hexfloat
/// @note Fixed-point parsing is bit-exact into `from_raw` / `make_fixed_from_integral_type`: discarded fraction bits are floored, and the word wraps modulo `2^width`.
/// @param text hexfloat spelling
/// @return the parsed value
template <typename T>
T from_hexfloat(std::string_view text)