Andreas Rumpf
3f29911a94
new feature: --staticBoundChecks:on to enforce static array index checking ( #10965 )
2020-03-18 14:25:10 +01:00
Andreas Rumpf
0e7338d65c
better support for PROGMEM like annotations for lets/vars; fixes #12216 ( #12799 )
2019-12-05 13:45:16 +01:00
Clyybber
7e747d11c6
Cosmetic compiler cleanup ( #12718 )
...
* Cleanup compiler code base
* Unify add calls
* Unify len invocations
* Unify range operators
* Fix oversight
* Remove {.procvar.} pragma
* initCandidate -> newCandidate where reasonable
* Unify safeLen calls
2019-11-28 17:13:04 +01:00
Clyybber
ed1d41c51e
Small ast.nim cleanup ( #12156 )
...
* Remove sonsLen
* Use Indexable
2019-09-09 11:54:15 +02:00
Araq
07d465ca42
[refactoring] remove unused imports in the compiler and in some stdlib modules
2019-07-18 00:36:03 +02:00
LemonBoy
7d217a71d3
Render deprecated pragmas ( #8886 )
...
* Render deprecated pragmas
* fix the expected html
* clean up the documentation regarding deprecations
* fix typo
* fix system.nim
* fix random
2019-06-03 10:15:20 +02:00
Clyybber
f18b3af9d4
Replace countup(x, y-1) with x ..< y
2019-05-07 12:32:05 +02:00
Andreas Rumpf
e1515b53d1
introduce temporary <//> for 'owned' to get this compile with 0.19 ( #11145 )
...
* introduce temporary <//> for 'owned' to get this compile with 0.19
* make newTable[string, owned Node]() compile (but it crashes)
* make sink/owned parameters consistent
* make actiontable test compile again
* VM: support sytem.move; makes tests green
2019-05-02 08:07:09 +02:00
Andreas Rumpf
bf592c4e94
more destructor based changes ( #10885 )
...
* mark user defined destructors with sfOverriden to simplify the logic
* refactoring in preparation to merge liftings and generic instantiations for destructors
* ast: introduce nkHiddenTryStmt for destructor generation in order to be able to optimize better the code later on
* renamed 'patterns' switch to 'trmacros' as it was totally misleading before
* destructors: introduce tfCheckedForDestructor flag in preparation of strict =destroy checking
* test for invalid/too late destructor introductions
* liftdestructors: make code robust for nimsuggest
* --newruntime works for hello world again
* newruntime: code generation for closures
2019-03-23 00:12:05 +01:00
Jacek Sieka
db51eb3e32
allow uints to appear in deep constant expressions
2018-12-05 20:33:49 -06:00
Andreas Rumpf
47335aab41
introduce nkTupleConstr AST node for unary tuple construction; breaking change
2018-04-13 17:45:58 +02:00
Andreas Rumpf
212457f5e0
the .deprecated pragma for procs now supports a user-definable deprecation message
2018-02-02 12:53:38 +01:00
Andreas Rumpf
e4081a7201
preparations for language extensions: 'sink' and 'lent' types
2018-01-07 23:09:26 +01:00
Andreas Rumpf
70ea45cdba
deprecated unary '<'
2017-10-29 08:37:13 +01:00
Zahary Karadjov
cd02561368
introduce a pre-processing pass for the concept bodies
...
fixes #4982
fixes #3805
close #3414
2017-06-20 11:29:42 +02:00
Arne Döring
eb8e267ff6
improved comment satement support in macros ( #5904 )
2017-06-02 01:22:21 +02:00
Andreas Rumpf
962d03d671
isDeepConstExpr helper can handle nkRange
2017-05-01 09:31:29 +02:00
Araq
bdd9f971e7
update code from a time when unsigned didn't exist
2017-02-16 23:20:01 +01:00
Araq
9534a5d632
fixes #5391
2017-02-16 22:59:07 +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
773d17cd14
big refactoring: step 1
2016-10-31 15:34:44 +01:00
Matthew Baulch
defc7bbded
Cleanup and fix isConstExpr to return true for all atomic node types.
2016-08-27 21:09:05 +10:00
Matthew Baulch
c23a3e1f84
Remove unnecessary result initialisations.
2016-08-27 20:07:10 +10:00
Matthew Baulch
ef0d1561d4
Remove useless/misleading comment. flattenStmts not only for patterns.
2016-08-27 19:59:40 +10:00
Matthew Baulch
e1a5732838
Remove unused procs getProcSym, getOpSym.
2016-08-27 19:40:48 +10:00
Matthew Baulch
5e0a062a90
Remove (unused) flattenTree proc.
2016-08-27 19:38:23 +10:00
Matthew Baulch
701109e8c1
Remove (unused) swapOperands proc.
2016-08-27 19:05:26 +10:00
Matthew Baulch
8f86e0f86b
Rewrite cyclicTree. Performance improved by approx 50%.
2016-08-27 19:01:59 +10:00
Andreas Rumpf
baeec11808
fixes #4354
2016-08-04 23:34:58 +02:00
Araq
47dce26886
fixes #2985
2015-06-25 11:42:27 +02:00
Araq
7be092bba5
VM: minor fixes to make lexim work
2015-04-20 11:36:13 +02:00
Araq
7edf6fc1d2
fixes #1547
2014-11-27 08:36:58 +01:00
Araq
2781fea9e2
Nimrod renamed to Nim
2014-08-28 09:38:14 +02:00
Araq
b731e6ef1c
case consistency: cs:partial bootstraps on windows
2013-12-29 03:19:10 +01:00
Araq
2df9b442c6
case consistency part 1
2013-12-27 15:48:53 +01:00
Araq
23ef565a3c
implemented large parts of the 'not nil' checking
2013-06-09 23:29:43 +02:00
Grzegorz Adam Hankiewicz
72a3e21f28
Removes executable bit for text files.
2013-03-16 23:53:07 +01:00
Araq
225d657019
first steps to implement object construction expressions
2013-03-07 01:52:17 +01:00
Araq
af7c92c003
term rewriting macros fully implemented; still buggy
2012-09-03 00:55:44 +02:00
Araq
b5b5e6e76d
distinguish properly between nkOpen and nkClosedSymChoice
2012-08-26 02:47:17 +02:00
Araq
b0c11d3efb
made compiler more robust for idetools support
2012-07-30 17:43:22 +02:00
Araq
632aece191
further steps to closure support
2012-02-06 00:19:56 +01:00
Araq
78f4aacde9
pragma blocks; fixed line information issue with user defined assertions
2012-01-17 23:58:18 +01:00
Araq
4f1b89c30c
year 2012 for most copyright headers
2012-01-02 23:07:35 +01:00
Araq
351e89e705
better code generation for constant aggregates
2011-11-02 00:55:29 +01:00
Araq
569c1ce5ec
bugfix: proper cache for generic instantiations
2011-07-21 00:57:39 +02:00
Araq
170573a87f
bugfix: subranges in generics properly detected
2011-06-29 19:14:35 +02:00
Araq
8dda362fa6
slices are first class citizens
2011-04-22 10:53:43 +02:00
Araq
36c67455d4
got rid of some arcane module names
2011-04-21 00:54:44 +02:00
Araq
cd292568d7
big repo cleanup
2011-04-12 01:13:42 +02:00