Improve Python tree-shaking

This commit is contained in:
Justine Tunney 2021-09-06 19:24:10 -07:00
parent 5bb2275788
commit 4f41f2184d
169 changed files with 4182 additions and 2411 deletions

View file

@ -16,9 +16,13 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/bits/bits.h"
#include "libc/mem/mem.h"
#include "libc/runtime/gc.internal.h"
#include "libc/stdio/stdio.h"
#include "libc/str/str.h"
#include "libc/testlib/ezbench.h"
#include "libc/testlib/fastrandomstring.h"
#include "libc/testlib/hyperion.h"
#include "libc/testlib/testlib.h"
#include "tool/build/lib/interner.h"
@ -33,6 +37,13 @@ TEST(interner, test) {
EXPECT_EQ(strlen("hi") + 1 + strlen("there") + 1, t->i);
}
TEST(isinterned, test) {
struct Interner *t = defer(freeinterner, newinterner());
ASSERT_FALSE(isinterned(t, "doge"));
intern(t, "doge");
ASSERT_TRUE(isinterned(t, "doge"));
}
TEST(interner, testWordCount) {
struct Interner *t = defer(freeinterner, newinterner());
size_t i, j;
@ -53,3 +64,12 @@ TEST(interner, testWordCount) {
EXPECT_LT(t->i, t->n);
EXPECT_EQ('\0', t->p[t->i]);
}
BENCH(interner, bench) {
struct Interner *t = defer(freeinterner, newinterner());
intern(t, "hellos");
EZBENCH2("intern hit", donothing, intern(t, "hellos"));
EZBENCH2("intern miss", donothing, intern(t, FastRandomString()));
EZBENCH2("isinterned hit", donothing, isinterned(t, "hellos"));
EZBENCH2("isinterned miss", donothing, isinterned(t, FastRandomString()));
}