From 61c8b1420e88c5522728457d6caae925501d2fb7 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 30 Aug 2020 12:10:33 -0500 Subject: [PATCH] small error improvements; moved where proc directives go --- core/intrinsics.onyx | 84 +++++++++++------------ core/printing.onyx | 12 ++-- core/wasi.onyx | 154 ++++++++++++++++--------------------------- include/bh.h | 3 +- onyx | Bin 580768 -> 580880 bytes progs/poly_test.onyx | 2 +- src/onyxchecker.c | 15 ++++- src/onyxparser.c | 24 +++---- 8 files changed, 136 insertions(+), 158 deletions(-) diff --git a/core/intrinsics.onyx b/core/intrinsics.onyx index cf4364dc..3d727272 100644 --- a/core/intrinsics.onyx +++ b/core/intrinsics.onyx @@ -1,48 +1,48 @@ package intrinsics -memory_size :: proc #intrinsic -> i32 --- -memory_grow :: proc #intrinsic (val: i32) -> i32 --- +memory_size :: proc -> i32 #intrinsic --- +memory_grow :: proc (val: i32) -> i32 #intrinsic --- -clz_i32 :: proc #intrinsic (val: i32) -> i32 --- -ctz_i32 :: proc #intrinsic (val: i32) -> i32 --- -popcnt_i32 :: proc #intrinsic (val: i32) -> i32 --- -and_i32 :: proc #intrinsic (lhs: i32, rhs: i32) -> i32 --- -or_i32 :: proc #intrinsic (lhs: i32, rhs: i32) -> i32 --- -xor_i32 :: proc #intrinsic (lhs: i32, rhs: i32) -> i32 --- -shl_i32 :: proc #intrinsic (lhs: i32, rhs: i32) -> i32 --- -slr_i32 :: proc #intrinsic (lhs: i32, rhs: i32) -> i32 --- -sar_i32 :: proc #intrinsic (lhs: i32, rhs: i32) -> i32 --- -rotl_i32 :: proc #intrinsic (lhs: i32, rhs: i32) -> i32 --- -rotr_i32 :: proc #intrinsic (lhs: i32, rhs: i32) -> i32 --- +clz_i32 :: proc (val: i32) -> i32 #intrinsic --- +ctz_i32 :: proc (val: i32) -> i32 #intrinsic --- +popcnt_i32 :: proc (val: i32) -> i32 #intrinsic --- +and_i32 :: proc (lhs: i32, rhs: i32) -> i32 #intrinsic --- +or_i32 :: proc (lhs: i32, rhs: i32) -> i32 #intrinsic --- +xor_i32 :: proc (lhs: i32, rhs: i32) -> i32 #intrinsic --- +shl_i32 :: proc (lhs: i32, rhs: i32) -> i32 #intrinsic --- +slr_i32 :: proc (lhs: i32, rhs: i32) -> i32 #intrinsic --- +sar_i32 :: proc (lhs: i32, rhs: i32) -> i32 #intrinsic --- +rotl_i32 :: proc (lhs: i32, rhs: i32) -> i32 #intrinsic --- +rotr_i32 :: proc (lhs: i32, rhs: i32) -> i32 #intrinsic --- -clz_i64 :: proc #intrinsic (val: i64) -> i64 --- -ctz_i64 :: proc #intrinsic (val: i64) -> i64 --- -popcnt_i64 :: proc #intrinsic (val: i64) -> i64 --- -and_i64 :: proc #intrinsic (lhs: i64, rhs: i64) -> i64 --- -or_i64 :: proc #intrinsic (lhs: i64, rhs: i64) -> i64 --- -xor_i64 :: proc #intrinsic (lhs: i64, rhs: i64) -> i64 --- -shl_i64 :: proc #intrinsic (lhs: i64, rhs: i64) -> i64 --- -slr_i64 :: proc #intrinsic (lhs: i64, rhs: i64) -> i64 --- -sar_i64 :: proc #intrinsic (lhs: i64, rhs: i64) -> i64 --- -rotl_i64 :: proc #intrinsic (lhs: i64, rhs: i64) -> i64 --- -rotr_i64 :: proc #intrinsic (lhs: i64, rhs: i64) -> i64 --- +clz_i64 :: proc (val: i64) -> i64 #intrinsic --- +ctz_i64 :: proc (val: i64) -> i64 #intrinsic --- +popcnt_i64 :: proc (val: i64) -> i64 #intrinsic --- +and_i64 :: proc (lhs: i64, rhs: i64) -> i64 #intrinsic --- +or_i64 :: proc (lhs: i64, rhs: i64) -> i64 #intrinsic --- +xor_i64 :: proc (lhs: i64, rhs: i64) -> i64 #intrinsic --- +shl_i64 :: proc (lhs: i64, rhs: i64) -> i64 #intrinsic --- +slr_i64 :: proc (lhs: i64, rhs: i64) -> i64 #intrinsic --- +sar_i64 :: proc (lhs: i64, rhs: i64) -> i64 #intrinsic --- +rotl_i64 :: proc (lhs: i64, rhs: i64) -> i64 #intrinsic --- +rotr_i64 :: proc (lhs: i64, rhs: i64) -> i64 #intrinsic --- -abs_f32 :: proc #intrinsic (val: f32) -> f32 --- -ceil_f32 :: proc #intrinsic (val: f32) -> f32 --- -floor_f32 :: proc #intrinsic (val: f32) -> f32 --- -trunc_f32 :: proc #intrinsic (val: f32) -> f32 --- -nearest_f32 :: proc #intrinsic (val: f32) -> f32 --- -sqrt_f32 :: proc #intrinsic (val: f32) -> f32 --- -min_f32 :: proc #intrinsic (lhs: f32, rhs: f32) -> f32 --- -max_f32 :: proc #intrinsic (lhs: f32, rhs: f32) -> f32 --- -copysign_f32 :: proc #intrinsic (lhs: f32, rhs: f32) -> f32 --- +abs_f32 :: proc (val: f32) -> f32 #intrinsic --- +ceil_f32 :: proc (val: f32) -> f32 #intrinsic --- +floor_f32 :: proc (val: f32) -> f32 #intrinsic --- +trunc_f32 :: proc (val: f32) -> f32 #intrinsic --- +nearest_f32 :: proc (val: f32) -> f32 #intrinsic --- +sqrt_f32 :: proc (val: f32) -> f32 #intrinsic --- +min_f32 :: proc (lhs: f32, rhs: f32) -> f32 #intrinsic --- +max_f32 :: proc (lhs: f32, rhs: f32) -> f32 #intrinsic --- +copysign_f32 :: proc (lhs: f32, rhs: f32) -> f32 #intrinsic --- -abs_f64 :: proc #intrinsic (val: f64) -> f64 --- -ceil_f64 :: proc #intrinsic (val: f64) -> f64 --- -floor_f64 :: proc #intrinsic (val: f64) -> f64 --- -trunc_f64 :: proc #intrinsic (val: f64) -> f64 --- -nearest_f64 :: proc #intrinsic (val: f64) -> f64 --- -sqrt_f64 :: proc #intrinsic (val: f64) -> f64 --- -min_f64 :: proc #intrinsic (lhs: f64, rhs: f64) -> f64 --- -max_f64 :: proc #intrinsic (lhs: f64, rhs: f64) -> f64 --- -copysign_f64 :: proc #intrinsic (lhs: f64, rhs: f64) -> f64 --- +abs_f64 :: proc (val: f64) -> f64 #intrinsic --- +ceil_f64 :: proc (val: f64) -> f64 #intrinsic --- +floor_f64 :: proc (val: f64) -> f64 #intrinsic --- +trunc_f64 :: proc (val: f64) -> f64 #intrinsic --- +nearest_f64 :: proc (val: f64) -> f64 #intrinsic --- +sqrt_f64 :: proc (val: f64) -> f64 #intrinsic --- +min_f64 :: proc (lhs: f64, rhs: f64) -> f64 #intrinsic --- +max_f64 :: proc (lhs: f64, rhs: f64) -> f64 #intrinsic --- +copysign_f64 :: proc (lhs: f64, rhs: f64) -> f64 #intrinsic --- diff --git a/core/printing.onyx b/core/printing.onyx index dc56e887..9569ed3e 100644 --- a/core/printing.onyx +++ b/core/printing.onyx @@ -1,10 +1,10 @@ package printing -print_bool :: proc #foreign "host" "print" (value: bool) --- -print_i32 :: proc #foreign "host" "print" (value: i32) --- -print_f32 :: proc #foreign "host" "print" (value: f32) --- -print_i64 :: proc #foreign "host" "print" (value: i64) --- -print_f64 :: proc #foreign "host" "print" (value: f64) --- +print_bool :: proc (value: bool) #foreign "host" "print" --- +print_i32 :: proc (value: i32) #foreign "host" "print" --- +print_f32 :: proc (value: f32) #foreign "host" "print" --- +print_i64 :: proc (value: i64) #foreign "host" "print" --- +print_f64 :: proc (value: f64) #foreign "host" "print" --- PrintableArray :: struct { data: ^u8; @@ -36,7 +36,7 @@ print_str_by_byte :: proc (str: ^u8) { } } -print_str :: proc #foreign "host" "print_str" (str: ^u8) --- +print_str :: proc (str: ^u8) #foreign "host" "print_str" --- print_str_len :: proc (str: [] u8, len: i32) { for i: 0, len do print(cast(i32) str[i]); diff --git a/core/wasi.onyx b/core/wasi.onyx index 0f7a3a6b..35122dbe 100644 --- a/core/wasi.onyx +++ b/core/wasi.onyx @@ -356,65 +356,43 @@ IOVecArray :: struct { // FUNCTIONS -args_get :: proc #foreign "wasi_snapshot_preview1" "args_get" (argv: ^^u8, argv_buf: ^u8) -> Errno --- -args_sizes_get :: proc #foreign "wasi_snapshot_preview1" "args_sizes_get" (argc: ^Size, argv_buf_size: ^Size) -> Errno --- - -environ_get :: proc #foreign "wasi_snapshot_preview1" "environ_get" (environ: ^^u8, environ_buf: ^u8) -> Errno --- -environ_sizes_get :: proc #foreign "wasi_snapshot_preview1" "environ_sizes_get" (environc: ^Size, environ_buf_size: ^Size) -> Errno --- - -clock_res_get :: proc #foreign "wasi_snapshot_preview1" "clock_res_get" (id: ClockID, resolution: ^Timestamp) -> Errno --- -clock_time_get :: proc #foreign "wasi_snapshot_preview1" "clock_time_get" (id: ClockID, precision: Timestamp, time: ^Timestamp) -> Errno --- - -fd_advise :: proc #foreign "wasi_snapshot_preview1" "fd_advise" (fd: FileDescriptor, offset: Filesize, len: Filesize, advice: Advice) -> Errno --- -fd_allocate :: proc #foreign "wasi_snapshot_preview1" "fd_allocate" (fd: FileDescriptor, offset: Filesize, len: Filesize) -> Errno --- -fd_close :: proc #foreign "wasi_snapshot_preview1" "fd_close" (fd: FileDescriptor) -> Errno --- -fd_datasync :: proc #foreign "wasi_snapshot_preview1" "fd_datasync" (fd: FileDescriptor) -> Errno --- -fd_fdstat_get :: proc #foreign "wasi_snapshot_preview1" "fd_fdstat_get" (fd: FileDescriptor, stat: ^FDStat) -> Errno --- -fd_fdstat_set_flags :: proc #foreign "wasi_snapshot_preview1" "fd_fdstat_set_flags" (fd: FileDescriptor, flags: FDFlags) -> Errno --- -fd_fdstat_set_rights :: proc #foreign "wasi_snapshot_preview1" "fd_fdstat_set_rights" (fd: FileDescriptor, rights_base: Rights, rights_inheriting: Rights) -> Errno --- -fd_filestat_get :: proc #foreign "wasi_snapshot_preview1" "fd_filestat_get" (fd: FileDescriptor, buf: ^FileStat) -> Errno --- -fd_filestat_set_size :: proc #foreign "wasi_snapshot_preview1" "fd_filestat_set_size" (fd: FileDescriptor, size: Filesize) -> Errno --- -fd_filestat_set_times :: proc #foreign "wasi_snapshot_preview1" "fd_filestat_set_times" (fd: FileDescriptor, atim: Timestamp, mtim: Timestamp, fst_flags: FSTFlags) -> Errno --- -fd_pread :: - proc #foreign "wasi_snapshot_preview1" "fd_pread" - (fd: FileDescriptor, iovs: IOVecArray, offset: Filesize, nread: ^Size) -> Errno --- -fd_prestat_get :: proc #foreign "wasi_snapshot_preview1" "fd_prestat_get" (fd: FileDescriptor, buf: ^PrestatTagged) -> Errno --- -fd_prestat_dir_name :: proc #foreign "wasi_snapshot_preview1" "fd_prestat_dir_name" (fd: FileDescriptor, path: string) -> Errno --- -fd_pwrite :: - proc #foreign "wasi_snapshot_preview1" "fd_pwrite" - (fd: FileDescriptor, iovs: IOVecArray, offset: Filesize, nwritten: ^Size) -> Errno --- -fd_read :: - proc #foreign "wasi_snapshot_preview1" "fd_read" - (fd: FileDescriptor, iovs: IOVecArray, nread: ^Size) -> Errno --- -fd_readdir :: - proc #foreign "wasi_snapshot_preview1" "fd_readdir" - (fd: FileDescriptor, buf: ^u8, buf_len: Size, cookie: DirCookie, bufused: ^Size) -> Errno --- -fd_renumber :: - proc #foreign "wasi_snapshot_preview1" "fd_renumber" - (fd: FileDescriptor, to: FileDescriptor) -> Errno --- -fd_seek :: - proc #foreign "wasi_snapshot_preview1" "fd_seek" - (fd: FileDescriptor, offset: FileDelta, whence: Whence, newoffset: ^Filesize) -> Errno --- -fd_sync :: proc #foreign "wasi_snapshot_preview1" "fd_sync" (fd: FileDescriptor) -> Errno --- -fd_tell :: proc #foreign "wasi_snapshot_preview1" "fd_tell" (fd: FileDescriptor, offset: ^Filesize) -> Errno --- -fd_write :: - proc #foreign "wasi_snapshot_preview1" "fd_write" - (fd: FileDescriptor, iovs: IOVecArray, nwritten: ^Size) -> Errno --- - -path_create_directory :: - proc #foreign "wasi_snapshot_preview1" "path_create_directory" - (fd: FileDescriptor, path: string) -> Errno --- -path_filestat_get :: - proc #foreign "wasi_snapshot_preview1" "path_filestat_get" - (fd: FileDescriptor, flags: LookupFlags, path: string, buf: ^FileStat) -> Errno --- -path_filestat_set_times :: - proc #foreign "wasi_snapshot_preview1" "path_filestat_set_times" - (fd: FileDescriptor, flags: LookupFlags, path: string, atim: Timestamp, mtim: Timestamp, fst_flags: FSTFlags) -> Errno --- -path_link :: - proc #foreign "wasi_snapshot_preview1" "path_link" - (fd: FileDescriptor, old_flags: LookupFlags, old_path: string, new_fd: FileDescriptor, new_path: string) -> Errno --- -path_open :: - proc #foreign "wasi_snapshot_preview1" "path_open" +args_get :: proc (argv: ^^u8, argv_buf: ^u8) -> Errno #foreign "wasi_snapshot_preview1" "args_get"--- +args_sizes_get :: proc (argc: ^Size, argv_buf_size: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "args_sizes_get" --- + +environ_get :: proc (environ: ^^u8, environ_buf: ^u8) -> Errno #foreign "wasi_snapshot_preview1" "environ_get" --- +environ_sizes_get :: proc (environc: ^Size, environ_buf_size: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "environ_sizes_get" --- + +clock_res_get :: proc (id: ClockID, resolution: ^Timestamp) -> Errno #foreign "wasi_snapshot_preview1" "clock_res_get" --- +clock_time_get :: proc (id: ClockID, precision: Timestamp, time: ^Timestamp) -> Errno #foreign "wasi_snapshot_preview1" "clock_time_get" --- + +fd_advise :: proc (fd: FileDescriptor, offset: Filesize, len: Filesize, advice: Advice) -> Errno #foreign "wasi_snapshot_preview1" "fd_advise" --- +fd_allocate :: proc (fd: FileDescriptor, offset: Filesize, len: Filesize) -> Errno #foreign "wasi_snapshot_preview1" "fd_allocate" --- +fd_close :: proc (fd: FileDescriptor) -> Errno #foreign "wasi_snapshot_preview1" "fd_close" --- +fd_datasync :: proc (fd: FileDescriptor) -> Errno #foreign "wasi_snapshot_preview1" "fd_datasync" --- +fd_fdstat_get :: proc (fd: FileDescriptor, stat: ^FDStat) -> Errno #foreign "wasi_snapshot_preview1" "fd_fdstat_get" --- +fd_fdstat_set_flags :: proc (fd: FileDescriptor, flags: FDFlags) -> Errno #foreign "wasi_snapshot_preview1" "fd_fdstat_set_flags" --- +fd_fdstat_set_rights :: proc (fd: FileDescriptor, rights_base: Rights, rights_inheriting: Rights) -> Errno #foreign "wasi_snapshot_preview1" "fd_fdstat_set_rights" --- +fd_filestat_get :: proc (fd: FileDescriptor, buf: ^FileStat) -> Errno #foreign "wasi_snapshot_preview1" "fd_filestat_get" --- +fd_filestat_set_size :: proc (fd: FileDescriptor, size: Filesize) -> Errno #foreign "wasi_snapshot_preview1" "fd_filestat_set_size" --- +fd_filestat_set_times :: proc (fd: FileDescriptor, atim: Timestamp, mtim: Timestamp, fst_flags: FSTFlags) -> Errno #foreign "wasi_snapshot_preview1" "fd_filestat_set_times" --- +fd_pread :: proc (fd: FileDescriptor, iovs: IOVecArray, offset: Filesize, nread: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "fd_pread" --- +fd_prestat_get :: proc (fd: FileDescriptor, buf: ^PrestatTagged) -> Errno #foreign "wasi_snapshot_preview1" "fd_prestat_get" --- +fd_prestat_dir_name :: proc (fd: FileDescriptor, path: string) -> Errno #foreign "wasi_snapshot_preview1" "fd_prestat_dir_name" --- +fd_pwrite :: proc (fd: FileDescriptor, iovs: IOVecArray, offset: Filesize, nwritten: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "fd_pwrite" --- +fd_read :: proc (fd: FileDescriptor, iovs: IOVecArray, nread: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "fd_read" --- +fd_readdir :: proc (fd: FileDescriptor, buf: ^u8, buf_len: Size, cookie: DirCookie, bufused: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "fd_readdir" --- +fd_renumber :: proc (fd: FileDescriptor, to: FileDescriptor) -> Errno #foreign "wasi_snapshot_preview1" "fd_renumber" --- +fd_seek :: proc (fd: FileDescriptor, offset: FileDelta, whence: Whence, newoffset: ^Filesize) -> Errno #foreign "wasi_snapshot_preview1" "fd_seek" --- +fd_sync :: proc (fd: FileDescriptor) -> Errno #foreign "wasi_snapshot_preview1" "fd_sync" --- +fd_tell :: proc (fd: FileDescriptor, offset: ^Filesize) -> Errno #foreign "wasi_snapshot_preview1" "fd_tell" --- +fd_write :: proc (fd: FileDescriptor, iovs: IOVecArray, nwritten: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "fd_write" --- + +path_create_directory :: proc (fd: FileDescriptor, path: string) -> Errno #foreign "wasi_snapshot_preview1" "path_create_directory" --- +path_filestat_get :: proc (fd: FileDescriptor, flags: LookupFlags, path: string, buf: ^FileStat) -> Errno #foreign "wasi_snapshot_preview1" "path_filestat_get" --- +path_filestat_set_times :: proc (fd: FileDescriptor, flags: LookupFlags, path: string, atim: Timestamp, mtim: Timestamp, fst_flags: FSTFlags) -> Errno #foreign "wasi_snapshot_preview1" "path_filestat_set_times" --- + +path_link :: proc (fd: FileDescriptor, old_flags: LookupFlags, old_path: string, new_fd: FileDescriptor, new_path: string) -> Errno #foreign "wasi_snapshot_preview1" "path_link" --- +path_open :: proc ( fd: FileDescriptor , dirflags: LookupFlags , path: string @@ -423,43 +401,27 @@ path_open :: , fs_rights_inherting: Rights , fdflags: FDFlags , opened_fd: ^FileDescriptor - ) -> Errno --- -path_readlink :: - proc #foreign "wasi_snapshot_preview1" "path_readlink" - (fd: FileDescriptor, path: string, buf: ^u8, buf_len: Size, bufused: ^Size) -> Errno --- -path_remove_directory :: - proc #foreign "wasi_snapshot_preview1" "path_remove_directory" - (fd: FileDescriptor, path: string) -> Errno --- -path_rename :: - proc #foreign "wasi_snapshot_preview1" "path_rename" - (fd: FileDescriptor, old_path: string, new_fd: FileDescriptor, new_path: string) -> Errno --- -path_symlink :: - proc #foreign "wasi_snapshot_preview1" "path_symlink" - (old_path: ^u8, old_path_len: Size, fd: FileDescriptor, new_path: string) -> Errno --- -path_unlink_file :: - proc #foreign "wasi_snapshot_preview1" "path_unlink_file" - (fd: FileDescriptor, path: string) -> Errno --- - -poll_oneoff :: - proc #foreign "wasi_snapshot_preview1" "poll_oneoff" - (in: ^Subscription, out: ^Event, nsubscriptions: Size, nevents: ^Size) -> Errno --- - -proc_exit :: proc #foreign "wasi_snapshot_preview1" "proc_exit" (rval: ExitCode) --- -proc_raise :: proc #foreign "wasi_snapshot_preview1" "proc_raise" (sig: Signal) -> Errno --- - -sched_yield :: proc #foreign "wasi_snapshot_preview1" "sched_yield" -> Errno --- - -random_get :: proc #foreign "wasi_snapshot_preview1" "random_get" (buf: ^u8, buf_len: Size) -> Errno --- - -sock_recv :: - proc #foreign "wasi_snapshot_preview1" "sock_recv" - (fd: FileDescriptor, ri_data: IOVecArray, ri_flags: RIFlags, ro_datalen: ^Size, ro_flags: ^ROFlags) -> Errno --- -sock_send :: - proc #foreign "wasi_snapshot_preview1" "sock_send" - (fd: FileDescriptor, si_data: IOVecArray, si_flags: SIFlags, so_datalen: ^Size) -> Errno --- -sock_shutdown :: - proc #foreign "wasi_snapshot_preview1" "sock_shutdown" - (fd: FileDescriptor, how: SDFlags) -> Errno --- + ) -> Errno + #foreign "wasi_snapshot_preview1" "path_open" --- + +path_readlink :: proc (fd: FileDescriptor, path: string, buf: ^u8, buf_len: Size, bufused: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "path_readlink" --- +path_remove_directory :: proc (fd: FileDescriptor, path: string) -> Errno #foreign "wasi_snapshot_preview1" "path_remove_directory" --- +path_rename :: proc (fd: FileDescriptor, old_path: string, new_fd: FileDescriptor, new_path: string) -> Errno #foreign "wasi_snapshot_preview1" "path_rename" --- +path_symlink :: proc (old_path: ^u8, old_path_len: Size, fd: FileDescriptor, new_path: string) -> Errno #foreign "wasi_snapshot_preview1" "path_symlink" --- +path_unlink_file :: proc (fd: FileDescriptor, path: string) -> Errno #foreign "wasi_snapshot_preview1" "path_unlink_file" --- + +poll_oneoff :: proc (in: ^Subscription, out: ^Event, nsubscriptions: Size, nevents: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "poll_oneoff" --- + +proc_exit :: proc (rval: ExitCode) #foreign "wasi_snapshot_preview1" "proc_exit" --- +proc_raise :: proc (sig: Signal) -> Errno #foreign "wasi_snapshot_preview1" "proc_raise" --- + +sched_yield :: proc -> Errno #foreign "wasi_snapshot_preview1" "proc_raise" --- + +random_get :: proc (buf: ^u8, buf_len: Size) -> Errno #foreign "wasi_snapshot_preview1" "random_get" --- + +sock_recv :: proc (fd: FileDescriptor, ri_data: IOVecArray, ri_flags: RIFlags, ro_datalen: ^Size, ro_flags: ^ROFlags) -> Errno #foreign "wasi_snapshot_preview1" "sock_recv" --- +sock_send :: proc (fd: FileDescriptor, si_data: IOVecArray, si_flags: SIFlags, so_datalen: ^Size) -> Errno #foreign "wasi_snapshot_preview1" "sock_send" --- +sock_shutdown :: proc (fd: FileDescriptor, how: SDFlags) -> Errno #foreign "wasi_snapshot_preview1" "sock_shutdown" --- diff --git a/include/bh.h b/include/bh.h index 37d7b785..c37366d9 100644 --- a/include/bh.h +++ b/include/bh.h @@ -1503,7 +1503,8 @@ char* bh_bprintf(char const *fmt, ...) { char* bh_bprintf_va(char const *fmt, va_list va) { static char buffer[4096]; - bh_snprintf_va(buffer, sizeof(buffer), fmt, va); + isize len = bh_snprintf_va(buffer, sizeof(buffer), fmt, va); + buffer[len - 1] = 0; return buffer; } diff --git a/onyx b/onyx index 41dca3893c87640dac97b09c424a0e52c35fc807..cb650b751f9c3ab7f7d30e46c6a875aa517d1d70 100755 GIT binary patch delta 85128 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 D@cd7t delta 84767 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 TR{TUxz0Dgqlk~Lryhi^AMWaIl diff --git a/progs/poly_test.onyx b/progs/poly_test.onyx index 0e430e35..0a6cbb77 100644 --- a/progs/poly_test.onyx +++ b/progs/poly_test.onyx @@ -43,7 +43,7 @@ print_arr :: proc (arr: $T) { print("\n"); } -print_vec :: proc #add_overload print (v: Vec3) { +print_vec :: proc (v: Vec3) #add_overload print { print("Vec3("); print(v.x); print(", "); diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 1c491448..de3e90fc 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -214,8 +214,21 @@ no_match: continue; } - onyx_report_error(call->token->pos, "unable to match overloaded function"); + char* arg_str = bh_alloc(global_scratch_allocator, 1024); + AstArgument* arg = call->arguments; + while (arg != NULL) { + strncat(arg_str, type_get_name(arg->type), 1023); + + if (arg->next != NULL) + strncat(arg_str, ", ", 1023); + + arg = (AstArgument *) arg->next; + } + + onyx_report_error(call->token->pos, "unable to match overloaded function with provided argument types: (%s)", arg_str); + + bh_free(global_scratch_allocator, arg_str); return NULL; } diff --git a/src/onyxparser.c b/src/onyxparser.c index 738c9064..b025fd95 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -1432,7 +1432,7 @@ static b32 parse_possible_directive(OnyxParser* parser, const char* dir) { return match; } -// 'proc' * ('->' )? +// 'proc' ('->' )? * static AstFunction* parse_function_definition(OnyxParser* parser) { AstFunction* func_def = make_node(AstFunction, Ast_Kind_Function); func_def->token = expect_token(parser, Token_Type_Keyword_Proc); @@ -1443,6 +1443,16 @@ static AstFunction* parse_function_definition(OnyxParser* parser) { bh_arr(AstPolyParam) polymorphic_vars = NULL; bh_arr_new(global_heap_allocator, polymorphic_vars, 4); + parse_function_params(parser, func_def, &polymorphic_vars); + + AstType* return_type = (AstType *) &basic_type_void; + if (parser->curr->type == Token_Type_Right_Arrow) { + expect_token(parser, Token_Type_Right_Arrow); + + return_type = parse_type(parser, NULL); + } + func_def->return_type = return_type; + while (parser->curr->type == '#') { if (parse_possible_directive(parser, "overloaded")) { AstOverloadedFunction* ofunc = make_node(AstOverloadedFunction, Ast_Kind_Overloaded_Function); @@ -1469,6 +1479,8 @@ static AstFunction* parse_function_definition(OnyxParser* parser) { if (parse_possible_directive(parser, "add_overload")) { if (func_def->overloaded_function != NULL) { onyx_report_error(parser->curr->pos, "cannot have multiple #add_overload directives on a single procedure."); + expect_token(parser, Token_Type_Symbol); + } else { AstNode* sym_node = make_node(AstNode, Ast_Kind_Symbol); sym_node->token = expect_token(parser, Token_Type_Symbol); @@ -1517,16 +1529,6 @@ static AstFunction* parse_function_definition(OnyxParser* parser) { } } - parse_function_params(parser, func_def, &polymorphic_vars); - - AstType* return_type = (AstType *) &basic_type_void; - if (parser->curr->type == Token_Type_Right_Arrow) { - expect_token(parser, Token_Type_Right_Arrow); - - return_type = parse_type(parser, NULL); - } - func_def->return_type = return_type; - func_def->body = parse_block(parser); if (bh_arr_length(polymorphic_vars) > 0) { -- 2.25.1