Commit graph

270 commits

Author SHA1 Message Date
Araq
7a66616d74 fixes #9889, fixes #9886 2018-12-08 23:48:20 +01:00
Andreas Rumpf
c74226f4c1
enables .raises: [] via a .push (#9834) [backport] 2018-12-01 16:12:46 +01:00
Andreas Rumpf
413580bc04 new minor language feature: .noSideEffect blocks like .gcsafe blocks 2018-11-27 00:36:29 +01:00
Andreas Rumpf
93cf0ef52e don't crash where there is an unknown statement pragma [backport] 2018-11-27 00:36:29 +01:00
Arne Döring
1e08fff2d5 bitsize respected in size calculation. (#9756) 2018-11-19 13:48:40 +01:00
Araq
e71410d74e language cleanup: the .unchecked pragma is dead 2018-11-06 13:55:03 +01:00
Andreas Rumpf
0c3e6735ac fixes #9358 2018-10-26 01:25:06 +02:00
Timothee Cour
745f1642d6 implement sizeof and alignof operator (manually squashed #5664) (#9356) 2018-10-14 00:52:28 +02:00
LemonBoy
33458894da Fix overload resolution for pragmas evaluation (#8902)
Fixes #6448
Fixes #4384
2018-10-09 19:58:23 +02:00
Araq
82693514c5 attempt to fix the .line pragma 2018-10-03 01:25:47 +02:00
Araq
f98352a498 compiler: fixes path generation for .line pragma 2018-10-02 16:18:16 +02:00
Araq
40e01d8549 don't require an implementation for procs marked with .error; activate the move optimizer for destructors 2018-09-29 16:54:59 +02:00
Araq
548fc778c9 .error for routines now can also have a custom error message; improve error message for 'nil' strings 2018-09-25 00:28:39 +02:00
Jörg Wollenschläger
c29d9f0382 Allow custom pragmas on more symbols again 2018-09-22 03:32:04 +09:00
Andreas Rumpf
5fa4fa185b
Merge pull request #8875 from awr1/experimentalize-reorder
Experimentalize reorder (Changes {.reorder: on.} to {.experimental: "codeReordering".})
2018-09-15 00:36:57 +02:00
Araq
ed5d2b5505 make tcompilerapi green, don't assue projectPath exists 2018-09-14 19:30:02 +02:00
Araq
313282d805 better file handling for .line directives 2018-09-14 15:55:29 +02:00
Andreas Rumpf
86556ebfdb compiler refactoring; use typesafe path handing; docgen: render symbols between modules 2018-09-07 19:21:16 +02:00
awr
e3d7056902 fixed stmtPragmas stuff 2018-09-07 11:28:01 -05:00
LemonBoy
e81fe6d32f Allow wCodegenDecl on lambdas (#8892) 2018-09-07 01:58:49 +02:00
awr
2b8c4096a4 brought back pragmaNoForward, deprecated 2018-09-05 09:03:44 -05:00
awr
c2b09a499c Fix merge 2018-09-04 16:46:43 -05:00
awr
cd3d4faa79 Deny THIS experimental pragma specifically for non-toplevel 2018-09-04 16:42:37 -05:00
awr1
eb668003bf
Merge branch 'devel' into experimentalize-reorder 2018-09-04 16:33:52 -05:00
awr
e6a4213fae transformed {.reorder: on.} into {.experimental: codeReordering.}, added tests 2018-09-04 15:31:38 -05:00
Araq
c0c8828d9f allow .experimental in a .push/pop environment; refs #8676 2018-08-27 11:20:30 +02:00
LemonBoy
6f13184e40 More checks for custom pragmas placement (#8765)
We're not interested in custom pragmas attached to certain node kinds so
the compiler silently ignored them.
2018-08-25 07:56:05 +02:00
LemonBoy
b1c2416abd Validate pragmas attached to for variables (#8749)
Fixes #8741
2018-08-24 09:40:17 +02:00
LemonBoy
cf20c4460c More robust handling of deprecated pragmas (#8696)
Prevent `deprecated` annotations to "slip" up to the parent module and
warn about unsupported annotations.

Accidentally fixes #7867
2018-08-21 15:07:44 +02:00
Araq
b4e5c9d075 deprecate the .this pragma 2018-08-09 20:31:40 +02:00
Jörg Wollenschläger
7e89f9a09a Don't remove extension of source files twice, if filenames contain dots 2018-06-26 20:08:40 +09:00
Yuriy Glukhov
466af35d4d Fixed stacktrace/linetrace proc pragmas when appended by macro pragma 2018-06-14 15:48:51 +03:00
Yuriy Glukhov
7e7b85afc7 Allow stacktrace and linetrace pragmas on procs 2018-06-12 12:31:14 +03:00
Andreas Rumpf
8db27d30e6 record cppdefine for incremental compilation 2018-06-10 18:05:43 +02:00
Andreas Rumpf
2662d713f7 implement passL and passC for the compilation cache 2018-06-10 17:06:02 +02:00
Araq
8e9551b1c7 fixex merge conflicts 2018-06-08 19:50:36 +02:00
Yuriy Glukhov
29a01da90f Fixes #7982 2018-06-07 17:17:07 +03:00
Andreas Rumpf
826c1e2d78 incremental compilation: implemented basic replay logic 2018-06-02 09:41:27 +02:00
Andreas Rumpf
61fb83ecbb baby steps for incremental compilation 2018-05-30 23:50:34 +02:00
Andreas Rumpf
40ec7be45c refactoring: remove idents.legacy global variable and pass the IdentCache around explicitly 2018-05-27 22:09:15 +02:00
Andreas Rumpf
669a564492 remove more global variables in the Nim compiler 2018-05-27 11:10:56 +02:00
Andreas Rumpf
bf6c2c5ccf preparations of making compiler/msgs.nim free of global variables 2018-05-17 15:21:22 +02:00
Araq
635451591d extccomp: no globals anymore 2018-05-16 02:01:55 +02:00
Araq
5526252fa0 fixes testament compilation 2018-05-14 17:45:44 +02:00
Andreas Rumpf
328e7a1005 options.nim: no global variables anymore 2018-05-13 17:52:21 +02:00
Andreas Rumpf
bb8c47b496 pragmas compiles again 2018-05-11 18:53:18 +02:00
Zahary Karadjov
ae5c946a32 Support thread-local variables declared inside procs; fixes #7565 2018-05-07 09:37:49 +02:00
Andreas Rumpf
ee366f1746 .experimental can now be used to enable specific features 2018-04-24 09:34:29 +02:00
Jacek Sieka
72dfe176f5 remove dead code elimination option (#7669) 2018-04-23 11:02:38 +02:00
Andreas Rumpf
33b69f0ed0 refactoring: make FileIndex a distinct type; make line information an uint16; fixes #7654 2018-04-21 08:13:37 +02:00