Make numerous improvements

- Python static hello world now 1.8mb
- Python static fully loaded now 10mb
- Python HTTPS client now uses MbedTLS
- Python REPL now completes import stmts
- Increase stack size for Python for now
- Begin synthesizing posixpath and ntpath
- Restore Python \N{UNICODE NAME} support
- Restore Python NFKD symbol normalization
- Add optimized code path for Intel SHA-NI
- Get more Python unit tests passing faster
- Get Python help() pagination working on NT
- Python hashlib now supports MbedTLS PBKDF2
- Make memcpy/memmove/memcmp/bcmp/etc. faster
- Add Mersenne Twister and Vigna to LIBC_RAND
- Provide privileged __printf() for error code
- Fix zipos opendir() so that it reports ENOTDIR
- Add basic chmod() implementation for Windows NT
- Add Cosmo's best functions to Python cosmo module
- Pin function trace indent depth to that of caller
- Show memory diagram on invalid access in MODE=dbg
- Differentiate stack overflow on crash in MODE=dbg
- Add stb_truetype and tools for analyzing font files
- Upgrade to UNICODE 13 and reduce its binary footprint
- COMPILE.COM now logs resource usage of build commands
- Start implementing basic poll() support on bare metal
- Set getauxval(AT_EXECFN) to GetModuleFileName() on NT
- Add descriptions to strerror() in non-TINY build modes
- Add COUNTBRANCH() macro to help with micro-optimizations
- Make error / backtrace / asan / memory code more unbreakable
- Add fast perfect C implementation of μ-Law and a-Law audio codecs
- Make strtol() functions consistent with other libc implementations
- Improve Linenoise implementation (see also github.com/jart/bestline)
- COMPILE.COM now suppresses stdout/stderr of successful build commands
This commit is contained in:
Justine Tunney 2021-09-27 22:58:51 -07:00
parent fa7b4f5bd1
commit 39bf41f4eb
806 changed files with 77494 additions and 63859 deletions

View file

@ -90,9 +90,11 @@ Invented 1990 Phillip Walter Katz\"");
* Initializes hash table (avoiding 64K overflow for 16 bit systems).
* prev[] will be initialized on the fly.
*/
#define CLEAR_HASH(s) \
s->head[s->hash_size - 1] = NIL; \
memset((Bytef *)s->head, 0, (s->hash_size - 1) * sizeof(*s->head));
#define CLEAR_HASH(s) \
do { \
s->head[s->hash_size - 1] = NIL; \
bzero((Bytef *)s->head, (s->hash_size - 1) * sizeof(*s->head)); \
} while (0)
/**
* Update header CRC with s->pending_buf[beg..s->pending - 1] bytes.
@ -338,9 +340,9 @@ int deflateInit2(z_streamp strm, int level, int method, int windowBits,
s->window =
(Bytef *)ZALLOC(strm, s->w_size + window_padding, 2 * sizeof(Byte));
memset(s->window, 0, (s->w_size + window_padding) * (2 * sizeof(Byte)));
bzero(s->window, (s->w_size + window_padding) * (2 * sizeof(Byte)));
s->prev = (Posf *)ZALLOC(strm, s->w_size, sizeof(Pos));
memset(s->prev, 0, s->w_size * sizeof(Pos));
bzero(s->prev, s->w_size * sizeof(Pos));
s->head = (Posf *)ZALLOC(strm, s->hash_size, sizeof(Pos));
s->high_water = 0; /* nothing written to s->window yet */

View file

@ -153,7 +153,7 @@ void fill_window_sse(struct DeflateState *s) {
*/
init = s->window_size - curr;
if (init > WIN_INIT) init = WIN_INIT;
memset(s->window + curr, 0, init);
bzero(s->window + curr, init);
s->high_water = curr + init;
} else if (s->high_water < (uint64_t)curr + WIN_INIT) {
/* High water mark at or above current data, but below current data
@ -163,7 +163,7 @@ void fill_window_sse(struct DeflateState *s) {
init = (uint64_t)curr + WIN_INIT - s->high_water;
if (init > s->window_size - s->high_water)
init = s->window_size - s->high_water;
memset(s->window + s->high_water, 0, init);
bzero(s->window + s->high_water, init);
s->high_water += init;
}
}

View file

@ -281,7 +281,7 @@ static void fixedtables(struct InflateState *state) {
}
state->lencode = lenfix;
state->distcode = distfix;
#else /* !BUILDFIXED */
#else /* !BUILDFIXED */
state->lencode = kZlibLenfix;
state->distcode = kZlibDistfix;
#endif /* BUILDFIXED */
@ -380,7 +380,7 @@ static int updatewindow(z_streamp strm, const Bytef *end, unsigned copy) {
and is subsequently either overwritten or left deliberately
undefined at the end of decode; so there's really no point.
*/
memset(state->window + wsize, 0, CHUNKCOPY_CHUNK_SIZE);
bezro(state->window + wsize, CHUNKCOPY_CHUNK_SIZE);
#endif
}