Skip to content

[WIP] [TODO] miscellaneous issues #8753

Closed
@timotheecour

Description

@timotheecour

see also: label:postponed label:"TODO items remaining" title: [WIP] title: [TODO]

doc

# from dcstyle.rst
* Inline code should be surrounded by single tick marks (`` like `this` ``). If you would like a character to immediately follow inline code (e.g., "``int8``s are great!"), escape the following character with a backslash (``\``). The preceding is typed as ``` ``int8``\s are great!```.

renders as:

image

  • SPEED:./koch docs runs each nim doc separately, could use a single cmd: nim doc --project fileThatImportsAll.nim + maybe a few other files if needed

CI

in koch.nim: follow up from #10183:

  • time each exec command (so we know the bottlenecks)
  • add a smoke test (eg smoke_test.nim) that runs as early as possible (before other tests) and whose job is to fail fast to reject PR's in a bad state (eg after a typo) and avoid wasting CI time for these; it shall import as many modules as possible (without running into known limitations) and just try to compile it (maybe via nim --errrormax:0 smoke_test.nim) ; code can be reused with megatest maybe
  • with NIM_COMPILE_TO_CPP=true runs in travis/appveyor, the nim mode is probably not yet being honored everywhere (eg nim c hardcoded in places)
  • on error, testament doesn't show the relevant err msg if there are many, eg: see D20190111T070023
  • report which tests are disabled (in a output json file)

compiler

  • update vmgen.codeListing to use compiler/asciitables.nim instead ; it'll generate nicer looking listings
  • move compiler/asciitables.nim to stdlib

testament

  • use assertEquals and mismatch in testament
  • var compilerPrefix* = "compiler" / "nim" ## built via ./koch tests => instead, use nim from PATH, else from —nim; not from compiler" / “nim" and don't rebuild it in ./koch tests D20190205T124107
    => ./koch tests now does not rebuild nim #10572

typetraits.name

runnableExamples

  • runnableExamples could probably be run on module scope instead of inside a block; would simplify code (no need to mess with import), and allow certain things that are impossible inside a runnableExamples (eg: X has to be at module scope); I ran into this for several unrelated issues, preventing use of runnnableExamples in those cases; this would fix that; note: no performance penalty now that runnableExamples are all run at once

=> #11732

iterators

osproc

pathutils

  • this doesn't make sense:
    os.isAbsolute(f.string) seems odd; and why unix instead of posix?
    $nimc_D/compiler/nim.nim
proc prependCurDir(f: AbsoluteFile): AbsoluteFile =
  when defined(unix):
    if os.isAbsolute(f.string): result = f
    else: result = AbsoluteFile("./" & f.string)
  else:
    result = f

std/macros

  • wrong doc for strVal; probably refers to getImpl
proc strVal*(n: NimNode): string  {.magic: "NStrVal", noSideEffect.}
    ## retrieve the implementation of `symbol`. `symbol` can be a
    ## routine or a const.
  • deprecate all these: newStrLitNode, newIntLitNode since we can use newLit
    for newFloatLitNode I'm not sure, see comment in code regarding int int32 int64 are all distinct types, but float and float64 are not #5875

  • Error: node lacks field: X => should tell the node kind

  • remove {.compileTime.} from all procs with a NimNode param since that pragma is automatically inferred by compiler in this case

defer

misc

important issues

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions