Commit graph

187 commits

Author SHA1 Message Date
Araq
f9d7e8db2a implements #1332 2014-07-06 22:56:34 +02:00
Araq
b56f43c394 fixes #898 2014-07-01 22:58:44 +02:00
Araq
3c818c89be fixes #1285 2014-06-30 23:36:46 +02:00
Andreas Rumpf
2ec1501c7a Merge pull request #1281 from Araq/new_spawn
New spawn
2014-06-16 23:03:17 +02:00
Araq
947b152163 some changes 2014-06-09 08:03:54 +02:00
flaviut
20cb567bf5 Fix accents in enums 2014-06-03 14:15:32 -04:00
flaviut
7b1b3cbf25 More descriptive error message in semtypes enum 2014-06-03 10:12:57 -04:00
Araq
be229163af Merge branch 'new_spawn' of https://github.com/Araq/Nimrod into new_spawn 2014-06-01 22:00:06 +02:00
Clay Sweetser
10e23e9159 Renamed considerAccents to considerQuotedIdent 2014-05-26 10:42:10 -04:00
Araq
030eac86c0 bugfix: regionized pointers in a generic context; renamed 'Future' to 'Promise' 2014-05-25 15:19:46 +02:00
Clay Sweetser
055cdb2cdf Renamed 'considerAcc' to 'considerAccents' for clarity
Added documentation string to 'considerAccents'
Modified renderParamType's assertion to allow nkAcc nodes.
2014-05-24 08:10:40 -04:00
Araq
bd705a517f compiler prepared for the new comment handling 2014-04-30 00:53:44 +02:00
Araq
042ffed6c4 some progress for #1082 2014-04-21 01:34:54 +02:00
Araq
b961e47bfe new concurrency model: first steps; shared is not a keyword anymore 2014-04-14 08:45:43 +02:00
Araq
d96f25619a implemented 'R ptr T' syntax 2014-04-13 22:31:49 +02:00
Araq
4196757de7 implemented region pointers 2014-04-09 00:33:51 +02:00
Araq
3197ec8e72 make tests green again 2014-04-07 15:46:02 +02:00
Araq
abb7010820 fixes #1063 2014-04-07 14:21:33 +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
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
1e45bb79ab Added support for {.packed.} pragma on objects
Added tests for packed and union pragmas
2014-03-18 21:11:57 +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
ac271e76b1 more robust handling of proc signatures containing inter-param type references 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
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
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
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
Zahary Karadjov
ee1b0d8c67 fix #587 2014-03-06 23:25:04 +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
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
Zahary Karadjov
e6b0b7ecc9 some fixes for static params usage in macros 2014-02-25 01:36:08 +02:00
Zahary Karadjov
0bbf6081d0 fix #931 and few more tests 2014-02-18 20:04:58 +02:00
Zahary Karadjov
cda92048ba fix some trivial errors in the test suite and some more regressions caused by tyTypeDesc[tyNone] 2014-02-18 02:46:14 +02:00
Zahary Karadjov
c1f1f84194 fix some regressions caused by tyTypeDesc[tyNone] 2014-02-15 20:44:01 +02:00
Araq
cc0a32ae87 Merge branch 'devel' of https://github.com/Araq/Nimrod into devel 2014-02-06 00:27:10 +01:00
Araq
d912d18379 tyTypeDesc and tyRange always have 1 child; this might be tyNone but it is required for skipTypes 2014-02-05 23:43:13 +01:00
Charlie Barto
7cfec91057 deleted assert that would never fire because it turned into an error message 2014-02-04 00:07:17 -05:00
Charlie Barto
51076a0be6 added good error for stuff like string[int] or int[int] 2014-02-03 23:54:01 -05:00
Zahary Karadjov
3f71b7f1f6 implements #766;
expressions such as Type.field are now recognised by the compiler.
This also fixes a bug, preventing the user-defined to check for the presence of
regular fields in addition to procs
2014-01-24 23:52:52 +02:00
Zahary Karadjov
a6a18be089 support for parametric user-defined type classes 2014-01-24 14:13:32 +02:00
Araq
73c6efdf66 'nil' as a statement is deprecated, use an empty 'discard' instead 2014-01-19 16:54:59 +01:00
Zahary Karadjov
1ffae7cbaf progress towards fixing tgenericshardcases 2014-01-06 00:15:55 +02:00
Zahary Karadjov
789ba107cf introduce tyFromExpr; fixes #618 2014-01-04 13:10:52 +02:00
Zahary Karadjov
8e0941576f clean-up some obsolete code; close #602 2013-12-31 12:39:43 +02:00
Zahary Karadjov
754e2ef1db migrate the static param handling to ReplaceTypeVars; fix tgenericvariant 2013-12-30 19:15:41 +02:00
Zahary Karadjov
e3f53409f6 proc redefinition search based on the type system instead of on sloppy AST matching
This will work the same for procs/templates/macros/etc, having arbitrary mix of implicit
and explicit generics (as long as the symbols are equivalent for the purposes of overload
resolution, they will be detected as redefinitions)

fixes tgeneric
2013-12-30 10:57:12 +02:00