Commit Graph

328 Commits

Author SHA1 Message Date
Aman Gupta
0679340b52 switch to bitsize:int 2015-09-29 14:39:20 -07:00
Aman Gupta
5e9ce88daf implement bitsize pragma for bitfields 2015-09-28 14:34:36 -07:00
Araq
90d1ad4231 made disjoint checker smarter; fixes regressions 2015-09-23 21:46:32 +02:00
Araq
5b2f54ffa1 fixes #3313 2015-09-18 11:24:16 +02:00
Araq
612cd25d5d usage of NimNode triggers .compileTime context; fixes #1679 2015-09-14 12:41:49 +02:00
Araq
2a797c362a preparations for better handling of 'a[i]' in generics; stmt lists can be lvalues 2015-09-12 10:51:20 +02:00
Araq
ffe51966b9 fixes a critical codegen bug triggered by .async 2015-09-10 10:50:29 +02:00
Araq
dc047931bb fixes #2590; methods now require a .base annotation 2015-09-06 02:31:28 +02:00
Yuriy Glukhov
790ef23c48 nimvm is magic 2015-09-04 20:50:29 +03:00
Araq
e733debec7 first implementation of write tracking and escape analysis; still disabled 2015-08-31 23:06:34 +02:00
Araq
695e2e970e implemented macros.getImpl 2015-08-21 02:34:34 +02:00
Araq
b0b716fca7 fixes #3079, fixes #1146, fixes #2879 2015-07-22 16:32:56 +02:00
Jacek Sieka
e432de84a2 Linebreak TMagic by rough category 2015-07-12 21:49:33 +08:00
Araq
9a8de7f3a3 fixes #3054 2015-07-05 15:00:48 +02:00
Adam Strzelecki
1a0417fbe0 macros: Introduce sameType(a, b) for node types
Previously introduced node comparison `==` was working somehow wrong on nodes
returned from getType(a), comparing just ids of the symbols.

Recently introduced `==` change 47dce26886
started comparing symbol nodes pointer-wise, thus strictly. Since getType(a)
always creates new symbol pointing to the type, comparing two such nodes using
`==` always returns false, even they point to the same type.

That is why we need a new sameType macro to be able to tell if these nodes
point to the same type.
2015-07-03 11:11:10 +02:00
Araq
cabbcd411d implements varargs[untyped]; refs #2545; to be documented 2015-07-02 16:18:11 +02:00
Araq
4afb8b8043 fixes #2935 2015-07-01 02:15:21 +02:00
Andreas Rumpf
e7bb37d12c Merge pull request #2896 from r-ku/I64-magics-gone
I64 magics gone
2015-06-12 00:06:39 +02:00
Andreas Rumpf
cb439d70bc Merge pull request #2892 from apense/patch-6
Fixes #2886 (moves compiler function into the compiler)
2015-06-10 10:55:31 +02:00
rku
87b6220897 Removed magics: mAbsI64 2015-06-10 10:25:36 +03:00
rku
3984fecae6 Removed magics: mBitnotI64 2015-06-10 10:25:36 +03:00
rku
47114342c4 Removed magics: mEqI64 mLtI64 mLeI64 2015-06-10 10:25:36 +03:00
rku
658dcd2a58 Removed magics: mShrI64, mShlI64, mBitandI64, mBitorI64, mBitxorI64
Author:    rku <rokups@zoho.com>
2015-06-10 10:25:36 +03:00
rku
372a5d3cbb Removed magics: mAddI64, mSubI64, mMulI64, mDivI64, mModI64
Author:    rku <rokups@zoho.com>
2015-06-10 10:25:35 +03:00
apense
867b38496b Moved negative indexing operator here
Only used here (not in standard library)
2015-06-09 16:24:13 -04:00
Adam Strzelecki
3d266433a7 securehash: Keep module name consistent
1. All other modules don't use underscore, why this should be different?

2. Wrap some imports to 80 column
2015-06-09 22:20:05 +02:00
Andreas Rumpf
25a1987517 Merge pull request #2780 from flaviut/cleanup-crc
Use SHA1 instead of CRC
2015-06-09 15:10:21 +02:00
Araq
a730a974ed fixes #2854 2015-06-06 11:59:35 +02:00
Andreas Rumpf
f8326ad4c0 Merge pull request #2859 from nanoant/patch/norewrite-pragma
{.noRewrite.} pragma for term rewriting
2015-06-05 12:53:15 +02:00
pdw
9764ba933b Dropped 'T' from types 2015-06-04 13:15:07 +02:00
Adam Strzelecki
13b57dbc2f Introduce {.noRewrite.} expr pragma disabling TR
Term rewriting macros/templates are currently greedy and they will rewrite as
long as there is a match. So there was no way to ensure some rewrite happens
only once, eg. when rewriting term to same term plus extra content.

With new macro we can actually prevent further rewriting on marked expr or
stmts, eg. with given example echo(...) will be rewritten just once:

  template pwnEcho{echo(x)}(x: expr) =
    {.noRewrite.}: echo("pwned!")

  echo "ab"
2015-06-02 21:38:53 +02:00
yglukhov
1156e8ef9d Minor cosmetic changes. 2015-05-26 11:32:07 +03:00
Flaviu Tamas
4873db4c72 Rename crc module to "secure_hash" 2015-05-23 13:17:19 -04:00
Araq
4be0d16520 added '..^' and '..<' operators; 'nil' is allowed for 'len'; added plugin system to the compiler 2015-04-22 12:04:11 +02:00
Araq
aacaa8f171 cleaned up some magics to make room for new magics; added '..<' and '..^' templates 2015-04-22 12:04:09 +02:00
Araq
e55f5d1fd4 fixes #2505, fixes #1853, fixes #2522 2015-04-20 21:25:49 +02:00
Araq
2b4e233510 Merge branch 'devel' of https://github.com/Araq/Nim into devel 2015-04-20 11:44:54 +02:00
Araq
751232dc7c implements .goto support for variables 2015-04-19 02:42:40 +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
Araq
a1b937ab33 fixes #1691 2015-04-11 10:01:11 +02:00
def
39049e151f Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
Araq
78f371c03a first implementation of overloading of '='; missing: rewriting let/var sections 2015-04-06 23:21:51 +02:00
Araq
a83286192f GC-safety error messages are useful now 2015-04-04 01:19:32 +02:00
Araq
f767e1749e don't store the scope for routines 2015-04-04 01:19:31 +02:00
Araq
ed0d9e271d disallow negative indexing 2015-03-27 01:30:06 +01:00
Araq
5d63ecb3a4 implemented a[^1] notation 2015-03-26 02:12:38 +01:00
Araq
08c0ba379a fixes #1805 2015-03-21 20:38:28 +01:00
Araq
5641be51c1 codegen doesn't produce line tracing commands anymore; fixes #1344 2015-03-21 20:38:27 +01:00
Araq
910ef7b2d1 'constructor' pragma for C++ support 2015-03-18 11:42:37 +01:00
Araq
bc264618f5 fixes #2257 2015-03-16 23:02:20 +01:00