Files
Nim/lib/std
Andreas Rumpf 816589b667 NIR: Nim intermediate representation (#22777)
Theoretical Benefits / Plans: 

- Typed assembler-like language.
- Allows for a CPS transformation.
- Can replace the existing C backend by a new C backend.
- Can replace the VM.
- Can do more effective "not nil" checking and static array bounds
checking.
- Can be used instead of the DFA.
- Easily translatable to LLVM.
- Reasonably easy to produce native code from.
- Tiny memory consumption. No pointers, no cry.

**In very early stages of development.**

Todo:
- [x] Map Nim types to IR types.
- [ ] Map Nim AST to IR instructions:
  - [x] Map bitsets to bitops.
  - [ ] Implement string cases.
  - [ ] Implement range and index checks.
  - [x] Implement `default(T)` builtin.
  - [x] Implement multi string concat.
- [ ] Write some analysis passes.
- [ ] Write a backend.
- [x] Integrate into the compilation pipeline.
2023-10-11 17:44:14 +02:00
..
2021-02-21 19:53:28 -08:00
2023-01-02 10:39:17 +01:00
2023-01-02 10:39:17 +01:00
2022-11-28 15:15:44 -05:00
2021-03-10 10:39:23 -08:00
2021-02-21 19:53:28 -08:00
2023-01-02 10:39:17 +01:00
2021-10-01 13:57:06 +02:00
2021-02-21 19:53:28 -08:00
2023-06-08 22:52:24 +08:00