IssueRaiser

Nim Roadmap 2025 and beyond

> Life has a melody, Gaius. A rhythm of notes that become your existence once > they're played in harmony with God's plan. Come. See the face of the shape of things to come. > -- "6" from Battlestar Galactica **NOTE**: This plan covers 2025 and beyond as it is very ambitious. # Nil/not nil The plan for this feature changed again and it is now: - `ref/ptr T`: Remains to be unchecked so that it is backwards compatible with every Nim version ever released. But eventually this will be written as `unchecked ref/ptr T`. - `ref/ptr T not nil`: Checked at compile-time (we need to fix the bugs in the implementation). - `nil ref/ptr T`: Can be nil and it is checked at compile-time that every deref operation is within a guard like `if x != nil`. This feature is not scheduled for any particular release. # Version 2.4 <strike>- [ ] Enables strict "definite assignment" analysis which enforces at compile-time that variables have been initialized.</strike> - [ ] Offers an experimental "type-bound operations" mode. # Version 3 Version 3 will be achieved via a combination of compiler phase rewrites, code reuse, refactorings and porting of compiler code. The primary goal is to finally give us a Nim that offers: 1. Incremental recompilations. 2. No forward declarations for procs and types required. 3. Allow for explicit cyclic module dependencies. 4. Type-checked generics. 5. Avoid the phase ordering problems that plagued Nim for a long time: Destructors and other `

Posted by Araq on Dec 4, 2024, 9:33 AM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.2,000 issues0 comments

github (Software)

Nim Roadmap 2025 and beyond

AraqDec 4, 2024, 9:33 AM

> Life has a melody, Gaius. A rhythm of notes that become your existence once > they're played in harmony with God's plan. Come. See the face of the shape of things to come. > -- "6" from Battlestar Galactica **NOTE**: This plan covers 2025 and beyond as it is very ambitious. # Nil/not nil The plan for this feature changed again and it is now: - `ref/ptr T`: Remains to be unchecked so that it is backwards compatible with every Nim version ever released. But eventually this will be written as `unchecked ref/ptr T`. - `ref/ptr T not nil`: Checked at compile-time (we need to fix the bugs in the implementation). - `nil ref/ptr T`: Can be nil and it is checked at compile-time that every deref operation is within a guard like `if x != nil`. This feature is not scheduled for any particular release. # Version 2.4 <strike>- [ ] Enables strict "definite assignment" analysis which enforces at compile-time that variables have been initialized.</strike> - [ ] Offers an experimental "type-bound operations" mode. # Version 3 Version 3 will be achieved via a combination of compiler phase rewrites, code reuse, refactorings and porting of compiler code. The primary goal is to finally give us a Nim that offers: 1. Incremental recompilations. 2. No forward declarations for procs and types required. 3. Allow for explicit cyclic module dependencies. 4. Type-checked generics. 5. Avoid the phase ordering problems that plagued Nim for a long time: Destructors and other `

Comments (0)

No comments yet. Start the discussion.

Comment on this issue