| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
| |
Changes the order of procs definitions in order to avoid calling an undefined proc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Nim 1.4.x compiled the below code without error when using
`--experimental:strictFuncs`
import std/sequtils
type Foo = ref object
let foo1 = Foo()
let foo2 = Foo()
let foos = @[foo1, foo2]
let fooTuples = @[(foo1, 1), (foo2, 2)]
discard repeat(foo1, 3)
discard zip(foos, foos)
discard unzip(fooTuples)
However, since 2020-12-09, devel Nim produced errors like
/tmp/bar.nim(11, 15) template/generic instantiation of `repeat` from here
/foo/nim/pure/collections/sequtils.nim(172, 6) Error: 'repeat' can have side effects
an object reachable from 'x' is potentially mutated
/foo/nim/pure/collections/sequtils.nim(183, 15) the mutation is here
/foo/nim/pure/collections/sequtils.nim(183, 15) is the statement that connected the mutation to the parameter
This commit reverts some `proc` to `func` changes so that code that:
- calls `repeat`, `zip`, or `unzip`
- and instantiates them with types containing `ref`
can once again be compiled with `strictFuncs`. Otherwise, a user might
be forced to drop or alter their `strictFuncs` use when upgrading from
Nim 1.4.x, or when writing new code that uses these procedures (at least
for now, with the current `strictFuncs` implementation).
This commit also adds tests to assert that the remaining funcs in this
module can be compiled with `strictFuncs` when used with types
containing `ref`.
The original batch of `proc` to `func` changes in `sequtils.nim` was in
commit 6f57ebae349f, which was partially reverted in 38eb021f8158.
See also: https://github.com/nim-lang/Nim/issues/16305
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* complement notes of two doc strings warning the deprecated procedure's side effect
* Update lib/pure/collections/tables.nim
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
* Update lib/pure/collections/tables.nim
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
Co-authored-by: BillyZee <billyzee@localhost.localdomain>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
|
|
|
| |
Use better names in example
|
|
|
|
|
|
|
|
| |
consistent with `system.delete` (#18487)
* deprecate sequtils.delete and add an overload with saner semantics
* AssertionDefect => IndexDefect
* improve tsequtils
* add tests; use splice in js for optimization
|
| |
|
|
|
|
| |
(#18168)
|
| |
|
|
|
|
|
| |
* Ref #17697 improve withValue docs
* address comments
|
| |
|
|
|
|
| |
* reduce duplicated deprecated messages
|
|
|
|
|
|
|
| |
generic (#17942)
* fix #17941: UnusedImport works for var/let/const/type invoked inside a generic
* fixup
|
| |
|
|
|
|
|
|
|
|
| |
* CIs: attempt to use csources_v1
* also updated the BSDs
* also updated azure pipelines
* std modules should not itself use the 'std/' import dir...
* compiler has to be careful with std/ for v1 booting
|
| |
|
|
|
|
|
|
|
|
|
| |
* use sink and lent in deques
* Update lib/pure/collections/deques.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
| |
|
| |
|
|
|
|
|
|
|
| |
* improve test coverage for isolation
* a bit better
* rename channels to channels_builtin
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* remove unnecessary when statement
* remove outdated codes
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#16918)
* nimNoArrayToCstringConversion deadcode
* nimbabel deadcode
* nimHasalignOf deadcode
* nimvarargstyped deadcode
* nimhygiene deadcode
* nimNewTypedesc deadcode
* nimlocks deadcode
* nimHasCppDefine deadcode
* nimHasRunnableExamples deadcode
* nimHasNilChecks deadcode
* nimSymKind deadcode
* minor macros refactoring
* nimVmEqIdent deadcode
* nimNoNil deadcode
* nimNoZeroTerminator deadcode
* nimHasSymOwnerInMacro deadcode
* nimVmExportFixed deadcode
* nimNewRuntime deadcode
* nimAshr deadcode
* nimUncheckedArrayTyp deadcode
* nimHasTypeof deadcode
* nimErrorProcCanHaveBody deadcode
* nimHasHotCodeReloading deadcode
* nimHasSignatureHashInMacro deadcode
* nimHasDefault deadcode
* nimMacrosSizealignof deadcode
|
|
|
|
|
|
| |
Improve documentation
Optimize toHeapQueue
Rename siftup and siftdown
Add tests for the heap property
|
| |
|
|
|
|
|
| |
* tables module use runnableExamples
* disable the tests
|
| |
|
|
|
| |
From `fliter proc` to `filter proc`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Various changes to `lists` (RFC #303)
* Removing a non-element is no-op; better tests
* Remove preserves cycles; add appendMove alias; tests.
* Return value for (singly linked) `lists.remove`
* More test for lists.remove
* Moved `lists.append` to the end of the file to see all `add` definitions
* Disable testing js for now
* Use workaround for swap js bug
* Smaller diff
* Undo "silent" deprecation of append
* Correct typo in changelog
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
* Remove `appendMoved`
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
* Don't remove appendMoved
Co-authored-by: Clyybber <darkmine956@gmail.com>
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
|
|
|
| |
From `fliter proc` to `filter proc`
|
|
|
|
|
|
|
|
|
| |
* fix some warnings
* close #15767
* Revert "fix some warnings"
This reverts commit 39f2f23b0026d50c42af7be3ad80edf0f1f19610.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously, compiling a file containing just `import critbits` with
`nim c --experimental:strictFuncs` would produce the following error:
critbits.nim(529, 6) Error: 'toCritBitTree' can have side effects
This was introduced by 2aed4186989e (#16564).
Fixes: #16873
|
| |
|
|
|
|
|
|
|
|
|
| |
* Improve documentation for packedsets
Add more runnableExamples
Add deprecated pragma to intsets
Replace intsets with packedsets in lib.rst
* Apply suggested changes
|
| |
|
| |
|
|
|
|
|
|
|
| |
* Improve sequtils documentation
Uncomment assertions in tests
* Use present tense
|
| |
|
| |
|