Files
Nim/compiler
Araq 5ce2c8f95d IC: codegen the main module in a single C translation unit
Under `nim nifc` the main module is loaded by its source FileIndex, but
its serialized symbols carry the module's NIF suffix, so
registerNifSuffix allocated a SECOND FileIndex for the same module:
top-level globals were emitted into the source-index BModule while
procs went into the suffix-index BModule, and a N_LIB_PRIVATE global
declared in one TU was undeclared in the other (tincremental,
tmacros_various).

Pre-aliasing the suffix to the source index in loadModuleDependencies
unifies the TUs. This was tried before and reverted: the split was
masking a hook C-name disamb collision between sem-lifted (loaded) and
codegen-lifted hooks in the same module. That collision class is gone
since backend-minted symbols mangle as _c<item> (BackendIdOffset), so
the unification is safe now.

Macro sweep 92/95 (fixes tincremental + tmacros_various; remaining:
tmacro7 which fails identically under non-IC and is disabled,
tmacrogenerics, tmacrogetimpl), tests/ic 5/5, clean koch bootic
reaches the bit-identical fixed point.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 13:17:03 +02:00
..
2026-06-10 12:04:42 +02:00
2023-12-15 10:20:57 +01:00
2026-06-10 12:04:42 +02:00
2025-12-01 22:59:12 +01:00
2026-02-10 13:21:35 +01:00
2026-06-10 12:04:42 +02:00
2026-06-09 23:42:00 +02:00
2026-06-08 15:43:56 +02:00
2026-06-08 18:33:59 +02:00
2026-06-10 12:04:42 +02:00
2025-12-11 18:22:38 +01:00
2026-03-16 16:56:18 +01:00
2026-06-09 16:12:38 +02:00
2025-12-31 13:33:57 +01:00
2017-01-07 22:35:09 +01:00
2026-06-10 12:04:42 +02:00
2026-02-10 13:21:35 +01:00
2025-12-11 18:22:38 +01:00
2025-12-11 18:22:38 +01:00
2026-06-07 19:55:56 +02:00
2025-11-25 12:49:23 +01:00
2026-04-02 07:19:43 +02:00
2024-12-27 19:42:18 +01:00
2026-06-08 15:43:56 +02:00
2026-04-02 07:19:43 +02:00
2026-06-10 12:04:42 +02:00
2025-12-11 18:22:38 +01:00
2026-04-02 07:19:43 +02:00
2025-12-11 18:22:38 +01:00
2021-01-12 09:36:51 +01:00
2026-06-10 12:04:42 +02:00
2026-06-10 12:04:42 +02:00
2026-01-09 13:10:04 +01:00
2026-06-10 12:04:42 +02:00
2026-06-10 12:04:42 +02:00
2025-12-11 18:22:38 +01:00
2026-06-09 16:12:38 +02:00
2026-06-09 16:12:38 +02:00
2026-06-09 16:12:38 +02:00
2026-02-10 13:21:35 +01:00
2023-07-02 22:36:05 +02:00
2023-11-06 18:33:28 +01:00
2026-02-10 13:21:35 +01:00
2026-06-10 12:04:42 +02:00
2026-05-12 23:20:10 +02:00
2025-12-11 18:22:38 +01:00
2026-06-10 12:04:42 +02:00
2026-06-10 12:04:42 +02:00
2025-12-11 18:22:38 +01:00
2025-12-11 18:22:38 +01:00
2026-06-10 12:04:42 +02:00
2026-06-08 17:25:48 +02:00
2026-06-10 12:04:42 +02:00
2025-12-11 18:22:38 +01:00
2024-03-16 08:35:18 +08:00
2025-12-29 13:52:22 +01:00
2025-12-31 13:33:57 +01:00
2026-06-10 12:04:42 +02:00
2026-06-10 12:04:42 +02:00
2026-06-10 12:04:42 +02:00
2026-06-09 16:12:38 +02:00
2023-12-25 07:12:54 +01:00

Nim Compiler

  • This directory contains the Nim compiler written in Nim.
  • Note that this code has been translated from a bootstrapping version written in Pascal.
  • So the code is not a poster child of good Nim code.

See Internals of the Nim Compiler for more information.