Commit Graph

3743 Commits

Author SHA1 Message Date
Zahary Karadjov
8ba062d952 fix #1016 2014-03-20 23:24:25 +02:00
Zahary Karadjov
b2aa70c6ef fix #1018
Previously, generic types originating from the same body symbol were compared
structurally. The bug illustrates a case, where such a comparison is not correct.
The new approach follows the established method used in typeRel.
2014-03-20 22:27:49 +02:00
Zahary Karadjov
8a0509b3b2 implements `distinct with/without X, Y`
This still doesn't work quite right, because some common operations like array
indexing lay completely outside the scope/symbol lookup system - they are not
even magics.
2014-03-20 01:16:50 +02:00
Zahary Karadjov
d508384d39 fix #1013 2014-03-20 01:16:50 +02:00
Zahary Karadjov
4b7655fd10 reference implementation of a vector swizzle library
This also provides the initial steps towards support for type class "filtered" type inference
fixes an "ordinal type expected" ICE, related to the use of static params
2014-03-20 01:16:50 +02:00
Audun Wilhelmsen
ca228e46b5 Fix compilation error when using packed pragma with vcc. 2014-03-18 21:23:35 +01:00
Audun Wilhelmsen
1e45bb79ab Added support for {.packed.} pragma on objects
Added tests for packed and union pragmas
2014-03-18 21:11:57 +01:00
Andreas Rumpf
9d4b77a65a Merge pull request #1003 from flaviut/devel
Add token position to `nimrod scan`
2014-03-16 22:08:43 +01:00
Zahary Karadjov
b3da0ab888 fix #1007 2014-03-16 21:44:21 +02:00
Zahary Karadjov
49b0440c47 make some tests green 2014-03-16 20:42:49 +02:00
Zahary Karadjov
f0953db3ba handle arbitrary expressions dependent on static input params in proc signatures 2014-03-16 20:42:06 +02:00
Zahary Karadjov
da5d88f04e use g++ and clang++ automatically when compiling to C++ 2014-03-16 20:42:06 +02:00
Zahary Karadjov
ac271e76b1 more robust handling of proc signatures containing inter-param type references 2014-03-16 20:42:06 +02:00
Zahary Karadjov
7dcf6ff50b fix #997 2014-03-16 20:42:06 +02:00
Zahary Karadjov
27c2c1e75c fix #996 2014-03-16 20:42:06 +02:00
Zahary Karadjov
37b199d34a first phase of tyGenericParam reforms needed for static params 2014-03-16 20:42:06 +02:00
Zahary Karadjov
4d2c948281 fix #1001 2014-03-16 20:42:06 +02:00
Zahary Karadjov
cf8fe16a48 fix #715 again
the regression was caused by the introduction of "generic" lambdas
2014-03-16 20:42:06 +02:00
Zahary Karadjov
7080d02af4 allow multi-line expressions using the dot operator
this enables parsing of expressions like:

``` Nimrod
s.items
  .map(proc (x): auto = x * 2)
  .filter do (x) -> auto:
    return x % 2 == 0
  .group_by((x) => x.length)
```
2014-03-16 20:42:06 +02:00
Zahary Karadjov
63d93ad1ab grammar fix: allow free-standing expressions such as type(foo) is bar 2014-03-16 20:42:06 +02:00
flaviut
5e47c18e3f Add token position to nimrod scan
A block of the format "linenum:col\t' is added to the start of each token that is printed.
2014-03-14 14:18:38 -04:00
Araq
3e056afb1c fixes #993 2014-03-13 22:29:48 +01:00
Araq
1c35fb3c89 Merge branch 'devel' of https://github.com/Araq/Nimrod into devel 2014-03-13 02:52:51 +01:00
Araq
2fc84325c7 should fix the nkExprColonExpr bug in the vm 2014-03-13 02:52:40 +01:00
Zahary Karadjov
71695ab791 fix tsemistatic 2014-03-11 00:58:27 +02:00
Zahary Karadjov
85fe5e1940 fix #988
trivial crash caused due to unchecked iteration over an empty reclist
2014-03-10 13:04:22 +02:00
Zahary Karadjov
d5798b43de fix #986 2014-03-10 01:57:08 +02:00
Zahary Karadjov
9fb0755572 further improvements for static generic params; activate the hardest test cases 2014-03-10 00:36:19 +02:00
Zahary Karadjov
45a345e93d fix #866; generic static params 2014-03-09 23:38:17 +02:00
Zahary Karadjov
3dcf735482 fix #909 2014-03-09 22:15:11 +02:00
Zahary Karadjov
29b7104a53 fix #829; (macros.quote)
the fix is a little bit peculiar:

the inserted call to getAst was getting a false-positive for being a lambda proc,
because lambdalifting.isInnerProc takes into account who is the owner of a given
symbol: (a nested proc is a callable symbol owned by the enclosing proc)
2014-03-09 21:04:12 +02:00
Zahary Karadjov
752352a683 fix #949 2014-03-09 20:47:05 +02:00
Zahary Karadjov
eebe0035b5 teach opcLdObj about nkExprColonExpr 2014-03-09 17:06:29 +02:00
Zahary Karadjov
5aa486cf11 few more fixes for static params in macros; new failing test cases for static evaluation 2014-03-09 16:04:58 +02:00
Zahary Karadjov
5820093e58 Merge branch 'devel' of github.com:Araq/Nimrod into devel 2014-03-09 14:02:16 +02:00
Zahary Karadjov
4b09a89758 fix #966
test for ``map`` defined as inline iterator
2014-03-09 14:02:01 +02:00
Zahary Karadjov
518b794491 implicit auto return type for inline iterators 2014-03-08 23:27:33 +02:00
Zahary Karadjov
085b339b8b implements higher-order inline iterators and return type inference for iterators 2014-03-08 22:57:06 +02:00
Araq
dd216755ff Merge branch 'devel' of https://github.com/Araq/Nimrod into devel 2014-03-07 22:28:48 +01:00
Araq
91d842e1ec implements strongSpaces parsing mode 2014-03-07 22:25:05 +01:00
Zahary Karadjov
2cbe46daff Merge branch 'devel' of github.com:Araq/Nimrod into devel 2014-03-06 23:25:45 +02:00
Zahary Karadjov
ee1b0d8c67 fix #587 2014-03-06 23:25:04 +02:00
Zahary Karadjov
249dd70273 test cases for the new handling of iterators by the is operator 2014-03-06 23:03:02 +02:00
Zahary Karadjov
862c0ef83d split the inline and closure iterators into different symbol kinds for easier discrimination between them 2014-03-06 21:57:35 +02:00
Araq
5506e8491d implemented 'union' and 'unchecked' pragmas 2014-03-05 20:19:04 +01:00
Araq
a066e4e5c5 c2nim knows about the 'union' pragma 2014-03-05 20:05:05 +01:00
Araq
3dfb4891c7 bugfix: unreported 'compiles' bug 2014-03-05 08:47:27 +01:00
Araq
4f946cb44e fixes #942 2014-03-05 08:30:05 +01:00
Araq
aa92669d92 fixes #937 2014-03-05 02:14:53 +01:00
Zahary Karadjov
5324c9ebba iterators now return tyIter(T);
tyIter(T) represents an "iteration yielding values of type T"

I'm planning to use that in the context of the `is` operator
supporting predicates such as `C.items is iterator` and also
in the upcoming support for higher-order inline iterators.
2014-03-05 02:23:53 +02:00