| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
|
|
| |
* 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
|
|
|
| |
From `fliter proc` to `filter proc`
|
|
|
| |
From `fliter proc` to `filter proc`
|
|
|
|
|
|
|
| |
* Improve sequtils documentation
Uncomment assertions in tests
* Use present tense
|
|
|
|
|
|
|
|
|
|
|
| |
This commit changes the funcs that take a `proc` parameter back to
procs.
This reverts some of commit 6f57ebae349f:
sequtils.nim: Use `func` (#16293)
See also:
- https://github.com/nim-lang/Nim/issues/16303
- https://github.com/nim-lang/Nim/pull/16304
|
| |
|
|
|
|
|
|
|
|
|
| |
* sequtils.nim: proc -> func
* sequtils.nim: proc -> func in links
* sequtils.nim: proc -> func in non-link doc comments
* test: add `sequtils` to strictFuncs test
|
| |
|
| |
|
|
|
|
|
| |
* promote `collect` macro as a map+filter replacement
* Update lib/pure/collections/sequtils.nim
|
| |
|
| |
|
|
|
|
|
|
|
| |
* Fix #14994
* Revert misplaced "optimization"
* Typo
|
|
|
|
|
| |
* move json.isMainModule => tjson
* move isMainModule => tos,tsequtils
|
| |
|
| |
|
|
|
|
| |
* move since from inclrtl to std/private/since
* move since import in system below for HCR
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix mapIt issues #12625 & #12639:
1. fallback to call `map` when the result of `op` is a closure;
2. use `items(s)` in the for loop.
* fix test errors.
* add comments and InType is moved.
* fix ident.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
New issue: since `Table[A, B]` allocates its backing storage with
`newSeq[KeyValuePair[A, B]]`, it's no longer legal to create a table
with `not nil` types used as either keys or values.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add idxmin() which returns the index of the minimum value
* Add idxmax() which returns the index of the maximum value
* Add tests for idxmin()
* Add tests for idxmax()
* Remove initialization of result = 0
* Adds overloading for arrays (no enums indexed arrays yet)
* Add support for enum index arrays
* Fix tests with enum
* Fix tests for idxmax
* Change names of the procedures to minIndex and maxIndex
* address Araq's comments:
- remove 'array' versions
- add .since pragma
- return 'int' instead of 'Natural'
- add changelog entry
Co-authored-by: Federico A. Corazza <20555025+Imperator26@users.noreply.github.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Make sequtils.zip return seq of anonymous tuples
Earlier the tuples had named fields "a" and "b" and that made it
difficult to assign the zip returned seqs to other vars which expected
seqs of tuples with field names other than "a" and "b".
* Make sequtils.zip backwards compatible with Nim 1.0.x
|
| |
|
| |
|
|
|
|
|
|
| |
Note that contrary to what docgen.rst currently says, the ids have
to match exactly or else most web browsers will not jump to the
intended symbol.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|