# compiler/modulepaths

Dark Mode

- Index

Search:
Group by:
Source Edit

# Imports

ast, renderer, msgs, options, idents, lineinfos, pathutils

# Procs

    proc checkModuleName(conf: ConfigRef; n: PNode; doLocalError = true): FileIndex {....raises: [
        OSError, Exception, ValueError, KeyError, IOError, ERecoverableError], tags: [
        ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect, WriteIOEffect].}

  Source Edit

    proc demangleModuleName(path: string): string {....raises: [], tags: [].}

  Demangle a relative module path. Source Edit

    proc getModuleName(conf: ConfigRef; n: PNode): string {....raises: [OSError,
        Exception, ValueError, KeyError, IOError, ERecoverableError], tags: [
        ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect, WriteIOEffect].}

  Source Edit

    proc mangleModuleName(conf: ConfigRef; path: AbsoluteFile): string {.
        ...raises: [Exception], tags: [RootEffect].}

  Mangle a relative module path to avoid path and symbol collisions.

  Used by backends that need to generate intermediary files from Nim modules. This is needed because the compiler uses a flat cache file hierarchy.

  Example: `foo-#head/../bar` becomes `@foo-@hhead@s..@sbar`

  Source Edit