From 9a8302de7051d0f8d5263cb30d0753d4f446bb0b Mon Sep 17 00:00:00 2001 From: gabrielmer <101006718+gabrielmer@users.noreply.github.com> Date: Tue, 29 Jul 2025 22:47:07 +0200 Subject: [PATCH] article: logos nim in logos - 1st edition (#171) Co-authored-by: Ivan Folgueira Bande Co-authored-by: kaiserd <1684595+kaiserd@users.noreply.github.com> --- rlog/2025-07-29-nim-in-logos-edition-1.mdx | 142 +++++++++++++++++++++ rlog/authors.yml | 8 ++ static/img/nim-gdb.png | Bin 0 -> 52522 bytes 3 files changed, 150 insertions(+) create mode 100644 rlog/2025-07-29-nim-in-logos-edition-1.mdx create mode 100644 static/img/nim-gdb.png diff --git a/rlog/2025-07-29-nim-in-logos-edition-1.mdx b/rlog/2025-07-29-nim-in-logos-edition-1.mdx new file mode 100644 index 00000000..e6946018 --- /dev/null +++ b/rlog/2025-07-29-nim-in-logos-edition-1.mdx @@ -0,0 +1,142 @@ +--- +title: 'Nim in Logos - 1st Edition' +date: 2025-07-04 23:00:00 +authors: [ivansete, gabrielmer] +published: true +slug: nim-in-logos-01 +categories: nim + +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +Welcome to the first edition of **Nim in Logos** — a newsletter covering major Nim features from Logos' perspective. + +If you have comments or suggestions, feel free to reach out to the authors directly or start a thread in the [Logos Discord server](https://discord.gg/logosnetwork). + + +## Nim 2.2 – Better Stability, Smarter Memory, and Smoother Development + +The Nim 2.2 release series focuses on improving language stability, fixing long-standing bugs, and optimizing performance—particularly in the ORC memory management system. The latest patch in this series, version 2.2.4, continues to build on these goals. + +Here are some of the key highlights from the 2.2 series: + +- **More powerful generics and type expressions:** Stabilization of generics, typedesc, and static types. These features now support arbitrary expressions that previously only worked in limited cases, making them more reliable. +- **Improved tuple unpacking:** Tuple unpacking now supports discarding values using underscores (_) and allows inline type annotations for unpacked elements. +- **Memory leak fixes:** Issues with memory leaks when using std/nre’s regular expressions or nested exceptions have been resolved. +- **More efficient async code:** Futures no longer always copy data, resulting in better performance in asynchronous workflows. +- **String bug fixes:** Several issues involving string and cstring usage have been corrected. + +In addition to core language improvements: + +- **NimSuggest stability:** The language server has received multiple fixes, improving the experience in IDEs and editors that rely on NimSuggest for autocompletion and error checking. +- **Better code generation:** Numerous issues related to invalid or broken C and C++ code generation and backend-specific bugs have been addressed, improving Nim’s reliability when targeting other languages. + +You can read the full release announcement and changelog [here](https://nim-lang.org/blog/2024/10/02/nim-220-2010.html) + +## Error Handling in Nim: Why Results Beat Exceptions + +Error handling is one of the most critical aspects of writing reliable software, yet it remains a contentious topic in many programming languages. In Nim, developers face a unique challenge: multiple error handling paradigms are supported, leading to confusion about which approach to choose. For robust, maintainable code, our answer at Logos is increasingly clear—favor Result types over exceptions. + +#### The Exception Problem + +While exceptions might seem convenient for quick scripts and prototypes, they introduce significant challenges in complex, long-running applications: + +- **Silent API Changes**: One of the most dangerous aspects of exception-based error handling is that changes deep within dependencies can break your code without any compile-time warning. When a function suddenly starts throwing a new exception type, your code may fail at runtime under exceptional circumstances—often when you least expect it. +- **Resource Management Issues**: Exceptions create unpredictable control flow that can lead to resource leaks, security vulnerabilities, and unexpected crashes. When an exception unwinds the stack, resources may not be properly cleaned up. +- **Refactoring Difficulties**: The compiler provides little assistance when working with exception-based code. Adding a new exception type breaks the ABI but leaves the API unchanged, making it nearly impossible to track down all the places that need updating. + +#### The Result Advantage + +The Result type offers a compelling alternative that makes error handling explicit, predictable, and compiler-verified: + +```bash +# Enforce that no exceptions can't be raised in this module +{.push raises: [].} + +import results + +proc doSomething(): Result[void, string] = +# Implementation here + +proc getRandomInt(): Result[int, string] = +# Implementation here + +doSomething().isOkOr: + +echo "Failed doing something, error: ", & error + +randomInt = getRandomInt().valueOr: + +echo "Failed getting random int, error: ", & error +``` + +Notice that this usage of Result is much more concise and easier to follow than try-except blocks + +#### Best Practices for Result-Based Error Handling + +- **Make Errors Explicit**: Use Result when multiple failure paths exist and calling code needs to differentiate between them. This makes error handling visible at the call site and forces developers to consciously handle failure cases. +- **Handle Errors Locally**: Address errors at each abstraction level rather than letting them bubble up through multiple layers. This prevents spurious abstraction leakage and keeps error handling logic close to where problems occur. +- **Use Exception Tracking**: Enable exception tracking with `{.push raises: [].}` at the module level. This helps identify any remaining exception-throwing code and ensures new code follows the Result pattern. + +#### When to Break the Rules + +While Result should be your default choice, exceptions still have their place: + +- **Assertions and Logic Errors**: Use assertions for violated preconditions or situations where recovery isn't possible or expected. +- **Legacy Integration**: When interfacing with exception-heavy libraries, you may need to use exceptions at integration boundaries, but convert them to Result types as quickly as possible. To ensure safe exception handling, explicitly declare which exceptions a procedure may raise using the `{.raises: [SpecificException].}` pragma. + +Error handling in Nim continues to evolve, but the trend is clear: explicit error handling through Result types provides better safety, maintainability, and debugging experience than exceptions. By making errors part of your function signatures and forcing explicit handling at call sites, you create more robust software that fails gracefully and predictably. + +## Debugging in Nim + +Nowadays, analyzing the behavior of a Nim program is not as straightforward as debugging a C++ application, for example. + +#### GDB + +GDB can be used, and step-by-step debugging with GDB and VSCode is possible. However, the interaction is not very smooth. You can set breakpoints in VSCode and press F5 to run the program up to the breakpoint and continue debugging from there. That said, the state of variables is not fully demangled. For example: + +![img](/img/nim-gdb.png) + +For that reason, GDB is not the preferred option in Logos + +#### Logs - Chronicles + +At Logos, we primarily debug Nim applications using log outputs. In particular, we make extensive use of the [nim-chronicles](https://github.com/status-im/nim-chronicles) library. + +`nim-chronicles` is a robust logging library that automatically includes the following contextual information in each log entry: + +- Calling thread ID +- Current timestamp +- Log level (e.g., TRACE, DEBUG, INFO, WARN, ERROR, FATAL) +- Source file name +- Line number of the log statement + +Additionally, `chronicles` supports attaching custom log messages along with relevant variable values, which proves especially useful for debugging. For instance, in the following example, the log message is `"Configuration. Shards"`, and it includes the value of an additional variable, `shard`. + +```jsx +INF 2025-07-01 09:56:57.705+02:00 Configuration. Shards topics="waku conf" tid=28817 file=waku_conf.nim:147 shard=64 +``` + +There are also useful techniques for displaying more detailed information about specific variables: + +- `repr(p)` — Returns a string representation of the variable `p`, providing a more comprehensive view of its contents. +- `name(typeof(p))` — Extracts the type of the variable `p` as a string. This is particularly helpful when working with pointers or generics. + +#### Logs - echo + +The [echo](https://nim-lang.org/docs/system.html#echo%2Cvarargs%5Btyped%2C%5D) statement in Nim serves as a basic debugging tool, although it is less powerful and flexible compared to `nim-chronicles`. + +Besides, [debugEcho](https://www.notion.so/Nim-in-Logos-July-2025-2038f96fb65c8042bcbbe676ee8f2182?pvs=21) is an interesting alternative, which behaves similarly to `echo` but it allows working on routines marked with no side effects. + +#### Heaptrack + +This technique enables precise insight into where memory is being consumed within a Nim application. + +It is particularly useful for identifying potential memory leaks and is widely employed in **nwaku** (Nim Waku). For more details, refer to the documentation: [Heaptrack Tutorial](https://github.com/waku-org/nwaku/blob/master/docs/tutorial/heaptrack.md). + +## Formatting code in Nim + +Maintaining a consistent code format is essential for readability and for facilitating clear diff comparisons during code reviews. + +To support this, Logos strongly recommends using [*nph*](https://arnetheduck.github.io/nph/) across all Nim projects. diff --git a/rlog/authors.yml b/rlog/authors.yml index 93ebd21a..31463352 100644 --- a/rlog/authors.yml +++ b/rlog/authors.yml @@ -67,5 +67,13 @@ benph: name: 'BenPH' github: 'Ben-PH' +ivansete: + name: 'Ivan' + github: 'ivansete-status' + +gabrielmer: + name: 'Gabriel' + github: 'gabrielmer' + Vac: name: 'Vac' diff --git a/static/img/nim-gdb.png b/static/img/nim-gdb.png new file mode 100644 index 0000000000000000000000000000000000000000..aeec700a1e5d3bbf1cd5ebf4e6b8b9d5a8261d37 GIT binary patch literal 52522 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

^@ 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 P01*EsBU~Y*>-RqZTw2&! literal 0 HcmV?d00001