From dd3c2aa388026afcbcb987d9944c6f7207fb2d2c Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Thu, 16 Jan 2020 20:34:41 -0500 Subject: better packages. also started std/io pkg (wrote hello world in toc!) --- std/io.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 std/io.c (limited to 'std/io.c') diff --git a/std/io.c b/std/io.c new file mode 100644 index 0000000..97d5d43 --- /dev/null +++ b/std/io.c @@ -0,0 +1,42 @@ +#include +#include +typedef int8_t i8; +typedef int16_t i16; +typedef int32_t i32; +typedef int64_t i64; +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; +typedef float f32; +typedef double f64; +typedef u8 bool; +typedef struct { void *data; i64 n; } slice_; +#define false ((bool)0) +#define true ((bool)1) +static slice_ mkslice_(void *data, i64 n) { slice_ ret; ret.data = data; ret.n = n; return ret; } +static void free_(void *data) { extern void free(void *data); free(data); } +static void *e__calloc(size_t n, size_t sz) { extern void *calloc(size_t n, size_t size); extern void abort(void); void *ret = calloc(n, sz); if (n && sz && !ret) { fprintf(stderr, "Out of memory.\n"); abort(); } return ret; } + + +/* declarations */ +void io__puti(i64 x); +void io__putf(f32 x); +void io__puts(slice_ x); +/* code */ +void io__puti(i64 x) { + printf("%ld\n", (long)x); +} + + +void io__putf(f32 x) { + printf("%f\n", (double)x); +} + + +void io__puts(slice_ x) { + fwrite(x.data, 1, x.n, stdout); + printf("\n"); +} + + -- cgit v1.2.3