Commit Graph

3500 Commits

Author SHA1 Message Date
Timothee Cour
fbd6743ea1 fix sdl_test test that failed in CI cpp mode (#10314)
* fix sdl_test test that failed in CI cpp mode

* preserve old code for NimInAction in `nim c` mode
2019-01-15 15:17:52 -08:00
Timothee Cour
795e5e11ef parseopt2.cmdLineRest is now correct too (#10304) 2019-01-15 21:51:02 +01:00
Timothee Cour
4355f23ee5 fix #10305 nim cpp is now nan-correct at CT (#10310)
* fix #10305 nim cpp is now nan-correct at CT
* add example where simply `nim cpp -d:release` would exhibit nan bug
2019-01-15 14:50:28 +01:00
Timothee Cour
c05e9c7c73 fix twrong_refcounts in nim cpp mode (#10313) 2019-01-15 14:46:01 +01:00
Andreas Rumpf
05c52ff34f fixes #10203 (#10290)
* fixes #10203
* make typredef test green again
* fixes the regressions differently
2019-01-15 10:15:27 +01:00
Andreas Rumpf
06a8b48811 disable one more test for C++ 2019-01-15 10:02:09 +01:00
Neelesh Chandola
8922063bd8 typed/untyped return type is invalid for everything except templates and macros (#10275) 2019-01-15 08:08:12 +01:00
Timothee Cour
9e68b2ce5d fix test 2019-01-14 17:00:54 -08:00
Timothee Cour
0a8762eb7b fix #9842 #9951: nim -r and parseopt.cmdLineRest are now correct 2019-01-14 17:00:54 -08:00
Timothee Cour
e17321aa24 improve formatting in assertEquals 2019-01-14 17:00:54 -08:00
Andreas Rumpf
1899d8d107 make tests green again 2019-01-14 20:11:33 +01:00
Arne Döring
b78af990b8 Fixes #10065 (#10260)
CountTable now returns 0 instead of 'key not found' for get requests.
2019-01-14 17:16:17 +01:00
Araq
d69a7842fa fixes #7878 2019-01-14 12:36:34 +01:00
Araq
825e08b046 fixes #7524 2019-01-14 12:15:40 +01:00
Araq
3c2d82eaae make megatest green 2019-01-13 17:19:36 +01:00
Araq
2ccc9db59d closes #3744 2019-01-13 16:05:42 +01:00
Araq
aa7ad88978 fixes #10075 [backport] 2019-01-13 15:52:50 +01:00
Araq
796432ff94 make tests more robust; tests should be deterministic, no randomize() calls in tests 2019-01-13 13:54:44 +01:00
Timothee Cour
9af85fb69f fixes #10273 execShellCmd now returns nonzero when child killed with signal + other fixes (#10274)
* s/exitStatus(...)/exitStatusLikeShell(...)/
* fix #10273 execShellCmd now returns nonzero when child exits with signal
* test case for #10249 and explanation for the bug
* fix test failure
* add tests/nim.cfg
2019-01-13 09:00:39 +01:00
rec
f5cc2e2de5 Fixes 10202 (#10283)
* Add a test case for #10202
* Fix asgn for object tyVars; fixes #10202
* Check the variant kind before accessing the sym field
2019-01-12 19:49:31 +01:00
Neelesh Chandola
d998cb58dd void object fields are now ignored by codegen and fields/fieldPairs iterator (#10144)
* Codegen now ignores object fields of type void
* Fix `$` bug for objects/tuples where it does not add a comma
* fields/fieldPairs iterators now ignore void types
* Use `isEmptyType` instead of checking for `tyVoid` directly
2019-01-10 12:49:35 +01:00
Miran
6389271d1c Merge pull request #10248 from narimiran/graveyard
Move four modules to graveyard
2019-01-10 11:17:06 +01:00
cooldome
44b4e289d6 destructors: lift type bound operations for case and distinct objects (#10238) 2019-01-10 09:25:35 +01:00
narimiran
8d9b093440 remove scgi 2019-01-10 09:17:12 +01:00
narimiran
da57c0ab99 remove subexes 2019-01-10 09:17:12 +01:00
Timothee Cour
23c1ee982e add alignTable, parseTableCells to align/format a tab(etc) delimited table (#10182)
* add compiler/unittest_light.nim for easy diffing: assertEquals and mismatch
* fixup
* add alignTable, parseTableCells
2019-01-09 09:46:44 +01:00
Timothee Cour
6ce3949c8a add isNamedTuple; make $(1, 2) be (1, 2) instead of (Field0: 1, Field1: 2) which leaked implementation detail (#10070)
* add `isNamedTuple`; make $(1, 2) be (1, 2) instead of leaking implementation detail (Field0: 1, Field1: 2)
  fixes this: #8670 (comment) /cc @alehander42 @Vindaar @mratsim

* Note: isNamedTuple is useful in other places, eg #10010 (comment)

* move isNamedTuple to helpers.nim to avoid exposing new symbol to system.nim

* remove workaround in tests/vm/tissues.nim failing test now that #10218 was makes it work
2019-01-08 18:37:25 -08:00
Timothee Cour
bf3a308e86 [error messages, stacktraces] fix #8794 #9270 #9767 #9768 (#9766)
* fixes #8794 : `Error: undeclared field: 'foo'` should show type (+ where type is defined) (hard to guess in generic code)

* fixes #9270: `--listFullPaths` not honored by `declared in foo.nim` messages

* fixes #9767: VM stacktrace doesn't honor --excessiveStackTrace:on

* fixes #9768: VM stacktrace misses column info, can lead to ambiguous or harder to read stacktraces

* refactors some col+1 code to col + ColOffset (self documents code)

* make getProcHeader show declared info location also for types and all routine kinds (including macros,templates) instead of just (rather arbitrarily) for iterator,proc,func,method

* --listFullPaths now is honored in more places

* fix typo system/except.nim => lib/system/excpt.nim

* remove substr(foo, 0) hack in compiler/vm.nim which seems old and not applicable anymore
2019-01-08 15:58:47 -08:00
Neelesh Chandola
fb26b95f81 {.deprecated: msg.} now works for vars and lets (#10234) 2019-01-08 19:44:47 +01:00
alaviss
6737634d88 os.execShellCmd: fixes #10231 (#10232)
Darwin has long deprecated the wait union, but their macros still assume
it unless you define _POSIX_C_SOURCE. This trips up C++ compilers.

This commit duplicates the behavior of WEXITSTATUS when _POSIX_C_SOURCE
is defined.
2019-01-08 12:41:15 +01:00
Arne Döring
abad758a7e Fix for sizeof bitsize combination (#10227)
* fix #10082

* added test
2019-01-07 18:09:57 +01:00
jcosborn
044cef152f add custom pragma support for var and let symbols (#9582)
* add custom pragma support for var and let symbols
* updated changelog for custom pragmas on var and let symbols
* add oldast switch for backwards compatibility
2019-01-07 12:36:06 +01:00
zah
87f8ec5b92 Fix #10073 (#10218) 2019-01-07 12:10:54 +01:00
Miran
5345c5b130 remove deprecated modules (#10215)
* removed from `compiler`:
    * lists (deprecated 2 years ago)

* removed from `lib` (all deprecated 3 years ago):
    * ssl
    * matchers
    * httpserver

* removed from `lib/deprecated`:
    * unsigned
    * actors (and three accompanying tests)
    * parseurl

* moved to `lib/deprecated`:
    * securehash (the reason for not directly removing - it was deprecated (only) one year ago)
2019-01-07 10:37:49 +01:00
Neelesh Chandola
e77dd683eb Fix defer not not-working at top level (#10191) 2019-01-07 00:51:17 +01:00
Federico Ceratto
2fa35126b0 Fix getAddrInfo, add IPPROTO_ICMPV6 Closes #10198 2019-01-06 20:23:44 +00:00
rec
ba7d33b4e4 Guard against null exception (#10162) 2019-01-04 15:05:03 +01:00
Timothee Cour
319b46230c fix bug in doAssertRaises when exception==Exception (#10172)
* fix bug in doAssertRaises when exception==Exception
* add testcase for doAssertRaises
2019-01-04 13:54:02 +01:00
Neelesh Chandola
7c5ae00887 exportc is now not allowed for type aliases (#9979) 2019-01-02 20:01:06 +01:00
cooldome
7c90e22ddd fixes #10148 (#10149)
* fixes #10148
* fix a typo
2018-12-31 22:57:09 +01:00
Timothee Cour
ab72d68ec8 fix off by 1 error in col shown by toFileLineCol (#10138)
* fix off by 1 error in `col` shown by toFileLineCol
* fix test failures
2018-12-31 15:42:01 +01:00
c-blake
7ac1fc81fd Resolve things raised in https://github.com/nim-lang/Nim/issues/10081 ? (#10084)
* Resolve things raised in https://github.com/nim-lang/Nim/issues/10081 ?
CDF is a standard ident in all things related to random numbers/sampling,
and full words "cumulativeDistributionFunction" would be silly long, in
this case, IMO.  We use lowercase `cdf` to make it not look like a type,
remove all looping from `sample` letting callers do it.  Besides just
side-stepping any `sampleSize` name choice, callers may want to filter
out samples anyway which this makes slightly simpler.

Also add two variants of `cumsum`, value return and in-place update
distinguished by the var-ness of the first argument.  Add tests for
`int` and `float` for both `cumsum` and the new `sample`.  (The sample
tests exercise the value return mode of `cumsum`.)

Functionality pre-this-PR `sample(a, w)` is now the almost as simple
`for i in 0..<n: sample(a, w.cumsum)`, but this new code factoring is
almost surely better.  The statistical tests pass, as before.

* Address Araq comment in https://github.com/nim-lang/Nim/pull/10084
We can always add in some `var` version later if desired to save
memory, but this change now at least firms up the `sample` interface.

* Rename `cumsum` -> `cumsummed` to honor NEP1 style.  Re-instate `cumsum` as
the in-place transformation.  Test both in `tests/stdlib/tmath.nim` and use
`cumsummed` in the example code for sample since that's a simpler example.

* Fix requests from https://github.com/nim-lang/Nim/pull/10084 :
  example in lib/pure/math.nim and comment whitespace in lib/pure/random.nim
2018-12-31 14:52:51 +01:00
deech
e87910197a Check there are no side effects before optimizing away compile time expressions. (#9934) 2018-12-31 14:41:24 +01:00
cooldome
82c009a2cb Dead code elimination for entire modules and their init procs if empty (#10032)
* fixes #9798
* Change order of write modules
* Move datInit calls ahead of initStackBottom
2018-12-30 11:28:12 +01:00
Neelesh Chandola
cbbdcb2669 Show deprecation warning for fields of a deprecated enum (#10112)
* Show deprecation warning for fields of a deprecated enum

* Add test
2018-12-30 09:45:39 +01:00
Neelesh Chandola
c5ad4c10cb Deprecated pragma is now supported on enum fields (#10113)
* {.deprecated.} pragma is now supported for enum fields
* Add tests
* Simplify code
2018-12-30 09:43:59 +01:00
Timothee Cour
a6633b9658 fix typetraits.$ regression https://github.com/c-blake/cligen/issues/84 (#10131)
* fix typetraits.`$` regression https://github.com/c-blake/cligen/issues/84
* add test
2018-12-30 09:40:21 +01:00
Alexander Ivanov
aadbdd6b06 Support undefined in isNil (#9960) 2018-12-30 02:48:37 +01:00
Andreas Rumpf
062d7e3a39 fixes #10082 2018-12-30 02:45:43 +01:00
Timothee Cour
0831292863 revives: Move typetraits.$ to system. Fixes #5827 (#10071)
* Move typetraits.`$` to system. Fixes #5827.
* revive PR; adjust code to make sure everything works and add tests
* fix tests/concepts/tstackconcept.nim
* address comments
2018-12-30 01:09:47 +01:00