Making a WebAssembly interpreter in Ruby, part 5: floating-point literals

Опубликовано: 13 Октябрь 2024
на канале: Tom Stuart
241
6

https://github.com/tomstuart/wasminna...

00:00:00 — Waiting to start
00:00:56 — Hello
00:02:05 — Retro
00:14:08 — Implement the `f32.const` instruction
00:47:37 — Implement the `i32.reinterpret_f32` instruction
00:53:57 — Support (explicitly) positive NaN
00:56:45 — Support negative NaN
01:12:38 — Support NaN payloads
01:46:20 — Use a conditional instead of a case statement to recognise NaNs
01:49:48 — Extract `NAN_REGEXP` constant
01:52:26 — Include function name in assertion output
01:57:41 — Support infinity
01:59:12 — Support negative infinity
02:02:19 — Consolidate float negation
02:04:25 — Begin supporting hexadecimal float notation
02:58:06 — Support (explicitly) positive exponent in hexadecimal float notation
03:05:16 — Support negative exponent in hexadecimal float notation
03:10:53 — Support missing fractional part in hexadecimal float notation
03:11:08 — Support fractional part with no digits in hexadecimal float notation
03:14:22 — Support missing exponent in hexadecimal float notation
03:34:37 — Support decimal float notation
03:36:07 — Add explanation to #interpret_float error
03:38:41 — Parameterise #interpret_float implementation on precision-specific information
03:59:32 — Implement the `f64.const` instruction
04:02:29 — Dynamically determine float width in `reinterpret_f32` implementation
04:03:27 — Implement the `reinterpret_f64` instruction
04:04:18 — Wrapping up
04:05:38 — Bye