mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-25 06:42:27 +00:00
Improve Python tree-shaking
This commit is contained in:
parent
5bb2275788
commit
4f41f2184d
169 changed files with 4182 additions and 2411 deletions
|
@ -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()));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue