Host builtin support, by backend
Generated by `scripts/host_matrix.sh`. Do not edit.
Which backends have a lowering for each host / IO builtin, asked of the compiler rather than remembered. refused means the backend says so itself, which is the correct way to lack something; MISSING means a program using it fails with unbound variable, blaming the user for a backend hole; bare means the backend has it on -rv --bare only, where the program is handed the machine instead of a host; stub means it compiles there and then ABORTS AT RUNTIME, which is what the -rv prelude's float shims do while contrib/softfloat is not wired in -- yes would be the flattering lie and refused the other one; unattributed means the backend refused but named a different builtin, so the probe never reached its subject and the cell is evidence about that other name.
The interpreter has every one of these, and is not a column.
RV32I is the fifth backend and was missing from this table until v0.1.332 — a record whose job is to say which backend has which builtin, with a backend not in it. Most of its column is refused, which is the right answer for an integer-subset target that hands the program a machine rather than a host.
| builtin | C | LLVM | Wasm | RV32I |
|---|---|---|---|---|
__rv_access | refused | refused | refused | yes |
__rv_alloc_keep | refused | refused | refused | yes |
__rv_argc | refused | refused | refused | yes |
__rv_argstr | refused | refused | refused | yes |
__rv_blk_free | refused | refused | refused | yes |
__rv_boot_addr | refused | refused | refused | refused |
__rv_call1 | refused | refused | refused | yes |
__rv_clock | refused | refused | refused | yes |
__rv_co_hi | refused | refused | refused | yes |
__rv_co_lo | refused | refused | refused | yes |
__rv_cswap | refused | refused | refused | refused |
__rv_gp | refused | refused | refused | yes |
__rv_heap_lo | refused | refused | refused | yes |
__rv_hwm_raise | refused | refused | refused | yes |
__rv_main_lo | refused | refused | refused | yes |
__rv_open_rd | refused | refused | refused | yes |
__rv_open_wr | refused | refused | refused | yes |
__rv_peek | refused | refused | refused | yes |
__rv_poke | refused | refused | refused | yes |
__rv_read_all | refused | refused | refused | yes |
__rv_rtw | refused | refused | refused | yes |
__rv_rtw_set | refused | refused | refused | yes |
__rv_sp | refused | refused | refused | yes |
__rv_spill | refused | refused | refused | yes |
__rv_stack_top | refused | refused | refused | yes |
__rv_str_hash | unattributed | refused | refused | yes |
__rv_substring_raw | refused | refused | refused | yes |
__rv_unlink | refused | refused | refused | yes |
__rv_urandom32 | refused | refused | refused | yes |
__rv_write_all | refused | refused | refused | yes |
__rv_xlen | refused | refused | refused | yes |
abs | yes | yes | yes | yes |
args | yes | yes | yes | yes |
assert | yes | yes | yes | yes |
atan2 | yes | yes | yes | yes |
bit_and | yes | yes | yes | yes |
bit_not | yes | yes | yes | yes |
bit_or | yes | yes | yes | yes |
bit_shl | yes | yes | yes | yes |
bit_shr | yes | yes | yes | yes |
bit_xor | yes | yes | yes | yes |
bool_of_str | yes | yes | yes | refused |
bytebuf_new | yes | yes | yes | refused |
bytes_of_hex | yes | yes | yes | yes |
bytes_of_str | yes | yes | yes | yes |
ceil | yes | yes | yes | yes |
channel_close | yes | yes | yes | unattributed |
channel_new | yes | yes | yes | refused |
channel_recv | yes | yes | yes | unattributed |
channel_recv_opt | yes | yes | yes | unattributed |
channel_recv_timeout | yes | yes | yes | unattributed |
channel_send | yes | yes | yes | unattributed |
char_at | yes | yes | yes | yes |
chr | yes | yes | yes | yes |
clamp | yes | yes | yes | yes |
coro_exit | yes | yes | refused | refused |
coro_new | yes | yes | refused | yes |
coro_new_sized | yes | yes | refused | yes |
coro_root | yes | yes | refused | yes |
coro_switch | yes | yes | refused | yes |
coro_transfer | yes | yes | refused | refused |
cos | yes | yes | yes | yes |
csr_read | bare | refused | refused | bare |
csr_write | bare | refused | refused | bare |
cube | yes | yes | yes | yes |
decr | yes | yes | yes | yes |
detach | yes | yes | yes | unattributed |
divmod | yes | yes | yes | yes |
e | yes | yes | yes | yes |
env_var | yes | yes | yes | refused |
even | yes | yes | yes | yes |
exit | yes | yes | yes | yes |
exp | yes | yes | yes | yes |
f32_bits | yes | yes | yes | refused |
f32x4_make | yes | yes | yes | refused |
f32x4_splat | yes | yes | yes | refused |
f64x2_make | yes | yes | yes | refused |
f64x2_splat | yes | yes | yes | refused |
f_abs | yes | yes | yes | yes |
f_add | yes | yes | yes | yes |
f_div | yes | yes | yes | yes |
f_ge | yes | yes | yes | yes |
f_gt | yes | yes | yes | yes |
f_le | yes | yes | yes | yes |
f_lt | yes | yes | yes | yes |
f_max | yes | yes | yes | yes |
f_min | yes | yes | yes | yes |
f_mul | yes | yes | yes | yes |
f_neg | yes | yes | yes | yes |
f_pow | yes | yes | yes | yes |
f_sub | yes | yes | yes | yes |
fail | yes | yes | yes | yes |
file_delete | yes | yes | yes | yes |
file_exists | yes | yes | yes | yes |
file_mtime | yes | refused | refused | refused |
file_open | yes | refused | refused | refused |
file_openrw | yes | yes | yes | refused |
file_pread | yes | yes | yes | unattributed |
file_pread_bytes | yes | yes | yes | unattributed |
file_pwrite | yes | yes | yes | unattributed |
file_pwrite_bytes | yes | yes | yes | unattributed |
file_read_line | yes | refused | refused | unattributed |
file_size | yes | yes | yes | refused |
float_bits_hi | yes | yes | yes | yes |
float_bits_lo | yes | yes | yes | yes |
float_of_bits | yes | yes | yes | yes |
float_of_f32_bits | yes | yes | yes | refused |
float_of_int | yes | yes | yes | yes |
float_of_str | yes | yes | yes | yes |
floor | yes | yes | yes | yes |
fma | yes | yes | yes | refused |
gcd | yes | yes | yes | yes |
incr | yes | yes | yes | yes |
int_max | refused | refused | refused | refused |
int_min | refused | refused | refused | refused |
int_of_float | yes | yes | yes | yes |
int_of_str | yes | yes | yes | yes |
is_alpha | yes | yes | yes | yes |
is_digit | yes | yes | yes | yes |
is_space | yes | yes | yes | yes |
join | yes | yes | yes | unattributed |
lb_new | yes | yes | yes | refused |
lcm | yes | yes | yes | unattributed |
list_dir | yes | refused | refused | refused |
log | yes | yes | yes | yes |
map_new | yes | yes | yes | yes |
max | yes | yes | yes | yes |
min | yes | yes | yes | yes |
mk_logger | yes | yes | yes | refused |
mk_metrics | yes | yes | yes | refused |
mkdir_p | yes | refused | refused | refused |
not | yes | yes | yes | yes |
odd | yes | yes | yes | yes |
of_json | refused | refused | unattributed | refused |
of_json_opt | refused | refused | unattributed | refused |
ord | yes | yes | yes | yes |
owned_vec_new | yes | yes | yes | refused |
pi | yes | yes | yes | yes |
pow | yes | yes | yes | yes |
print | yes | yes | yes | yes |
print_bool | yes | yes | yes | yes |
print_bytes | yes | yes | yes | yes |
print_err | yes | yes | yes | yes |
print_int | yes | yes | yes | yes |
print_no_nl | yes | yes | yes | yes |
random_float | refused | refused | refused | refused |
random_int | yes | yes | yes | yes |
read_bytes | yes | yes | yes | yes |
read_file | yes | yes | yes | yes |
read_file_bytes | yes | yes | yes | refused |
read_key | yes | refused | refused | refused |
read_line | yes | refused | yes | refused |
read_lines | yes | refused | refused | refused |
read_stdin | yes | refused | yes | yes |
round | yes | yes | yes | yes |
run | yes | refused | yes | stub |
sign | yes | yes | yes | yes |
sin | yes | yes | yes | yes |
sleep_ms | yes | yes | refused | yes |
spawn | yes | yes | yes | refused |
sqrt | yes | yes | yes | yes |
square | yes | yes | yes | yes |
stdin_byte | yes | refused | refused | refused |
str_compare | yes | yes | yes | yes |
str_contains | yes | yes | yes | yes |
str_count | yes | yes | yes | refused |
str_ends_with | yes | yes | yes | yes |
str_eq | yes | yes | yes | yes |
str_index_of | yes | yes | yes | yes |
str_last_index_of | yes | yes | yes | refused |
str_len | yes | yes | yes | yes |
str_of_float | yes | yes | yes | yes |
str_of_int | yes | yes | yes | yes |
str_repeat | yes | yes | yes | yes |
str_replace | yes | yes | yes | yes |
str_rev | yes | yes | yes | yes |
str_split | yes | yes | yes | yes |
str_starts_with | yes | yes | yes | yes |
str_trim | yes | yes | yes | yes |
str_unescape | yes | yes | yes | yes |
strbuf_new | yes | yes | yes | yes |
substring | yes | yes | yes | yes |
sum_range | yes | yes | yes | yes |
tan | yes | yes | yes | yes |
time | yes | yes | yes | yes |
to_lower | yes | yes | yes | yes |
to_upper | yes | yes | yes | yes |
tty_no_signal_keys | yes | refused | refused | refused |
tty_raw | yes | refused | refused | refused |
tty_restore | yes | refused | refused | refused |
u8x16_splat | yes | yes | yes | yes |
utf8_chars | yes | yes | yes | refused |
utf8_len | yes | yes | yes | refused |
vec_new | yes | yes | yes | yes |
write_bytes | yes | yes | yes | refused |
write_file | yes | yes | yes | yes |
write_file_bytes | yes | yes | yes | refused |