Commit graph

729 commits

Author SHA1 Message Date
Jason Beetham
5a58440ebe
Added strscans.scanTuple (#16300)
* Added since and changelog
2020-12-12 23:29:20 +01:00
Timothee Cour
0b73106ccf
add math.isNaN (#16179)
* add math.isNaN
* isNaN now works with --passc:-ffast-math; tests
* Update lib/pure/math.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-12-11 11:01:43 +01:00
Timothee Cour
f344a70412
fix #16150 improve type mismatch errors (#16152)
* fix #16150 improve type mismatch errors

* allow -d:nimLegacyTypeMismatch

* address comment
2020-12-09 16:19:39 +01:00
Antonis Geralis
808ab7eae2
add collect with infered init, refs #16078 fixes #14332 (#16089)
* changelog
* add testcase, fixes #14332
2020-12-03 20:32:18 +01:00
Miran
2220aaeaef
add support for parsing chars in scanf macro (#16240) 2020-12-03 17:34:30 +01:00
Timothee Cour
c731f7ab14
fixes #15939, fixes #15464, fixes #16169, fixes #16226 VM now supports addr(mystring[ind]) (index + index assignment) (#15987)
* fix #15939, fix #15464 VM now supports `addr(mystring[ind])` (index + index assignment), var char return etc
* cleanups
* cstring tests
* add test for bug #15464
* improve test coverage
2020-12-03 16:55:43 +01:00
flywind
c0215d8d0d
clean up changelog (#16155)
* fix rope index

* add testcase

* fix ropes format

* add `**` to jsffi

* add testcase

* changelog

* clean up changelog

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-11-27 10:53:30 +08:00
flywind
70a1c42542
add ** to jsffi (#16141)
* fix rope index

* add testcase

* fix ropes format

* add `**` to jsffi

* add testcase

* changelog

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-11-26 20:30:19 +01:00
flywind
19e224866b
add simple writeStackTrace for JS backend (#16016)
* add simple writeStackTrace for JS backend

* add testcase for writeStackTrace

* changelog
2020-11-24 19:45:06 +01:00
Timothee Cour
b3c3557c33
fix #16025 repr now consistent: does not insert trailing newline (#16034) 2020-11-19 12:12:51 -08:00
cooldome
acf8316e50
Disallow nil dereference at compile time (#16032)
* bring back the semfold of nil

* remove space

* fix test

* proc type can't be dereferenced

* disallow nil dereference at compile time

* changelog
2020-11-18 23:30:28 +01:00
Andreas Rumpf
b9eb91cbb5
ORC: prepare for another patent-pending optimization (#15996)
* ORC: prepare for another patent-pending optimization

* bugfix

* '=copy' for refs can take a cyclic parameter for more ORC optimizations

* ORC: exploit the common 'it = it.next' pattern

* can't hurt to check for nil

* use an algorithm that is not obviously broken

* restore the test case

* final cleanups for --gc:orc
2020-11-18 22:31:06 +01:00
Timothee Cour
33d79b9e64
fix https://github.com/nim-lang/RFCs/issues/286: add FileInfo.blockSize (#16023) 2020-11-18 12:01:43 +01:00
narimiran
3e5e029ef8 telling us once about a change is enough [ci skip] 2020-11-16 17:46:48 +01:00
Araq
8778d4a6f3 attempt to make asynchttpserver better; fixes #15925; [backport:1.0] 2020-11-13 13:03:14 +01:00
Timothee Cour
1413818aa1
Update changelog.md 2020-11-12 09:36:07 -08:00
Timothee Cour
cc882917fe
js -d:nodejs now supports osenv: getEnv, putEnv, envPairs, delEnv, existsEnv (v2) (#15826)
* js -d:nodejs now supports osenv: `getEnv`, `putEnv`, `envPairs`, `delEnv`, `existsEnv`

* refactor to osenv

* fix for js (without -d:nodejs) + VM

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-11-12 14:36:57 +01:00
Timothee Cour
e5db5316c2
doAssertRaises improvements; nimscript supports except Exception as e (#15765)
* doAssertRaises now correctly handles foreign exceptions; now shows which exception is raised on mismatch
* nimscript now handles `Exception as e`
* remove catch-all doAssertRaises overload from this PR

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-11-12 09:25:41 +01:00
flywind
1f9bf43100
fix #14157 (#15877)
* fix #14157

* Update compiler/jsgen.nim

* add changelog

* Update compiler/jsgen.nim

* Update tests/js/tmodify_cstring.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-11-12 09:20:10 +01:00
Timothee Cour
bc3c0487d3
remove ioutils mention in changelog (#15907) 2020-11-10 10:54:10 -06:00
narimiran
17acf146a0 followup #15854: add a changelog entry about markdown tables support 2020-11-10 12:46:13 +01:00
Timothee Cour
c1664f93b0
new: nim -e:cmd to run a command directly; also fixes #15731 (#15687)
* new: `nim -i cmd`
* rename -i to -e (for eval); consistent with majority of other programing languages
* `nim e -e:cmd` now works; bugfix: `echo cmd | nim e -` now works
* honor --betterRun
* address comments
* --eval alias for -e (replaces undocumented --eval which was a noop)
* --eval now defaults to e (nimscript) instead of r
* address comment: remove -e, only keep --eval
* address comment
* fixup
* Update compiler/nimconf.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-11-09 16:07:22 +01:00
Ivan Bobev
d03f24147a
Add a macro returning enum items count (#15824)
Add a macro `enumLen` which is used to determine the number of items in
an enumeration type to the `typetraits.nim` module. Also, add unit tests
for it in the `ttypetraits.nim` module.

Related to nimlang/Nim#15824
2020-11-09 10:02:01 +01:00
Ivan Bobev
3c85aa9e53
Make {.requiresInit.} to work for distinct types (#15869)
Make `requiresInit` pragma to work for distinct types in addition to
objects. Tagging of distinct types with `requiresInit` pragma was
already supported, but its impact wasn't applied. Now its behavior when
applied on distinct types is as follows.

Given the following distinct type definitions:

  ```nim
  type
    DistinctObject {.requiresInit, borrow: `.`.} = distinct MyObject
    DistinctString {.requiresInit.} = distinct string
  ```

The following code blocks will fail to compile:

  ```nim
  var foo: DistinctFoo
  foo.x = "test"
  doAssert foo.x == "test"
  ```

  ```nim
  var s: DistinctString
  s = "test"
  doAssert s == "test"
  ```

But these ones will compile successfully:

  ```nim
  let foo = DistinctFoo(Foo(x: "test"))
  doAssert foo.x == "test"
  ```

  ```nim
  let s = "test"
  doAssert s == "test"
  ```
2020-11-06 18:56:09 +00:00
flywind
b0e26d8fbf
remove iup from stdlib in contrast to #15828 (#15830)
* remove iup from stdlib

* Update changelog.md
2020-11-03 20:43:51 +01:00
cooldome
d62f3627aa
EnumUtils, speed up findStr in compiler (#15777)
* add parseEnumRange
* fix runnable example
* update changelog
* use parseEnumRange in compiler
* reorganise code
* add changelog, make single normalizer argument
2020-11-03 16:26:16 +01:00
Antonis Geralis
c274d9aed6
add approxequal (#15766)
* add approxequal

* Address review comments, tests that pass

* more wikipedia links [ci skip]

* forgot since

Co-authored-by: b3liever <b3liever@yandex.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-10-30 09:56:28 +01:00
Andreas Rumpf
87a60c1b28
fixes #15413 (#15768)
* fixes #15413

* better hide it properly

* see if this makes our list of important packages happy
2020-10-29 17:32:56 +01:00
Antonis Geralis
53d9902347
Make default state public (#15763)
* Make default state public

* Address review comments

Co-authored-by: b3liever <b3liever@yandex.com>
2020-10-29 11:14:22 +01:00
Regis Caillaud
12143d90c8
Add C function dup and dup2 posix to system/io (#15675)
* * Add handle to dup and dup2 posix as duplicate and duplicateTo in std/ioutils.
* Added small test & changelog entry

* Fixed import in tioutils
removed when isMainModule

* * Nest test inside block. Rename proc var -> let in captureStdout
* Renamed tmpfile to iotuils.txt
* Added block: # duplicate, duplicateTo
* Improved docstring
* Clean non-idiomatic code
* Added runnable examples

* rm 2 trailing space in expected output

* Made syntax prettier

* Runnable example: file in getTempDir()

* Tmp -> Temp

* Fixed runnableExamples on windows
2020-10-27 08:52:40 +01:00
Juan Carlos
e284445e51
Fix Prelude (#15714)
* ReSync with Devel

* Fix prelude for JS target

* ReSync devel

* Fix prelude for JS target
2020-10-26 10:36:12 +01:00
narimiran
e47c3987c1 small changelog cleanup [ci skip] 2020-10-22 11:16:15 +02:00
Timothee Cour
0979524137
add Source+Edit links on top of every docgend file (#15642) 2020-10-22 10:44:28 +02:00
Timothee Cour
05752cd5d0
add --declaredlocs (#15666) 2020-10-21 15:37:29 +02:00
narimiran
6349001879 create a changelog for 1.4.0 2020-10-16 07:16:46 +02:00
Andreas Rumpf
da4aa2e1fb
renamed '=' to '=copy' [backport:1.2] (#15585)
* Assign hook name changed to `=copy`
* Adapt destructors.rst
* [nobackport] Duplicate tests for =copy hook
* Fix tests
* added a changelog entry

Co-authored-by: Clyybber <darkmine956@gmail.com>
2020-10-15 12:52:30 +02:00
alaviss
c2ba4ef979
suggest: try to find the implementation of a symbol when def is used (#15555)
* suggest: try to find the implementation of a symbol when def is used

* suggest: return all declarations of the symbol on `def`
2020-10-14 17:08:56 +02:00
Clyybber
977bccdbff
Make useVersion:1.0 disable the proc arg sym change (#15570)
* Make useVersion:1.0 disable the proc arg sym change

* Also do this for useVersion:1.2
2020-10-14 16:07:25 +02:00
Timothee Cour
3eac9b2344
os: add overload copyFile*(source, dest: string, isDir = false) (#15537)
* os: add overload copyFile*(source, dest: string, isDir = false)
* renamed to copyFileToDir
2020-10-11 20:43:01 +02:00
ee7
aa0b73575c
changelog.md: Group the new to procs (#15522)
* changelog.md: Group the new `to` procs [ci skip]

This also moves the `critbits.toCritBitTree` entry from the "Language
Changes" section to the "Standard library additions and changes"
section.

* changelog.md: Remove extra space
2020-10-08 14:21:20 +02:00
Araq
4d91cc7950 changelog improvements 2020-10-08 11:43:18 +02:00
Andreas Rumpf
92163fa330
implements https://github.com/nim-lang/RFCs/issues/258 (#15503)
* implements https://github.com/nim-lang/RFCs/issues/258

* don't be too strict with custom pragma blocks

* cast pragmas: documentation

* added most missing inference query procs to effecttraits.nim
2020-10-06 16:47:15 +02:00
supakeen
bbe2eb20df
Provide a configurable progressInterval. (#15477) 2020-10-04 11:32:07 +01:00
ee7
0a05176057
heapqueue.nim: Add toHeapQueue proc (#15459)
Similar to:
- `critbits.toCritBitTree`
- `deques.toDeque`
- `sets.toHashSet`
- `tables.toTable`

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-10-02 16:01:03 -04:00
ee7
d48b356e49
intsets.nim: Add toIntSet proc (#15460)
Similar to:
- `critbits.toCritBitTree`
- `deques.toDeque`
- `sets.toHashSet`
- `tables.toTable`
2020-10-02 21:10:24 +02:00
Andreas Rumpf
1f4b9cebd4
Added std/effecttraits.nim (#15462) 2020-10-02 17:22:31 +02:00
c-blake
26d656e73e
Add first draft of new osproc.readLines (#15429)
* Add first draft of new osproc.readLines

* Add test for new osproc.readLines

* Rename test to start w/t to run; Also add newline to output

* Suppress hint messages.

* Output should match this time.

* Shoulda picked a program with simpler syntax than ..lol

* Address https://github.com/nim-lang/Nim/pull/15429#issuecomment-701890898
and https://github.com/nim-lang/Nim/pull/15429#issuecomment-701985976 by
factoring `readLines` into `iterator lines` and a wrapper `proc`.

* Address https://github.com/nim-lang/Nim/pull/15429#issuecomment-702127289
and also add a `ReadIOEffect` tag to the iterator (called by the wrapper..
so it should need no separate tag, if I understand correctly).
2020-10-01 18:06:38 +02:00
cooldome
531ed2dc36
fix #15405. deepcopy arc (#15410)
* fix #15405
* fix tests
* deepcopy for ARC has to be enabled via --deepcopy:on

Co-authored-by: Araq <rumpf_a@web.de>
2020-10-01 17:39:48 +02:00
Juan Carlos
5e160bff1b
Add critbits.toCritBitTree (#15444)
* Add critbits.toCritBitTree

* https://github.com/nim-lang/Nim/pull/15444#discussion_r498035342
2020-10-01 15:11:10 +02:00
Juan Carlos
79a92da8ef
Clean out (#15440) 2020-10-01 12:39:50 +02:00