Skip to content

Commit

Permalink
working on js & wasm!
Browse files Browse the repository at this point in the history
  • Loading branch information
TimWhiting committed May 11, 2024
1 parent 72fc629 commit 97529c3
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 12 deletions.
1 change: 1 addition & 0 deletions lib/std/async.kk
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import std/os/null
import std/core/unsafe
pub import std/num/ddouble
pub import std/num/float64
import std/time/timestamp

// js is just using primitives

Expand Down
4 changes: 3 additions & 1 deletion lib/uv/event-loop.kk
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@

module uv/event-loop

import std/num/int32
pub import std/time/duration
pub import std/time/timestamp
pub import uv/timer
import std/num/int32
import uv/utils

extern import
Expand Down
3 changes: 2 additions & 1 deletion lib/uv/inline/timer.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ typedef struct kk_wasm_timer_s {
} kk_wasm_timer_t;

EMSCRIPTEN_KEEPALIVE void wasm_timer_callback(kk_wasm_timer_t* timer_info);
#else
#include <uv.h>
#endif
#include <uv.h>
17 changes: 9 additions & 8 deletions lib/uv/inline/utils.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

#ifndef __EMSCRIPTEN__
static kk_uv_utils__uv_status_code kk_uv_status_to_status_code(int32_t status,
kk_context_t *_ctx) {
switch (status) {
Expand Down Expand Up @@ -171,12 +171,6 @@ static kk_uv_utils__uv_status_code kk_uv_status_to_status_code(int32_t status,
}
}

kk_std_core_exn__error kk_async_error_from_errno( int err, kk_context_t* _ctx ) {
kk_uv_utils__uv_status_code code = kk_uv_status_to_status_code(err, _ctx);
kk_string_t msg = kk_uv_utils_message(code, _ctx);
return kk_std_core_exn__new_Error( kk_std_core_exn__new_Exception( msg, kk_uv_utils__new_AsyncExn(kk_reuse_null, 0, code, _ctx), _ctx), _ctx );
}

uv_buf_t* kk_bytes_list_to_uv_buffs(kk_std_core_types__list buffs, int* size, kk_context_t* _ctx){
kk_std_core_types__list_dup(buffs, _ctx);
kk_integer_t klist_len = kk_std_core_list_length(buffs, _ctx);
Expand Down Expand Up @@ -206,4 +200,11 @@ uv_buf_t* kk_bytes_to_uv_buffs(kk_bytes_t bytes, kk_context_t* _ctx){
uv_buffs[0].len = len;
kk_bytes_drop(bytes, _ctx);
return uv_buffs;
}
}

kk_std_core_exn__error kk_async_error_from_errno( int err, kk_context_t* _ctx ) {
kk_uv_utils__uv_status_code code = kk_uv_status_to_status_code(err, _ctx);
kk_string_t msg = kk_uv_utils_message(code, _ctx);
return kk_std_core_exn__new_Error( kk_std_core_exn__new_Exception( msg, kk_uv_utils__new_AsyncExn(kk_reuse_null, 0, code, _ctx), _ctx), _ctx );
}
#endif
1 change: 1 addition & 0 deletions lib/uv/timer.kk
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
---------------------------------------------------------------------------*/
module uv/timer
pub import std/time/duration
pub import std/time/timestamp
import std/num/ddouble
import std/num/int64
import uv/utils
Expand Down
2 changes: 1 addition & 1 deletion lib/uv/utils.kk
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ pub inline fun unit/untry(code: uv-status-code): exn ()

pub extern int/status-code(code: int32): uv-status-code
c "kk_uv_status_to_status_code"
wasm inline "kk_std_os_event_dash_loop_UV__OK"
wasm inline "kk_uv_utils_UV__OK"
cs inline ""
js inline ""

Expand Down
2 changes: 2 additions & 0 deletions samples/async/timer.kk
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import std/async
import uv/timer
import uv/event-loop
import std/time/duration
import std/time/timestamp

fun main()
val x = ref(0)
Expand Down

0 comments on commit 97529c3

Please sign in to comment.