* 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>
* fixes#13102
* closes#13149
* ARC: fixes a move optimizer bug (there are more left regarding array and tuple indexing)
* proper fix; fixes#12957
* fixes yet another case object '=' code generation problem
* os:any implementation
* os:asny: omit flock/funlock calls in echoBinSafe
* Disabled default "unhandled expection" reporting for `--os:any` to reduce
code size. Added unhandledExceptionHook instead which can be used to get
a notification from Nim and handle it from the application.
* Update asyncftpclient.nim
When use newStringOfCap function not have assign memory for the string data,so if use this address the fault is rasise.
* complelete the bugfix
* [FEATURE] rst parser respect :start-after: in include
Rst parser now respects `:start-after:` and `:end-before:` attributes
for `include` directive.
* [DOC] include directive parsing proc update
* [TEST] Added unit tests for include rst directive in `rst` module
This implements "deterministic" exception handling for Nim based on goto instead of setjmp. This means raising an exception is much cheaper than in C++'s table based implementations. Supports hard realtime systems. Default for --gc:arc and the C target because it's generally a good idea and arc is all about deterministic behavior.
Note: This implies that fatal runtime traps are not catchable anymore! This needs to be documented.
Stack traces on an unbuffered stderr get out of sync with line-buffered
stdout - usually on Windows terminals or CI logs. This fixes it by
calling C's fflush() on the output buffer in the procedure used for
printing stack traces.
* libbacktrace support
* switch to a generic stack trace overriding mechanism
When "nimStackTraceOverride" is defined, once of the imported modules
can register its own procedure to replace the default stack trace
generation by calling `registerStackTraceOverride(myOwnProc)`.
Tested with `./koch boot -d:release --debugger:native -d:nimStackTraceOverride --import:libbacktrace`
for the compiler itself and `./bin/nim c -r -f --stacktrace:off --debugger:native -d:nimStackTraceOverride --import:libbacktrace foo.nim`
for an external program.
* make the StackTraceOverrideProc {.noinline.}