Commit graph

686 commits

Author SHA1 Message Date
Araq
eed443d4b3 rewrote lambdalifting; fixes deeply nested closures 2014-06-26 15:58:41 +02:00
Andreas Rumpf
2ec1501c7a Merge pull request #1281 from Araq/new_spawn
New spawn
2014-06-16 23:03:17 +02:00
Araq
15909c7be2 optimized method dispatchers 2014-06-12 16:05:50 +02:00
Araq
947b152163 some changes 2014-06-09 08:03:54 +02:00
Araq
030eac86c0 bugfix: regionized pointers in a generic context; renamed 'Future' to 'Promise' 2014-05-25 15:19:46 +02:00
Araq
d2dbcf2fa4 progress with futures 2014-05-23 08:57:16 +02:00
Araq
c43e8df90c progress for the 'parallel' statement 2014-05-14 01:51:44 +02:00
Araq
77d5ab1708 bootstraps works again; get rid of compile-time 'rand' (too weird) 2014-05-06 00:17:41 +02:00
Araq
d0438540d0 implemented builtin noncopying slice 2014-05-02 08:44:03 +02:00
Araq
be6474af63 removed flawed thread analysis pass 2014-04-20 14:00:04 +02:00
Araq
3b69a8d27a New concurrency model: next steps 2014-04-19 22:24:43 +02:00
Araq
8e08ff559f first version of 'spawn' 2014-04-16 08:44:57 +02:00
Araq
b961e47bfe new concurrency model: first steps; shared is not a keyword anymore 2014-04-14 08:45:43 +02:00
Araq
78cc4de9a1 fixes #1025; don't know what this breaks 2014-03-26 20:31:18 +01:00
Araq
cdb4d83ead implemented 'borrow dot' feature for distinct types 2014-03-26 01:27:22 +01: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
f0953db3ba handle arbitrary expressions dependent on static input params in proc signatures 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
71695ab791 fix tsemistatic 2014-03-11 00:58:27 +02:00
Zahary Karadjov
45a345e93d fix #866; generic static params 2014-03-09 23:38:17 +02:00
Zahary Karadjov
2cbe46daff Merge branch 'devel' of github.com:Araq/Nimrod into devel 2014-03-06 23:25:45 +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
614557994e the compiler is now aware of packages 2014-03-02 23:46:20 +01:00
Araq
6e584c42c2 vm2: new representation of registers 2014-02-21 17:23:37 +01:00
Zahary Karadjov
492fa86638 the delegator pragma becomes a set of dot operators 2014-02-15 17:41:35 +02: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
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
8f3d5a25a6 Templates will pick the candidate in the nearest scope when symbols are mixed-in 2013-12-31 04:04:59 +02:00
Zahary Karadjov
7e24cf26de handle recursive types during the instantiation of meta types; propagate tfHasMeta more carefully 2013-12-30 16:06:32 +02:00
Zahary Karadjov
fa3bb8d66b restore return type inference 2013-12-30 00:03:57 +02:00
Zahary Karadjov
afddae5aaf Merge branch 'upstream' into devel
Conflicts:
	compiler/ccgutils.nim
	compiler/msgs.nim
	compiler/sem.nim
	compiler/semexprs.nim
	compiler/seminst.nim
	compiler/semmagic.nim
	compiler/semstmts.nim
	compiler/semtypes.nim
	compiler/semtypinst.nim
	compiler/sigmatch.nim
	compiler/types.nim
	compiler/vmgen.nim
	lib/core/macros.nim
	lib/system.nim
	tests/reject/tenummix.nim
	web/news.txt
2013-12-29 17:21:00 +02:00
Zahary Karadjov
72291875bf integrate the logic of fixupProcType into ReplaceTypeVars 2013-12-29 16:08:33 +02:00
Araq
b731e6ef1c case consistency: cs:partial bootstraps on windows 2013-12-29 03:19:10 +01:00
Araq
438703f59e case consistency: next steps 2013-12-29 01:13:51 +01:00
Araq
92b8fac94a case consistency part 4 2013-12-27 23:10:36 +01:00
Araq
706266d8b7 case consistency part 3 2013-12-27 21:46:43 +01:00
Zahary Karadjov
a27eb51535 towards support for composite type classes such as seq[Number] and SquareMatrix[T] 2013-12-27 18:34:28 +02:00
Zahary Karadjov
edab4aaad0 better integration of tyStatic into typeRel 2013-12-25 22:29:44 +02:00
Zahary Karadjov
1d02f2ea53 wip type class reforms (the compiler bootstraps fine)
* replace tfAny and tfAll with tyAnd and tyOr
* integrate matchTypeClass into typeRel
* introduce tyBuiltInTypeClass to handle types such as tuple, object, proc, etc
2013-12-25 19:25:04 +02:00
Araq
1081c104d0 Merge branch 'vm2' of github.com:Araq/Nimrod into vm2 2013-12-24 01:30:48 +01:00
Satish BD
033938a53a Correct the spelling of the word 'implicitly' 2013-12-23 04:29:50 +02:00
Zahary Karadjov
027f30610e static params: expr[T] is now static[T]
This introduces tyStatic and successfully bootstraps and handles
few simple test cases.  Static params within macros are no longer
treated as PNimrodNodes - they are now equivalent to constants
of the designated type.
2013-12-19 01:06:38 +02:00