add basic roc_dbg impl to c platforms

This commit is contained in:
Brendan Hansknecht 2023-11-29 22:02:27 -08:00
parent 3e66254b25
commit 88106d1659
No known key found for this signature in database
GPG key ID: 0EA784685083E75B
8 changed files with 32 additions and 6 deletions

View file

@ -32,7 +32,7 @@ pub extern "C" fn rust_main() -> i32 {
println!("Record was: {:?}", outer);
// Exit code
0
std::process::exit(0);
}
// Externs required by roc_std and by the Roc app

View file

@ -275,6 +275,12 @@ __attribute__((noreturn)) void roc_panic(struct RocStr *msg, unsigned int tag_id
longjmp(exception_buffer, 1);
}
void roc_dbg(struct RocStr *loc, struct RocStr *msg) {
char* loc_bytes = is_small_str(*loc) ? (char*)loc : (char*)loc->bytes;
char* msg_bytes = is_small_str(*msg) ? (char*)msg : (char*)msg->bytes;
fprintf(stderr, "[%s] %s\n", loc_bytes, msg_bytes);
}
extern void roc__programForHost_1__InterpolateString_caller(struct RocStr *name, char *closure_data, struct RocStr *ret);
extern void roc__programForHost_1__MulArrByScalar_caller(struct RocListI32 *arr, int32_t *scalar, char *closure_data, struct RocListI32 *ret);

View file

@ -27,6 +27,10 @@ void roc_panic(void *ptr, unsigned int alignment)
napi_throw_error(napi_global_env, NULL, (char *)ptr);
}
void roc_dbg(char* loc, char* msg) {
fprintf(stderr, "[%s] %s\n", loc, msg);
}
void *roc_memset(void *str, int c, size_t n) { return memset(str, c, n); }
// Reference counting

View file

@ -26,11 +26,11 @@ void roc_panic(void* ptr, unsigned int alignment) {
char* msg = (char*)ptr;
fprintf(stderr,
"Application crashed with message\n\n %s\n\nShutting down\n", msg);
exit(0);
exit(1);
}
void roc_dbg(char* file_path, char* msg) {
fprintf(stderr, "[%s] %s\n", file_path, msg);
void roc_dbg(char* loc, char* msg) {
fprintf(stderr, "[%s] %s\n", loc, msg);
}
void* roc_memset(void* str, int c, size_t n) { return memset(str, c, n); }

View file

@ -27,6 +27,10 @@ __attribute__((noreturn)) void roc_panic(void *ptr, unsigned int alignment)
PyErr_SetString(PyExc_RuntimeError, (char *)ptr);
}
void roc_dbg(char* loc, char* msg) {
fprintf(stderr, "[%s] %s\n", loc, msg);
}
void *roc_memset(void *str, int c, size_t n) { return memset(str, c, n); }
// Reference counting

View file

@ -21,7 +21,11 @@ void roc_panic(void* ptr, unsigned int alignment) {
char* msg = (char*)ptr;
fprintf(stderr,
"Application crashed with message\n\n %s\n\nShutting down\n", msg);
exit(0);
exit(1);
}
void roc_dbg(char* loc, char* msg) {
fprintf(stderr, "[%s] %s\n", loc, msg);
}
void* roc_memset(void* str, int c, size_t n) { return memset(str, c, n); }

View file

@ -23,6 +23,10 @@ __attribute__((noreturn)) void roc_panic(void *ptr, unsigned int alignment)
rb_raise(rb_eException, "%s", (char *)ptr);
}
void roc_dbg(char* loc, char* msg) {
fprintf(stderr, "[%s] %s\n", loc, msg);
}
void *roc_memset(void *str, int c, size_t n) { return memset(str, c, n); }
// Reference counting

View file

@ -21,7 +21,11 @@ void roc_panic(void* ptr, unsigned int alignment) {
char* msg = (char*)ptr;
fprintf(stderr,
"Application crashed with message\n\n %s\n\nShutting down\n", msg);
exit(0);
exit(1);
}
void roc_dbg(char* loc, char* msg) {
fprintf(stderr, "[%s] %s\n", loc, msg);
}
void* roc_memmove(void* dest, const void* src, size_t n){