mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-20 06:20:38 +00:00
@@ -599,14 +599,16 @@ to existing modules is acceptable. For two reasons:
|
||||
|
||||
Conventions
|
||||
-----------
|
||||
1. New stdlib modules should go under `Nim/lib/std/`. The rationale is to require
|
||||
users to import via `import std/foo` instead of `import foo`, which would cause
|
||||
potential conflicts with nimble packages. Note that this still applies for new modules
|
||||
in existing logical directories, e.g.:
|
||||
use `lib/std/collections/foo.nim`, not `lib/pure/collections/foo.nim`.
|
||||
1. New stdlib modules should go under `Nim/lib/std/`. The rationale is to
|
||||
require users to import via `import std/foo` instead of `import foo`,
|
||||
which would cause potential conflicts with nimble packages.
|
||||
Note that this still applies for new modules in existing logical
|
||||
directories, e.g.: use `lib/std/collections/foo.nim`,
|
||||
not `lib/pure/collections/foo.nim`.
|
||||
|
||||
2. New module names should prefer plural form whenever possible, e.g.:
|
||||
`std/sums.nim` instead of `std/sum.nim`. In particular, this reduces chances of conflicts
|
||||
between module name and the symbols it defines. Furthermore, module names should
|
||||
use `snake_case` and not use capital letters, which cause issues when going
|
||||
from an OS without case sensitivity to an OS with it.
|
||||
`std/sums.nim` instead of `std/sum.nim`. In particular, this reduces
|
||||
chances of conflicts between module name and the symbols it defines.
|
||||
Furthermore, module names should use `snake_case` and not use capital
|
||||
letters, which cause issues when going from an OS without case
|
||||
sensitivity to an OS with it.
|
||||
|
||||
@@ -6073,13 +6073,14 @@ avoid ambiguity when there are multiple modules with the same path.
|
||||
|
||||
There are two pseudo directories:
|
||||
|
||||
1. ``std``: The ``std`` pseudo directory is the abstract location of Nim's standard
|
||||
library. For example, the syntax ``import std / strutils`` is used to unambiguously
|
||||
refer to the standard library's ``strutils`` module.
|
||||
2. ``pkg``: The ``pkg`` pseudo directory is used to unambiguously refer to a Nimble
|
||||
package. However, for technical details that lie outside the scope of this document,
|
||||
its semantics are: *Use the search path to look for module name but ignore the standard
|
||||
library locations*. In other words, it is the opposite of ``std``.
|
||||
1. ``std``: The ``std`` pseudo directory is the abstract location of
|
||||
Nim's standard library. For example, the syntax ``import std / strutils``
|
||||
is used to unambiguously refer to the standard library's ``strutils`` module.
|
||||
2. ``pkg``: The ``pkg`` pseudo directory is used to unambiguously refer to
|
||||
a Nimble package. However, for technical details that lie outside the
|
||||
scope of this document, its semantics are: *Use the search path to look for
|
||||
module name but ignore the standard library locations*.
|
||||
In other words, it is the opposite of ``std``.
|
||||
|
||||
|
||||
From import statement
|
||||
|
||||
Reference in New Issue
Block a user