mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-12 22:19:10 +00:00
Add chibicc
This program popped up on Hacker News recently. It's the only modern compiler I've ever seen that doesn't have dependencies and is easily modified. So I added all of the missing GNU extensions I like to use which means it might be possible soon to build on non-Linux and have third party not vendor gcc binaries.
This commit is contained in:
parent
e44a0cf6f8
commit
8da931a7f6
298 changed files with 19493 additions and 11950 deletions
|
@ -28,8 +28,8 @@ int xwrite(int, const void *, uint64_t);
|
|||
│ cosmopolitan § eXtended apis » memory ─╬─│┼
|
||||
╚────────────────────────────────────────────────────────────────────────────│*/
|
||||
|
||||
void xdie(void) noreturn;
|
||||
char *xdtoa(double) _XMAL;
|
||||
void xdie(void) wontreturn;
|
||||
char *xdtoa(long double) _XMAL;
|
||||
char *xasprintf(const char *, ...) printfesque(1) paramsnonnull((1)) _XMAL;
|
||||
char *xvasprintf(const char *, va_list) _XPNN _XMAL;
|
||||
char *xgetline(struct FILE *) _XPNN mallocesque;
|
||||
|
|
|
@ -43,7 +43,7 @@ LIBC_X_A_DIRECTDEPS = \
|
|||
LIBC_STR \
|
||||
LIBC_STUBS \
|
||||
LIBC_SYSV \
|
||||
THIRD_PARTY_DTOA
|
||||
THIRD_PARTY_GDTOA
|
||||
|
||||
LIBC_X_A_DEPS := \
|
||||
$(call uniq,$(foreach x,$(LIBC_X_A_DIRECTDEPS),$($(x))))
|
||||
|
|
|
@ -19,14 +19,15 @@
|
|||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/mem/mem.h"
|
||||
#include "libc/x/x.h"
|
||||
#include "third_party/dtoa/dtoa.h"
|
||||
#include "third_party/gdtoa/gdtoa.h"
|
||||
|
||||
/**
|
||||
* Converts double to string w/ high-accuracy the easy way.
|
||||
*
|
||||
* @see gc(), free()
|
||||
* @return string that needs to be free'd
|
||||
*/
|
||||
char *xdtoa(double d) {
|
||||
char buf[32];
|
||||
return xstrdup(g_fmt(buf, d));
|
||||
char *xdtoa(long double d) {
|
||||
char *p = xmalloc(32);
|
||||
g_xfmt_p(p, &d, 16, 32, 2);
|
||||
return p;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue