• Nim Tips and tricks
  • Compilation
  • Syntax
  • Check syntax
  • Using reserved words as identifiers
  • Conditional compilation
  • Defining a compile time symbol
  • Errors
  • Error: attempting to call routine: 'a'
  • Error: expression '...' has no type (or is ambiguous)
  • Error: '...' doesn't have a concrete type, due to unspecified generic parameters.
  • Error: undeclared field: 'major' for type foo.Version
  • Error: template instantiation too nested
  • Error: identifier expected, but found '...
  • Error: type mismatch: got <X> but expression is of type: X
  • Error: ambiguous call; both procName...
  • Tests
  • How to test that the compiler will reject a piece of code?
  • Enhance documentation with examples
  • Templates
  • Templates overloading
  • Template scopes
  • Macros
  • Dump macro expansion
  • Output
  • Echo to stderr
  • How do I echo in a {.noSideEffect.} proc?
  • Enums
  • Converting string to enum
  • Tuple
  • Enumerate the fields of a tuple or object.
  • Seq and lists
  • Heterogeneous lists
  • Iterators
  • Recursive iterators
  • External libraries
  • Managing external libraries memory allocations
  • Language details
  • Shallow vs. DeepCopy
  • import vs include
  • Optimization via C compiler flags (LTO, PGO, ...)
  • Clang