Commit Graph

159 Commits

Author SHA1 Message Date
Andreas Rumpf
d8746398c4 allow macros to produce nnkGotoState and nkState 2017-10-09 21:12:40 +02:00
Andreas Rumpf
1a61c4d46d first implementation of the 'func' keyword 2017-09-23 23:22:53 +02:00
Andreas Rumpf
405b9c8a85 refactoring: TLoc knows the node it originated from; it is planned to use this to produce better C code (move optimizations) 2017-09-21 14:38:45 +02:00
Andreas Rumpf
a04c7d8b38 introduce OnHeapNew and rename TLoc.s to TLoc.storage 2017-09-21 11:38:04 +02:00
Andreas Rumpf
ad608838bf closures have an object type field so that we can perform correct deepCopy() for the BoehmGC target 2017-07-22 11:10:52 +02:00
Jacek Sieka
ba4cc4bf35 a few tiny cleanups (#5712)
exposes emitLazily (for nlvm) and simplifies some conditionals
2017-05-29 09:42:26 +02:00
Ruslan Mustakov
29507d2491 Consider optNoCppExceptions in blockLeaveActions (#5801) 2017-05-11 22:30:48 +02:00
Araq
46b672a6c4 minor codegen bugfix: don't use names for closures that are also mangled Nim names 2017-02-26 17:41:00 +01:00
Andreas Rumpf
2d546ca0ac fixes #5417 2017-02-24 00:32:14 +01:00
Arne Döring
92c2a51bf7 removed compiler internal list implementation (#5371) 2017-02-22 17:33:12 +01:00
Araq
804b0ff99c fixes #5400 2017-02-16 22:50:21 +01:00
Andreas Rumpf
848676cec6 name mangling bugfixes; ndi file generation for debugger support 2017-02-03 09:49:36 +01:00
Andreas Rumpf
fab69661ad new name mangling rules for easier debugging 2017-02-02 16:27:48 +01:00
Andreas Rumpf
d651012688 template+emit supports volatileRead and volatileWrite ops 2017-01-23 11:22:19 +01:00
Araq
24239c2361 Merge branch 'devel' into sighashes 2016-12-17 23:04:34 +01:00
Andreas Rumpf
b013430929 reworked emit pragma; fixes #4730 2016-12-17 14:20:57 +01:00
Araq
ba38b83dd5 refactoring: C codegen with fewer global variables 2016-12-05 12:14:24 +01:00
Araq
1c20046f28 sighashes: make more tests green 2016-11-29 10:37:32 +01:00
Araq
3b43cff0f8 C codegen: first version of signature hashing for better incremental builds 2016-11-08 08:37:11 +01:00
Andreas Rumpf
08a6f3fc67 fixes #4721 2016-09-07 08:29:45 +02:00
Andreas Rumpf
dfa0699e73 C++ backend: use .noInit pragma for non-public default constructors; refs #4687 2016-09-04 22:36:29 +02:00
Andreas Rumpf
10f445da89 Merge pull request #4592 from arnetheduck/compiler-cleanup
Compiler cleanup
2016-08-25 16:50:54 +02:00
andri lim
21120a3e6c fixed #4459 -- VS2010 error C2275 2016-08-13 20:26:25 +07:00
Jacek Sieka
3cd4cf4320 remove unused stuff 2016-08-09 22:54:27 +08:00
Jacek Sieka
7d62f031f6 remove sfFakeConst 2016-07-30 16:19:53 +08:00
Andreas Rumpf
60b187513e stdlib and compiler don't use .immediate anymore 2016-07-29 23:51:01 +02:00
Andreas Rumpf
4b0ba5e3f1 C code generation now deterministic; fixes #4364 2016-06-22 02:50:50 +02:00
Ruslan Mustakov
a648d06ba8 Fixed rethrowing not to generate C++ throw with noCppExceptions switch 2016-06-14 13:05:28 +06:00
Andreas Rumpf
d8bce8b83d GC with primitive MS 2016-05-16 00:28:00 +02:00
Andreas Rumpf
1ae95310ad fixes #3992 2016-05-11 21:34:54 +02:00
Ruslan Mustakov
040d4864a4 Fixed try statement generation with --noCppExceptions switch 2016-02-29 21:09:19 +06:00
Andreas Rumpf
dfe01bbe69 fixes #603 2016-01-06 02:29:27 +01:00
Andreas Rumpf
c1627354d1 first implementation of the new lambda-lifting pass; barely anything works 2015-12-26 00:42:30 +01:00
Araq
6361f6b76d --gc:v2 requires global root tracking 2015-12-01 00:53:30 +01:00
Yuriy Glukhov
c42b05adb4 Fixed --debugger:on option. Removed c_line from termios. 2015-08-12 12:04:26 +03:00
Araq
862ee8d1d3 fixes #2963 2015-07-22 01:21:42 +02:00
Araq
ace9299a32 added /*INCLUDESECTION*/ section for .emit pragma 2015-06-29 02:48:30 +02:00
Araq
c6398d408d fixes #1888 2015-04-27 23:11:59 +02:00
Araq
ecc0090939 fixes #2551; fixes #2212; breaks bootstrapping in debug mode; bootstrap with -d:release 2015-04-25 23:16:57 +02:00
Araq
c1730e1ead fixes #2335 2015-04-24 12:35:13 +02:00
Araq
751232dc7c implements .goto support for variables 2015-04-19 02:42:40 +02: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
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
1fc590b6ea don't generate memset calls for C++ objects 2015-03-18 11:42:36 +01:00
Araq
f4a0400de2 fixes #2199, fixes #2197 2015-02-24 19:19:08 +01:00
Araq
df2fdaf3c5 fixes #2121 2015-02-14 14:45:49 +01:00
Araq
ecd0dea091 tables work in 'const' sections; echo supports 'nil' strings; minor cleanups 2015-02-09 00:08:55 +01:00
Araq
e84834db79 lots of C++ codegen improvements 2015-02-07 10:48:07 +01:00