read = (_: &io.Stream, buffer: [] u8) -> (io.Error, u32) {
__flush_stdio();
bytes_read := runtime.platform.__read_from_input(buffer);
- if bytes_read == 0 do return .ReadPending, 0;
- if bytes_read < 0 do return .EOF, 0;
+ if bytes_read <= 0 do return .EOF, 0;
return .None, bytes_read;
},
__dir_read :: (dir: DirectoryData, out_entry: &os.DirectoryEntry) -> bool ---
__dir_create :: (path: str) -> bool ---
__dir_remove :: (path: str) -> bool ---
-
-
- __enable_non_blocking_stdin :: () -> void ---
}
}
while i := cast(i32) (env_var.count - 1); i >= 0 {
defer i -= 1;
- env_var[i] = cast(cstr) (cast(&u32) env_var.data)[i];
+ env_var[i] = cast(cstr) (cast([&]u32) env_var.data)[i];
}
env_map := map.make(str, str, "");
map.put(&env_map, var, string.advance(s, 1));
}
- raw_free(allocator, env_var.data);
+ // raw_free(allocator, env_var.data);
+ memory.free_slice(&env_var, allocator);
return .{
vars = env_map,
argv_buf_size : Size;
args_sizes_get(&args.count, &argv_buf_size);
- args = memory.make_slice(cstr, args.count);
+ args = core.memory.make_slice(cstr, args.count);
argv_buf := cast(cstr) calloc(argv_buf_size);
args_get(args.data, argv_buf);
while i := cast(i32) (args.count - 1); i >= 0 {
defer i -= 1;
- args[i] = cast(cstr) (cast(&u32) args.data)[i];
+ args[i] = cast(cstr) (cast([&] u32) args.data)[i];
}
(package main).main(args);
ONYX_FUNC(__file_get_standard)
ONYX_FUNC(__file_rename)
-#ifdef _BH_LINUX
- ONYX_FUNC(__enable_non_blocking_stdin)
-#endif
-
ONYX_FUNC(__dir_open)
ONYX_FUNC(__dir_read)
ONYX_FUNC(__dir_close)
#endif
}
-#ifdef _BH_LINUX
-ONYX_DEF(__enable_non_blocking_stdin, (), ()) {
- int flags = fcntl(STDIN_FILENO, F_GETFL, 0);
- flags |= O_NONBLOCK;
- fcntl(STDIN_FILENO, F_SETFL, flags);
-
- return NULL;
-}
-#endif
i32 thread_id = thread->id;
{ // Call the _thread_start procedure
- wasm_val_t args[] = {
+ wasm_val_t args[7] = {
WASM_I32_VAL(thread_id),
WASM_I32_VAL(thread->tls_base),
WASM_I32_VAL(thread->stack_base),
}
#match hash.to_u32 (p: Communative_Pair($T)) => {
- return hash.to_u32(p.a) * 13 + hash.to_u32(p.b) * 17;
+ return hash.to_u32(p.a) * hash.to_u32(p.b);
}
#operator == (p1, p2: Communative_Pair($T)) => {