Commits on Aug 1, 2023

  1. fixes #22262; fixes -d:useMalloc broken with --mm:none and `--thr…

    …eads on` (#22355)
    
    * fixes #22262; -d:useMalloc broken with --mm:none and threads on
    
    * fixes
    ringabout authored Aug 1, 2023
    Configuration menu
    Copy the full SHA
    a23e53b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1d2c27d View commit details
    Browse the repository at this point in the history
  3. Fix the position of "Grey" in colors.nim (#22358)

    Update the position of "Grey"
    MichalMarsalek authored Aug 1, 2023
    Configuration menu
    Copy the full SHA
    da36888 View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2023

  1. fixes #22360; compare with the half of randMax (#22361)

    * fixes #22360; compare with the half of randMax
    
    * add a test
    ringabout authored Aug 2, 2023
    Configuration menu
    Copy the full SHA
    f3a7622 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    825a0e7 View commit details
    Browse the repository at this point in the history
  3. fix #22173 sink paramers not moved into closure (refc) (#22359)

    * use genRefAssign when assign to sink string
    
    * add test case
    bung87 authored Aug 2, 2023
    Configuration menu
    Copy the full SHA
    b40da81 View commit details
    Browse the repository at this point in the history

Commits on Aug 3, 2023

  1. Revert "fix #22173 sink paramers not moved into closure (refc) (#22… (

    #22376)
    
    Revert "fix #22173 `sink` paramers not moved into closure (refc) (#22359)"
    
    This reverts commit b40da81.
    bung87 authored Aug 3, 2023
    Configuration menu
    Copy the full SHA
    6b913b4 View commit details
    Browse the repository at this point in the history
  2. Add experimental inferGenericTypes switch (#22317)

    * Infer generic bindings
    
    * Simple test
    
    * Add t
    
    * Allow it to work for templates too
    
    * Fix some builds by putting bindings in a template
    
    * Fix builtins
    
    * Slightly more exotic seq test
    
    * Test value-based generics using array
    
    * Pass expectedType into buildBindings
    
    * Put buildBindings into a proc
    
    * Manual entry
    
    * Remove leftover `
    
    * Improve language used in the manual
    
    * Experimental flag and fix basic constructors
    
    * Tiny commend cleanup
    
    * Move to experimental manual
    
    * Use 'kind' so tuples continue to fail like before
    
    * Explicitly disallow tuples
    
    * Table test and document tuples
    
    * Test type reduction
    
    * Disable inferGenericTypes check for CI tests
    
    * Remove tuple info in manual
    
    * Always reduce types. Testing CI
    
    * Fixes
    
    * Ignore tyGenericInst
    
    * Prevent binding already bound generic params
    
    * tyUncheckedArray
    
    * Few more types
    
    * Update manual and check for flag again
    
    * Update tests/generics/treturn_inference.nim
    
    * var candidate, remove flag check again for CI
    
    * Enable check once more
    
    ---------
    
    Co-authored-by: SirOlaf <>
    Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
    SirOlaf and Araq authored Aug 3, 2023
    Configuration menu
    Copy the full SHA
    8d8d757 View commit details
    Browse the repository at this point in the history
  3. Allow libffi to work via koch boot (#22322)

    * Divert libffi from nimble path, impl into koch
    
    * Typo in koch
    
    * Update options.nim comment
    
    * Fix CI Test
    
    * Update changelog
    
    * Clarify libffi nimble comment
    
    * Future pending changelog
    
    ---------
    
    Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
    awr1 and ringabout authored Aug 3, 2023
    Configuration menu
    Copy the full SHA
    14bc3f3 View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2023

  1. Make repr(HSlice) always available (#22332)

    Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
    konsumlamm and ringabout authored Aug 4, 2023
    Configuration menu
    Copy the full SHA
    d37b620 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fb7acd6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7c2a2c8 View commit details
    Browse the repository at this point in the history
  4. Fix crash when using uninstantiated generic (#22379)

    * Add test case
    
    * Add in a bounds check when accessing generic types
    
    Removes idnex out of bounds exception when comparing a generic that isn't fully instantiated
    ire4ever1190 authored Aug 4, 2023
    Configuration menu
    Copy the full SHA
    3efabd3 View commit details
    Browse the repository at this point in the history
  5. fix #20883 Unspecified generic on default value segfaults the compiler (

    #21172)
    
    * fix #20883 Unspecified generic on default value segfaults the compiler
    
    * fallback to isGeneric
    
    * change to closer error
    
    * Update t20883.nim
    bung87 authored Aug 4, 2023
    Configuration menu
    Copy the full SHA
    26f1830 View commit details
    Browse the repository at this point in the history
  6. fixes AddressSanitizer: global-buffer-overflow in getAppFilename on w…

    …indows 10 (#22380)
    
    fixes AddressSanitizer: global-buffer-overflow
    norrath-hero-cn authored Aug 4, 2023
    Configuration menu
    Copy the full SHA
    73a29d7 View commit details
    Browse the repository at this point in the history
  7. Fix searchExtPos so that it returns -1 when the path is not a file ext (

    #22245)
    
    * Fix searchExtPos so that it returns -1 when the path is not a file ext
    
    * fix comparision expression
    
    * Remove splitDrive from searchExtPos
    demotomohiro authored Aug 4, 2023
    Configuration menu
    Copy the full SHA
    db435a4 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    873eaa3 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2023

  1. Revert adding generic V: Ordinal parameter to succ, pred, inc

    …, `dec` (#22328)
    
    * Use `int` in `digitsutils`, `dragonbox`, `schubfach`
    
    * Fix error message
    konsumlamm authored Aug 5, 2023
    Configuration menu
    Copy the full SHA
    e15e193 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9872453 View commit details
    Browse the repository at this point in the history
  3. Prevent early destruction of gFuns, fixes AddressSanitizer: heap-use-…

    …after-free (#22386)
    
    Prevent destruction of gFuns before callClosures
    norrath-hero-cn authored Aug 5, 2023
    Configuration menu
    Copy the full SHA
    e039690 View commit details
    Browse the repository at this point in the history
  4. fix server caching issue causing Theme failures (#22378)

    * fix server caching issue causing Theme failures
    
    * Fix tester to ignore version cache param
    
    * fix case of people using -d:nimTestsNimdocFixup
    
    * rsttester needed the same fix
    DanielBelmes authored Aug 5, 2023
    Configuration menu
    Copy the full SHA
    7bf7496 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2023

  1. introduces online bisecting (#22390)

    * introduces online bisecting
    
    * Update .github/ISSUE_TEMPLATE/bug_report.yml
    ringabout authored Aug 6, 2023
    Configuration menu
    Copy the full SHA
    b2c3b8f View commit details
    Browse the repository at this point in the history
  2. add test for #3907 (#21069)

    * add test for #3907
    bung87 authored Aug 6, 2023
    Configuration menu
    Copy the full SHA
    137d608 View commit details
    Browse the repository at this point in the history
  3. fix #15005; [ARC] Global variable declared in a block is destroyed to…

    …o… (#22388)
    
    * fix #15005 [ARC] Global variable declared in a block is destroyed too early
    bung87 authored Aug 6, 2023
    Configuration menu
    Copy the full SHA
    95c751a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f18e4c4 View commit details
    Browse the repository at this point in the history
  5. Stick search result (#22394)

    * nimdoc: stick search result inside browser viewport
    
    * fix nimdoc.out.css
    
    ---------
    
    Co-authored-by: Locria Cyber <74560659+locriacyber@users.noreply.github.com>
    bung87 and iacore authored Aug 6, 2023
    Configuration menu
    Copy the full SHA
    d2b197b View commit details
    Browse the repository at this point in the history
  6. Let inferGenericTypes continue if a param is already bound (#22384)

    * Play with typeRel
    
    * Temp solution: Fixup call's param types
    
    * Test result type with two generic params
    
    * Asserts
    
    * Tiny cleanup
    
    * Skip sink
    
    * Ignore proc
    
    * Use changeType
    
    * Remove conversion
    
    * Remove last bits of conversion
    
    * Flag
    
    ---------
    
    Co-authored-by: SirOlaf <>
    SirOlaf authored Aug 6, 2023
    Configuration menu
    Copy the full SHA
    67122a9 View commit details
    Browse the repository at this point in the history
  7. Fix some jsgen bugs (#22330)

    Fix `succ`, `pred`
    Fix `genRangeChck` for unsigned ints
    Fix typo in `dec`
    konsumlamm authored Aug 6, 2023
    Configuration menu
    Copy the full SHA
    53586d1 View commit details
    Browse the repository at this point in the history
  8. use strictdefs for compiler (#22365)

    * wip; use strictdefs for compiler
    
    * checkpoint
    
    * complete the chores
    
    * more fixes
    
    * first phase cleanup
    
    * Update compiler/bitsets.nim
    
    * cleanup
    ringabout authored Aug 6, 2023
    Configuration menu
    Copy the full SHA
    93ced31 View commit details
    Browse the repository at this point in the history
  9. unify starting blank lines in the experimental manual (#22396)

    unify starting blank lines in the experimental manal
    ringabout authored Aug 6, 2023
    Configuration menu
    Copy the full SHA
    e7b4c7c View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2023

  1. a bit modern code for depends (#22400)

    * a bit modern code for depends
    
    * simplify
    ringabout authored Aug 7, 2023
    Configuration menu
    Copy the full SHA
    26eb0a9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    614a18c View commit details
    Browse the repository at this point in the history
  3. nimIoselector option (#22395)

    * selectors.nim: Add define to select event loop implementation
    
    * rename to nimIoselector
    
    ---------
    
    Co-authored-by: Jan Pobrislo <ccx@webprojekty.cz>
    bung87 and Jan Pobrislo authored Aug 7, 2023
    Configuration menu
    Copy the full SHA
    fe9ae2c View commit details
    Browse the repository at this point in the history
  4. [C++] Member pragma RFC (nim-lang/RFCs#530) (#22272)

    * [C++] Member pragma RFC #530
    rebase devel
    
    * changes the test so `echo` is not used before Nim is init
    
    * rebase devel
    
    * fixes Error: use explicit initialization of X for clarity [Uninit]
    jmgomez authored Aug 7, 2023
    Configuration menu
    Copy the full SHA
    b5b4b48 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    260b423 View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2023

  1. Configuration menu
    Copy the full SHA
    b4b555d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0219c5a View commit details
    Browse the repository at this point in the history
  3. fixes #22387; Undefined behavior when with hash(...) (#22404)

    * fixes #22387; Undefined behavior when with hash(...)
    
    * fixes vm
    
    * fixes nimscript
    ringabout authored Aug 8, 2023
    Configuration menu
    Copy the full SHA
    47d06d3 View commit details
    Browse the repository at this point in the history
  4. fix #18823 Passing Natural to bitops.BitsRange[T] parameter in generi… (

    #20683)
    
    * fix #18823 Passing Natural to bitops.BitsRange[T] parameter in generic proc is compile error
    bung87 authored Aug 8, 2023
    Configuration menu
    Copy the full SHA
    37d8f32 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4c6be40 View commit details
    Browse the repository at this point in the history
  6. fixes LineTooLong hints on old compilers (#22412)

    * fixes LineTooLong hints on old compilers
    
    * fixes config/nim.cfg
    ringabout authored Aug 8, 2023
    Configuration menu
    Copy the full SHA
    bf5d173 View commit details
    Browse the repository at this point in the history
  7. clean up gc:arc or gc:orc in docs and in error messages (#22408)

    * clean up gc:arc/orc in docs
    
    * in error messages
    ringabout authored Aug 8, 2023
    Configuration menu
    Copy the full SHA
    10a6e4c View commit details
    Browse the repository at this point in the history
  8. modernize compiler/reorder, which exposes yet another strictdefs bug (#…

    …22415)
    
    ```nim
    {.experimental: "strictdefs".}
    
    type
      NodeKind = enum
        nkImportStmt
        nkStmtList
        nkNone
    
      PNode = ref object
        kind: NodeKind
    
    proc hasImportStmt(n: PNode): bool =
      # Checks if the node is an import statement or
      # i it contains one
      case n.kind
      of nkImportStmt:
        return true
      of nkStmtList:
        if false:
          return true
      else:
        result = false
    
    var n = PNode()
    echo hasImportStmt(n)
    ```
    It compiles without warnings, but shouldn't. As a contrast, 
    
    ```nim
    {.experimental: "strictdefs".}
    
    type
      NodeKind = enum
        nkImportStmt
        nkStmtList
        nkNone
    
      PNode = ref object
        kind: NodeKind
    
    proc hasImportStmt(n: PNode): bool =
      # Checks if the node is an import statement or
      # i it contains one
      case n.kind
      of nkImportStmt:
        result = true
      of nkStmtList:
        if false:
          return true
      else:
        result = false
    
    var n = PNode()
    echo hasImportStmt(n)
    ```
    This gives a proper warning.
    ringabout authored Aug 8, 2023
    Configuration menu
    Copy the full SHA
    73e661d View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2023

  1. modernize lineinfos; it seems that array access hinders strict def an…

    …alysis like field access (#22420)
    
    modernize lineinfos; array access hinders strict def analysis like field access
    
    A bug ?
    
    ```nim
    proc computeNotesVerbosity(): array[0..3, TNoteKinds] =
      result[3] = {low(TNoteKind)..high(TNoteKind)} - {warnObservableStores, warnResultUsed, warnAnyEnumConv, warnBareExcept}
      result[2] = result[3] - {hintStackTrace, hintExtendedContext, hintDeclaredLoc, hintProcessingStmt}
      result[1] = result[2] - {warnProveField, warnProveIndex,
        warnGcUnsafe, hintPath, hintDependency, hintCodeBegin, hintCodeEnd,
        hintSource, hintGlobalVar, hintGCStats, hintMsgOrigin, hintPerformance}
      result[0] = result[1] - {hintSuccessX, hintSuccess, hintConf,
        hintProcessing, hintPattern, hintExecuting, hintLinking, hintCC}
    ```
    ringabout authored Aug 9, 2023
    Configuration menu
    Copy the full SHA
    d136af0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3aaef9e View commit details
    Browse the repository at this point in the history
  3. 2 Configuration menu
    Copy the full SHA
    ce079a8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    28b2e42 View commit details
    Browse the repository at this point in the history
  5. make the name of procs consistent with the name forwards (#22424)

    It seems that `--stylecheck:error` acts up when the name forwards is involved.
    
    
    ```nim
    proc thisOne*(x: var int)
    proc thisone(x: var int) = x = 1
    ```
    
    It cannot understand this at all.
    ringabout authored Aug 9, 2023
    Configuration menu
    Copy the full SHA
    c622e58 View commit details
    Browse the repository at this point in the history
  6. fix #20891 Illegal capture error of env its self (#22414)

    * fix #20891 Illegal capture error of env its self
    
    * fix innerClosure too earlier, make condition shorter
    bung87 authored Aug 9, 2023
    Configuration menu
    Copy the full SHA
    989da75 View commit details
    Browse the repository at this point in the history
  7. fixes #22419; async/closure environment does not align local variables (

    #22425)
    
    * fixes #22419; async/closure environment does not align local variables
    
    * Apply suggestions from code review
    
    * Update tests/align/talign.nim
    
    Co-authored-by: Jacek Sieka <arnetheduck@gmail.com>
    
    * apply code review
    
    * update tests
    
    ---------
    
    Co-authored-by: Jacek Sieka <arnetheduck@gmail.com>
    ringabout and arnetheduck authored Aug 9, 2023
    Configuration menu
    Copy the full SHA
    5334dc9 View commit details
    Browse the repository at this point in the history