diff options
author | Nicholas <nbnoll@eml.cc> | 2021-11-12 16:59:46 -0800 |
---|---|---|
committer | Nicholas <nbnoll@eml.cc> | 2021-11-12 16:59:46 -0800 |
commit | 0369b1505b019becfb74ccd9c82f9f7700af377a (patch) | |
tree | 2aee8181da2e419d882cae1d5a3ff5a2c45bcc93 /include | |
parent | ce05175372a9ddca1a225db0765ace1127a39293 (diff) |
chore: error->int
Diffstat (limited to 'include')
-rw-r--r-- | include/base.h | 38 | ||||
-rw-r--r-- | include/libbio.h | 24 | ||||
-rw-r--r-- | include/libmath/blas.h | 12 | ||||
-rw-r--r-- | include/libutf.h | 2 | ||||
-rw-r--r-- | include/u.h | 130 |
5 files changed, 130 insertions, 76 deletions
diff --git a/include/base.h b/include/base.h index ca229b3..822cc09 100644 --- a/include/base.h +++ b/include/base.h @@ -86,7 +86,7 @@ typedef struct Coro Coro; Coro* coro·make(uintptr stk, uintptr (*func)(Coro*, uintptr)); uintptr coro·yield(Coro *c, uintptr arg); -error coro·free(Coro *c); +int coro·free(Coro *c); // ----------------------------------------------------------------------------- // strings @@ -144,13 +144,13 @@ enum /* file handling */ io·Stream *io·open(byte *name, byte *mode); int io·fd(io·Stream *s); -error io·stat(io·Stream *s, io·Stat *buf); -error io·close(io·Stream *s); +int io·stat(io·Stream *s, io·Stat *buf); +int io·close(io·Stream *s); byte io·getbyte(io·Stream *s); -error io·ungetbyte(io·Stream *s, byte c); +int io·ungetbyte(io·Stream *s, byte c); int io·read(io·Stream *s, int sz, int n, void *buf); int io·readln(io·Stream *s, int n, byte *buf); -error io·putbyte(io·Stream *s, byte c); +int io·putbyte(io·Stream *s, byte c); int io·putstring(io·Stream *s, string str); int io·write(io·Stream *s, int sz, int n, void *buf); int io·flush(io·Stream *s); @@ -172,7 +172,7 @@ extern io·Reader sys·Reader; typedef struct io·Peeker { byte (*get)(void*); - error (*unget)(void*, byte); + int (*unget)(void*, byte); } io·Peeker; extern io·Peeker sys·Peeker; @@ -205,8 +205,8 @@ extern io·Writer sys·Writer; typedef struct io·Putter { - error (*put) (void*, byte); - int (*puts)(void*, string); + int (*put) (void*, byte); + int (*puts)(void*, string); } io·Putter; extern io·Putter sys·Putter; @@ -254,10 +254,10 @@ struct io·Buffer byte buf[bufio·size + bufio·ungets]; }; -error bufio·initreader(io·Buffer *buf, io·Reader rdr, void *h); +int bufio·initreader(io·Buffer *buf, io·Reader rdr, void *h); void bufio·finireader(io·Buffer *buf); int bufio·getbyte(io·Buffer *buf); -error bufio·ungetbyte(io·Buffer *buf, byte c); +int bufio·ungetbyte(io·Buffer *buf, byte c); int bufio·read(io·Buffer *buf, int sz, int n, void *out); // ----------------------------------------------------------------------------- @@ -273,7 +273,7 @@ typedef struct mmap·Reader } mmap·Reader; mmap·Reader mmap·open(byte *name); -error mmap·close(mmap·Reader rdr); +int mmap·close(mmap·Reader rdr); // ----------------------------------------------------------------------------- // filesystem @@ -315,11 +315,11 @@ typedef struct flate·Writer flate·Writer; flate·Reader *flate·openreader(io·Reader rdr, void* r, mem·Allocator mem, void* m); int flate·read(flate·Reader *rdr, int sz, int n, void *buf); -error flate·closereader(flate·Reader *rdr); +int flate·closereader(flate·Reader *rdr); flate·Writer *flate·openwriter(io·Writer wtr, void* w, mem·Allocator mem, void* m); int flate·write(flate·Writer *wtr, int sz, int n, void *buf); -error flate·closewriter(flate·Writer *wtr); +int flate·closewriter(flate·Writer *wtr); // ----------------------------------------------------------------------------- // libgz @@ -339,16 +339,16 @@ extern io·PutWriter gz·PutWriter; extern io·ReadWriter gz·ReadWriter; gz·Stream *gz·open(byte *path, byte *mode); -error gz·close(gz·Stream* s); +int gz·close(gz·Stream* s); int gz·read(gz·Stream *s, int sz, int n, void* buf); int gz·readln(gz·Stream *s, int n, byte *buf); byte gz·getbyte(gz·Stream *s); -error gz·ungetbyte(gz·Stream *s, byte c); +int gz·ungetbyte(gz·Stream *s, byte c); int gz·write(gz·Stream *s, int sz, int n, void* buf); -error gz·putbyte(gz·Stream *s, byte str); -error gz·putstring(gz·Stream *s, byte *str); +int gz·putbyte(gz·Stream *s, byte str); +int gz·putstring(gz·Stream *s, byte *str); int gz·printf(gz·Stream *s, byte *fmt, ...); -error gz·flush(gz·Stream *s); +int gz·flush(gz·Stream *s); int gz·seek(gz·Stream *s, long off, enum SeekPos whence); long gz·tell(gz·Stream *s); @@ -388,7 +388,7 @@ void sort·string(uintptr n, byte* arr[]); // ----------------------------------------------------------------------------- // fast random number generation -error rng·init(uint64 seed); +int rng·init(uint64 seed); double rng·random(void); double rng·exponential(double lambda); bool rng·bernoulli(double f); diff --git a/include/libbio.h b/include/libbio.h index 9438b74..2e043fb 100644 --- a/include/libbio.h +++ b/include/libbio.h @@ -23,15 +23,15 @@ typedef struct bio·Tree } bio·Tree; /* clade manipulation */ -error phylo·addchild(bio·Node* parent, bio·Node* child); -error phylo·rmchild(bio·Node* parent, bio·Node* child); +int phylo·addchild(bio·Node* parent, bio·Node* child); +int phylo·rmchild(bio·Node* parent, bio·Node* child); /* clade statistics */ -error phylo·countnodes(bio·Node *node, int *n); -error phylo·countleafs(bio·Node *node, int *n); +int phylo·countnodes(bio·Node *node, int *n); +int phylo·countleafs(bio·Node *node, int *n); /* topological sorting */ -error phylo·ladderize(bio·Node *root); +int phylo·ladderize(bio·Node *root); double phylo·diameter(bio·Tree tree, int *len, bio·Node **path); /* generic computation on tree */ @@ -42,8 +42,8 @@ void *phylo·preorder(bio·Node *clade, void *(*op)(bio·Node*, void*), void *ct void phylo·getleafs(bio·Tree tree, bio·Node **leafs); /* newick i/o */ -error bio·readnewick(io·Peeker io, void* rdr, bio·Tree* tree); -error bio·writenewick(bio·Tree tree, io·Putter out, void*); +int bio·readnewick(io·Peeker io, void* rdr, bio·Tree* tree); +int bio·writenewick(bio·Tree tree, io·Putter out, void*); // ----------------------------------------------------------------------- // Sequences @@ -60,10 +60,10 @@ typedef struct bio·Seq } bio·Seq; bio·SeqReader *bio·openseq(io·Reader io, void *rdr, mem·Allocator mem, void *heap); -error bio·closeseq(bio·SeqReader *rdr); +int bio·closeseq(bio·SeqReader *rdr); -error bio·readfasta(bio·SeqReader *rdr, bio·Seq *seq); -error bio·readfastq(bio·SeqReader *rdr, bio·Seq *seq); +int bio·readfasta(bio·SeqReader *rdr, bio·Seq *seq); +int bio·readfastq(bio·SeqReader *rdr, bio·Seq *seq); -error bio·writefasta(io·Writer io, void *wtr, bio·Seq seq); -error bio·writefastq(io·Writer io, void *wtr, bio·Seq seq); +int bio·writefasta(io·Writer io, void *wtr, bio·Seq seq); +int bio·writefastq(io·Writer io, void *wtr, bio·Seq seq); diff --git a/include/libmath/blas.h b/include/libmath/blas.h index b8930a8..ba2cdcc 100644 --- a/include/libmath/blas.h +++ b/include/libmath/blas.h @@ -17,7 +17,7 @@ enum // level 1 void blas·frot(int len, float *x, int incx, float *y, int incy, float cos, float sin); void blas·frotg(float *a, float *b, float *cos, float *sin); -error blas·frotm(int len, float *x, int incx, float *y, int incy, float p[5]); +int blas·frotm(int len, float *x, int incx, float *y, int incy, float p[5]); void blas·fscale(int len, float a, float *x, int inc); void blas·fcopy(int len, float *x, int incx, float *y, int incy); void blas·fswap(int len, float *x, int incx, float *y, int incy); @@ -29,7 +29,7 @@ int blas·fargmax(int len, float *x, int inc); int blas·fargmin(int len, float *x, int inc); // level 2 -error blas·fgemv(uint f, int nrow, int ncol, float a, float *m, int incm, float *x, int incx, float b, float *y, int incy); +int blas·fgemv(uint f, int nrow, int ncol, float a, float *m, int incm, float *x, int incx, float b, float *y, int incy); void blas·fsymv(uint f, int n, float a, float* m, int incm, float *x, int incx, float b, float *y, int incy); void blas·fspmv(uint f, int n, float a, float* m, float *x, int incx, float b, float *y, int incm); void blas·ftrmv(uint f, int n, float* m, int incm, float *x, int incx); @@ -45,14 +45,14 @@ void blas·fgemm(uint tr1, uint tr2, int n1, int n2, int n3, float a, float *m void blas·ftrmm(uint f, int nrow, int ncol, float a, float *m1, float *m2); void blas·ftrsm(uint f, int nrow, int ncol, float a, float *m1, float *m2); -/* - * Doubles +/* + * Doubles */ // level 1 void blas·drot(int len, double *x, int incx, double *y, int incy, double cos, double sin); void blas·drotg(double *a, double *b, double *cos, double *sin); -error blas·drotm(int len, double *x, int incx, double *y, int incy, double p[5]); +int blas·drotm(int len, double *x, int incx, double *y, int incy, double p[5]); void blas·dscale(int len, double a, double *x, int inc); void blas·dcopy(int len, double *x, int incx, double *y, int incy); void blas·dswap(int len, double *x, int incx, double *y, int incy); @@ -64,7 +64,7 @@ int blas·dargmax(int len, double *x, int inc); int blas·dargmin(int len, double *x, int inc); // level 2 -error blas·dgemv(uint f, int nrow, int ncol, double a, double *m, int incm, double *x, int incx, double b, double *y, int incy); +int blas·dgemv(uint f, int nrow, int ncol, double a, double *m, int incm, double *x, int incx, double b, double *y, int incy); void blas·dsymv(uint f, int n, double a, double* m, int incm, double *x, int incx, double b, double *y, int incy); void blas·dspmv(uint f, int n, double a, double* m, double *x, int incx, double b, double *y, int incy); void blas·dtrmv(uint f, int n, double *m, int incm, double *x, int incx); diff --git a/include/libutf.h b/include/libutf.h index 25d6dee..846296c 100644 --- a/include/libutf.h +++ b/include/libutf.h @@ -1,7 +1,5 @@ #pragma once -typedef uint32 rune; - #define UTFmax 4 #define RuneErr 0xFFFDu #define RuneMax 0x10FFFFu diff --git a/include/u.h b/include/u.h index 3cf3c7b..cf5f53c 100644 --- a/include/u.h +++ b/include/u.h @@ -1,64 +1,120 @@ #pragma once
-// ------------------------------------------------------------------------
-// Freestanding headers
-
-#include <stdarg.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <float.h>
-#include <limits.h>
+#include <bits.h>
// ------------------------------------------------------------------------
-// Modern type aliases
+// types
-typedef char byte;
-typedef unsigned char ubyte, uchar;
-typedef signed char sbyte, schar;
+/* useful aliases */
+typedef char byte;
+typedef signed char schar, sbyte;
+typedef unsigned char uchar, ubyte;
+typedef signed short sshort;
typedef unsigned short ushort;
-typedef signed short sshort;
-typedef unsigned int uint;
-typedef signed int sint;
+typedef signed int sint;
+typedef unsigned int uint;
+typedef signed long slong;
typedef unsigned long ulong;
-typedef signed long slong;
-typedef unsigned long ulong;
-typedef signed long slong;
+typedef long long vlong;
+typedef unsigned long long uvlong;
+typedef signed long long svlong;
-typedef long long vlong;
-typedef unsigned long long uvlong;
-typedef signed long long svlong;
+typedef _Bool bool;
-typedef uint8_t uint8;
-typedef uint16_t uint16;
-typedef uint32_t uint32;
-typedef uint64_t uint64;
+/* fixed width */
+typedef signed INT8 int8;
+typedef signed INT16 int16;
+typedef signed INT32 int32;
+typedef signed INT64 int64;
-typedef int8_t int8;
-typedef int16_t int16;
-typedef int32_t int32;
-typedef int64_t int64;
+typedef unsigned INT8 uint8;
+typedef unsigned INT16 uint16;
+typedef unsigned INT32 uint32;
+typedef unsigned INT64 uint64;
-typedef float float32;
-typedef double float64;
+typedef uint32 rune;
-typedef uintptr_t uintptr;
-typedef intptr_t intptr;
+/* pointer address */
+typedef ADDR intptr;
+typedef unsigned ADDR uintptr;
-typedef int error;
+#undef INT8
+#undef INT16
+#undef INT32
+#undef INT64
+#undef ADDR
-#define nil NULL
+// ------------------------------------------------------------------
+// global constants
+
+#define true 1
+#define false 0
+#define nil ((void*)0)
+
+/* limits */
+#define CHAR_BIT 8
+#define SCHAR_MIN (-128)
+#define SCHAR_MAX 127
+#define UCHAR_MAX 255
+
+#if '\xff' > 0
+# define CHAR_MIN 0
+# define CHAR_MAX UCHAR_MAX
+#else
+# define CHAR_MIN SCHAR_MIN
+# define CHAR_MAX SCHAR_MAX
+#endif
+
+#define SHRT_MIN (-1-0x7fff)
+#define SHRT_MAX 0x7fff
+#define USHRT_MAX 0xffff
+#define INT_MIN (-1-0x7fffffff)
+#define INT_MAX 0x7fffffff
+#define UINT_MAX 0xffffffffU
+#define LONG_MIN (-LONG_MAX-1)
+#define ULONG_MAX (2UL*LONG_MAX+1)
+#define LLONG_MIN (-LLONG_MAX-1)
+#define LLONG_MAX 0x7fffffffffffffffLL
+#define ULLONG_MAX (2ULL*LLONG_MAX+1)
+
+#define INT8_MIN (-1-0x7f)
+#define INT16_MIN (-1-0x7fff)
+#define INT32_MIN (-1-0x7fffffff)
+#define INT64_MIN (-1-0x7fffffffffffffff)
+
+#define INT8_MAX (0x7f)
+#define INT16_MAX (0x7fff)
+#define INT32_MAX (0x7fffffff)
+#define INT64_MAX (0x7fffffffffffffff)
+
+#define UINT8_MAX (0xff)
+#define UINT16_MAX (0xffff)
+#define UINT32_MAX (0xffffffffu)
+#define UINT64_MAX (0xffffffffffffffffu)
+
+#define PATH_MAX 4096
// ------------------------------------------------------------------
-// Global macros
+// global macros
+
+/* offsets */
+#define offsetof(t, d) __builtin_offsetof(t, d)
+
+/* variable arguments */
+#define va_start(v,a) __builtin_va_start(v,a)
+#define va_end(v) __builtin_va_end(v)
+#define va_arg(v,t) __builtin_va_arg(v,t)
+#define va_copy(d,s) __builtin_va_copy(d,s)
+/* array helpers */
#define arrlen(Array) (sizeof(Array) / sizeof((Array)[0]))
#define arrend(Array) ((Array) + arrlen(Array))
+/* simple thresholding */
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
#define MIN(x, y) (((x) < (y)) ? (x) : (y))
#define CLAMP(x, lo, hi) (((x) < (lo)) ? (lo) : (((x) > (hi)) ? (hi) : (x)))
|