mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-07 19:58:30 +00:00
Improve redbean
- Improve serialization - Add Benchmark() API to redbean - Refactor UNIX API to be assert() friendly - Make the redbean Lua REPL print data structures - Fix recent regressions in linenoise reverse search - Add -i flag so redbean can be a language interpreter
This commit is contained in:
parent
2046c0d2ae
commit
451e3f73d9
74 changed files with 1781 additions and 1024 deletions
|
@ -16,6 +16,7 @@
|
|||
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/fmt/magnumstrs.internal.h"
|
||||
#include "libc/macros.internal.h"
|
||||
|
||||
.macro .e e s
|
||||
|
@ -115,6 +116,6 @@ kErrnoDocs:
|
|||
.e ENOTRECOVERABLE,"State not recoverable"
|
||||
.e ENONET,"Machine is not on the network"
|
||||
.e ERESTART,"Interrupted system call should be restarted"
|
||||
.long -123
|
||||
.long MAGNUM_TERMINATOR
|
||||
.endobj kErrnoDocs,globl,hidden
|
||||
.overrun
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/fmt/magnumstrs.internal.h"
|
||||
#include "libc/macros.internal.h"
|
||||
|
||||
.macro .e e
|
||||
|
@ -27,7 +28,7 @@
|
|||
.endm
|
||||
|
||||
.section .rodata
|
||||
.align 4
|
||||
.align 4
|
||||
.underrun
|
||||
kErrnoNames:
|
||||
.e EINVAL
|
||||
|
@ -116,6 +117,6 @@ kErrnoNames:
|
|||
.e ENONET
|
||||
.e ERESTART
|
||||
.e ENODATA
|
||||
.long -123
|
||||
.long MAGNUM_TERMINATOR
|
||||
.endobj kErrnoNames,globl,hidden
|
||||
.overrun
|
||||
|
|
|
@ -1,22 +1,35 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_FMT_MAGNUMSTRS_H_
|
||||
#define COSMOPOLITAN_LIBC_FMT_MAGNUMSTRS_H_
|
||||
|
||||
#define MAGNUM_TERMINATOR -123
|
||||
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
#define MAGNUM_NUMBER(TABLE, INDEX) \
|
||||
*(const int *)((uintptr_t)TABLE + TABLE[INDEX].x)
|
||||
|
||||
#define MAGNUM_STRING(TABLE, INDEX) \
|
||||
(const char *)((uintptr_t)TABLE + TABLE[INDEX].s)
|
||||
|
||||
struct MagnumStr {
|
||||
int x, s;
|
||||
};
|
||||
|
||||
extern const struct MagnumStr kErrnoDocs[];
|
||||
extern const struct MagnumStr kErrnoNames[];
|
||||
extern const struct MagnumStr kIpOptnames[];
|
||||
extern const struct MagnumStr kSignalNames[];
|
||||
extern const struct MagnumStr kSockOptnames[];
|
||||
extern const struct MagnumStr kTcpOptnames[];
|
||||
hidden extern const struct MagnumStr kClockNames[];
|
||||
hidden extern const struct MagnumStr kErrnoDocs[];
|
||||
hidden extern const struct MagnumStr kErrnoNames[];
|
||||
hidden extern const struct MagnumStr kIpOptnames[];
|
||||
hidden extern const struct MagnumStr kOpenFlags[];
|
||||
hidden extern const struct MagnumStr kSignalNames[];
|
||||
hidden extern const struct MagnumStr kSockOptnames[];
|
||||
hidden extern const struct MagnumStr kTcpOptnames[];
|
||||
|
||||
const char *DescribeSockLevel(int);
|
||||
const char *DescribeSockOptname(int, int);
|
||||
const char *GetMagnumStr(const struct MagnumStr *, int);
|
||||
char *DescribeClockName(int) hidden;
|
||||
char *DescribeOpenFlags(int) hidden;
|
||||
char *DescribeSockLevel(int) hidden;
|
||||
char *DescribeSockOptname(int, int) hidden;
|
||||
char *GetMagnumStr(const struct MagnumStr *, int) hidden;
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Converts errno value to descriptive sentence.
|
||||
* @return non-null rodata string or null if not found
|
||||
*/
|
||||
const char *strerdoc(int x) {
|
||||
char *strerdoc(int x) {
|
||||
if (x) {
|
||||
return GetMagnumStr(kErrnoDocs, x);
|
||||
} else {
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* Converts errno value to symbolic name.
|
||||
* @return non-null rodata string or null if not found
|
||||
*/
|
||||
const char *strerrno(int x) {
|
||||
char *strerrno(int x) {
|
||||
if (x) {
|
||||
return GetMagnumStr(kErrnoNames, x);
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue