|
334 | 334 | (def ^:private tu-allowlist |
335 | 335 | {"src/eval/read.c" "lexer/parser -- inherently sequential, not decomposable" |
336 | 336 | "src/prim/collections.c" "14 domain primitives in one module, barely over limit" |
337 | | - "src/prim/agent.c" "agent subsystem -- worker thread, queue, prims kept together"}) |
| 337 | + "src/prim/agent.c" "agent subsystem -- worker thread, queue, prims kept together" |
| 338 | + "src/prim/bignum.c" "imath wrapper + numeric tower coercions, barely over limit" |
| 339 | + "src/prim/module.c" "ns / require / use / load surface kept together" |
| 340 | + "src/prim/ns.c" "ns primitives -- intern / refer / alias / publics in one module" |
| 341 | + "src/prim/numeric.c" "numeric tower -- arith + compare + math fns sharing coercion helpers" |
| 342 | + "src/prim/reflection.c" "reflection / type / meta surface kept together" |
| 343 | + "src/prim/sequences.c" "sequence primitives -- map / filter / take / etc share lazy-seq glue" |
| 344 | + "src/prim/stm.c" "STM commit + retry + ref/alter/commute/dosync kept together" |
| 345 | + "src/prim/string.c" "string primitives -- per-byte / per-char ops share parsing helpers" |
| 346 | + "src/collections/val.c" "value layer -- alloc / copy / hash / equality kept with type defs" |
| 347 | + "src/runtime/state.c" "state lifecycle -- ctor/dtor/quiesce + lock impl kept together" |
| 348 | + "src/vendor/imath/imath.c" "vendored bigint library -- not modified"}) |
338 | 349 |
|
339 | 350 | ;; Functions allowed to exceed the function size limit, keyed by file:signature prefix. |
340 | 351 | (def ^:private fn-allowlist |
341 | 352 | #{"src/eval/special.c:eval_impl" ;; main evaluator dispatch -- inherently large |
342 | | - "src/eval/read.c:read_form"}) |
| 353 | + "src/eval/read.c:read_form" |
| 354 | + "src/collections/val.c:int mino_eq" ;; cross-type equality dispatch over every MINO_* tag |
| 355 | + "src/eval/print.c:void mino_print_to" ;; printer dispatch over every MINO_* tag |
| 356 | + "src/prim/module.c:mino_env_t *env" ;; load_ns_file -- multi-line signature; nested form-by-form loader |
| 357 | + "src/prim/module.c:mino_val_t *prim_require"}) ;; require -- spec parsing + loading + aliasing in one path |
343 | 358 |
|
344 | 359 | (defn- count-lines |
345 | 360 | "Return the number of lines in a file." |
|
426 | 441 | (let [parts (str/split entry ":") |
427 | 442 | af (first parts) |
428 | 443 | afn (first (rest parts))] |
429 | | - (and (= file af) (includes? sig afn)))) |
| 444 | + (and (= file af) (str/includes? sig afn)))) |
430 | 445 | fn-allowlist)] |
431 | 446 | (if allowed |
432 | 447 | (do (println (str " ALLOW " file ": " sig " (" (:lines m) " LOC)")) 0) |
|
0 commit comments