Commit Graph

255 Commits

Author SHA1 Message Date
Andreas Rumpf
740c07ead4 fixes a codegen bug: in 'result = f(result)' the default initialization for 'result' IS required 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
Zahary Karadjov
c446806f75 improve the debugging experience when line directives are used 2017-09-04 18:17:22 +03:00
Andreas Rumpf
920f4acadf fixes #6279 2017-08-29 00:33:46 +02:00
Araq
9cbb4c3f85 fixes #5989 2017-07-17 08:24:34 +02:00
Markus F.X.J. Oberhumer
963679389c cgen: #undef some more predefined symbols. (#5831)
This is a followup to issue #5171.
2017-06-13 10:12:23 +02:00
zah
39aef12446 review and merge zahary's work (#5849)
* proper indentation for the generated JS code
* improved dead-code elimination for JavaScript
* test the JS dead-code elimination

A new test spec has been added - "maxcodesize". It specifies the
maximum size of the generated code in bytes.
2017-06-03 12:45:10 +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
Markus F.X.J. Oberhumer
8d3f477fad Create correct C protoypes in genMainProc. (#5822)
This avoids a -Wstrict-prototypes warning in the generated C file.
2017-05-16 21:04:12 +02:00
Andreas Rumpf
7b1568d19c make -d:nimdiff feature more robust 2017-04-26 10:27:42 +02:00
Emery Hemingway
7e351fc7fa support for the Genode OS framework (#5560) 2017-03-31 23:13:06 +02:00
Araq
93f0f1c6e4 fixes #5598 2017-03-23 16:43:21 +01: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
Araq
fb37d13f46 fixes #5439 2017-02-26 17:41:00 +01:00
Andreas Rumpf
46f33515d7 Merge branch 'devel' into faster-nimsuggest 2017-02-24 01:28:50 +01:00
Arne Döring
92c2a51bf7 removed compiler internal list implementation (#5371) 2017-02-22 17:33:12 +01:00
Andreas Rumpf
46efaf294b big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
Araq
57874ed9b8 C++ codegen: emit 'extern C' for importc'ed functions that we declare a prototype for 2017-02-14 14:39:53 +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
56aa1ac5bc new name mangling scheme implemented 2017-02-02 10:30:01 +01:00
Andreas Rumpf
f04d21f279 refactoring: explict config state instead of globals 2017-02-01 23:39:40 +01:00
Araq
03a1c3b077 .compile pragma supports patterns and actions 2017-01-28 08:54:53 +01:00
Araq
9c47bb9cc0 happy new year 2017-01-07 22:35:09 +01:00
Araq
5c08ca7ed2 make Nim compiler compile with 0.15.2 2017-01-07 02:43:31 +01:00
Araq
9c0319d211 fixes #5171 2017-01-03 17:06:31 +01:00
Andreas Rumpf
22ce05ef16 fixes recently introduced regression 2016-12-21 12:15:47 +01:00
Andreas Rumpf
d2fe857f94 fixes #5136 2016-12-21 11:38:33 +01:00
Araq
237252f90c Merge branch 'devel' into sighashes 2016-12-19 11:35:45 +01:00
Araq
91935fd915 fixes #4308, fixes #4905 2016-12-18 20:21:50 +01:00
Araq
bf1f1eab1f revert line info generation change; produces worse results for other cases 2016-12-18 01:58:16 +01:00
Araq
31bc063f2d significantly better stack traces when templates are involved 2016-12-18 00:08:11 +01:00
Araq
71a23fbbb7 sighashes: do not use the ID mechanism at all 2016-12-13 09:22:20 +01:00
Andreas Rumpf
0d6f4f1bb1 implements -d:nimdiff switch for seeing generated C code diffs 2016-12-06 10:05:22 +01:00
Araq
ba38b83dd5 refactoring: C codegen with fewer global variables 2016-12-05 12:14:24 +01:00
Araq
42ae2064dd more tests work 2016-12-02 11:44:28 +01:00
Araq
2eee15d7f3 Merge branch 'devel' into sighashes 2016-12-01 10:06:41 +01:00
Yuriy Glukhov
a80a0972b7 Fixed dynlink with OpenSSL >1.1.0. Added loadLibPattern. 2016-11-30 17:16:54 +02:00
Andreas Rumpf
e7cdb1d694 attempt to fix things 2016-11-23 14:24:45 +01:00
Araq
0e1304a3e2 the compiler uses tyAlias internally; tester compiles again 2016-11-16 00:13:45 +01:00
Araq
e6c5622aa7 removed tyArrayConstr completely from the compiler; introduced tyAlias instead in preparation for further bugfixes 2016-11-14 23:18:30 +01:00
Araq
860cbd3107 signature hashing: more progress 2016-11-11 08:58:42 +01:00
Araq
3b43cff0f8 C codegen: first version of signature hashing for better incremental builds 2016-11-08 08:37:11 +01:00
Araq
9e6fb3f696 new dependency tracking for nimsuggest 2016-11-05 01:19:23 +01:00
Araq
29db0d8585 refactoring complete: explicit ident cache 2016-10-31 19:47:20 +01:00
cheatfate
29d31edc0b Generate NimMainModule name for main module. 2016-10-26 14:00:30 +03:00
andri lim
c0470edc4c fixes #4840 2016-10-03 19:14:27 +07:00
Andreas Rumpf
259daf98cf fixes thread vars of non-global visibility 2016-09-12 23:04:19 +02:00