Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | breaking change: arrays of char do not convert to cstring; ptr to array of ↵ | Andreas Rumpf | 2017-10-10 | 1 | -6/+7 |
| | | | | char does | ||||
* | some work to make 'opt' a first class type | Andreas Rumpf | 2017-09-24 | 1 | -1/+1 |
| | |||||
* | first implementation of the 'func' keyword | Andreas Rumpf | 2017-09-23 | 1 | -4/+4 |
| | |||||
* | fix #5918 | Zahary Karadjov | 2017-08-19 | 1 | -1/+3 |
| | |||||
* | Fix #5084 | Zahary Karadjov | 2017-06-20 | 1 | -3/+6 |
| | |||||
* | Fix #4737 | Zahary Karadjov | 2017-06-20 | 1 | -3/+6 |
| | |||||
* | Fix #5127 | Zahary Karadjov | 2017-06-20 | 1 | -5/+6 |
| | |||||
* | fix #1017; fix #3309 | Zahary Karadjov | 2017-06-20 | 1 | -0/+6 |
| | |||||
* | fix #2730; fix #4880 | Zahary Karadjov | 2017-06-20 | 1 | -0/+7 |
| | |||||
* | fix #5017; fix #5893 | Zahary Karadjov | 2017-06-20 | 1 | -1/+3 |
| | |||||
* | fix #5864 | Zahary Karadjov | 2017-06-20 | 1 | -0/+2 |
| | |||||
* | add a useful helper for debugging typeRel problems | Zahary Karadjov | 2017-06-20 | 1 | -4/+26 |
| | |||||
* | introduce a pre-processing pass for the concept bodies | Zahary Karadjov | 2017-06-20 | 1 | -36/+22 |
| | | | | | | | fixes #4982 fixes #3805 close #3414 | ||||
* | fix #5890 | Zahary Karadjov | 2017-06-20 | 1 | -1/+2 |
| | |||||
* | cleanup of in/out covariance handling | Andreas Rumpf | 2017-05-17 | 1 | -6/+6 |
| | |||||
* | enforce the covariance rules for user-defined generic types | Zahary Karadjov | 2017-05-13 | 1 | -4/+4 |
| | |||||
* | covariance for arrays and sequences | Zahary Karadjov | 2017-05-12 | 1 | -12/+40 |
| | |||||
* | doh, forgot to add all files in the previous commit | Zahary Karadjov | 2017-05-12 | 1 | -12/+58 |
| | |||||
* | a simple way to simulate covariance in generic types | Zahary Karadjov | 2017-04-28 | 1 | -1/+6 |
| | |||||
* | fix a regrsesion in signature matching of derived ptr types | Zahary Karadjov | 2017-04-18 | 1 | -3/+5 |
| | |||||
* | Restore the compilation of linalg by tweaking the complex disambiguation rules | Zahary Karadjov | 2017-04-16 | 1 | -10/+18 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | fix regression in tmatrixconcept | Zahary Karadjov | 2017-04-16 | 1 | -0/+4 |
| | |||||
* | fix a compilation error in linalg | Zahary Karadjov | 2017-04-16 | 1 | -25/+23 |
| | |||||
* | fix #5689 | Zahary Karadjov | 2017-04-15 | 1 | -8/+10 |
| | |||||
* | fix #5683 | Zahary Karadjov | 2017-04-14 | 1 | -6/+9 |
| | |||||
* | lift parameter-less do block to lambdas | Zahary Karadjov | 2017-04-10 | 1 | -1/+12 |
| | |||||
* | fix the do notation when used with procs | Zahary Karadjov | 2017-04-09 | 1 | -0/+3 |
| | |||||
* | fix #5643; fix #5644 | Zahary Karadjov | 2017-04-08 | 1 | -2/+3 |
| | |||||
* | Restore the Nim's 0.14 proper handling of generic aliases | Zahary Karadjov | 2017-04-08 | 1 | -20/+67 |
| | | | | | | | | | | | 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 | ||||
* | attempt to fix #5632 typedesc typeRel regression (#5634) | andri lim | 2017-03-31 | 1 | -1/+1 |
| | |||||
* | requested code review changes | Zahary Karadjov | 2017-03-29 | 1 | -12/+12 |
| | |||||
* | restore compilation and make all concepts tests green | Zahary Karadjov | 2017-03-24 | 1 | -4/+4 |
| | |||||
* | Working test cases for the sophisticated matrix library example from the manual | Zahary Karadjov | 2017-03-24 | 1 | -19/+27 |
| | | | | | Fixed the dot operator when used within return types (see tgenericdotrettype) Fixed the matching of generic concepts aliases used with the implicit generics style | ||||
* | further improvements to the error messages produced by concepts | Zahary Karadjov | 2017-03-24 | 1 | -2/+7 |
| | |||||
* | proper error reporting for concepts and the introduction of the {.explain.} ↵ | Zahary Karadjov | 2017-03-24 | 1 | -13/+45 |
| | | | | pragma | ||||
* | implement the special treatment of explicit type params in concepts | Zahary Karadjov | 2017-03-24 | 1 | -1/+3 |
| | |||||
* | infer static parameters even when more complicated arithmetic is involved | Zahary Karadjov | 2017-03-24 | 1 | -29/+114 |
| | |||||
* | support derived values in non-generic user type classes | Zahary Karadjov | 2017-03-24 | 1 | -14/+6 |
| | |||||
* | support for inferring static[T] concept params | Zahary Karadjov | 2017-03-24 | 1 | -21/+25 |
| | |||||
* | introduce tyInferred for the unbound concept type params | Zahary Karadjov | 2017-03-24 | 1 | -71/+80 |
| | | | | | | | | | | | | | | | | | | * Why is tyInferred needed? The bindings in TCandidate are capable of inferring types within a single call expression. In concepts, we need to infer types in the same way, but across the whole body of the concept. Previously, once a concept type param was inferred, it was destructively mutated using t.assignType, but this proved to be problematic in the presence of overloads, because the bindings established while a non-matching overload is tested must be reverted/forgotten. tyInferred offers a non-destructive way to keep track of the inference progress. While introducing new types usually requires a lot of code paths in the compiler to updated, currently tyInferred is only a short-lived type within the concept body pass and it's unlikely to introduce breakage elsewhere in the compiler. | ||||
* | support the full range of type modifiers when declaring concept vars and ↵ | Zahary Karadjov | 2017-03-24 | 1 | -10/+21 |
| | | | | testing proc signatures | ||||
* | support for matching generic types' procs in generic concepts | Zahary Karadjov | 2017-03-24 | 1 | -6/+36 |
| | |||||
* | support for accessing types and consts defined in concepts with the dot operator | Zahary Karadjov | 2017-03-24 | 1 | -12/+23 |
| | |||||
* | support for accessing the inferred concept type params with the dot operator | Zahary Karadjov | 2017-03-24 | 1 | -3/+14 |
| | |||||
* | concept type params inference working in basic examples | Zahary Karadjov | 2017-03-24 | 1 | -0/+38 |
| | |||||
* | fixes #5241, fixes #5411 inherit from specialized generic typeRel problem ↵ | andri lim | 2017-03-23 | 1 | -10/+24 |
| | | | | (#5573) | ||||
* | fixes #4756 (#5557) | zah | 2017-03-17 | 1 | -2/+6 |
| | |||||
* | fix varargs forwarding for templates; fixes #5455 (#5505) | zah | 2017-03-13 | 1 | -2/+2 |
| | | | | | * fix varargs forwarding for templates; fixes #5455 * document the macros' varargs change in the news for 0.16.2 | ||||
* | Fixes #5167 and related problems (#5475) | zah | 2017-03-12 | 1 | -0/+1 |
| | | | | | | | | | This commit returns to a bit less strict checking of the number of macro arguments, because some old immediate macros rely on a behavior where even the arity of the macro is not being checked. It may be better if such macros are just declared to use varargs[expr], but this remains for another day. | ||||
* | big compiler refactoring; avoid globals for multi method dispatcher generation | Andreas Rumpf | 2017-02-22 | 1 | -3/+3 |
| |