Commit Graph

8716 Commits

Author SHA1 Message Date
Zahary Karadjov
5e368f3639 support for external types with covariant generic params 2017-05-08 21:45:37 +03:00
Andreas Rumpf
c22e0d414d fixes an internal compiler error when json.to is used wrongly 2017-05-06 11:53:15 +02:00
Andreas Rumpf
764cc02177 Merge branch 'devel' into araq 2017-05-04 16:02:50 +02:00
Andreas Rumpf
c1aa973758 Merge branch 'devel' of github.com:nim-lang/Nim into devel 2017-05-04 10:58:21 +02:00
Araq
6377b52d8e Merge branch 'devel' of github.com:nim-lang/Nim into devel 2017-05-02 01:24:19 +02:00
Araq
bea07a2c5c fixes #5752 2017-05-02 01:24:10 +02:00
Andreas Rumpf
962d03d671 isDeepConstExpr helper can handle nkRange 2017-05-01 09:31:29 +02:00
Andreas Rumpf
56a5c249c9 JS codegen: produce better code for constant sets 2017-05-01 09:30:56 +02:00
Zahary Karadjov
2a34552596 fix 5756 2017-04-30 22:28:20 +03:00
Zahary Karadjov
c981284ddc a simple way to simulate covariance in generic types 2017-04-28 17:40:57 +03:00
Zahary Karadjov
bc01835091 Allow tyOr,tyAnd and tyNot to be constructed in more contexts 2017-04-28 17:07:54 +03:00
Andreas Rumpf
3d34a9f6d3 js codegen: emit more line information 2017-04-26 12:50:36 +02:00
Andreas Rumpf
920888f382 fixes tuple unpacking regression 2017-04-26 11:10:50 +02:00
Andreas Rumpf
2da66fef77 Merge branch 'devel' of github.com:nim-lang/Nim into devel 2017-04-26 10:28:03 +02:00
Andreas Rumpf
7b1568d19c make -d:nimdiff feature more robust 2017-04-26 10:27:42 +02:00
Araq
05c20bc4ff fixes a parser bug 2017-04-25 19:36:05 +02:00
cooldome
c6a8bd264e Fix for #5695 make subscript operator overloadable for tuples (#5749) 2017-04-24 20:17:06 +02:00
Andreas Rumpf
1aede6d311 Merge branch 'devel' of github.com:nim-lang/Nim into devel 2017-04-24 10:00:53 +02:00
Andreas Rumpf
7cba41db23 make nimble compile again 2017-04-22 14:58:53 +02:00
Andreas Rumpf
3f5ababfe8 make sighashes work in more cases 2017-04-21 17:01:57 +02:00
Andreas Rumpf
afa80092d3 wip 2017-04-21 09:40:27 +02:00
Araq
4b76d9846b Merge branch 'devel' of github.com:nim-lang/Nim into devel 2017-04-19 15:20:54 +02:00
Araq
5018f6fa15 fixes #5729 2017-04-19 15:20:46 +02:00
Andreas Rumpf
b7bffa35c7 attempt to make sighashes produce smaller diffs 2017-04-19 08:40:05 +02:00
Andreas Rumpf
02bbfa1164 precise stack scanning for Nim's GCs; work in progress 2017-04-19 08:33:19 +02:00
Zahary Karadjov
3e52bb6535 fix a regrsesion in signature matching of derived ptr types 2017-04-18 23:55:59 +03:00
Zahary Karadjov
13701c0957 Restore the compilation of linalg by tweaking the complex disambiguation rules
This commit is a potentially breaking change, but the problem was that
linalg was relying on a previous bug in the compiler, which was fixed
in the concepts branch.

With the old disambiguation rules, generic procs like:

proc \`==\`[T](lhs, rhs: T)

and

proc \`==\`(lhs, rhs: Matrix32|Matrix64)

.. were considered equal, even though it's obvious that the second one
should be preferred. We never noticed this, because there was a bug in
sigmatch incorrectly counting one of the params of the second proc as
a non-generic match, thus giving it an edge.

This commit gives some preference to tyOr and tyAnd during the complex
disambiguation, which may affect overload resolution in other cases.

I see this only as a temporary solution. With my upcoming work on
concept refinement, I plan to provide an experimental implementation
of alaternative C++-like rules for determining which proc is more specific.
We can then discuss our strategy for dealing with such a breaking change.
2017-04-16 16:11:45 +03:00
Zahary Karadjov
2da4a4fbe3 fix regression in tmatrixconcept 2017-04-16 14:39:00 +03:00
Zahary Karadjov
4da8536701 fix compilation regression in alea 2017-04-16 13:42:33 +03:00
Zahary Karadjov
dfbafff2e7 fix a compilation error in linalg 2017-04-16 02:44:58 +03:00
Zahary Karadjov
bf4ce87e5b fix #5689 2017-04-15 02:53:28 +03:00
Zahary Karadjov
d578815963 fix #5683 2017-04-14 23:54:09 +03:00
Zahary Karadjov
8de19a7f4c fix a parsing regression (do is still mandatory in some situations) 2017-04-14 23:48:43 +03:00
Andreas Rumpf
55b5401dc6 fixes yet another regression caused by the .procvar removal 2017-04-14 19:18:26 +02:00
Jacek Sieka
e512358bc9 Linux abi take 3 (#5692)
* avoid generating object fields for imported types
* fix some abi/type issues for linux_amd64
2017-04-12 22:57:10 +02:00
Zahary Karadjov
54a1d9c16a wip 2017-04-11 00:48:52 +03:00
Zahary Karadjov
a3f19c87fb lift parameter-less do block to lambdas 2017-04-10 23:58:05 +03:00
Zahary Karadjov
f7b10e213b support post expression blocks in return and yield 2017-04-10 17:26:50 +03:00
Zahary Karadjov
8b63b84924 fix a regression in tlexerex 2017-04-10 13:06:06 +03:00
Zahary Karadjov
8cb11aac4f adapt quote to the new parsing rules 2017-04-10 12:23:04 +03:00
Zahary Karadjov
e7eb01ed48 fix a parsing regression (calls with do inside param lists)
This treatment is applied only when "do" is used, because
the code foo(x: bar) is recognized as object construction.
2017-04-10 12:08:40 +03:00
Zahary Karadjov
9ffaee3f88 fully consisent parsing between the new and the old 'do blocks' 2017-04-10 11:44:02 +03:00
Zahary Karadjov
34b2527441 the new blocks without 'do' produce compatible AST with 'do blocks' 2017-04-09 23:45:52 +03:00
Zahary Karadjov
987b522071 fix the do notation when used with procs 2017-04-09 22:59:24 +03:00
Zahary Karadjov
03172bef6f fix #5643; fix #5644 2017-04-08 23:42:42 +03:00
Fredrik Høisæther Rasch
392f025148 Error Message if CC invocation fails (#5663) 2017-04-08 19:06:19 +02:00
Zahary Karadjov
e9a3ffbc3d Restore the Nim's 0.14 proper handling of generic aliases
A more efficient implementation is possible by restoring the old
lifting ot tyGenericInvocation to tyGenericInst in liftTypeParam,
but this fix will suffice for now.

fixes #5087
fixes #5602
fixes #5641
fixes #5570
2017-04-08 17:28:19 +03:00
Zahary Karadjov
0b7321651e fix #5658 2017-04-07 21:53:27 +03:00
Zahary Karadjov
e11b3520ff fix #5654 2017-04-07 19:35:05 +03:00
Zahary Karadjov
fb3ff64450 fix #5642 2017-04-07 19:28:52 +03:00