From 17aea99bb3548a779f6204bdb3aca75f6967cfe6 Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Sat, 13 Aug 2022 08:32:34 -0700 Subject: [PATCH] Fold LIBC_ALG into LIBC_MEM --- Makefile | 4 -- dsp/tty/sendtitle.c | 2 +- dsp/tty/tty.mk | 1 - dsp/tty/ttyhisto.c | 2 +- examples/examples.mk | 1 - examples/ispell.c | 6 +- examples/kilo.c | 4 +- examples/lstime.c | 4 +- examples/nesemu1.cc | 2 +- examples/unbourne.c | 2 +- libc/alg/alg.h | 50 ---------------- libc/alg/alg.mk | 61 -------------------- libc/alg/arraylist.internal.h | 31 ---------- libc/alg/arraylist2.internal.h | 39 ------------- libc/alg/internal.h | 14 ----- libc/bits/asmflag.h | 0 libc/bits/bits.h | 0 libc/bits/bits.mk | 0 libc/bits/bswap.h | 0 libc/bits/likely.h | 0 libc/bits/midpoint.h | 0 libc/bits/safemacros.internal.h | 0 libc/bits/weaken.h | 0 libc/bits/xchg.internal.h | 0 libc/calls/mkntenvblock.c | 2 +- libc/dns/dns.mk | 1 - libc/dns/getntnameservers.c | 2 +- libc/dns/parsehoststxt.c | 2 +- libc/dns/parseresolvconf.c | 2 +- libc/dns/resolvehostsreverse.c | 2 +- libc/dns/resolvehoststxt.c | 2 +- libc/fmt/itoa128radix10.greg.c | 2 +- libc/fmt/itoa64.c | 2 +- libc/fmt/itoa64radix8.c | 2 +- libc/fmt/ntoa.c | 2 +- libc/fmt/unbing.c | 2 +- libc/intrin/asan.c | 2 +- libc/intrin/ubsan.c | 2 +- libc/isystem/memory.h | 2 +- libc/isystem/stdlib.h | 2 +- libc/isystem/string.h | 2 +- libc/libc.mk | 5 +- libc/log/backtrace2.c | 4 +- libc/log/backtrace3.c | 2 +- libc/log/countbranch_report.c | 2 +- libc/log/countexpr_report.c | 2 +- libc/mem/alg.h | 50 ++++++++++++++++ libc/mem/arraylist.internal.h | 31 ++++++++++ libc/mem/arraylist2.internal.h | 39 +++++++++++++ libc/{alg => mem}/bisect.internal.h | 0 libc/{alg => mem}/bisectcarleft.internal.h | 0 libc/{alg => mem}/bsearch.c | 4 +- libc/{alg => mem}/bsearch_r.c | 4 +- libc/{alg => mem}/critbit0.h | 0 libc/{alg => mem}/critbit0_allprefixed.c | 4 +- libc/{alg => mem}/critbit0_clear.c | 4 +- libc/{alg => mem}/critbit0_contains.c | 4 +- libc/{alg => mem}/critbit0_delete.c | 4 +- libc/{alg => mem}/critbit0_emplace.c | 4 +- libc/{alg => mem}/critbit0_get.c | 4 +- libc/{alg => mem}/critbit0_insert.c | 4 +- libc/mem/internal.h | 6 ++ libc/mem/putenv.c | 2 +- libc/{alg => mem}/replacestr.c | 4 +- libc/{alg => mem}/reverse.internal.h | 0 libc/{alg => mem}/shuffle.internal.h | 0 libc/{alg => mem}/tarjan.c | 2 +- libc/rand/rand.mk | 0 libc/runtime/opensymboltable.greg.c | 2 +- libc/stdio/fflush_unlocked.c | 2 +- libc/stdio/strfry.c | 2 +- libc/str/djbsort.c | 2 +- libc/str/getx86processormodel.c | 2 +- libc/str/qsort.c | 2 +- libc/testlib/testlib.mk | 1 - libc/unicode/unicode.mk | 4 +- libc/x/filecmp.c | 2 +- net/http/parsehttpmessage.c | 4 +- test/libc/alg/test.mk | 64 --------------------- test/libc/fmt/test.mk | 1 - test/libc/{alg => mem}/arraylist_test.c | 4 +- test/libc/{alg => mem}/bisectcarleft_test.c | 4 +- test/libc/{alg => mem}/comparator_test.c | 2 +- test/libc/{alg => mem}/critbit0_test.c | 2 +- test/libc/{alg => mem}/djbsort_test.c | 2 +- test/libc/{alg => mem}/replacestr_test.c | 2 +- test/libc/{alg => mem}/replacestr_test.inc | 0 test/libc/{alg => mem}/reverse_test.c | 2 +- test/libc/{alg => mem}/tarjan_test.c | 2 +- test/libc/nexgen32e/test.mk | 1 - test/libc/runtime/test.mk | 1 - test/libc/str/longsort_test.c | 2 +- test/libc/str/memmem_test.c | 2 +- test/libc/str/qsort_test.c | 2 +- test/libc/str/strcasestr_test.c | 2 +- test/libc/str/strstr_test.c | 2 +- test/libc/str/test.mk | 1 - test/libc/test.mk | 3 - test/tool/viz/lib/test.mk | 1 - third_party/chibicc/chibicc.mk | 1 - third_party/chibicc/dox2.c | 2 +- third_party/chibicc/printast.c | 2 +- third_party/finger/sprint.c | 2 +- third_party/linenoise/linenoise.c | 2 +- third_party/lua/lrepl.c | 2 +- third_party/lua/lua.mk | 1 - third_party/lua/luaencodejsondata.c | 2 +- third_party/lua/luaencodeluadata.c | 2 +- third_party/make/ar.c | 2 +- third_party/make/makeint.inc | 2 +- third_party/musl/crypt_blowfish.c | 2 +- third_party/musl/crypt_des.c | 2 +- third_party/musl/crypt_md5.c | 2 +- third_party/musl/crypt_sha256.c | 2 +- third_party/musl/crypt_sha512.c | 2 +- third_party/musl/encrypt.c | 2 +- third_party/musl/glob.c | 2 +- third_party/musl/musl.mk | 1 - third_party/python/Modules/posixmodule.c | 2 +- third_party/python/Python/import.c | 2 +- third_party/python/python.mk | 2 - third_party/quickjs/quickjs.mk | 1 - third_party/quickjs/run-test262.c | 2 +- third_party/quickjs/unicode_gen.c | 2 +- third_party/regex/regcomp.c | 1 + third_party/regex/tre.inc | 2 +- third_party/sqlite3/fts3_write.c | 2 +- third_party/sqlite3/sqlite3.mk | 1 - third_party/stb/stb.mk | 1 - third_party/stb/stb_rect_pack.c | 2 +- third_party/stb/stb_vorbis.c | 2 +- third_party/tidy/tidy.c | 2 +- third_party/unzip/extract.c | 2 +- third_party/zip/fileio.c | 2 +- third_party/zip/zipfile.c | 2 +- third_party/zip/zipnote.c | 2 +- third_party/zip/zipsplit.c | 2 +- tool/build/ar.c | 2 +- tool/build/blinkenlights.c | 2 +- tool/build/build.mk | 1 - tool/build/calculator.c | 2 +- tool/build/compile.c | 2 +- tool/build/lib/asmdown.c | 2 +- tool/build/lib/breakpoint.c | 2 +- tool/build/lib/buffer.c | 2 +- tool/build/lib/buildlib.mk | 1 - tool/build/lib/dis.c | 4 +- tool/build/lib/diself.c | 2 +- tool/build/lib/elfwriter.c | 2 +- tool/build/lib/interner.c | 4 +- tool/build/lib/pml4t.c | 2 +- tool/build/lib/pty.c | 2 +- tool/build/mkdeps.c | 8 +-- tool/build/package.c | 4 +- tool/build/refactor.c | 2 +- tool/build/rollup.c | 2 +- tool/build/runit.c | 2 +- tool/decode/lib/flagger.c | 2 +- tool/net/net.mk | 1 - tool/viz/lib/vizlib.mk | 1 - tool/viz/printvideo.c | 4 +- tool/viz/tabalign.c | 2 +- 162 files changed, 265 insertions(+), 430 deletions(-) mode change 100644 => 100755 libc/alg/alg.h delete mode 100644 libc/alg/alg.mk mode change 100644 => 100755 libc/alg/arraylist.internal.h mode change 100644 => 100755 libc/alg/arraylist2.internal.h delete mode 100644 libc/alg/internal.h delete mode 100755 libc/bits/asmflag.h delete mode 100755 libc/bits/bits.h delete mode 100755 libc/bits/bits.mk delete mode 100755 libc/bits/bswap.h delete mode 100755 libc/bits/likely.h delete mode 100755 libc/bits/midpoint.h delete mode 100755 libc/bits/safemacros.internal.h delete mode 100755 libc/bits/weaken.h delete mode 100755 libc/bits/xchg.internal.h create mode 100644 libc/mem/alg.h create mode 100644 libc/mem/arraylist.internal.h create mode 100644 libc/mem/arraylist2.internal.h rename libc/{alg => mem}/bisect.internal.h (100%) rename libc/{alg => mem}/bisectcarleft.internal.h (100%) rename libc/{alg => mem}/bsearch.c (97%) rename libc/{alg => mem}/bsearch_r.c (97%) rename libc/{alg => mem}/critbit0.h (100%) rename libc/{alg => mem}/critbit0_allprefixed.c (98%) rename libc/{alg => mem}/critbit0_clear.c (97%) rename libc/{alg => mem}/critbit0_contains.c (97%) rename libc/{alg => mem}/critbit0_delete.c (97%) rename libc/{alg => mem}/critbit0_emplace.c (98%) rename libc/{alg => mem}/critbit0_get.c (97%) rename libc/{alg => mem}/critbit0_insert.c (97%) rename libc/{alg => mem}/replacestr.c (97%) rename libc/{alg => mem}/reverse.internal.h (100%) rename libc/{alg => mem}/shuffle.internal.h (100%) rename libc/{alg => mem}/tarjan.c (99%) delete mode 100755 libc/rand/rand.mk delete mode 100644 test/libc/alg/test.mk rename test/libc/{alg => mem}/arraylist_test.c (98%) rename test/libc/{alg => mem}/bisectcarleft_test.c (97%) rename test/libc/{alg => mem}/comparator_test.c (99%) rename test/libc/{alg => mem}/critbit0_test.c (99%) rename test/libc/{alg => mem}/djbsort_test.c (99%) rename test/libc/{alg => mem}/replacestr_test.c (98%) rename test/libc/{alg => mem}/replacestr_test.inc (100%) rename test/libc/{alg => mem}/reverse_test.c (98%) rename test/libc/{alg => mem}/tarjan_test.c (99%) diff --git a/Makefile b/Makefile index 10ae1e1f0..33b74720b 100644 --- a/Makefile +++ b/Makefile @@ -126,7 +126,6 @@ include libc/zipos/zipos.mk # ├──DYNAMIC RUNTIME include third_party/gdtoa/gdtoa.mk # │ You can now use stdio include libc/time/time.mk # │ You can finally call malloc() include libc/thread/thread.mk # │ -include libc/alg/alg.mk # │ include libc/stdio/stdio.mk # │ include third_party/libcxx/libcxx.mk # │ include net/net.mk # │ @@ -191,7 +190,6 @@ include tool/hash/hash.mk include tool/net/net.mk include tool/viz/viz.mk include tool/tool.mk -include test/libc/alg/test.mk include test/libc/tinymath/test.mk include test/libc/intrin/test.mk include test/libc/mem/test.mk @@ -294,7 +292,6 @@ COSMOPOLITAN_OBJECTS = \ LIBC_STDIO \ THIRD_PARTY_GDTOA \ THIRD_PARTY_REGEX \ - LIBC_ALG \ LIBC_MEM \ THIRD_PARTY_DLMALLOC \ LIBC_RUNTIME \ @@ -324,7 +321,6 @@ COSMOPOLITAN_OBJECTS = \ COSMOPOLITAN_HEADERS = \ APE \ LIBC \ - LIBC_ALG \ LIBC_CALLS \ LIBC_DNS \ LIBC_ELF \ diff --git a/dsp/tty/sendtitle.c b/dsp/tty/sendtitle.c index c8288f72e..520dac6ba 100644 --- a/dsp/tty/sendtitle.c +++ b/dsp/tty/sendtitle.c @@ -17,7 +17,7 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "dsp/tty/tty.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/runtime/gc.internal.h" #include "libc/x/x.h" diff --git a/dsp/tty/tty.mk b/dsp/tty/tty.mk index f25e21fa9..84f0a7333 100644 --- a/dsp/tty/tty.mk +++ b/dsp/tty/tty.mk @@ -25,7 +25,6 @@ DSP_TTY_A_CHECKS = \ DSP_TTY_A_DIRECTDEPS = \ DSP_CORE \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/dsp/tty/ttyhisto.c b/dsp/tty/ttyhisto.c index 7d4518be8..81330028d 100644 --- a/dsp/tty/ttyhisto.c +++ b/dsp/tty/ttyhisto.c @@ -18,7 +18,7 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "dsp/tty/tty.h" -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/nexgen32e/nexgen32e.h" #include "libc/str/str.h" diff --git a/examples/examples.mk b/examples/examples.mk index 5fd3e899b..183a8c4ff 100644 --- a/examples/examples.mk +++ b/examples/examples.mk @@ -42,7 +42,6 @@ EXAMPLES_DIRECTDEPS = \ DSP_CORE \ DSP_SCALE \ DSP_TTY \ - LIBC_ALG \ LIBC_CALLS \ LIBC_DNS \ LIBC_FMT \ diff --git a/examples/ispell.c b/examples/ispell.c index 80e9df235..9b45b1624 100644 --- a/examples/ispell.c +++ b/examples/ispell.c @@ -7,9 +7,9 @@ │ • http://creativecommons.org/publicdomain/zero/1.0/ │ ╚─────────────────────────────────────────────────────────────────*/ #endif -#include "libc/alg/alg.h" -#include "libc/alg/arraylist.internal.h" -#include "libc/alg/critbit0.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist.internal.h" +#include "libc/mem/critbit0.h" #include "libc/intrin/bits.h" #include "libc/calls/calls.h" #include "libc/fmt/conv.h" diff --git a/examples/kilo.c b/examples/kilo.c index 99486d498..c6e4df37f 100644 --- a/examples/kilo.c +++ b/examples/kilo.c @@ -58,8 +58,8 @@ Contact: antirez@gmail.com\"\n\ #endif #define _GNU_SOURCE -#include "libc/alg/alg.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/calls/calls.h" #include "libc/calls/termios.h" #include "libc/calls/weirdtypes.h" diff --git a/examples/lstime.c b/examples/lstime.c index d8078fcc0..2a1119e84 100644 --- a/examples/lstime.c +++ b/examples/lstime.c @@ -7,8 +7,8 @@ │ • http://creativecommons.org/publicdomain/zero/1.0/ │ ╚─────────────────────────────────────────────────────────────────*/ #endif -#include "libc/alg/alg.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/intrin/safemacros.internal.h" #include "libc/calls/calls.h" #include "libc/calls/struct/dirent.h" diff --git a/examples/nesemu1.cc b/examples/nesemu1.cc index b73425cdd..31ff06279 100644 --- a/examples/nesemu1.cc +++ b/examples/nesemu1.cc @@ -10,7 +10,7 @@ #include "dsp/tty/itoa8.h" #include "dsp/tty/quant.h" #include "dsp/tty/tty.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/intrin/safemacros.internal.h" diff --git a/examples/unbourne.c b/examples/unbourne.c index f84251abc..a9ba11d97 100644 --- a/examples/unbourne.c +++ b/examples/unbourne.c @@ -110,7 +110,7 @@ │ cosmopolitan § the unbourne shell » macros ─╬─│┼ ╚────────────────────────────────────────────────────────────────────────────│*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/intrin/safemacros.internal.h" #include "libc/calls/calls.h" diff --git a/libc/alg/alg.h b/libc/alg/alg.h old mode 100644 new mode 100755 index 2522ab53b..e69de29bb --- a/libc/alg/alg.h +++ b/libc/alg/alg.h @@ -1,50 +0,0 @@ -#ifndef COSMOPOLITAN_LIBC_ALG_ALG_H_ -#define COSMOPOLITAN_LIBC_ALG_ALG_H_ -#if !(__ASSEMBLER__ + __LINKER__ + 0) -COSMOPOLITAN_C_START_ -/*───────────────────────────────────────────────────────────────────────────│─╗ -│ cosmopolitan § algorithms ─╬─│┼ -╚────────────────────────────────────────────────────────────────────────────│*/ - -void *bsearch(const void *, const void *, size_t, size_t, - int cmp(const void *, const void *)) - paramsnonnull() dontthrow nosideeffect; -void *bsearch_r(const void *, const void *, size_t, size_t, - int cmp(const void *, const void *, void *), void *) - paramsnonnull((1, 2, 5)) dontthrow nosideeffect; -void djbsort(int32_t *, size_t); -void qsort(void *, size_t, size_t, int (*)(const void *, const void *)) - paramsnonnull(); -void qsort_r(void *, size_t, size_t, - int cmp(const void *, const void *, void *), void *arg) - paramsnonnull((1, 4)); -int tarjan(int, const int (*)[2], int, int[], int[], int *) - paramsnonnull((2, 4)) nocallback dontthrow; - -#define __algalloc returnspointerwithnoaliases dontthrow nocallback dontdiscard - -char *replacestr(const char *, const char *, const char *) - paramsnonnull() __algalloc; -char16_t *replacestr16(const char16_t *, const char16_t *, const char16_t *) - paramsnonnull() __algalloc; -wchar_t *replacewcs(const wchar_t *, const wchar_t *, const wchar_t *) - paramsnonnull() __algalloc; - -char *concatstr(const char *, ...) nullterminated() paramsnonnull() __algalloc; -char16_t *concatstr16(const char16_t *, ...) nullterminated() - paramsnonnull() __algalloc; -wchar_t *concatwcs(const wchar_t *, ...) nullterminated() - paramsnonnull() __algalloc; - -int cmpsb(const void *, const void *); -int cmpub(const void *, const void *); -int cmpsw(const void *, const void *); -int cmpuw(const void *, const void *); -int cmpsl(const void *, const void *); -int cmpul(const void *, const void *); -int cmpsq(const void *, const void *); -int cmpuq(const void *, const void *); - -COSMOPOLITAN_C_END_ -#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ -#endif /* COSMOPOLITAN_LIBC_ALG_ALG_H_ */ diff --git a/libc/alg/alg.mk b/libc/alg/alg.mk deleted file mode 100644 index 6ed940acc..000000000 --- a/libc/alg/alg.mk +++ /dev/null @@ -1,61 +0,0 @@ -#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐ -#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘ - -PKGS += LIBC_ALG - -LIBC_ALG_ARTIFACTS += LIBC_ALG_A -LIBC_ALG = $(LIBC_ALG_A_DEPS) $(LIBC_ALG_A) -LIBC_ALG_A = o/$(MODE)/libc/alg/alg.a -LIBC_ALG_A_FILES := $(wildcard libc/alg/*) -LIBC_ALG_A_HDRS = $(filter %.h,$(LIBC_ALG_A_FILES)) -LIBC_ALG_A_INCS = $(filter %.inc,$(LIBC_ALG_A_FILES)) -LIBC_ALG_A_SRCS_S = $(filter %.S,$(LIBC_ALG_A_FILES)) -LIBC_ALG_A_SRCS_C = $(filter %.c,$(LIBC_ALG_A_FILES)) - -LIBC_ALG_A_SRCS = \ - $(LIBC_ALG_A_SRCS_S) \ - $(LIBC_ALG_A_SRCS_C) - -LIBC_ALG_A_OBJS = \ - $(LIBC_ALG_A_SRCS_S:%.S=o/$(MODE)/%.o) \ - $(LIBC_ALG_A_SRCS_C:%.c=o/$(MODE)/%.o) - -LIBC_ALG_A_CHECKS = \ - $(LIBC_ALG_A).pkg \ - $(LIBC_ALG_A_HDRS:%=o/$(MODE)/%.ok) - -LIBC_ALG_A_DIRECTDEPS = \ - LIBC_MEM \ - LIBC_NEXGEN32E \ - LIBC_RUNTIME \ - LIBC_STR \ - LIBC_INTRIN \ - LIBC_STUBS \ - LIBC_SYSV - -LIBC_ALG_A_DEPS := \ - $(call uniq,$(foreach x,$(LIBC_ALG_A_DIRECTDEPS),$($(x)))) - -$(LIBC_ALG_A): libc/alg/ \ - $(LIBC_ALG_A).pkg \ - $(LIBC_ALG_A_OBJS) - -$(LIBC_ALG_A).pkg: \ - $(LIBC_ALG_A_OBJS) \ - $(foreach x,$(LIBC_ALG_A_DIRECTDEPS),$($(x)_A).pkg) - -o/$(MODE)/libc/alg/critbit0.o: private \ - DEFAULT_CFLAGS += \ - -ffunction-sections \ - -fdata-sections - -LIBC_ALG_LIBS = $(foreach x,$(LIBC_ALG_ARTIFACTS),$($(x))) -LIBC_ALG_SRCS = $(foreach x,$(LIBC_ALG_ARTIFACTS),$($(x)_SRCS)) -LIBC_ALG_HDRS = $(foreach x,$(LIBC_ALG_ARTIFACTS),$($(x)_HDRS)) -LIBC_ALG_INCS = $(foreach x,$(LIBC_ALG_ARTIFACTS),$($(x)_INCS)) -LIBC_ALG_CHECKS = $(foreach x,$(LIBC_ALG_ARTIFACTS),$($(x)_CHECKS)) -LIBC_ALG_OBJS = $(foreach x,$(LIBC_ALG_ARTIFACTS),$($(x)_OBJS)) -$(LIBC_ALG_OBJS): $(BUILD_FILES) libc/alg/alg.mk - -.PHONY: o/$(MODE)/libc/alg -o/$(MODE)/libc/alg: $(LIBC_ALG_CHECKS) diff --git a/libc/alg/arraylist.internal.h b/libc/alg/arraylist.internal.h old mode 100644 new mode 100755 index d40da7684..e69de29bb --- a/libc/alg/arraylist.internal.h +++ b/libc/alg/arraylist.internal.h @@ -1,31 +0,0 @@ -#ifndef COSMOPOLITAN_LIBC_ALG_ARRAYLIST_H_ -#define COSMOPOLITAN_LIBC_ALG_ARRAYLIST_H_ -#include "libc/intrin/bits.h" -#include "libc/mem/mem.h" -#include "libc/str/str.h" -#if !(__ASSEMBLER__ + __LINKER__ + 0) - -/* TODO(jart): DELETE */ - -#define append(ARRAYLIST, ITEM) concat((ARRAYLIST), (ITEM), 1) - -#ifndef concat -#define concat(ARRAYLIST, ITEM, COUNT) \ - ({ \ - autotype(ARRAYLIST) List = (ARRAYLIST); \ - autotype(&List->p[0]) Item = (ITEM); \ - size_t SizE = sizeof(*Item); \ - size_t Count = (COUNT); \ - size_t Idx = List->i; \ - if (Idx + Count < List->n || __grow(&List->p, &List->n, SizE, Count)) { \ - memcpy(&List->p[Idx], Item, SizE *Count); \ - List->i = Idx + Count; \ - } else { \ - Idx = -1UL; \ - } \ - (ssize_t)(Idx); \ - }) -#endif /* concat */ - -#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ -#endif /* COSMOPOLITAN_LIBC_ALG_ARRAYLIST_H_ */ diff --git a/libc/alg/arraylist2.internal.h b/libc/alg/arraylist2.internal.h old mode 100644 new mode 100755 index e86d3a402..e69de29bb --- a/libc/alg/arraylist2.internal.h +++ b/libc/alg/arraylist2.internal.h @@ -1,39 +0,0 @@ -#ifndef COSMOPOLITAN_LIBC_ALG_ARRAYLIST2_H_ -#define COSMOPOLITAN_LIBC_ALG_ARRAYLIST2_H_ -#include "libc/mem/mem.h" -#include "libc/str/str.h" -#if !(__ASSEMBLER__ + __LINKER__ + 0) -COSMOPOLITAN_C_START_ - -/* TODO(jart): Fully develop these better macros. */ - -#define APPEND(LIST_P, LIST_I, LIST_N, ITEM) \ - CONCAT(LIST_P, LIST_I, LIST_N, ITEM, 1) - -#ifndef CONCAT -#define CONCAT(LIST_P, LIST_I, LIST_N, ITEM, COUNT) \ - ({ \ - autotype(LIST_P) ListP = (LIST_P); \ - autotype(LIST_I) ListI = (LIST_I); \ - autotype(LIST_N) ListN = (LIST_N); \ - typeof(&(*ListP)[0]) Item = (ITEM); \ - size_t SizE = sizeof(*Item); \ - size_t Count = (COUNT); \ - ssize_t Entry = -1; \ - /* NOTE: We use `<` to guarantee one additional slot */ \ - /* grow() will memset(0) extended memory, thus */ \ - /* you get a nul-terminator for free sometimes */ \ - /* the exception is if you list.i=0 and re-use */ \ - /* so you need concat(...); list.p[list.i++]=0 */ \ - if (*ListI + Count < *ListN || __grow(ListP, ListN, SizE, Count)) { \ - memcpy(&(*ListP)[*ListI], Item, (SizE) * (Count)); \ - Entry = *ListI; \ - *ListI += Count; /* happens after copy in case signal */ \ - } \ - Entry; \ - }) -#endif /* CONCAT */ - -COSMOPOLITAN_C_END_ -#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ -#endif /* COSMOPOLITAN_LIBC_ALG_ARRAYLIST2_H_ */ diff --git a/libc/alg/internal.h b/libc/alg/internal.h deleted file mode 100644 index 6a3bab985..000000000 --- a/libc/alg/internal.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef COSMOPOLITAN_LIBC_ALG_INTERNAL_H_ -#define COSMOPOLITAN_LIBC_ALG_INTERNAL_H_ -#if !(__ASSEMBLER__ + __LINKER__ + 0) -COSMOPOLITAN_C_START_ - -struct CritbitNode { - void *child[2]; - uint32_t byte; - unsigned otherbits; -}; - -COSMOPOLITAN_C_END_ -#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ -#endif /* COSMOPOLITAN_LIBC_ALG_INTERNAL_H_ */ diff --git a/libc/bits/asmflag.h b/libc/bits/asmflag.h deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/bits/bits.h b/libc/bits/bits.h deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/bits/bits.mk b/libc/bits/bits.mk deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/bits/bswap.h b/libc/bits/bswap.h deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/bits/likely.h b/libc/bits/likely.h deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/bits/midpoint.h b/libc/bits/midpoint.h deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/bits/safemacros.internal.h b/libc/bits/safemacros.internal.h deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/bits/weaken.h b/libc/bits/weaken.h deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/bits/xchg.internal.h b/libc/bits/xchg.internal.h deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/calls/mkntenvblock.c b/libc/calls/mkntenvblock.c index e30fa7a2e..0b740ce18 100644 --- a/libc/calls/mkntenvblock.c +++ b/libc/calls/mkntenvblock.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/intrin/bits.h" #include "libc/calls/ntspawn.h" #include "libc/fmt/conv.h" diff --git a/libc/dns/dns.mk b/libc/dns/dns.mk index 7f2e1e94a..2adacf41b 100644 --- a/libc/dns/dns.mk +++ b/libc/dns/dns.mk @@ -24,7 +24,6 @@ LIBC_DNS_A_CHECKS = \ $(LIBC_DNS_A_HDRS:%=o/$(MODE)/%.ok) LIBC_DNS_A_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_MEM \ diff --git a/libc/dns/getntnameservers.c b/libc/dns/getntnameservers.c index b906cd7a8..37c44ee23 100644 --- a/libc/dns/getntnameservers.c +++ b/libc/dns/getntnameservers.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/arraylist.internal.h" #include "libc/calls/calls.h" #include "libc/calls/syscall_support-nt.internal.h" #include "libc/dns/dns.h" diff --git a/libc/dns/parsehoststxt.c b/libc/dns/parsehoststxt.c index e5a46d1d4..a7ca33d54 100644 --- a/libc/dns/parsehoststxt.c +++ b/libc/dns/parsehoststxt.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/arraylist.internal.h" #include "libc/dns/dns.h" #include "libc/dns/hoststxt.h" #include "libc/errno.h" diff --git a/libc/dns/parseresolvconf.c b/libc/dns/parseresolvconf.c index b5159998c..6c14c9243 100644 --- a/libc/dns/parseresolvconf.c +++ b/libc/dns/parseresolvconf.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/arraylist.internal.h" #include "libc/dns/dns.h" #include "libc/dns/resolvconf.h" #include "libc/mem/mem.h" diff --git a/libc/dns/resolvehostsreverse.c b/libc/dns/resolvehostsreverse.c index 32fa0fcc4..5b2976681 100644 --- a/libc/dns/resolvehostsreverse.c +++ b/libc/dns/resolvehostsreverse.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/dns/consts.h" #include "libc/dns/dns.h" diff --git a/libc/dns/resolvehoststxt.c b/libc/dns/resolvehoststxt.c index c07245581..8e5cd0945 100644 --- a/libc/dns/resolvehoststxt.c +++ b/libc/dns/resolvehoststxt.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/dns/consts.h" #include "libc/dns/dns.h" #include "libc/dns/hoststxt.h" diff --git a/libc/fmt/itoa128radix10.greg.c b/libc/fmt/itoa128radix10.greg.c index 57f76f584..eacb6e86f 100644 --- a/libc/fmt/itoa128radix10.greg.c +++ b/libc/fmt/itoa128radix10.greg.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/reverse.internal.h" +#include "libc/mem/reverse.internal.h" #include "libc/fmt/conv.h" #include "libc/fmt/itoa.h" #include "libc/limits.h" diff --git a/libc/fmt/itoa64.c b/libc/fmt/itoa64.c index 3d3b82f81..be0cfb497 100644 --- a/libc/fmt/itoa64.c +++ b/libc/fmt/itoa64.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/reverse.internal.h" +#include "libc/mem/reverse.internal.h" #include "libc/fmt/conv.h" #include "libc/fmt/itoa.h" diff --git a/libc/fmt/itoa64radix8.c b/libc/fmt/itoa64radix8.c index 5f7035623..449c67c72 100644 --- a/libc/fmt/itoa64radix8.c +++ b/libc/fmt/itoa64radix8.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/reverse.internal.h" +#include "libc/mem/reverse.internal.h" #include "libc/fmt/conv.h" #include "libc/fmt/itoa.h" #include "libc/limits.h" diff --git a/libc/fmt/ntoa.c b/libc/fmt/ntoa.c index c3d838e53..87f6fe3e1 100644 --- a/libc/fmt/ntoa.c +++ b/libc/fmt/ntoa.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/reverse.internal.h" +#include "libc/mem/reverse.internal.h" #include "libc/assert.h" #include "libc/fmt/conv.h" #include "libc/fmt/divmod10.internal.h" diff --git a/libc/fmt/unbing.c b/libc/fmt/unbing.c index 1f586ea58..c2f6ed86c 100644 --- a/libc/fmt/unbing.c +++ b/libc/fmt/unbing.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/macros.internal.h" #include "libc/nexgen32e/nexgen32e.h" #include "libc/str/str.h" diff --git a/libc/intrin/asan.c b/libc/intrin/asan.c index 7801e69cd..2420169ca 100644 --- a/libc/intrin/asan.c +++ b/libc/intrin/asan.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/reverse.internal.h" +#include "libc/mem/reverse.internal.h" #include "libc/assert.h" #include "libc/intrin/likely.h" #include "libc/intrin/weaken.h" diff --git a/libc/intrin/ubsan.c b/libc/intrin/ubsan.c index 644dcb9ce..c67c87d8a 100644 --- a/libc/intrin/ubsan.c +++ b/libc/intrin/ubsan.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/reverse.internal.h" +#include "libc/mem/reverse.internal.h" #include "libc/intrin/pushpop.h" #include "libc/intrin/weaken.h" #include "libc/calls/calls.h" diff --git a/libc/isystem/memory.h b/libc/isystem/memory.h index f639c4efb..1de49e5a4 100644 --- a/libc/isystem/memory.h +++ b/libc/isystem/memory.h @@ -1,5 +1,5 @@ #ifndef COSMOPOLITAN_LIBC_ISYSTEM_MEMORY_H_ #define COSMOPOLITAN_LIBC_ISYSTEM_MEMORY_H_ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/str/str.h" #endif /* COSMOPOLITAN_LIBC_ISYSTEM_MEMORY_H_ */ diff --git a/libc/isystem/stdlib.h b/libc/isystem/stdlib.h index 82ff1fa1c..f3a130fff 100644 --- a/libc/isystem/stdlib.h +++ b/libc/isystem/stdlib.h @@ -1,6 +1,6 @@ #ifndef LIBC_ISYSTEM_STDLIB_H_ #define LIBC_ISYSTEM_STDLIB_H_ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/fmt/conv.h" #include "libc/mem/mem.h" #include "libc/stdio/rand.h" diff --git a/libc/isystem/string.h b/libc/isystem/string.h index c647b510a..39dc7c33a 100644 --- a/libc/isystem/string.h +++ b/libc/isystem/string.h @@ -1,5 +1,5 @@ #ifndef LIBC_ISYSTEM_STRING_H_ #define LIBC_ISYSTEM_STRING_H_ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/str/str.h" #endif diff --git a/libc/libc.mk b/libc/libc.mk index 39007286c..d17a5471e 100644 --- a/libc/libc.mk +++ b/libc/libc.mk @@ -9,9 +9,7 @@ LIBC_FILES := $(wildcard libc/*) $(wildcard libc/isystem/*) LIBC_CHECKS = $(LIBC_HDRS:%=o/$(MODE)/%.ok) .PHONY: o/$(MODE)/libc -o/$(MODE)/libc: o/$(MODE)/libc/alg \ - o/$(MODE)/libc/bits \ - o/$(MODE)/libc/calls \ +o/$(MODE)/libc: o/$(MODE)/libc/calls \ o/$(MODE)/libc/crt \ o/$(MODE)/libc/dns \ o/$(MODE)/libc/elf \ @@ -22,7 +20,6 @@ o/$(MODE)/libc: o/$(MODE)/libc/alg \ o/$(MODE)/libc/mem \ o/$(MODE)/libc/nexgen32e \ o/$(MODE)/libc/nt \ - o/$(MODE)/libc/rand \ o/$(MODE)/libc/runtime \ o/$(MODE)/libc/sock \ o/$(MODE)/libc/stdio \ diff --git a/libc/log/backtrace2.c b/libc/log/backtrace2.c index 383b913af..7cae490de 100644 --- a/libc/log/backtrace2.c +++ b/libc/log/backtrace2.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/bisectcarleft.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/bisectcarleft.internal.h" #include "libc/intrin/safemacros.internal.h" #include "libc/intrin/weaken.h" #include "libc/calls/calls.h" diff --git a/libc/log/backtrace3.c b/libc/log/backtrace3.c index 9b6359efb..2d22fd022 100644 --- a/libc/log/backtrace3.c +++ b/libc/log/backtrace3.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/bisectcarleft.internal.h" +#include "libc/mem/bisectcarleft.internal.h" #include "libc/assert.h" #include "libc/intrin/weaken.h" #include "libc/calls/calls.h" diff --git a/libc/log/countbranch_report.c b/libc/log/countbranch_report.c index 902b6b4bc..4ceab253d 100644 --- a/libc/log/countbranch_report.c +++ b/libc/log/countbranch_report.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/calls.h" #include "libc/intrin/kprintf.h" #include "libc/log/countbranch.h" diff --git a/libc/log/countexpr_report.c b/libc/log/countexpr_report.c index f3ffbec0b..96d07ff94 100644 --- a/libc/log/countexpr_report.c +++ b/libc/log/countexpr_report.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/calls/calls.h" #include "libc/intrin/kprintf.h" diff --git a/libc/mem/alg.h b/libc/mem/alg.h new file mode 100644 index 000000000..2522ab53b --- /dev/null +++ b/libc/mem/alg.h @@ -0,0 +1,50 @@ +#ifndef COSMOPOLITAN_LIBC_ALG_ALG_H_ +#define COSMOPOLITAN_LIBC_ALG_ALG_H_ +#if !(__ASSEMBLER__ + __LINKER__ + 0) +COSMOPOLITAN_C_START_ +/*───────────────────────────────────────────────────────────────────────────│─╗ +│ cosmopolitan § algorithms ─╬─│┼ +╚────────────────────────────────────────────────────────────────────────────│*/ + +void *bsearch(const void *, const void *, size_t, size_t, + int cmp(const void *, const void *)) + paramsnonnull() dontthrow nosideeffect; +void *bsearch_r(const void *, const void *, size_t, size_t, + int cmp(const void *, const void *, void *), void *) + paramsnonnull((1, 2, 5)) dontthrow nosideeffect; +void djbsort(int32_t *, size_t); +void qsort(void *, size_t, size_t, int (*)(const void *, const void *)) + paramsnonnull(); +void qsort_r(void *, size_t, size_t, + int cmp(const void *, const void *, void *), void *arg) + paramsnonnull((1, 4)); +int tarjan(int, const int (*)[2], int, int[], int[], int *) + paramsnonnull((2, 4)) nocallback dontthrow; + +#define __algalloc returnspointerwithnoaliases dontthrow nocallback dontdiscard + +char *replacestr(const char *, const char *, const char *) + paramsnonnull() __algalloc; +char16_t *replacestr16(const char16_t *, const char16_t *, const char16_t *) + paramsnonnull() __algalloc; +wchar_t *replacewcs(const wchar_t *, const wchar_t *, const wchar_t *) + paramsnonnull() __algalloc; + +char *concatstr(const char *, ...) nullterminated() paramsnonnull() __algalloc; +char16_t *concatstr16(const char16_t *, ...) nullterminated() + paramsnonnull() __algalloc; +wchar_t *concatwcs(const wchar_t *, ...) nullterminated() + paramsnonnull() __algalloc; + +int cmpsb(const void *, const void *); +int cmpub(const void *, const void *); +int cmpsw(const void *, const void *); +int cmpuw(const void *, const void *); +int cmpsl(const void *, const void *); +int cmpul(const void *, const void *); +int cmpsq(const void *, const void *); +int cmpuq(const void *, const void *); + +COSMOPOLITAN_C_END_ +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ +#endif /* COSMOPOLITAN_LIBC_ALG_ALG_H_ */ diff --git a/libc/mem/arraylist.internal.h b/libc/mem/arraylist.internal.h new file mode 100644 index 000000000..d40da7684 --- /dev/null +++ b/libc/mem/arraylist.internal.h @@ -0,0 +1,31 @@ +#ifndef COSMOPOLITAN_LIBC_ALG_ARRAYLIST_H_ +#define COSMOPOLITAN_LIBC_ALG_ARRAYLIST_H_ +#include "libc/intrin/bits.h" +#include "libc/mem/mem.h" +#include "libc/str/str.h" +#if !(__ASSEMBLER__ + __LINKER__ + 0) + +/* TODO(jart): DELETE */ + +#define append(ARRAYLIST, ITEM) concat((ARRAYLIST), (ITEM), 1) + +#ifndef concat +#define concat(ARRAYLIST, ITEM, COUNT) \ + ({ \ + autotype(ARRAYLIST) List = (ARRAYLIST); \ + autotype(&List->p[0]) Item = (ITEM); \ + size_t SizE = sizeof(*Item); \ + size_t Count = (COUNT); \ + size_t Idx = List->i; \ + if (Idx + Count < List->n || __grow(&List->p, &List->n, SizE, Count)) { \ + memcpy(&List->p[Idx], Item, SizE *Count); \ + List->i = Idx + Count; \ + } else { \ + Idx = -1UL; \ + } \ + (ssize_t)(Idx); \ + }) +#endif /* concat */ + +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ +#endif /* COSMOPOLITAN_LIBC_ALG_ARRAYLIST_H_ */ diff --git a/libc/mem/arraylist2.internal.h b/libc/mem/arraylist2.internal.h new file mode 100644 index 000000000..e86d3a402 --- /dev/null +++ b/libc/mem/arraylist2.internal.h @@ -0,0 +1,39 @@ +#ifndef COSMOPOLITAN_LIBC_ALG_ARRAYLIST2_H_ +#define COSMOPOLITAN_LIBC_ALG_ARRAYLIST2_H_ +#include "libc/mem/mem.h" +#include "libc/str/str.h" +#if !(__ASSEMBLER__ + __LINKER__ + 0) +COSMOPOLITAN_C_START_ + +/* TODO(jart): Fully develop these better macros. */ + +#define APPEND(LIST_P, LIST_I, LIST_N, ITEM) \ + CONCAT(LIST_P, LIST_I, LIST_N, ITEM, 1) + +#ifndef CONCAT +#define CONCAT(LIST_P, LIST_I, LIST_N, ITEM, COUNT) \ + ({ \ + autotype(LIST_P) ListP = (LIST_P); \ + autotype(LIST_I) ListI = (LIST_I); \ + autotype(LIST_N) ListN = (LIST_N); \ + typeof(&(*ListP)[0]) Item = (ITEM); \ + size_t SizE = sizeof(*Item); \ + size_t Count = (COUNT); \ + ssize_t Entry = -1; \ + /* NOTE: We use `<` to guarantee one additional slot */ \ + /* grow() will memset(0) extended memory, thus */ \ + /* you get a nul-terminator for free sometimes */ \ + /* the exception is if you list.i=0 and re-use */ \ + /* so you need concat(...); list.p[list.i++]=0 */ \ + if (*ListI + Count < *ListN || __grow(ListP, ListN, SizE, Count)) { \ + memcpy(&(*ListP)[*ListI], Item, (SizE) * (Count)); \ + Entry = *ListI; \ + *ListI += Count; /* happens after copy in case signal */ \ + } \ + Entry; \ + }) +#endif /* CONCAT */ + +COSMOPOLITAN_C_END_ +#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ +#endif /* COSMOPOLITAN_LIBC_ALG_ARRAYLIST2_H_ */ diff --git a/libc/alg/bisect.internal.h b/libc/mem/bisect.internal.h similarity index 100% rename from libc/alg/bisect.internal.h rename to libc/mem/bisect.internal.h diff --git a/libc/alg/bisectcarleft.internal.h b/libc/mem/bisectcarleft.internal.h similarity index 100% rename from libc/alg/bisectcarleft.internal.h rename to libc/mem/bisectcarleft.internal.h diff --git a/libc/alg/bsearch.c b/libc/mem/bsearch.c similarity index 97% rename from libc/alg/bsearch.c rename to libc/mem/bsearch.c index 3fa99ed74..0075d20a3 100644 --- a/libc/alg/bsearch.c +++ b/libc/mem/bsearch.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/bisect.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/bisect.internal.h" /** * Searches sorted array for exact item in logarithmic time. diff --git a/libc/alg/bsearch_r.c b/libc/mem/bsearch_r.c similarity index 97% rename from libc/alg/bsearch_r.c rename to libc/mem/bsearch_r.c index c3d28d60e..b0e8e64d7 100644 --- a/libc/alg/bsearch_r.c +++ b/libc/mem/bsearch_r.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/bisect.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/bisect.internal.h" /** * Searches sorted array for exact item in logarithmic time. diff --git a/libc/alg/critbit0.h b/libc/mem/critbit0.h similarity index 100% rename from libc/alg/critbit0.h rename to libc/mem/critbit0.h diff --git a/libc/alg/critbit0_allprefixed.c b/libc/mem/critbit0_allprefixed.c similarity index 98% rename from libc/alg/critbit0_allprefixed.c rename to libc/mem/critbit0_allprefixed.c index d8396fdc1..6a22ae30e 100644 --- a/libc/alg/critbit0_allprefixed.c +++ b/libc/mem/critbit0_allprefixed.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" -#include "libc/alg/internal.h" +#include "libc/mem/critbit0.h" +#include "libc/mem/internal.h" #include "libc/str/str.h" static intptr_t allprefixed_traverse(unsigned char *top, diff --git a/libc/alg/critbit0_clear.c b/libc/mem/critbit0_clear.c similarity index 97% rename from libc/alg/critbit0_clear.c rename to libc/mem/critbit0_clear.c index 0482547cd..714dbe8ad 100644 --- a/libc/alg/critbit0_clear.c +++ b/libc/mem/critbit0_clear.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" -#include "libc/alg/internal.h" +#include "libc/mem/critbit0.h" +#include "libc/mem/internal.h" #include "libc/mem/mem.h" static void critbit0_clear_traverse(void *top) { diff --git a/libc/alg/critbit0_contains.c b/libc/mem/critbit0_contains.c similarity index 97% rename from libc/alg/critbit0_contains.c rename to libc/mem/critbit0_contains.c index 9a95311e4..3b05af53b 100644 --- a/libc/alg/critbit0_contains.c +++ b/libc/mem/critbit0_contains.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" -#include "libc/alg/internal.h" +#include "libc/mem/critbit0.h" +#include "libc/mem/internal.h" #include "libc/str/str.h" /** diff --git a/libc/alg/critbit0_delete.c b/libc/mem/critbit0_delete.c similarity index 97% rename from libc/alg/critbit0_delete.c rename to libc/mem/critbit0_delete.c index 868016db9..d83cf4321 100644 --- a/libc/alg/critbit0_delete.c +++ b/libc/mem/critbit0_delete.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" -#include "libc/alg/internal.h" +#include "libc/mem/critbit0.h" +#include "libc/mem/internal.h" #include "libc/mem/mem.h" #include "libc/str/str.h" diff --git a/libc/alg/critbit0_emplace.c b/libc/mem/critbit0_emplace.c similarity index 98% rename from libc/alg/critbit0_emplace.c rename to libc/mem/critbit0_emplace.c index b010df590..6c1badd7b 100644 --- a/libc/alg/critbit0_emplace.c +++ b/libc/mem/critbit0_emplace.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" -#include "libc/alg/internal.h" +#include "libc/mem/critbit0.h" +#include "libc/mem/internal.h" #include "libc/mem/mem.h" #include "libc/str/str.h" diff --git a/libc/alg/critbit0_get.c b/libc/mem/critbit0_get.c similarity index 97% rename from libc/alg/critbit0_get.c rename to libc/mem/critbit0_get.c index a395b2e4e..ffb639369 100644 --- a/libc/alg/critbit0_get.c +++ b/libc/mem/critbit0_get.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" -#include "libc/alg/internal.h" +#include "libc/mem/critbit0.h" +#include "libc/mem/internal.h" #include "libc/str/str.h" /** diff --git a/libc/alg/critbit0_insert.c b/libc/mem/critbit0_insert.c similarity index 97% rename from libc/alg/critbit0_insert.c rename to libc/mem/critbit0_insert.c index 0b5cc1904..e65c3ba23 100644 --- a/libc/alg/critbit0_insert.c +++ b/libc/mem/critbit0_insert.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" -#include "libc/alg/internal.h" +#include "libc/mem/critbit0.h" +#include "libc/mem/internal.h" #include "libc/mem/mem.h" #include "libc/str/str.h" diff --git a/libc/mem/internal.h b/libc/mem/internal.h index c6fb3ad3b..d3517779d 100644 --- a/libc/mem/internal.h +++ b/libc/mem/internal.h @@ -3,6 +3,12 @@ #if !(__ASSEMBLER__ + __LINKER__ + 0) COSMOPOLITAN_C_START_ +struct CritbitNode { + void *child[2]; + uint32_t byte; + unsigned otherbits; +}; + int PutEnvImpl(char *, bool) hidden; void __freeenv(void *) hidden; diff --git a/libc/mem/putenv.c b/libc/mem/putenv.c index be407b1b9..4b10da970 100644 --- a/libc/mem/putenv.c +++ b/libc/mem/putenv.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/strace.internal.h" #include "libc/dce.h" #include "libc/macros.internal.h" diff --git a/libc/alg/replacestr.c b/libc/mem/replacestr.c similarity index 97% rename from libc/alg/replacestr.c rename to libc/mem/replacestr.c index abad4dfb8..6a9881cb1 100644 --- a/libc/alg/replacestr.c +++ b/libc/mem/replacestr.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/intrin/safemacros.internal.h" #include "libc/macros.internal.h" #include "libc/str/str.h" diff --git a/libc/alg/reverse.internal.h b/libc/mem/reverse.internal.h similarity index 100% rename from libc/alg/reverse.internal.h rename to libc/mem/reverse.internal.h diff --git a/libc/alg/shuffle.internal.h b/libc/mem/shuffle.internal.h similarity index 100% rename from libc/alg/shuffle.internal.h rename to libc/mem/shuffle.internal.h diff --git a/libc/alg/tarjan.c b/libc/mem/tarjan.c similarity index 99% rename from libc/alg/tarjan.c rename to libc/mem/tarjan.c index d7109e1de..9d27ed213 100644 --- a/libc/alg/tarjan.c +++ b/libc/mem/tarjan.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/limits.h" #include "libc/macros.internal.h" diff --git a/libc/rand/rand.mk b/libc/rand/rand.mk deleted file mode 100755 index e69de29bb..000000000 diff --git a/libc/runtime/opensymboltable.greg.c b/libc/runtime/opensymboltable.greg.c index ed0aa0901..0ab75a744 100644 --- a/libc/runtime/opensymboltable.greg.c +++ b/libc/runtime/opensymboltable.greg.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/calls/calls.h" diff --git a/libc/stdio/fflush_unlocked.c b/libc/stdio/fflush_unlocked.c index a24f3dbf4..e98fb6b41 100644 --- a/libc/stdio/fflush_unlocked.c +++ b/libc/stdio/fflush_unlocked.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/arraylist.internal.h" #include "libc/intrin/bits.h" #include "libc/intrin/pushpop.h" #include "libc/calls/calls.h" diff --git a/libc/stdio/strfry.c b/libc/stdio/strfry.c index a91b30df2..048a67ef2 100644 --- a/libc/stdio/strfry.c +++ b/libc/stdio/strfry.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/shuffle.internal.h" +#include "libc/mem/shuffle.internal.h" #include "libc/stdio/rand.h" #include "libc/str/str.h" diff --git a/libc/str/djbsort.c b/libc/str/djbsort.c index 477097ec7..35ea38260 100644 --- a/libc/str/djbsort.c +++ b/libc/str/djbsort.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/dce.h" #include "libc/intrin/asan.internal.h" #include "libc/nexgen32e/bsr.h" diff --git a/libc/str/getx86processormodel.c b/libc/str/getx86processormodel.c index 568e70776..45407aef6 100644 --- a/libc/str/getx86processormodel.c +++ b/libc/str/getx86processormodel.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/bisect.internal.h" +#include "libc/mem/bisect.internal.h" #include "libc/nexgen32e/x86info.h" static int CmpX86ProcModelKey(const struct X86ProcessorModel *a, diff --git a/libc/str/qsort.c b/libc/str/qsort.c index d0f112e07..7134fe2fa 100644 --- a/libc/str/qsort.c +++ b/libc/str/qsort.c @@ -21,7 +21,7 @@ │ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS │ │ IN THE SOFTWARE. │ └─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/nexgen32e/bsf.h" #include "libc/str/str.h" diff --git a/libc/testlib/testlib.mk b/libc/testlib/testlib.mk index 81c19747d..af6ecf985 100644 --- a/libc/testlib/testlib.mk +++ b/libc/testlib/testlib.mk @@ -93,7 +93,6 @@ LIBC_TESTLIB_A_OBJS = \ $(LIBC_TESTLIB_A_ASSETS:%=o/$(MODE)/%.zip.o) LIBC_TESTLIB_A_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/libc/unicode/unicode.mk b/libc/unicode/unicode.mk index 8d83757b0..a9ba5f79b 100644 --- a/libc/unicode/unicode.mk +++ b/libc/unicode/unicode.mk @@ -29,10 +29,8 @@ LIBC_UNICODE_A_CHECKS = \ LIBC_UNICODE_A_DIRECTDEPS = \ LIBC_INTRIN \ LIBC_NEXGEN32E \ - LIBC_RUNTIME \ LIBC_STR \ - LIBC_STUBS \ - LIBC_SYSV + LIBC_STUBS LIBC_UNICODE_A_DEPS := \ $(call uniq,$(foreach x,$(LIBC_UNICODE_A_DIRECTDEPS),$($(x)))) diff --git a/libc/x/filecmp.c b/libc/x/filecmp.c index 1c37aa3da..0acada13c 100644 --- a/libc/x/filecmp.c +++ b/libc/x/filecmp.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/calls.h" #include "libc/errno.h" #include "libc/macros.internal.h" diff --git a/net/http/parsehttpmessage.c b/net/http/parsehttpmessage.c index dd03b944b..39e684da7 100644 --- a/net/http/parsehttpmessage.c +++ b/net/http/parsehttpmessage.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist.internal.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/limits.h" diff --git a/test/libc/alg/test.mk b/test/libc/alg/test.mk deleted file mode 100644 index 12574fff2..000000000 --- a/test/libc/alg/test.mk +++ /dev/null @@ -1,64 +0,0 @@ -#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐ -#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘ - -PKGS += TEST_LIBC_ALG - -TEST_LIBC_ALG_SRCS := $(wildcard test/libc/alg/*.c) -TEST_LIBC_ALG_SRCS_TEST = $(filter %_test.c,$(TEST_LIBC_ALG_SRCS)) - -TEST_LIBC_ALG_OBJS = \ - $(TEST_LIBC_ALG_SRCS:%.c=o/$(MODE)/%.o) - -TEST_LIBC_ALG_COMS = \ - $(TEST_LIBC_ALG_SRCS:%.c=o/$(MODE)/%.com) - -TEST_LIBC_ALG_BINS = \ - $(TEST_LIBC_ALG_COMS) \ - $(TEST_LIBC_ALG_COMS:%=%.dbg) - -TEST_LIBC_ALG_TESTS = $(TEST_LIBC_ALG_SRCS_TEST:%.c=o/$(MODE)/%.com.ok) - -TEST_LIBC_ALG_CHECKS = \ - $(TEST_LIBC_ALG_SRCS_TEST:%.c=o/$(MODE)/%.com.runs) - -TEST_LIBC_ALG_DIRECTDEPS = \ - LIBC_ALG \ - LIBC_FMT \ - LIBC_INTRIN \ - LIBC_LOG \ - LIBC_MEM \ - LIBC_NEXGEN32E \ - LIBC_RUNTIME \ - LIBC_STDIO \ - LIBC_STR \ - LIBC_STUBS \ - LIBC_SYSV \ - LIBC_TESTLIB \ - LIBC_X - -TEST_LIBC_ALG_DEPS := \ - $(call uniq,$(foreach x,$(TEST_LIBC_ALG_DIRECTDEPS),$($(x)))) - -o/$(MODE)/test/libc/alg/alg.pkg: \ - $(TEST_LIBC_ALG_OBJS) \ - $(foreach x,$(TEST_LIBC_ALG_DIRECTDEPS),$($(x)_A).pkg) - -o/$(MODE)/test/libc/alg/%.com.dbg: \ - $(TEST_LIBC_ALG_DEPS) \ - o/$(MODE)/test/libc/alg/%.o \ - o/$(MODE)/test/libc/alg/alg.pkg \ - $(LIBC_TESTMAIN) \ - $(CRT) \ - $(APE_NO_MODIFY_SELF) - @$(APELINK) - -$(TEST_LIBC_ALG_OBJS): test/libc/alg/test.mk - -$(TEST_LIBC_ALG_OBJS): private \ - DEFAULT_CCFLAGS += \ - -fno-builtin - -.PHONY: o/$(MODE)/test/libc/alg -o/$(MODE)/test/libc/alg: \ - $(TEST_LIBC_ALG_BINS) \ - $(TEST_LIBC_ALG_CHECKS) diff --git a/test/libc/fmt/test.mk b/test/libc/fmt/test.mk index 528d29508..3b081db2b 100644 --- a/test/libc/fmt/test.mk +++ b/test/libc/fmt/test.mk @@ -18,7 +18,6 @@ TEST_LIBC_FMT_CHECKS = \ $(TEST_LIBC_FMT_SRCS_TEST:%.c=o/$(MODE)/%.com.runs) TEST_LIBC_FMT_DIRECTDEPS = \ - LIBC_ALG \ LIBC_FMT \ LIBC_INTRIN \ LIBC_LOG \ diff --git a/test/libc/alg/arraylist_test.c b/test/libc/mem/arraylist_test.c similarity index 98% rename from test/libc/alg/arraylist_test.c rename to test/libc/mem/arraylist_test.c index 5d12ac1a6..ef007404b 100644 --- a/test/libc/alg/arraylist_test.c +++ b/test/libc/mem/arraylist_test.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist.internal.h" #include "libc/log/libfatal.internal.h" #include "libc/mem/mem.h" #include "libc/runtime/runtime.h" diff --git a/test/libc/alg/bisectcarleft_test.c b/test/libc/mem/bisectcarleft_test.c similarity index 97% rename from test/libc/alg/bisectcarleft_test.c rename to test/libc/mem/bisectcarleft_test.c index 80455c87b..c42ff3ac0 100644 --- a/test/libc/alg/bisectcarleft_test.c +++ b/test/libc/mem/bisectcarleft_test.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/bisectcarleft.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/bisectcarleft.internal.h" #include "libc/intrin/bits.h" #include "libc/macros.internal.h" #include "libc/runtime/runtime.h" diff --git a/test/libc/alg/comparator_test.c b/test/libc/mem/comparator_test.c similarity index 99% rename from test/libc/alg/comparator_test.c rename to test/libc/mem/comparator_test.c index f45e485c0..8bfc0db52 100644 --- a/test/libc/alg/comparator_test.c +++ b/test/libc/mem/comparator_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/mem/mem.h" #include "libc/str/str.h" diff --git a/test/libc/alg/critbit0_test.c b/test/libc/mem/critbit0_test.c similarity index 99% rename from test/libc/alg/critbit0_test.c rename to test/libc/mem/critbit0_test.c index e1388d990..99651324a 100644 --- a/test/libc/alg/critbit0_test.c +++ b/test/libc/mem/critbit0_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" +#include "libc/mem/critbit0.h" #include "libc/intrin/bits.h" #include "libc/mem/mem.h" #include "libc/runtime/runtime.h" diff --git a/test/libc/alg/djbsort_test.c b/test/libc/mem/djbsort_test.c similarity index 99% rename from test/libc/alg/djbsort_test.c rename to test/libc/mem/djbsort_test.c index d7255420b..394ea8635 100644 --- a/test/libc/alg/djbsort_test.c +++ b/test/libc/mem/djbsort_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/limits.h" #include "libc/log/log.h" #include "libc/macros.internal.h" diff --git a/test/libc/alg/replacestr_test.c b/test/libc/mem/replacestr_test.c similarity index 98% rename from test/libc/alg/replacestr_test.c rename to test/libc/mem/replacestr_test.c index 804bc03be..1cd6afc20 100644 --- a/test/libc/alg/replacestr_test.c +++ b/test/libc/mem/replacestr_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/errno.h" #include "libc/runtime/gc.internal.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/alg/replacestr_test.inc b/test/libc/mem/replacestr_test.inc similarity index 100% rename from test/libc/alg/replacestr_test.inc rename to test/libc/mem/replacestr_test.inc diff --git a/test/libc/alg/reverse_test.c b/test/libc/mem/reverse_test.c similarity index 98% rename from test/libc/alg/reverse_test.c rename to test/libc/mem/reverse_test.c index 6803d8db7..7a7140f8e 100644 --- a/test/libc/alg/reverse_test.c +++ b/test/libc/mem/reverse_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/reverse.internal.h" +#include "libc/mem/reverse.internal.h" #include "libc/dce.h" #include "libc/macros.internal.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/alg/tarjan_test.c b/test/libc/mem/tarjan_test.c similarity index 99% rename from test/libc/alg/tarjan_test.c rename to test/libc/mem/tarjan_test.c index 4469dd32a..e4dfe6a84 100644 --- a/test/libc/alg/tarjan_test.c +++ b/test/libc/mem/tarjan_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/macros.internal.h" #include "libc/testlib/testlib.h" diff --git a/test/libc/nexgen32e/test.mk b/test/libc/nexgen32e/test.mk index 20915076a..14b546476 100644 --- a/test/libc/nexgen32e/test.mk +++ b/test/libc/nexgen32e/test.mk @@ -25,7 +25,6 @@ TEST_LIBC_NEXGEN32E_CHECKS = \ $(TEST_LIBC_NEXGEN32E_SRCS_TEST:%.c=o/$(MODE)/%.com.runs) TEST_LIBC_NEXGEN32E_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/test/libc/runtime/test.mk b/test/libc/runtime/test.mk index 8a612ec4a..bbd0300f8 100644 --- a/test/libc/runtime/test.mk +++ b/test/libc/runtime/test.mk @@ -23,7 +23,6 @@ TEST_LIBC_RUNTIME_CHECKS = \ $(TEST_LIBC_RUNTIME_SRCS_TEST:%.c=o/$(MODE)/%.com.runs) TEST_LIBC_RUNTIME_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/test/libc/str/longsort_test.c b/test/libc/str/longsort_test.c index bdc007e8c..77586f621 100644 --- a/test/libc/str/longsort_test.c +++ b/test/libc/str/longsort_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/mem/mem.h" #include "libc/stdio/rand.h" #include "libc/runtime/gc.internal.h" diff --git a/test/libc/str/memmem_test.c b/test/libc/str/memmem_test.c index 2134a8ab3..409988c8a 100644 --- a/test/libc/str/memmem_test.c +++ b/test/libc/str/memmem_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/intrin/likely.h" #include "libc/mem/mem.h" diff --git a/test/libc/str/qsort_test.c b/test/libc/str/qsort_test.c index 63bfb2d1f..58308489e 100644 --- a/test/libc/str/qsort_test.c +++ b/test/libc/str/qsort_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/macros.internal.h" #include "libc/mem/mem.h" diff --git a/test/libc/str/strcasestr_test.c b/test/libc/str/strcasestr_test.c index 7729ff5a9..174f09975 100644 --- a/test/libc/str/strcasestr_test.c +++ b/test/libc/str/strcasestr_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/dce.h" #include "libc/mem/mem.h" diff --git a/test/libc/str/strstr_test.c b/test/libc/str/strstr_test.c index a4372246f..6817abf21 100644 --- a/test/libc/str/strstr_test.c +++ b/test/libc/str/strstr_test.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/dce.h" #include "libc/mem/mem.h" diff --git a/test/libc/str/test.mk b/test/libc/str/test.mk index e786f7095..d8269191d 100644 --- a/test/libc/str/test.mk +++ b/test/libc/str/test.mk @@ -31,7 +31,6 @@ TEST_LIBC_STR_CHECKS = \ $(TEST_LIBC_STR_SRCS_TEST_CC:%.cc=o/$(MODE)/%.com.runs) TEST_LIBC_STR_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/test/libc/test.mk b/test/libc/test.mk index 02b30e514..ec2c0eca5 100644 --- a/test/libc/test.mk +++ b/test/libc/test.mk @@ -3,8 +3,6 @@ .PHONY: o/$(MODE)/test/libc o/$(MODE)/test/libc: \ - o/$(MODE)/test/libc/alg \ - o/$(MODE)/test/libc/bits \ o/$(MODE)/test/libc/calls \ o/$(MODE)/test/libc/dns \ o/$(MODE)/test/libc/fmt \ @@ -12,7 +10,6 @@ o/$(MODE)/test/libc: \ o/$(MODE)/test/libc/log \ o/$(MODE)/test/libc/mem \ o/$(MODE)/test/libc/nexgen32e \ - o/$(MODE)/test/libc/rand \ o/$(MODE)/test/libc/release \ o/$(MODE)/test/libc/runtime \ o/$(MODE)/test/libc/sock \ diff --git a/test/tool/viz/lib/test.mk b/test/tool/viz/lib/test.mk index 491d3d36c..54a639c32 100644 --- a/test/tool/viz/lib/test.mk +++ b/test/tool/viz/lib/test.mk @@ -24,7 +24,6 @@ TEST_TOOL_VIZ_LIB_CHECKS = \ TEST_TOOL_VIZ_LIB_DIRECTDEPS = \ DSP_MPEG \ - LIBC_ALG \ LIBC_FMT \ LIBC_INTRIN \ LIBC_LOG \ diff --git a/third_party/chibicc/chibicc.mk b/third_party/chibicc/chibicc.mk index 2d6e8eaaf..6702c71ca 100644 --- a/third_party/chibicc/chibicc.mk +++ b/third_party/chibicc/chibicc.mk @@ -43,7 +43,6 @@ THIRD_PARTY_CHIBICC_A_CHECKS = \ $(THIRD_PARTY_CHIBICC_A_HDRS:%=o/$(MODE)/%.ok) THIRD_PARTY_CHIBICC_A_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/third_party/chibicc/dox2.c b/third_party/chibicc/dox2.c index 64cd55eec..aef3baf57 100644 --- a/third_party/chibicc/dox2.c +++ b/third_party/chibicc/dox2.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/sysv/consts/map.h" #include "libc/sysv/consts/o.h" diff --git a/third_party/chibicc/printast.c b/third_party/chibicc/printast.c index 4d17b8b44..38b42591b 100644 --- a/third_party/chibicc/printast.c +++ b/third_party/chibicc/printast.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "third_party/chibicc/chibicc.h" static const char kBoolStr[2][6] = {"false", "true"}; diff --git a/third_party/finger/sprint.c b/third_party/finger/sprint.c index 1f5c1c6f0..b3c8ee36d 100644 --- a/third_party/finger/sprint.c +++ b/third_party/finger/sprint.c @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/mem/mem.h" #include "libc/runtime/runtime.h" #include "libc/str/str.h" diff --git a/third_party/linenoise/linenoise.c b/third_party/linenoise/linenoise.c index 0c50ffc61..e0e7e281d 100644 --- a/third_party/linenoise/linenoise.c +++ b/third_party/linenoise/linenoise.c @@ -124,7 +124,7 @@ │ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/calls/calls.h" diff --git a/third_party/lua/lrepl.c b/third_party/lua/lrepl.c index 1e8390c6d..d99a5998c 100644 --- a/third_party/lua/lrepl.c +++ b/third_party/lua/lrepl.c @@ -26,7 +26,7 @@ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ #define lua_c -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/calls.h" #include "libc/calls/struct/sigaction.h" #include "libc/errno.h" diff --git a/third_party/lua/lua.mk b/third_party/lua/lua.mk index 7c9497e82..76704abee 100644 --- a/third_party/lua/lua.mk +++ b/third_party/lua/lua.mk @@ -116,7 +116,6 @@ THIRD_PARTY_LUA_A_OBJS = \ $(THIRD_PARTY_LUA_A_SRCS:%.c=o/$(MODE)/%.o) THIRD_PARTY_LUA_A_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/third_party/lua/luaencodejsondata.c b/third_party/lua/luaencodejsondata.c index a2d7be164..ffedb22f8 100644 --- a/third_party/lua/luaencodejsondata.c +++ b/third_party/lua/luaencodejsondata.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" +#include "libc/mem/critbit0.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/intrin/likely.h" diff --git a/third_party/lua/luaencodeluadata.c b/third_party/lua/luaencodeluadata.c index bcd613e87..24da0aa23 100644 --- a/third_party/lua/luaencodeluadata.c +++ b/third_party/lua/luaencodeluadata.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/critbit0.h" +#include "libc/mem/critbit0.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/fmt/itoa.h" diff --git a/third_party/make/ar.c b/third_party/make/ar.c index f55738e6e..9bf476220 100644 --- a/third_party/make/ar.c +++ b/third_party/make/ar.c @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "third_party/make/makeint.inc" /**/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "third_party/make/dep.h" #include "third_party/make/filedef.h" #include "third_party/musl/fnmatch.h" diff --git a/third_party/make/makeint.inc b/third_party/make/makeint.inc index 7acb12a0f..eea604cfa 100644 --- a/third_party/make/makeint.inc +++ b/third_party/make/makeint.inc @@ -14,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/calls/calls.h" #include "libc/calls/makedev.h" diff --git a/third_party/musl/crypt_blowfish.c b/third_party/musl/crypt_blowfish.c index db6b9a394..597e402b8 100644 --- a/third_party/musl/crypt_blowfish.c +++ b/third_party/musl/crypt_blowfish.c @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/limits.h" #include "libc/literal.h" #include "libc/mem/mem.h" diff --git a/third_party/musl/crypt_des.c b/third_party/musl/crypt_des.c index 75d2f178f..3b25dc9dd 100644 --- a/third_party/musl/crypt_des.c +++ b/third_party/musl/crypt_des.c @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/limits.h" #include "libc/literal.h" #include "libc/str/str.h" diff --git a/third_party/musl/crypt_md5.c b/third_party/musl/crypt_md5.c index 37ac97385..27ca95795 100644 --- a/third_party/musl/crypt_md5.c +++ b/third_party/musl/crypt_md5.c @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/limits.h" #include "libc/literal.h" #include "libc/str/str.h" diff --git a/third_party/musl/crypt_sha256.c b/third_party/musl/crypt_sha256.c index 9e3b35f19..556d6555d 100644 --- a/third_party/musl/crypt_sha256.c +++ b/third_party/musl/crypt_sha256.c @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/calls.h" #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" diff --git a/third_party/musl/crypt_sha512.c b/third_party/musl/crypt_sha512.c index 82e95194f..39c7525b8 100644 --- a/third_party/musl/crypt_sha512.c +++ b/third_party/musl/crypt_sha512.c @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/calls.h" #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" diff --git a/third_party/musl/encrypt.c b/third_party/musl/encrypt.c index e20a8342e..c401a5021 100644 --- a/third_party/musl/encrypt.c +++ b/third_party/musl/encrypt.c @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/calls.h" #include "libc/calls/weirdtypes.h" #include "libc/fmt/conv.h" diff --git a/third_party/musl/glob.c b/third_party/musl/glob.c index b0882473d..eaf30665c 100644 --- a/third_party/musl/glob.c +++ b/third_party/musl/glob.c @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/calls.h" #include "libc/calls/struct/dirent.h" #include "libc/calls/struct/stat.h" diff --git a/third_party/musl/musl.mk b/third_party/musl/musl.mk index 446d5283a..2bd943f16 100644 --- a/third_party/musl/musl.mk +++ b/third_party/musl/musl.mk @@ -17,7 +17,6 @@ THIRD_PARTY_MUSL_A_OBJS = \ $(THIRD_PARTY_MUSL_A_SRCS:%.c=o/$(MODE)/%.o) THIRD_PARTY_MUSL_A_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_INTRIN \ LIBC_FMT \ diff --git a/third_party/python/Modules/posixmodule.c b/third_party/python/Modules/posixmodule.c index b54e3124b..8d05b99ab 100644 --- a/third_party/python/Modules/posixmodule.c +++ b/third_party/python/Modules/posixmodule.c @@ -5,7 +5,7 @@ │ https://docs.python.org/3/license.html │ ╚─────────────────────────────────────────────────────────────────────────────*/ #define PY_SSIZE_T_CLEAN -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/intrin/weaken.h" #include "libc/calls/calls.h" diff --git a/third_party/python/Python/import.c b/third_party/python/Python/import.c index 262b98798..3c968d833 100644 --- a/third_party/python/Python/import.c +++ b/third_party/python/Python/import.c @@ -4,7 +4,7 @@ │ Python 3 │ │ https://docs.python.org/3/license.html │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/calls/calls.h" #include "libc/calls/struct/stat.h" diff --git a/third_party/python/python.mk b/third_party/python/python.mk index f87b0b2f3..608a09d94 100644 --- a/third_party/python/python.mk +++ b/third_party/python/python.mk @@ -441,7 +441,6 @@ THIRD_PARTY_PYTHON_STAGE1_A_SRCS = \ THIRD_PARTY_PYTHON_STAGE1_A_DIRECTDEPS = \ DSP_SCALE \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ @@ -1120,7 +1119,6 @@ THIRD_PARTY_PYTHON_STAGE2_A_DATA = \ THIRD_PARTY_PYTHON_STAGE2_A_DIRECTDEPS = \ DSP_CORE \ - LIBC_ALG \ LIBC_CALLS \ LIBC_DNS \ LIBC_FMT \ diff --git a/third_party/quickjs/quickjs.mk b/third_party/quickjs/quickjs.mk index 4c58a3105..7f21dcd2b 100644 --- a/third_party/quickjs/quickjs.mk +++ b/third_party/quickjs/quickjs.mk @@ -70,7 +70,6 @@ THIRD_PARTY_QUICKJS_A_OBJS = \ $(THIRD_PARTY_QUICKJS_A_SRCS:%.c=o/$(MODE)/%.o) THIRD_PARTY_QUICKJS_A_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/third_party/quickjs/run-test262.c b/third_party/quickjs/run-test262.c index cfe32dd0a..0ce7d24da 100644 --- a/third_party/quickjs/run-test262.c +++ b/third_party/quickjs/run-test262.c @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/struct/stat.h" #include "libc/calls/weirdtypes.h" #include "libc/fmt/conv.h" diff --git a/third_party/quickjs/unicode_gen.c b/third_party/quickjs/unicode_gen.c index cd03e3c8c..d5d956c41 100644 --- a/third_party/quickjs/unicode_gen.c +++ b/third_party/quickjs/unicode_gen.c @@ -22,7 +22,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/fmt/conv.h" #include "libc/fmt/fmt.h" diff --git a/third_party/regex/regcomp.c b/third_party/regex/regcomp.c index a2ed7b029..acbacf19e 100644 --- a/third_party/regex/regcomp.c +++ b/third_party/regex/regcomp.c @@ -56,6 +56,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ +#include "libc/mem/alg.h" #include "third_party/regex/tre.inc" #define CHARCLASS_NAME_MAX 14 diff --git a/third_party/regex/tre.inc b/third_party/regex/tre.inc index 0e9aeffde..b399ba7af 100644 --- a/third_party/regex/tre.inc +++ b/third_party/regex/tre.inc @@ -56,7 +56,7 @@ │ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/mem/mem.h" #include "libc/str/str.h" diff --git a/third_party/sqlite3/fts3_write.c b/third_party/sqlite3/fts3_write.c index fa5aae5fe..1cb3101d2 100644 --- a/third_party/sqlite3/fts3_write.c +++ b/third_party/sqlite3/fts3_write.c @@ -21,7 +21,7 @@ #include "third_party/sqlite3/fts3Int.inc" #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/mem/mem.h" #include "libc/stdio/stdio.h" diff --git a/third_party/sqlite3/sqlite3.mk b/third_party/sqlite3/sqlite3.mk index 9076f84a4..649f7125c 100644 --- a/third_party/sqlite3/sqlite3.mk +++ b/third_party/sqlite3/sqlite3.mk @@ -43,7 +43,6 @@ THIRD_PARTY_SQLITE3_A_CHECKS = \ $(THIRD_PARTY_SQLITE3_A_HDRS:%=o/$(MODE)/%.ok) THIRD_PARTY_SQLITE3_A_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/third_party/stb/stb.mk b/third_party/stb/stb.mk index a56dc38ba..36df433bd 100644 --- a/third_party/stb/stb.mk +++ b/third_party/stb/stb.mk @@ -26,7 +26,6 @@ THIRD_PARTY_STB_A_OBJS = \ THIRD_PARTY_STB_A_DIRECTDEPS = \ DSP_CORE \ - LIBC_ALG \ LIBC_FMT \ LIBC_INTRIN \ LIBC_LOG \ diff --git a/third_party/stb/stb_rect_pack.c b/third_party/stb/stb_rect_pack.c index 4842bf4eb..d5a858dcb 100644 --- a/third_party/stb/stb_rect_pack.c +++ b/third_party/stb/stb_rect_pack.c @@ -25,7 +25,7 @@ │ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │ │ │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/dce.h" #include "third_party/stb/stb_rect_pack.h" diff --git a/third_party/stb/stb_vorbis.c b/third_party/stb/stb_vorbis.c index 4149aabe0..eda28c57c 100644 --- a/third_party/stb/stb_vorbis.c +++ b/third_party/stb/stb_vorbis.c @@ -32,7 +32,7 @@ // manxorist@github saga musix github:infatum // Timur Gagiev Maxwell Koo // -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/calls/calls.h" diff --git a/third_party/tidy/tidy.c b/third_party/tidy/tidy.c index feb0abd59..d445a90ec 100644 --- a/third_party/tidy/tidy.c +++ b/third_party/tidy/tidy.c @@ -24,7 +24,7 @@ #include "third_party/tidy/tidybuffio.h" #include "libc/assert.h" #include "libc/fmt/fmt.h" -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/str/str.h" #include "libc/runtime/runtime.h" #include "libc/mem/mem.h" diff --git a/third_party/unzip/extract.c b/third_party/unzip/extract.c index 32f39cda1..b31dc0bf4 100644 --- a/third_party/unzip/extract.c +++ b/third_party/unzip/extract.c @@ -38,7 +38,7 @@ #include "third_party/unzip/unzip.h" #include "third_party/unzip/globals.h" #include "third_party/unzip/crc32.h" -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/log/log.h" #include "third_party/unzip/crypt.h" diff --git a/third_party/zip/fileio.c b/third_party/zip/fileio.c index 84f6c4a85..a9e5a0c2b 100644 --- a/third_party/zip/fileio.c +++ b/third_party/zip/fileio.c @@ -18,7 +18,7 @@ #include "libc/calls/struct/stat.macros.h" #include "third_party/zip/crc32.h" #include "libc/fmt/fmt.h" -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/stdio/temp.h" #include "libc/time/time.h" #include "libc/time/struct/tm.h" diff --git a/third_party/zip/zipfile.c b/third_party/zip/zipfile.c index bc1ad3225..97f247a07 100644 --- a/third_party/zip/zipfile.c +++ b/third_party/zip/zipfile.c @@ -22,7 +22,7 @@ /* for realloc 2/6/2005 EG */ #include "libc/mem/mem.h" -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/errno.h" /* for toupper() */ diff --git a/third_party/zip/zipnote.c b/third_party/zip/zipnote.c index c8cd2d390..da02bd56f 100644 --- a/third_party/zip/zipnote.c +++ b/third_party/zip/zipnote.c @@ -23,7 +23,7 @@ #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" #include "libc/fmt/conv.h" -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/log/log.h" #include "libc/calls/struct/sigaction.h" #include "libc/sysv/consts/sig.h" diff --git a/third_party/zip/zipsplit.c b/third_party/zip/zipsplit.c index 3f2077bdc..be53bc299 100644 --- a/third_party/zip/zipsplit.c +++ b/third_party/zip/zipsplit.c @@ -23,7 +23,7 @@ #include "libc/calls/calls.h" #include "libc/fmt/fmt.h" #include "libc/fmt/conv.h" -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/calls/struct/sigaction.h" #include "libc/sysv/consts/sig.h" #include "libc/log/log.h" diff --git a/tool/build/ar.c b/tool/build/ar.c index ef444e20c..a27840501 100644 --- a/tool/build/ar.c +++ b/tool/build/ar.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/intrin/safemacros.internal.h" diff --git a/tool/build/blinkenlights.c b/tool/build/blinkenlights.c index 449baccc9..541bff42f 100644 --- a/tool/build/blinkenlights.c +++ b/tool/build/blinkenlights.c @@ -18,7 +18,7 @@ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "dsp/scale/cdecimate2xuint8x8.h" #include "dsp/tty/tty.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/assert.h" #include "libc/calls/calls.h" #include "libc/calls/ioctl.h" diff --git a/tool/build/build.mk b/tool/build/build.mk index 2a23b4c97..f7bc6a866 100644 --- a/tool/build/build.mk +++ b/tool/build/build.mk @@ -37,7 +37,6 @@ TOOL_BUILD_DIRECTDEPS = \ DSP_CORE \ DSP_SCALE \ DSP_TTY \ - LIBC_ALG \ LIBC_CALLS \ LIBC_DNS \ LIBC_ELF \ diff --git a/tool/build/calculator.c b/tool/build/calculator.c index fa94ad025..0a18a4118 100644 --- a/tool/build/calculator.c +++ b/tool/build/calculator.c @@ -8,7 +8,7 @@ ╚─────────────────────────────────────────────────────────────────*/ #endif #include "dsp/tty/tty.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/intrin/morton.h" diff --git a/tool/build/compile.c b/tool/build/compile.c index 79939fb79..610ad98d0 100644 --- a/tool/build/compile.c +++ b/tool/build/compile.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/intrin/bits.h" #include "libc/intrin/safemacros.internal.h" #include "libc/calls/calls.h" diff --git a/tool/build/lib/asmdown.c b/tool/build/lib/asmdown.c index d570b0d79..a31bad0d2 100644 --- a/tool/build/lib/asmdown.c +++ b/tool/build/lib/asmdown.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/mem/mem.h" #include "libc/str/str.h" #include "tool/build/lib/asmdown.h" diff --git a/tool/build/lib/breakpoint.c b/tool/build/lib/breakpoint.c index b9978af07..f363ea2d2 100644 --- a/tool/build/lib/breakpoint.c +++ b/tool/build/lib/breakpoint.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/assert.h" #include "libc/log/log.h" #include "tool/build/lib/breakpoint.h" diff --git a/tool/build/lib/buffer.c b/tool/build/lib/buffer.c index 8ba4eb4ee..85540b0bc 100644 --- a/tool/build/lib/buffer.c +++ b/tool/build/lib/buffer.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/calls/calls.h" #include "libc/errno.h" #include "libc/fmt/fmt.h" diff --git a/tool/build/lib/buildlib.mk b/tool/build/lib/buildlib.mk index 88d759202..c244feb22 100644 --- a/tool/build/lib/buildlib.mk +++ b/tool/build/lib/buildlib.mk @@ -32,7 +32,6 @@ TOOL_BUILD_LIB_A_OBJS = \ o/$(MODE)/tool/build/lib/apetest2.com.zip.o TOOL_BUILD_LIB_A_DIRECTDEPS = \ - LIBC_ALG \ LIBC_CALLS \ LIBC_ELF \ LIBC_FMT \ diff --git a/tool/build/lib/dis.c b/tool/build/lib/dis.c index 6e58a8a12..5377a403b 100644 --- a/tool/build/lib/dis.c +++ b/tool/build/lib/dis.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/intrin/safemacros.internal.h" #include "libc/fmt/bing.internal.h" #include "libc/fmt/fmt.h" diff --git a/tool/build/lib/diself.c b/tool/build/lib/diself.c index 87b78868e..eed3f7916 100644 --- a/tool/build/lib/diself.c +++ b/tool/build/lib/diself.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/elf/elf.h" #include "libc/elf/struct/sym.h" #include "libc/log/check.h" diff --git a/tool/build/lib/elfwriter.c b/tool/build/lib/elfwriter.c index 86e36e84b..d4faf3310 100644 --- a/tool/build/lib/elfwriter.c +++ b/tool/build/lib/elfwriter.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/assert.h" #include "libc/calls/calls.h" #include "libc/log/check.h" diff --git a/tool/build/lib/interner.c b/tool/build/lib/interner.c index 91d92b6b8..9411fa1fb 100644 --- a/tool/build/lib/interner.c +++ b/tool/build/lib/interner.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist.internal.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/intrin/safemacros.internal.h" #include "libc/mem/mem.h" #include "libc/nexgen32e/crc32.h" diff --git a/tool/build/lib/pml4t.c b/tool/build/lib/pml4t.c index 9d3f7a6ab..5b5356949 100644 --- a/tool/build/lib/pml4t.c +++ b/tool/build/lib/pml4t.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "tool/build/lib/endian.h" #include "tool/build/lib/machine.h" #include "tool/build/lib/pml4t.h" diff --git a/tool/build/lib/pty.c b/tool/build/lib/pty.c index 3a421077c..57715d85a 100644 --- a/tool/build/lib/pty.c +++ b/tool/build/lib/pty.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/intrin/safemacros.internal.h" diff --git a/tool/build/mkdeps.c b/tool/build/mkdeps.c index ba889d918..66a8704f9 100644 --- a/tool/build/mkdeps.c +++ b/tool/build/mkdeps.c @@ -16,10 +16,10 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/arraylist.internal.h" -#include "libc/alg/arraylist2.internal.h" -#include "libc/alg/bisectcarleft.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist.internal.h" +#include "libc/mem/arraylist2.internal.h" +#include "libc/mem/bisectcarleft.internal.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/intrin/safemacros.internal.h" diff --git a/tool/build/package.c b/tool/build/package.c index 84545345f..8c3b5f176 100644 --- a/tool/build/package.c +++ b/tool/build/package.c @@ -16,8 +16,8 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist.internal.h" #include "libc/intrin/bswap.h" #include "libc/intrin/safemacros.internal.h" #include "libc/calls/calls.h" diff --git a/tool/build/refactor.c b/tool/build/refactor.c index ba6ca7b24..d53bbe778 100644 --- a/tool/build/refactor.c +++ b/tool/build/refactor.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/alg.h" +#include "libc/mem/alg.h" #include "libc/assert.h" #include "libc/intrin/safemacros.internal.h" #include "libc/calls/calls.h" diff --git a/tool/build/rollup.c b/tool/build/rollup.c index e221ae7e2..b10be0260 100644 --- a/tool/build/rollup.c +++ b/tool/build/rollup.c @@ -17,7 +17,7 @@ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "ape/relocations.h" -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/calls/calls.h" #include "libc/calls/struct/stat.h" #include "libc/errno.h" diff --git a/tool/build/runit.c b/tool/build/runit.c index 4bf076c39..badec0d79 100644 --- a/tool/build/runit.c +++ b/tool/build/runit.c @@ -68,7 +68,7 @@ * * o/default/tool/build/runit.com \ * o/default/tool/build/runitd.com \ - * o/default/test/libc/alg/qsort_test.com \ + * o/default/test/libc/mem/qsort_test.com \ * freebsd.test.:31337:22 * * APE binaries are hermetic and embed dependent files within their zip diff --git a/tool/decode/lib/flagger.c b/tool/decode/lib/flagger.c index 3d283b107..fa61fff57 100644 --- a/tool/decode/lib/flagger.c +++ b/tool/decode/lib/flagger.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist2.internal.h" +#include "libc/mem/arraylist2.internal.h" #include "libc/fmt/fmt.h" #include "libc/mem/mem.h" #include "libc/str/str.h" diff --git a/tool/net/net.mk b/tool/net/net.mk index 0a0b9bd9c..7cbf7d990 100644 --- a/tool/net/net.mk +++ b/tool/net/net.mk @@ -29,7 +29,6 @@ TOOL_NET_CHECKS = \ TOOL_NET_DIRECTDEPS = \ DSP_SCALE \ - LIBC_ALG \ LIBC_CALLS \ LIBC_DNS \ LIBC_FMT \ diff --git a/tool/viz/lib/vizlib.mk b/tool/viz/lib/vizlib.mk index cc46ea216..f20180dbb 100644 --- a/tool/viz/lib/vizlib.mk +++ b/tool/viz/lib/vizlib.mk @@ -27,7 +27,6 @@ TOOL_VIZ_LIB_A_DIRECTDEPS = \ DSP_CORE \ DSP_SCALE \ DSP_TTY \ - LIBC_ALG \ LIBC_CALLS \ LIBC_FMT \ LIBC_INTRIN \ diff --git a/tool/viz/printvideo.c b/tool/viz/printvideo.c index a1a6a540c..46e0adf4d 100644 --- a/tool/viz/printvideo.c +++ b/tool/viz/printvideo.c @@ -23,8 +23,8 @@ #include "dsp/scale/scale.h" #include "dsp/tty/quant.h" #include "dsp/tty/tty.h" -#include "libc/alg/alg.h" -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/alg.h" +#include "libc/mem/arraylist.internal.h" #include "libc/assert.h" #include "libc/intrin/bits.h" #include "libc/intrin/safemacros.internal.h" diff --git a/tool/viz/tabalign.c b/tool/viz/tabalign.c index 1b8a9ed7c..b9b875ab7 100644 --- a/tool/viz/tabalign.c +++ b/tool/viz/tabalign.c @@ -16,7 +16,7 @@ │ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ │ PERFORMANCE OF THIS SOFTWARE. │ ╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/alg/arraylist.internal.h" +#include "libc/mem/arraylist.internal.h" #include "libc/intrin/safemacros.internal.h" #include "libc/fmt/conv.h" #include "libc/limits.h"