ww: lift introspection files to lib/ww/ (ast, lex, tok, parse, typ, sym)
This commit is contained in:
@@ -171,10 +171,10 @@ probe_dump_diff(const char *bin)
|
||||
const char *tok_inputs[] = {
|
||||
"selfhost/cmd/wcc/mem.ww",
|
||||
"selfhost/cmd/wcc/err.ww",
|
||||
"selfhost/cmd/wcc/lex.ww",
|
||||
"selfhost/cmd/wcc/tok.ww",
|
||||
"selfhost/cmd/wcc/ast.ww",
|
||||
"selfhost/cmd/wcc/parse.ww",
|
||||
"lib/ww/lex.ww",
|
||||
"lib/ww/tok.ww",
|
||||
"lib/ww/ast.ww",
|
||||
"lib/ww/parse.ww",
|
||||
"selfhost/cmd/wwdump/main.ww",
|
||||
"selfhost/test/smoke.ww",
|
||||
NULL,
|
||||
@@ -188,12 +188,12 @@ probe_dump_diff(const char *bin)
|
||||
"selfhost/test/uses.ww",
|
||||
"selfhost/cmd/wcc/err.ww",
|
||||
"selfhost/cmd/wcc/mem.ww",
|
||||
"selfhost/cmd/wcc/lex.ww",
|
||||
"selfhost/cmd/wcc/tok.ww",
|
||||
"selfhost/cmd/wcc/ast.ww",
|
||||
"selfhost/cmd/wcc/parse.ww",
|
||||
"selfhost/cmd/wcc/typ.ww",
|
||||
"selfhost/cmd/wcc/sym.ww",
|
||||
"lib/ww/lex.ww",
|
||||
"lib/ww/tok.ww",
|
||||
"lib/ww/ast.ww",
|
||||
"lib/ww/parse.ww",
|
||||
"lib/ww/typ.ww",
|
||||
"lib/ww/sym.ww",
|
||||
"selfhost/cmd/wcc/check.ww",
|
||||
"selfhost/cmd/wcc/cgen.ww",
|
||||
"selfhost/cmd/wwdump/main.ww",
|
||||
@@ -435,7 +435,7 @@ probe_resolve(const char *bin)
|
||||
const char *complete[] = {
|
||||
"selfhost/cmd/wcc/err.ww",
|
||||
"selfhost/cmd/wcc/mem.ww",
|
||||
"selfhost/cmd/wcc/tok.ww",
|
||||
"lib/ww/tok.ww",
|
||||
"selfhost/test/smoke.ww",
|
||||
NULL,
|
||||
};
|
||||
@@ -656,8 +656,8 @@ probe_ww_links(const char *bin)
|
||||
runwait(cmd);
|
||||
/* ww build to get the .combined.ww as a side effect. */
|
||||
snprintf(cmd, sizeof cmd,
|
||||
"cd %s && %s/ww build -I %s/selfhost/cmd/wcc %s >/dev/null 2>&1",
|
||||
tmpdir, bin, cwd, tmpsrc);
|
||||
"cd %s && %s/ww build -I %s/lib/ww -I %s/selfhost/cmd/wcc %s >/dev/null 2>&1",
|
||||
tmpdir, bin, cwd, cwd, tmpsrc);
|
||||
if (runwait(cmd) != 0) {
|
||||
fprintf(stderr, "ww-links FAIL: ww build %s\n", fix);
|
||||
fail++;
|
||||
@@ -717,7 +717,7 @@ probe_cgen_match(const char *bin)
|
||||
const char *files[] = {
|
||||
"selfhost/cmd/wcc/mem.ww",
|
||||
"selfhost/cmd/wcc/err.ww",
|
||||
"selfhost/cmd/wcc/tok.ww",
|
||||
"lib/ww/tok.ww",
|
||||
"selfhost/test/smoke.ww",
|
||||
NULL,
|
||||
};
|
||||
|
||||
@@ -152,8 +152,8 @@ main(void)
|
||||
* regardless of the per-driver workdir. */
|
||||
static char wwdump_src[2048], wwdump_inc_a[2048], wwdump_inc_b[2048];
|
||||
snprintf(wwdump_src, sizeof wwdump_src, "%s/selfhost/cmd/wwdump/main.ww", cwd);
|
||||
snprintf(wwdump_inc_a, sizeof wwdump_inc_a, "%s/selfhost/cmd/wcc", cwd);
|
||||
wwdump_inc_b[0] = '\0';
|
||||
snprintf(wwdump_inc_a, sizeof wwdump_inc_a, "%s/lib/ww", cwd);
|
||||
snprintf(wwdump_inc_b, sizeof wwdump_inc_b, "%s/selfhost/cmd/wcc", cwd);
|
||||
cases[1].src = wwdump_src;
|
||||
cases[1].inc_a = wwdump_inc_a;
|
||||
cases[1].inc_b = wwdump_inc_b;
|
||||
|
||||
@@ -59,10 +59,11 @@ slurp_eq(const char *a, const char *b)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Each tool builds via `ww_ww build -I <local> -I selfhost/cmd/wcc src`.
|
||||
* Some tools have a local module dir (w6a, w6l with sibling .ww files);
|
||||
* wwc-only tools (w6c, ww, wwdump) just need the wwc -I. inc_local is
|
||||
* "" for those.
|
||||
/* Each tool builds via `ww_ww build -I <local> -I lib/ww -I selfhost/cmd/wcc src`.
|
||||
* lib/ww holds the language introspection (lex/tok/ast/parse/typ/sym);
|
||||
* selfhost/cmd/wcc holds the compiler internals (mem/check/cgen*).
|
||||
* Some tools have a local module dir (w6a, w6l with sibling .ww files).
|
||||
* inc_local is "" for tools without one (w6c, ww, wwdump).
|
||||
*/
|
||||
static int
|
||||
rebuild_one(const char *bin, const char *cwd, const char *tool,
|
||||
@@ -76,14 +77,14 @@ rebuild_one(const char *bin, const char *cwd, const char *tool,
|
||||
|
||||
if (inc_local && inc_local[0]) {
|
||||
snprintf(cmd, sizeof cmd,
|
||||
"cd %s && %s/ww_ww build -I %s/%s -I %s/selfhost/cmd/wcc "
|
||||
"cd %s && %s/ww_ww build -I %s/%s -I %s/lib/ww -I %s/selfhost/cmd/wcc "
|
||||
"%s/%s >/dev/null 2>&1",
|
||||
workdir, bin, cwd, inc_local, cwd, cwd, src_rel);
|
||||
workdir, bin, cwd, inc_local, cwd, cwd, cwd, src_rel);
|
||||
} else {
|
||||
snprintf(cmd, sizeof cmd,
|
||||
"cd %s && %s/ww_ww build -I %s/selfhost/cmd/wcc "
|
||||
"cd %s && %s/ww_ww build -I %s/lib/ww -I %s/selfhost/cmd/wcc "
|
||||
"%s/%s >/dev/null 2>&1",
|
||||
workdir, bin, cwd, cwd, src_rel);
|
||||
workdir, bin, cwd, cwd, cwd, src_rel);
|
||||
}
|
||||
if (runwait(cmd) != 0) {
|
||||
fprintf(stderr, "self-rebuild FAIL: ww_ww build errored on %s\n", tool);
|
||||
|
||||
Reference in New Issue
Block a user