aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNicholas <nbnoll@eml.cc>2021-11-12 16:59:46 -0800
committerNicholas <nbnoll@eml.cc>2021-11-12 16:59:46 -0800
commit0369b1505b019becfb74ccd9c82f9f7700af377a (patch)
tree2aee8181da2e419d882cae1d5a3ff5a2c45bcc93 /include
parentce05175372a9ddca1a225db0765ace1127a39293 (diff)
chore: error->int
Diffstat (limited to 'include')
-rw-r--r--include/base.h38
-rw-r--r--include/libbio.h24
-rw-r--r--include/libmath/blas.h12
-rw-r--r--include/libutf.h2
-rw-r--r--include/u.h130
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)))