code wiki / (root) / nx_swcompare_lib.nx

nx_swcompare_lib.nx

buildroot/runtime/nx_swcompare_lib.nx

262144 B3731 linesdepth 9pulls 51 transitivereach 31 importersview sourcekind librarytopic swcompare
docsdependenciesstructsconstsfunctions

about

AUTO-EXTRACTED shared base (nx_oo_extract). license_tier: ORIGINAL No hw writes (Rule 26). functions: w,wc,wn,wj,wq,kv_s,kv_n,c_read,streq,starts,scopy,splitpipe,wnote,rp_base,rp_publish,rp_json,refs_pass

dependencies 25 imports · 28 importers

nx_syscalls.nx nx_symdecl_lib.nx nx_market_ladder_lib.nx nx_brand_tokens.nx nx_lineconf_lib.nx nx_estate_path.nx nx_imgattr_lib.nx nx_evprofile_lib.nx nx_bench_receipt_lib.nx nx_barfresh_lib.nx nx_swcompare_lib.nx nx_cdmap_interact_gate.nx nx_compare_growth_incumbent_b_2026 nx_compare_growth_incumbent_gate_2 nx_compare_growth_matrix_full_2026 nx_compare_ladder_canon_gate_20260 nx_compare_ladder_data_gate_202609 nx_compare_ladder_growth_gate_2026 nx_compare_ladder_isolated_lib.nx nx_compare_rank.nx nx_compare_rank_artifact_20260910.

diagram shows first 10 each side; +15 more imports, +18 more importers in the complete lists below.

imports: nx_syscalls.nxnx_symdecl_lib.nxnx_market_ladder_lib.nxnx_brand_tokens.nxnx_lineconf_lib.nxnx_estate_path.nxnx_imgattr_lib.nxnx_evprofile_lib.nxnx_bench_receipt_lib.nxnx_barfresh_lib.nxnx_cdmap_lib.nxnx_leaderboard_lib.nxnx_cdmap_raster_lib.nxnx_chartlay_lib.nxnx_compare_growth_json.nxnx_ladder_lib.nxnx_gauge_lib.nxnx_costest_lib.nxnx_assets_lib.nxnx_treatment_lib.nxnx_tool_run.nxnx_sha256.nxnx_json.nxnx_json_lib.nxnx_fio.nx

imported by: nx_cdmap_interact_gate.nxnx_compare_growth_incumbent_b_20260910.nxnx_compare_growth_incumbent_gate_20260910.nxnx_compare_growth_matrix_full_20260910.nxnx_compare_ladder_canon_gate_20260910.nxnx_compare_ladder_data_gate_20260910.nxnx_compare_ladder_growth_gate_20260910.nxnx_compare_ladder_isolated_lib.nxnx_compare_rank.nxnx_compare_rank_artifact_20260910.nxnx_compare_rank_canon_capture_20260910.nxnx_compare_rank_capture_gate_20260910.nxnx_compare_rank_live_capture_20260910.nxnx_compare_rank_refusal_gate_20260910.nxnx_evidence_snapshot_canonical_gate_t138.nxnx_gaps_pass_gate.nxnx_observability_graph_canonical_gate_t138.nxnx_observability_graph_gate_t138.nxnx_print_css_gate.nxnx_prop_pass_gate.nxnx_swcompare_compute.nxnx_swcompare_hub.nxnx_swcompare_matrix.nxnx_swcompare_matrix_rank_guard_t162.nxnx_swcompare_office.nxnx_swcompare_sota.nxnx_swcompare_sota_lib.nxnx_swcompare_watch_gate.nx

structs

2432struct SgPlan
3034struct EfsDoc { src: *u8, len: i64, tokens: *i64, count: i64, error: i64 }

consts

108const RV_NONE: i64 = 0
109const RV_CITED: i64 = 1
110const RV_UNCITED: i64 = 2
191const RP_NO: i64 = 0
192const RP_REVIEW: i64 = 1
193const RP_YES: i64 = 2
194const RP_KEYCAP: i64 = 128
313const SWL_DSTATE_CAP: i64 = 20480 // .debtstate sidecar read buffer. The NUL slot is DERIVED (CAP - 1)
420const SWL_RELEASE_I64_MAX: i64 = 9223372036854775807
501const SWL_TRT_ALLOW: *u8 = "tool_allowlist.conf"
502const SWL_TRT_ROSTER: *u8 = "knowledge/gateroster.conf"
503const SWL_TRT_STORE_PUT: *u8 = "./nx_store_put.elf"
504const SWL_TRT_CLOCK_MANIFEST: *u8 = "knowledge/store/clockjobs-manifest.txt" // a plane is a prefix, not a file: its manifest is what the probe can open, and the prefix is that path minus the manifest name
505const SWL_TRT_MANIFEST_TAIL: *u8 = "manifest.txt"
506const SWL_TRT_CLOCK_CAP: i64 = 1048576 // captured stdout of the clock DESIRED plane load (a fork, size unknowable): 11,935 B for 189 rows on 2026-09-16, 88x headroom; a fill is ANNOUNCED on the page and the plane treated as unobserved, never read as a prefix
507const SWL_TRT_WF_PFX: *u8 = "knowledge/store/plan-"
508const SWL_TRT_WF_SFX: *u8 = "-manifest.txt"
509const SWL_TRT_PATH_CAP: i64 = 1024 // one composed estate path, the reserve every ep_* probe writes into
510const SWL_TRT_EV_ALLOW: i64 = 0
511const SWL_TRT_EV_ROSTER: i64 = 1
512const SWL_TRT_EV_CLOCK: i64 = 2
513const SWL_TRT_EV_UNPROVEN: i64 = 3
514const SWL_TRT_EV_SLOTS: i64 = 4
888const WP_ST_LANDED: i64 = 1
889const WP_ST_WATCHING: i64 = 2
890const WP_ST_PRESENT: i64 = 3
891const WP_ST_MISSING: i64 = 4
892const WP_ST_ABSENT: i64 = 5
1016const PL_MAXROWS: i64 = 32
1260const SC_TOKCAP: i64 = 16384
1261const SC_BP_MD: i64 = 860
1262const SC_BP_SM: i64 = 640
1350const SC_PRINT_MARGIN_MM: i64 = 14
1351const SC_PRINT_BODY_PT: i64 = 11
1357const SC_FEED_LINK_TAG: *u8 = "<link rel='alternate' type='application/rss+xml' title='Nishi /compare daily positions and reviews' href='/compare/feed.xml'>
1435const SC_CAP_SPLIT: i64 = 496
1678const BD_SECS_PER_DAY: i64 = 86400
1679const BD_DAYS_TO_CIVIL_SHIFT: i64 = 719468 // days from 0000-03-01 to 1970-01-01 (Hinnant, civil_from_days)
1680const BD_DAYS_PER_ERA: i64 = 146097
1681const BD_DAYS_PER_4Y: i64 = 1460
1682const BD_DAYS_PER_100Y: i64 = 36524
1683const BD_DAYS_PER_ERA_LESS1: i64 = 146096
1684const BD_DAYS_PER_YEAR: i64 = 365
1685const BD_YEARS_PER_ERA: i64 = 400
1686const BD_MONTH_NUM: i64 = 153
1687const BD_MONTH_SHIFT: i64 = 2
1688const BD_MONTH_SCALE: i64 = 5
1689const BD_MARCH: i64 = 3
1690const BD_JAN_FROM_MP: i64 = 9
1691const BD_MP_WRAP: i64 = 10
1692const BD_FEB: i64 = 2
1693const BD_TEN: i64 = 10
1694const BD_SHA_SHOWN: i64 = 12
1739const PR_READ_CAP: i64 = 65536 // announces when it binds; a .proposed file is rows, not a corpus
1740const PR_PATH_CAP: i64 = 600 // knowledge/compare/<dom>.proposed -- the reserve its sibling passes use
1741const PR_I64_BYTES: i64 = 8
1742const PR_NF: i64 = 10 // fields per prop| row, from the writer's own emit order (ip_emit)
1743const PR_SPLIT: i64 = 16 // field table: PR_NF plus room, so an over-long row is read whole rather than clipped to fit
1744const PR_F_TAG: i64 = 0
1745const PR_F_EPOCH: i64 = 1
1746const PR_F_APPID: i64 = 2
1747const PR_F_NAME: i64 = 3
1748const PR_F_SIGNAL: i64 = 4
1749const PR_F_KIND: i64 = 5
1750const PR_F_TERM: i64 = 6
1751const PR_F_DOMAIN: i64 = 7
1752const PR_F_TITLE: i64 = 8
1753const PR_F_EVIDENCE: i64 = 9
1754const PR_CH_COMMENT: i64 = 35
1755const PR_CH_LF: i64 = 10
1756const PR_CH_COMMA: i64 = 44
1757const PR_CH_COLON: i64 = 58
1758const PR_CH_LBRACE: i64 = 123
1759const PR_CH_RBRACE: i64 = 125
1760const PR_CH_LBRACKET: i64 = 91
1761const PR_CH_RBRACKET: i64 = 93
1767const PR_NAME_CAP: i64 = 256
1768const PR_NAME_DIR: *u8 = "knowledge/reviews/steam/"
1769const PR_NAME_DIR_UP: *u8 = "../knowledge/reviews/steam/"
1770const PR_NAME_SUFFIX: *u8 = ".name"
1880const FI_READ_CAP: i64 = 262144 // announces when it binds: a .field is rows, not a corpus
1881const FI_PATH_CAP: i64 = 600
1882const FI_I64_BYTES: i64 = 8
1883const FI_NF: i64 = 7 // rival|name|seeds_hit|mentions|first_seed|link|kind (nx_field_lib fl_emit)
1884const FI_SPLIT: i64 = 12
1885const FI_F_TAG: i64 = 0
1886const FI_F_NAME: i64 = 1
1887const FI_F_SEEDS: i64 = 2
1888const FI_F_MENTIONS: i64 = 3
1889const FI_F_FIRST: i64 = 4
1890const FI_F_LINK: i64 = 5
1891const FI_F_KIND: i64 = 6
1892const FI_SHOW: i64 = 60 // rows rendered; the rest are COUNTED and the stats line says shown of count
1893const FI_COLS_MAX: i64 = 16
1894const FI_CH_COMMENT: i64 = 35
1895const FI_CH_LF: i64 = 10
1896const FI_CH_PIPE: i64 = 124
1897const FI_CH_COMMA: i64 = 44
1898const FI_CH_COLON: i64 = 58
1899const FI_CH_LBRACE: i64 = 123
1900const FI_CH_RBRACE: i64 = 125
1901const FI_CH_LBRACKET: i64 = 91
1902const FI_CH_RBRACKET: i64 = 93
1903const FI_UPPER_A: i64 = 65
1904const FI_UPPER_Z: i64 = 90
1905const FI_CASE_DELTA: i64 = 32
2061const GP_PATH_CAP: i64 = 600
2062const GP_READ_CAP: i64 = 65536
2063const GP_SPLIT: i64 = 8
2064const GP_NF: i64 = 5
2065const GP_F_LABEL: i64 = 1
2066const GP_F_PATH: i64 = 2
2067const GP_F_CAD: i64 = 3
2068const GP_F_NOTE: i64 = 4
2069const GP_ROW_CAP: i64 = 1024
2070const GP_CH_NL: i64 = 10
2071const GP_CH_HASH: i64 = 35
2072const GP_CH_COMMA: i64 = 44
2073const GP_CH_COLON: i64 = 58
2074const GP_CH_LBRACKET: i64 = 91
2075const GP_CH_RBRACKET: i64 = 93
2076const GP_CH_LBRACE: i64 = 123
2077const GP_CH_RBRACE: i64 = 125
2190const GX_FEED: *u8 = "knowledge/recordgaps.conf.rows"
2191const GX_STAMP: *u8 = "knowledge/recordgaps.conf.stamp"
2192const GX_READ_CAP: i64 = 4194304
2193const GX_NF: i64 = 5
2194const GX_F_KIND: i64 = 0
2195const GX_F_NAME: i64 = 1
2196const GX_F_BOARD: i64 = 2
2197const GX_F_SRC: i64 = 3
2198const GX_F_EV: i64 = 4
2199const GX_HUB: *u8 = "ecosystem"
2200const GX_UNASSIGNED: *u8 = "UNASSIGNED"
2412const SGP_FIELDS: i64 = 8
2413const SGP_PATH_CAP: i64 = 600
2414const SGP_I64_MAX: i64 = 9223372036854775807
2420const SGP_COLON: i64 = 58 // ':' -- the separator in a cross-board '<domain>:<rung>' ref
2421const SGP_NOTE_WORDS: i64 = 5 // one record: rule, rung-id ptr, name ptr, name len, number
2422const SGP_OFFENDER_MAX: i64 = 64 // offender rows RECORDED; offender_overflow carries the rest
2423const SGP_EXTERNAL_MAX: i64 = 64 // cross-board refs RECORDED; external_overflow carries the rest
2424const SGP_RULE_FIELDS: i64 = 1 // a rung row whose field count is not SGP_FIELDS
2425const SGP_RULE_BADID: i64 = 2 // a rung id outside the id grammar
2426const SGP_RULE_DUPID: i64 = 3 // a second declaration of one id
2427const SGP_RULE_BADDEP: i64 = 4 // a dependency token outside the id grammar
2428const SGP_RULE_MISSDEP: i64 = 5 // a dependency naming no rung on THIS plan
2429const SGP_RULE_DUPEDGE: i64 = 6 // the same dependency declared twice on one rung
2430const SGP_RULE_CYCLE: i64 = 7 // on a dependency cycle
2431const SGP_RULE_CYCLEDOWN: i64 = 8 // not on a cycle, but blocked by one
3035const EFS_DOC_BYTES: i64=40
3036const EFS_TOKEN_WORDS: i64=4
3037const EFS_KEY: i64=14
3283const CDP_CELL0: i64 = 4 // a matrix row is label|organ|symbol|exceed|cells...: the first rival cell
3284const CDP_SYM: i64 = 2 // the row's symbol field (the plan join for the substrate mask)
3285const CDP_PLAN_EXT: *u8 = ".plan"
3286const CDP_SVG_W: i64 = 760
3287const CDP_SVG_H: i64 = 520
3288const CDP_PAD_L: i64 = 70
3289const CDP_PAD_R: i64 = 30
3290const CDP_PAD_T: i64 = 30
3291const CDP_PAD_B: i64 = 60
3292const CDP_R_MIN: i64 = 6 // bubble radius floor (px); radius = floor + isqrt(breadth points)
3293const CDP_LABEL_DX: i64 = 10
3294const CDP_LABEL_DY: i64 = 4
3295const CDP_QLABEL_IN: i64 = 8
3296const CDP_QLABEL_UP: i64 = 16
3297const CDP_AXIS_DROP: i64 = 40
3298const CDP_AXIS_LEFT: i64 = 22
3299const CDP_TICK_DROP: i64 = 16
3300const CDP_LOG_SHOW: i64 = 14 // review-log days rendered (newest); earlier days are COUNTED
3301const CDP_ISO_W: i64 = 760
3302const CDP_ISO_H: i64 = 560
3303const CDP_ISO_OX: i64 = 380 // the floor's near corner (0,0,0) sits here...
3304const CDP_ISO_OY: i64 = 290 // ...so x runs right-down, y left-down, z straight up (raised 2026-09-15 for the 250 px unit)
3305const CDP_ISO_UNIT: i64 = 250 // pixels per 1000 permil on every cube axis (220 left a third of the canvas empty)
3306const CDP_ISO_LABEL_GAP: i64 = 14
3307const CDP_NISHI: *u8 = "Nishi"
3308const CDP_CH_HASH: i64 = 35 // '#' cannot sit inside a string literal (lexer); written as a byte
3309const CDP_CH_COMMA: i64 = 44
3310const CDP_CH_SPACE: i64 = 32
3311const CDP_CH_QUOTE: i64 = 39
3312const CDP_CH_COLON: i64 = 58
3313const CDP_CH_GT: i64 = 62
3314const CDP_CH_PLUS: i64 = 43
3315const CDP_CH_LBRACE: i64 = 123
3316const CDP_CH_RBRACE: i64 = 125
3317const CDP_CH_LBRACKET: i64 = 91
3318const CDP_CH_RBRACKET: i64 = 93
3319const CDP_DATE_CAP: i64 = 32
3320const CDP_XYZ: i64 = 3
3330const CDP_TWO: i64 = 2
3331const CDP_CH_RPAREN: i64 = 41
3332const CDP_FONT_LABEL: i64 = 13
3333const CDP_FONT_TICK: i64 = 11
3334const CDP_FONT_QUAD: i64 = 11
3335const CDP_QUAD_N: i64 = 4 // the four HBR quadrant words, seated by the placer AFTER every label and note (2026-09-15)
3336const CDP_QUAD_W_PERMIL: i64 = 1300 // a quadrant word is uppercase with .12em tracking: its box is 1.3x the plain text width
3337const CDP_QUAD_BASE: i64 = 10 // text baseline inside an 11 px quadrant-word box
3338const CDP_CANVAS_IN: i64 = 2 // labels keep this many px inside the plot frame
3339const CDP_TICK_TEXT_DY: i64 = 15 // x tick numerals sit this far under the frame
3340const CDP_TICK_TEXT_DX: i64 = 6 // y tick numerals end this far left of the frame
3341const CDP_TICK_BASE: i64 = 4 // a numeral's baseline offset so it centres on its gridline
3342const CDP_MEAN_LABEL_DY: i64 = 12
3343const CDP_MEAN_LABEL_DX: i64 = 4
3344const CDP_LABEL_BASE: i64 = 12 // text baseline inside a 16 px label box at 13 px
3345const CDP_STROKE_W: i64 = 2
3346const CDP_NOTES_CAP: i64 = 16 // notes a board may pin on one cut (datavis DV5); the parser counts the rest as refused
3347const CDP_NOTE_CH: i64 = 26 // wrap width in characters at CDP_FONT_NOTE (a box about a quarter of the plot wide)
3348const CDP_NOTE_LINES: i64 = 4 // a note is at most four lines; a longer one is refused by name, never truncated
3349const CDP_FONT_NOTE: i64 = 11
3350const CDP_NOTE_PAD: i64 = 5 // px between a note box's edge and its text
3351const CDP_NOTE_DOT_R: i64 = 3 // the anchor dot of a point-pinned note
3352const CDP_NOTE_BASE: i64 = 9 // text baseline inside a note line at 11 px
3353const CDP_NOTE_STROKE: *u8 = "stroke='var(--nx-color-mut)' stroke-dasharray='2 2'"
3354const CDP_CH_SEMI: i64 = 59
3355const CDP_ISO_TICK_DX: i64 = 8
3356const CDP_ISO_TICK_DY: i64 = 14
3357const CDP_ISO_ZTICK_DX: i64 = 6
3358const CDP_ISO_ZTICK_DY: i64 = 4
3359const CDP_ISO_AXIS_GAP: i64 = 30
3360const CDP_SHADOW_R: i64 = 3
3361const CDP_LEG_SW: i64 = 12
3446const CDP_EXPORT_SVG: *u8 = "cdmap.svg"
3447const CDP_EXPORT_PNG: *u8 = "cdmap.png"
3448const CDP_EXPORT_RECEIPT: *u8 = "cdmap.export.json"
3449const CDP_EXPORT_INDEX: *u8 = "index.html"
3450const CDP_EXPORT_SCALE: i64 = 2 // the PNG is twice the viewBox: crisp on a 2x display, 1520 x 1040 for the standard map
3451const CDP_EXPORT_OK: i64 = 0
3452const CDP_EXPORT_FAIL: i64 = 1
3453const CDP_EXPORT_ABSENT: i64 = 2
3454const CDP_EXPORT_PATH_CAP: i64 = 1024
3455const CDP_FONT_NAS: *u8 = "knowledge/fonts/LiberationSans-Regular.ttf"
3456const CDP_FONT_NAS_BOLD: *u8 = "knowledge/fonts/LiberationSans-Bold.ttf"
3457const CDP_FONT_UP: *u8 = "../knowledge/fonts/LiberationSans-Regular.ttf" // the regen runs the generators from buildroot
3458const CDP_FONT_UP_BOLD: *u8 = "../knowledge/fonts/LiberationSans-Bold.ttf"
3459const CDP_FONT_LAPTOP: *u8 = "web_assets/fonts/LiberationSans-Regular.ttf"
3460const CDP_FONT_LAPTOP_BOLD: *u8 = "web_assets/fonts/LiberationSans-Bold.ttf"
3461const CDP_CH_SLASH: i64 = 47
3539const CDP_CT_LABELS: i64 = 0
3540const CDP_CT_NOTES: i64 = 1
3541const CDP_CT_QUAD: i64 = 2
3542const CDP_CT_TICKS: i64 = 3
3543const CDP_CT_AXES: i64 = 4
3544const CDP_CT_REFUSED: i64 = 5
3545const CDP_CT_LOADED: i64 = 6
3546const CDP_CT_FLOOR_SMALL: i64 = 7
3547const CDP_CT_FLOOR_LARGE: i64 = 8
3548const CDP_CT_FLOOR_LABELS: i64 = 9
3549const CDP_CT_FLOOR_NOTES: i64 = 10
3550const CDP_CT_FLOOR_QUAD: i64 = 11
3551const CDP_CT_FLOOR_TICKS: i64 = 12
3552const CDP_CT_FLOOR_AXES: i64 = 13
3553const CDP_CT_TOKENS: i64 = 14
3555const CDP_CT_D_LABELS: i64 = 15
3556const CDP_CT_D_QUAD: i64 = 16
3557const CDP_CT_D_AXES: i64 = 17
3558const CDP_CT_D_UNDER: i64 = 18
3559const CDP_CT_D_TOKENS: i64 = 19
3560const CDP_CT_W: i64 = 20
3561const CDP_FONT_AXIS: i64 = 12 // the axis titles' font-size (cdp_text's literal)
3562const CDP_CONTRAST_CONF: *u8 = "knowledge/compare/contrast.conf" // CWD buildroot (the regen)
3563const CDP_CONTRAST_CONF_UP: *u8 = "buildroot/knowledge/compare/contrast.conf" // CWD nishihost (a probe)
3564const CDP_CT_X100: i64 = 100
3718const CDP_SM_COLS: i64 = 3
3719const CDP_SM_CELL_W: i64 = 246
3720const CDP_SM_CELL_H: i64 = 190
3721const CDP_SM_PAD_L: i64 = 36
3722const CDP_SM_PAD_R: i64 = 10
3723const CDP_SM_PAD_T: i64 = 22
3724const CDP_SM_PAD_B: i64 = 26
3725const CDP_SM_R_MIN: i64 = 3
3726const CDP_SM_R_DIV: i64 = 2
3727const CDP_SM_FONT: i64 = 10
3728const CDP_SM_TITLE_DY: i64 = 14
3729const CDP_SM_TICK_DY: i64 = 12
3730const CDP_SM_TICK_DX: i64 = 4
3731const CDP_SM_TICK_BASE: i64 = 3

functions

28func w(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return 0 }
29func wc(fd: i64, code: i64) -> i64 { let t: *u8 = sys_mmap(2); t[0] = code as u8; sys_write(fd, t, 1); return 0 }
30func wn(fd: i64, v: i64) -> i64
36func wj(fd: i64, s: *u8) -> i64
43func wq(fd: i64) -> i64 { wc(fd, 34); return 0 }
44func kv_s(fd: i64, key: *u8, val: *u8) -> i64 { wq(fd); w(fd, key); wq(fd); wc(fd, 58); wq(fd); wj(fd, val); wq(fd); return 0 }
45func kv_n(fd: i64, key: *u8, v: i64) -> i64 { wq(fd); w(fd, key); wq(fd); wc(fd, 58); wn(fd, v); return 0 }
46func c_read(path: *u8, buf: *u8, cap: i64) -> i64
52func streq(a: *u8, b: *u8) -> i64 { var i: i64 = 0; while a[i] != (0 as u8) { if a[i] != b[i] { return 0 } i = i + 1 } if b[i] != (0 as u8) { return 0 } return 1 }
53func starts(s: *u8, pfx: *u8) -> i64 { var i: i64 = 0; while pfx[i] != (0 as u8) { if s[i] != pfx[i] { return 0 } i = i + 1 } return 1 }
54func scopy(dst: *u8, doff: i64, src: *u8) -> i64 { var i: i64 = 0; while src[i] != (0 as u8) { dst[doff+i] = src[i]; i = i + 1 } return doff + i }
55func splitpipe(s: *u8, fld: *i64, maxf: i64) -> i64
60func wnote(fd: i64, s: *u8) -> i64
111func rv_code(s: *u8) -> i64
called by 1: rv_class
119func rv_note_cited(note: *u8) -> i64
124func rv_class(note: *u8, rf: *i64, rr: i64, stride: i64, ncol: i64) -> i64
134func rv_grade_claims(g: *u8) -> i64 { if g[0] == (66 as u8) { return 1 } if g[0] == (89 as u8) { return 1 } if g[0] == (126 as u8) { return 1 } return 0 }
called by 1: rv_class_grades
135func rv_class_grades(note: *u8, rf: *i64, rr: i64, stride: i64, first: i64, count: i64) -> i64
called by 1: main calls 2: rv_grade_claimsrv_note_cited
143func rv_name(c: i64) -> *u8
149func rp_base(p: *u8) -> *u8
called by 2: rp_publishrp_html
155func rp_publish(mir: *u8, dom: *u8) -> i64
199func rp_may_republish(cls: *u8) -> i64
218func rp_publish_gated(mir: *u8, dom: *u8, cls: *u8) -> i64
226func rp_json(fld: *i64, count: i64) -> i64
called by 1: refs_pass calls 4: wcwqwkv_s
244func rp_html(fld: *i64, count: i64, dom: *u8, hdr: *u8) -> i64
262func refs_pass(path: *u8, bufz: *u8, capz: i64, mode: i64, dom: *u8, hdr: *u8) -> i64
320func dstate(fd: i64, id: *u8, ds: *u8, dn: i64) -> i64
363func wlow(fd: i64, s: *u8) -> i64
388func swl_bar_state(fd: i64, buf: *u8, bidoff: *i64, bidlen: *i64, bym: *i64, bst: *i64, nb: i64, id: *u8) -> i64
407func swl_rung_deps(fd: i64, buf: *u8, ridoff: *i64, ridlen: *i64, rdoff: *i64, rdlen: *i64, nr: i64, id: *u8) -> i64
421func swl_release_epoch(s: *u8) -> i64
438func swl_release_candidate(epoch: *u8, kind: *u8, entry: *u8, current: i64, now: i64) -> i64
452func sc_heading_level(level: i64) -> i64 { if level<1 { return 2 }; if level>6 { return 2 }; return level }
453func sc_heading_open(fd: i64, level: i64, attrs: *u8) -> i64
456func sc_heading_close(fd: i64, level: i64) -> i64
461func sc_plan_table_open(fd: i64, label: *u8) -> i64
464func sc_plan_table_close(fd: i64) -> i64 { w(fd, "</tbody></table></div>" as *u8); return 0 }
466func plan_pass(path: *u8, bufz: *u8, capz: i64, phase: i64) -> i64 { return plan_pass_heading(path, bufz, capz, phase, 2) }
called by 1: main calls 1: plan_pass_heading
468func sc_plan_row_table(phase: i64, kind: *u8, fields: i64) -> i64
called by 1: plan_pass_heading calls 1: streq
515func swl_trt_read(rel: *u8, outb: *i64) -> i64
530func swl_trt_allow_read(outb: *i64) -> i64
539func swl_trt_span(buf: *u8, off: i64, len: i64) -> *u8
549func swl_treat_judge(buf: *u8, tab: *i64, rows: i64, ev: *i64) -> i64
601func swl_trt_cell(fd: i64, buf: *u8, off: i64, len: i64, st: i64) -> i64
608func plan_pass_heading(path: *u8, bufz: *u8, capz: i64, phase: i64, heading_level: i64) -> i64
893func wp_status_text(st: i64) -> *u8
called by 1: watch_pass
900func wp_status_class(st: i64) -> *u8
called by 1: watch_pass
907func wp_classify(organ: *u8, sym: *u8, rule_out: *i64) -> i64
called by 1: watch_pass calls 3: streqstartssd_present
917func watch_pass(mpath: *u8, fd: i64, mode: i64) -> i64
1018func pl_jint(buf: *u8, n: i64, from: i64, key: *u8) -> i64
called by 1: ppp_pass_heading
1044func pl_off(buf: *u8, n: i64, name: *u8) -> i64
called by 1: ppp_pass_heading
1057func pl_cell(fd: i64, v: i64) -> i64
called by 1: ppp_pass_heading calls 2: wwn
1063func ppp_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return ppp_pass_heading(dom, fd, mode, 2) }
1064func ppp_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64
1267func sc_brand() -> *u8
1274func sc_dark_open() -> *u8 { return "@media(prefers-color-scheme:dark){:root{\n" as *u8 }
called by 1: sc_theme_pass
1275func sc_dark_close() -> *u8 { return "}}\n" as *u8 }
called by 1: sc_theme_pass
1277func sc_theme_pass(fd: i64) -> i64
1353func sc_light_open() -> *u8 { return ":root{\n" as *u8 }
called by 1: sc_print_css
1354func sc_light_close() -> *u8 { return "}\n" as *u8 }
called by 1: sc_print_css
1361func sc_print_css(fd: i64) -> i64
1437func sc_production_open(fd: i64, id: *u8, title: *u8, purpose: *u8) -> i64
1441func sc_production_close(fd: i64) -> i64 { w(fd, "</div></section>\n" as *u8); return 0 }
1443func sc_layout_pass(fd: i64) -> i64
1543func evj_class(fired: i64, name: *u8, n: *i64) -> i64
1551func evj_pass(dom: *u8) -> i64
1696func bd_ymd(epoch: i64, dst: *u8, off: i64) -> i64
1719func bd_sha_short(fd: i64, s: *u8) -> i64
1724func bd_status_class(st: i64) -> *u8
1771func pr_name_read(dir: *u8, appid: *u8, out: *u8, cap: i64) -> i64
1783func pr_name_lookup(appid: *u8, out: *u8, cap: i64) -> i64
1788func prop_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return prop_pass_heading(dom, fd, mode, 2) }
1789func prop_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64
1906func fi_lc(c: i64) -> i64 { if c >= FI_UPPER_A { if c <= FI_UPPER_Z { return c + FI_CASE_DELTA } } return c }
1908func fi_ci_contains(hay: *u8, needle: *u8) -> i64
1925func fi_head_word(col: *u8, out: *u8, cap: i64) -> i64
1933func field_pass(dom: *u8, fd: i64, mode: i64, colv: *i64, ncols_in: i64) -> i64 { return field_pass_heading(dom, fd, mode, colv, ncols_in, 2) }
1934func field_pass_heading(dom: *u8, fd: i64, mode: i64, colv: *i64, ncols_in: i64, heading_level: i64) -> i64
2078func gauge_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return gauge_pass_heading(dom, fd, mode, 2) }
2079func gauge_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64
2201func gaps_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return gaps_pass_heading(dom, fd, mode, 2) }
2202func gaps_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64
2301func bench_pass(dom: *u8, fd: i64, mode: i64) -> i64 { return bench_pass_heading(dom, fd, mode, 2) }
2302func bench_pass_heading(dom: *u8, fd: i64, mode: i64, heading_level: i64) -> i64
2469func sg_len(s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { i = i + 1 } return i }
2470func sg_id(s: *u8, n: i64) -> i64
2485func sg_split(s: *u8, f: *i64, capacity: i64, delimiter: i64) -> i64
2493func sg_decimal(s: *u8) -> i64
2503func sg_sha(b: *u8, n: i64) -> *u8
2512func sg_find(m: *SgPlan, name: *u8, length: i64) -> i64
2525func sg_prefix_decimal(s: *u8, key: *u8) -> i64
2529func sg_rank(m: *SgPlan, raw: *u8, n: i64) -> i64
2590func sg_colon(s: *u8, n: i64) -> i64
2595func sg_rule_name(rule: i64) -> *u8
2607func sg_note(list: *i64, count: i64, capacity: i64, rule: i64, rung: *u8, name: *u8, length: i64, number: i64) -> i64
2614func sg_offend(m: *SgPlan, rule: i64, rung: *u8, name: *u8, length: i64, number: i64) -> i64
2619func sg_extern(m: *SgPlan, rung: *u8, name: *u8, length: i64) -> i64
2626func sg_graph_text(m: *SgPlan, fd: i64) -> i64
2666func sg_parse(raw: *u8, n: i64, rank: *u8, rn: i64, matrix: *u8, mn: i64) -> *SgPlan
2823func sg_valid(m: *SgPlan) -> i64
2828func sg_rank_state(m: *SgPlan) -> *u8
2837func sg_load(domain: *u8) -> *SgPlan
2861func sg_growth_json(g: *CgModel,fd: i64) -> i64
2877func sg_growth_text(g: *CgModel,row: i64,col: i64,fd: i64) -> i64
2885func sg_growth_detail(g: *CgModel,row: i64,col: i64,label: *u8,fd: i64) -> i64
2888func sg_growth_html(g: *CgModel,fd: i64,heading: i64) -> i64
2939func sg_json(m: *SgPlan, fd: i64) -> i64
2977func sg_text(fd: i64, s: *u8) -> i64
2988func sg_html(m: *SgPlan, fd: i64) -> i64 { return sg_html_heading(m, fd, 2) }
2989func sg_html_heading(m: *SgPlan, fd: i64, heading_level: i64) -> i64
3024func sg_css(fd: i64) -> i64
3038func efs_free(d: *EfsDoc) -> i64
3043func efs_parse(src: *u8,n: i64) -> *EfsDoc
3102func efs_equal(d: *EfsDoc,idx: i64,s: *u8) -> i64
3111func efs_get(d: *EfsDoc,parent: i64,key: *u8) -> i64
3120func efs_kind(d: *EfsDoc,i: i64) -> i64 { if i<0 || i>=d.count { return 0 };return d.tokens[i*EFS_TOKEN_WORDS] }
3121func efs_int(d: *EfsDoc,i: i64) -> i64
3129func efs_number(d: *EfsDoc,parent: i64,key: *u8) -> i64 { return efs_int(d,efs_get(d,parent,key)) }
3130func efs_string(d: *EfsDoc,i: i64) -> *u8
3136func efs_print_string(d: *EfsDoc,i: i64,fd: i64) -> i64
3141func efs_validate(d: *EfsDoc) -> i64
3190func efs_metric(d: *EfsDoc,summary: i64,key: *u8,label: *u8,meaning: *u8,fd: i64) -> i64
3195func efs_html(d: *EfsDoc,fd: i64,heading: i64,path: *u8,hash: *u8) -> i64
3234func efs_capture(path: *u8,expected: *u8,r: *NxFileReadRegion) -> *u8
3261func efs_render(path: *u8,expected: *u8,heading: i64,fd: i64) -> i64
3321func cdp_x(v: i64, dom: *i64) -> i64 { return cl_scale_dom(v, dom, CDP_PAD_L, CDP_SVG_W - CDP_PAD_R) }
calls 1: cl_scale_dom
3322func cdp_y(v: i64, dom: *i64) -> i64 { return cl_scale_dom(v, dom, CDP_SVG_H - CDP_PAD_B, CDP_PAD_T) }
3323func cdp_an(fd: i64, name: *u8, v: i64) -> i64 { wc(fd, CDP_CH_SPACE); w(fd, name); w(fd, "='" as *u8); wn(fd, v); wc(fd, CDP_CH_QUOTE); return 0 }
called by 1: cdp_mark
3324func cdp_mom_stroke(known: i64, mom: i64) -> *u8
3363func cdp_dom3(domc: *i64, k: i64) -> *i64 { return (domc as i64 + k * CL_DOM_W * CD_I64_BYTES) as *i64 }
3364func cdp_fit3(sfit: *i64, p: i64) -> *i64 { return (sfit as i64 + p * CDP_XYZ * CD_I64_BYTES) as *i64 }
3365func cdp_iso_fit(xyz: *i64, domc: *i64, s: *i64) -> i64 { var k: i64 = 0; while k < CDP_XYZ { s[k] = cl_scale_dom(xyz[k], cdp_dom3(domc, k), 0, CD_PERMIL); k = k + 1 } return 0 }
calls 4: wwnwcwnote
3366func cdp_fig_open(fd: i64, cls: *u8, wd: i64, ht: i64, title: *u8, desc: *u8) -> i64
3371func cdp_tick_text(fd: i64, x: i64, y: i64, extra: *u8, v: i64) -> i64 { w(fd, "<text" as *u8); cdp_an(fd, "x" as *u8, x); cdp_an(fd, "y" as *u8, y); w(fd, " fill='var(--nx-color-mut)' font-size='" as *u8); wn(fd, CDP_FONT_TICK); wc(fd, CDP_CH_QUOTE); w(fd, extra); wc(fd, CDP_CH_GT); wn(fd, v); w(fd, "</text>\n" as *u8); return 0 }
calls 4: wcdp_anwnwc
3372func cdp_mean_text(fd: i64, x: i64, y: i64, extra: *u8, v: i64) -> i64 { w(fd, "<text" as *u8); cdp_an(fd, "x" as *u8, x); cdp_an(fd, "y" as *u8, y); w(fd, " fill='var(--nx-color-mut)' font-size='" as *u8); wn(fd, CDP_FONT_TICK); wc(fd, CDP_CH_QUOTE); w(fd, extra); w(fd, ">mean " as *u8); wn(fd, v); w(fd, "</text>\n" as *u8); return 0 }
3378func cdp_quad_word(i: i64) -> *u8
3386func cdp_quad_at(fd: i64, x: i64, ybase: i64, s: *u8) -> i64 { if g_cdp_ct_refuse_quad == 1 { return 0 } w(fd, "<text" as *u8); cdp_an(fd, "x" as *u8, x); cdp_an(fd, "y" as *u8, ybase); w(fd, " fill='var(--nx-color-mut)' font-size='" as *u8); wn(fd, CDP_FONT_QUAD); w(fd, "' style='letter-spacing:.12em;text-transform:uppercase'>" as *u8); wnote(fd, s); w(fd, "</text>\n" as *u8); return 0 }
3387func cdp_mark(fd: i64, x: i64, y: i64, r: i64, p: i64, known: i64, mom: i64) -> i64 { w(fd, "<circle" as *u8); cdp_an(fd, "cx" as *u8, x); cdp_an(fd, "cy" as *u8, y); cdp_an(fd, "r" as *u8, r); cdp_an(fd, "data-p" as *u8, p); w(fd, " fill='" as *u8); w(fd, cl_palette(p)); w(fd, "' fill-opacity='0.82' stroke='" as *u8); w(fd, cdp_mom_stroke(known, mom)); w(fd, "' stroke-width='" as *u8); wn(fd, CDP_STROKE_W); w(fd, "'>" as *u8); return 0 }
3388func cdp_leader(fd: i64, mx: i64, my: i64, lx: i64, ly: i64, lw: i64, lh: i64) -> i64 { if g_cdp_ct_refuse_labels == 1 { return 0 } var tx: i64 = lx; if lx + lw < mx { tx = lx + lw } cdp_line(fd, mx, my, tx, ly + lh / CDP_TWO, "stroke='var(--nx-color-mut)'" as *u8); return 0 }
3389func cdp_label(fd: i64, x: i64, y: i64, bold: i64, s: *u8, p: i64) -> i64
3398func cdp_wnote_n(fd: i64, s: *u8, n: i64) -> i64 { let t: *u8 = sys_mmap(n + 1); var i: i64 = 0; while i < n { t[i] = s[i]; i = i + 1 } t[n] = 0 as u8; return wnote(fd, t) }
calls 2: sys_mmapwj
3399func cdp_wj_n(fd: i64, s: *u8, n: i64) -> i64 { let t: *u8 = sys_mmap(n + 1); var i: i64 = 0; while i < n { t[i] = s[i]; i = i + 1 } t[n] = 0 as u8; return wj(fd, t) }
3402func cdp_annotate(fd: i64, x: i64, y: i64, wd: i64, ht: i64, buf: *u8, rcn: *i64, loff: *i64, llen: *i64, nlines: i64) -> i64
3425func cdp_interact(fd: i64, domx: *i64, domy: *i64) -> i64
3462func cdp_font_probe(nas: *u8, up: *u8, laptop: *u8) -> *u8
3469func cdp_export_path(dst: *u8, dir: *u8, leaf: *u8) -> i64
3476func cdp_export_kv(fd: i64, key: *u8, v: i64) -> i64 { kv_n(fd, key, v); wc(fd, CDP_CH_COMMA); return 0 }
3477func cdp_export(dir: *u8) -> i64
3525func cdp_note_anchor(fd: i64, rcn: *i64, names: *i64) -> i64
3530func cdp_swatch(fd: i64, p: i64) -> i64 { w(fd, "<span style='display:inline-block;width:" as *u8); wn(fd, CDP_LEG_SW); w(fd, "px;height:" as *u8); wn(fd, CDP_LEG_SW); w(fd, "px;border-radius:50%;background:" as *u8); w(fd, cl_palette(p)); w(fd, ";margin:0 5px 0 10px;vertical-align:-1px' aria-hidden='true'></span>" as *u8); return 0 }
3565func cdp_contrast(out: *i64) -> i64
3637func cdp_x100(fd: i64, v: i64) -> i64 { wn(fd, v / CDP_CT_X100); w(fd, "." as *u8); let f: i64 = v % CDP_CT_X100; if f < CDP_CT_X100 / 10 { wn(fd, 0) } wn(fd, f); return 0 }
3638func cdp_ct_pair(fd: i64, name: *u8, v: i64, floor: i64) -> i64 { w(fd, name); w(fd, " <b>" as *u8); cdp_x100(fd, v); w(fd, "</b> (floor " as *u8); cdp_x100(fd, floor); w(fd, ")" as *u8); return 0 }
3639func cdp_contrast_html(fd: i64, ct: *i64) -> i64
3656func cdp_contrast_json(fd: i64, ct: *i64) -> i64
3675func cdp_grade(fd: i64, view: *u8, crit: *i64, unresolved: i64) -> i64
3680func cdp_grade_json(fd: i64, key: *u8, crit: *i64, unresolved: i64) -> i64
3687func cdp_dom_json(fd: i64, key: *u8, dom: *i64) -> i64 { wq(fd); w(fd, key); wq(fd); wc(fd, CDP_CH_COLON); wc(fd, CDP_CH_LBRACKET); wn(fd, dom[CL_D_LO]); wc(fd, CDP_CH_COMMA); wn(fd, dom[CL_D_HI]); wc(fd, CDP_CH_COMMA); wn(fd, dom[CL_D_STEP]); wc(fd, CDP_CH_RBRACKET); return 0 }
3688func cdp_day_label(fd: i64, day: i64) -> i64 { let b: *u8 = sys_mmap(CDP_DATE_CAP); let o: i64 = bd_ymd(day * CD_SECS_PER_DAY, b, 0); sys_write(fd, b, o); return 0 }
3689func cdp_text(fd: i64, x: i64, y: i64, extra: *u8, s: *u8) -> i64 { w(fd, "<text" as *u8); cdp_an(fd, "x" as *u8, x); cdp_an(fd, "y" as *u8, y); w(fd, " fill='currentColor' font-size='12'" as *u8); w(fd, extra); wc(fd, CDP_CH_GT); wnote(fd, s); w(fd, "</text>\n" as *u8); return 0 }
3690func cdp_hist(hist: *i64, p: i64) -> *i64 { return (hist as i64 + p * CD_HIST_W * CD_I64_BYTES) as *i64 }
3692func cdp_trail(trail: *i64, tcap: i64, p: i64) -> *i64 { return (trail as i64 + p * tcap * CD_HIST_W * CD_I64_BYTES) as *i64 }
3693func cdp_line(fd: i64, x1: i64, y1: i64, x2: i64, y2: i64, style: *u8) -> i64 { w(fd, "<line" as *u8); cdp_an(fd, "x1" as *u8, x1); cdp_an(fd, "y1" as *u8, y1); cdp_an(fd, "x2" as *u8, x2); cdp_an(fd, "y2" as *u8, y2); wc(fd, CDP_CH_SPACE); w(fd, style); w(fd, "/>\n" as *u8); return 0 }
3694func cdp_pt(fd: i64, x: i64, y: i64) -> i64 { wn(fd, x); wc(fd, CDP_CH_COMMA); wn(fd, y); return 0 }
3696func cdp_cube_xyz(out: *i64, p: i64, nr: i64, h: *i64, cube: *i64, which: i64, xyz: *i64) -> i64
3704func cdp_iso_px(xyz: *i64) -> i64 { return cd_iso_x(CDP_ISO_OX, xyz[0], xyz[1], CDP_ISO_UNIT) }
3705func cdp_iso_py(xyz: *i64) -> i64 { return cd_iso_y(CDP_ISO_OY, xyz[0], xyz[1], xyz[2], CDP_ISO_UNIT) }
3706func cdp_iso_floor_py(xyz: *i64) -> i64 { return cd_iso_y(CDP_ISO_OY, xyz[0], xyz[1], 0, CDP_ISO_UNIT) }
3707func cdp_iso_at(fd: i64, x: i64, y: i64, z: i64) -> i64 { cdp_pt(fd, cd_iso_x(CDP_ISO_OX, x, y, CDP_ISO_UNIT), cd_iso_y(CDP_ISO_OY, x, y, z, CDP_ISO_UNIT)); return 0 }
3708func cdp_names(fd: i64, ids: *i64, n: i64) -> i64 { var k: i64 = 0; while k < n { if k > 0 { w(fd, ", " as *u8) } w(fd, cd_axis_name(ids[k])); k = k + 1 } return 0 }
3709func cdp_names_json(fd: i64, ids: *i64, n: i64) -> i64 { wc(fd, CDP_CH_LBRACKET); var k: i64 = 0; while k < n { if k > 0 { wc(fd, CDP_CH_COMMA) } wq(fd); w(fd, cd_axis_name(ids[k])); wq(fd); k = k + 1 } wc(fd, CDP_CH_RBRACKET); return 0 }