Commit Graph

51 Commits

Author SHA1 Message Date
Araq
beca7ded1b fixes #3144 2015-07-26 21:07:11 +02:00
Zahary Karadjov
1ebf1aaa80 importing of C++ nested generics like std::vector<T>::iterator, using the apostrophe operator 2015-04-13 23:49:41 +03:00
def
39049e151f Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
Jacek Sieka
c40249cd43 compiler_ropes: ropeToStr -> $ 2015-04-01 22:32:15 +08:00
Araq
57fa8c6d3f bugfixes for C++ codegen 2015-04-01 15:34:15 +02:00
Araq
36acac3000 fixes #1717, fixes #2324 2015-03-22 09:31:16 +01:00
Araq
0d804c2052 fixes #2266 2015-03-22 01:38:14 +01:00
Araq
1f02a7ace3 fixes #2336 2015-03-16 23:35:08 +01:00
Araq
1bbd13f729 bugfix: c++ pattern #@ could index out of bounds 2015-03-10 21:00:49 +01:00
Araq
f4a0400de2 fixes #2199, fixes #2197 2015-02-24 19:19:08 +01:00
Araq
f9b3f7f980 fixes #2068 2015-02-12 16:10:38 +01:00
Araq
1314e91ef5 fixes c++ codegen regression 2015-02-07 10:48:09 +01:00
Araq
e84834db79 lots of C++ codegen improvements 2015-02-07 10:48:07 +01:00
Araq
e75e421912 C++ support: codegen generates C++'s references and avoids copies 2015-02-04 00:52:45 +01:00
Araq
e2147c9f0d bugfixes for the new C++ patterns 2015-01-23 00:36:57 +01:00
Araq
a2b7e6c392 better C++ support wrt 'this' 2015-01-18 02:33:43 +01:00
Araq
33c587d06b patterns for 'importcpp' (still undocumented) 2015-01-14 13:57:59 +01:00
Araq
8889fa9117 handle 'T&' properly for better C++ support 2015-01-13 22:30:56 +01:00
Araq
e65c296bcc implemented mixed mode codegen 2014-10-03 01:21:35 +02:00
Araq
2781fea9e2 Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
Araq
f3d530e482 fixes #1434 2014-08-14 00:02:24 +02:00
Araq
9953e0bbca tdisjoint_slice2 works 2014-05-31 01:16:16 +02:00
Araq
d0438540d0 implemented builtin noncopying slice 2014-05-02 08:44:03 +02:00
Araq
9d4c4592fa more efficient calls for closure iterators 2014-01-25 14:22:38 +01:00
Araq
73c6efdf66 'nil' as a statement is deprecated, use an empty 'discard' instead 2014-01-19 16:54:59 +01:00
Araq
92b8fac94a case consistency part 4 2013-12-27 23:10:36 +01:00
Araq
132b6b3efe implemented 'injectStmt'; more debug support 2013-12-16 22:26:17 +01:00
Araq
ce5a1365c2 preparations for the new symbol binding rules for clean templates 2013-05-18 10:05:06 +02:00
Araq
9fc2bfa799 codegen produces better code for complex assignments 2013-02-24 03:51:45 +01:00
Zahary Karadjov
81a3585872 merged upstream master 2013-01-27 23:41:45 +02:00
Araq
e6fc044107 fixes #299 2013-01-08 18:20:40 +01:00
Zahary Karadjov
e817d54369 first batch of rope code converted to rfmt
The results so far are inconclusive:
The rope cache tries have been reduced by more than 125K (nearly 20%),
but the bootstrap time seems to be ever slightly increasing (0.01s).
2012-11-28 01:15:13 +02:00
Zahary Karadjov
3c9e3a6a71 Improved support for nkSymChoices in type coercions
For example, this allows you to pick up a proc with a specific signature from
an overload set.

bugfix: nimrod generated invalid code when a RVO function had a single
compile-time param

bugfix: nkHiddenDerefs were not neutralised properly for indirect proc calls
2012-10-15 21:00:29 +03:00
Zahary Karadjov
27dc9fcb8f fixes #186 and the ttypedesc1 test case 2012-09-23 19:34:20 +03:00
Araq
51de278bd4 next steps for tyVarargs/tyOpenArray split 2012-08-14 08:44:26 +02:00
Zahary Karadjov
df1ec09399 proper indentation in the generated C code 2012-06-12 04:43:58 +03:00
Araq
04300542da fixes #127 2012-05-30 22:37:17 +02:00
Zahary Karadjov
567b5b07ea fixes #20 properly 2012-04-15 01:06:40 +03:00
Zahary Karadjov
d2b45dbe85 C variables are created in their enclosing block instead of their enclosing function 2012-04-12 14:12:32 +03:00
Zahary Karadjov
22dc76a361 typedesc and expr params
types are now valid proc/template/macro params and you can overload over them:
proc foo(T: typedesc)        # accept any type
proc foo(T: typedesc{int}) # overload specifically for int
proc foo(T: typedesc{int or float or Callable}) # overload for any type matching the constraints

expr{type} is a param expecting compile time value of the designated type (or type class).

when typedesc or expr params are used with a proc, the proc will be instantiated once
for each unique type/value used as parameter.
2012-03-31 18:50:48 +03:00
Zahary Karadjov
e5bd3b5b97 bootstraps fine with overloadable templates 2012-03-14 21:00:42 +02:00
Araq
161f6f7229 further steps for closure support 2012-02-06 08:44:18 +01:00
Araq
632aece191 further steps to closure support 2012-02-06 00:19:56 +01:00
Araq
23340695d0 fixes #89 2012-01-29 02:13:53 +01:00
Araq
1d1752cac7 removed nimKeepAlive as it's not necessary with interior pointer checking 2012-01-15 11:54:38 +01:00
Araq
4f1b89c30c year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
Araq
cd83cc81aa code gen can generate code to keep alive stack roots 2011-12-22 15:04:00 +01:00
Araq
94358e03e9 compiler generates volatile temps to keep C compiler from optimizing away stack roots 2011-12-12 01:40:23 +01:00
Araq
af792da0bb codegen uses alias analysis to generate better code 2011-12-10 01:06:32 +01:00
Araq
7fcbdc6d42 implemented 'let' statement 2011-11-29 17:27:48 +01:00