Andreas Rumpf
85ffcd80c0
more arc improvements ( #12690 )
...
* ARC: bugfix for =destroy for inherited objects
* added code useful for debugging
2019-11-20 14:34:05 +01:00
Andreas Rumpf
5278cf80eb
ARC: closure bugfixes ( #12677 )
...
* ARC: closure bugfixes
* progress
* ARC closures: create =hooks for captured parameters
* ARC: always destroy constructions like tuples, arrays properly, even in edge cases
* fixes a regression
2019-11-18 12:33:44 +01:00
Andreas Rumpf
a14abc5708
ARC: solves phase ordering problems ( #12654 )
2019-11-14 23:19:18 +01:00
narimiran
cc3e9ca164
remove unused imports
2019-11-06 12:01:00 +01:00
Andreas Rumpf
72acf5de94
fixes #12281 [backport]
2019-09-30 20:42:16 +02:00
Federico Ceratto
39290cf88c
Fix spellings ( #12277 ) [backport]
2019-09-27 07:02:54 +02:00
Andreas Rumpf
62aa1a3cfe
gc:destructors progress
2019-09-16 23:54:31 +02:00
Clyybber
ed1d41c51e
Small ast.nim cleanup ( #12156 )
...
* Remove sonsLen
* Use Indexable
2019-09-09 11:54:15 +02:00
Araq
289b5e9ef9
fixes #11254
2019-08-12 13:58:35 +02:00
Andrii Riabushenko
4c73139316
revert changes
2019-07-25 23:18:20 +01:00
Andrii Riabushenko
d7bc4e43a2
fixes #11826
2019-07-25 23:02:04 +01:00
Araq
07d465ca42
[refactoring] remove unused imports in the compiler and in some stdlib modules
2019-07-18 00:36:03 +02:00
Araq
c94647aeca
styleCheck: make the compiler and large parts of the stdlib compatible with --styleCheck:error
2019-07-10 12:42:41 +02:00
Araq
c352892232
fixes #11628
2019-07-01 12:34:19 +02:00
Araq
b056d32a79
[refactoring] liftdestructors.nim is callable from lambdalifting; refs #11217
2019-06-12 10:44:45 +02:00
Araq
c07973e313
[refactoring] liftdestructors is now a module of its own
2019-06-12 08:45:47 +02:00
Araq
7fb256bded
fixes #8053
2019-05-15 12:25:31 +02:00
Clyybber
cc28eef38e
Replace countup(x, y) with x .. y
2019-05-07 12:37:28 +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
Jasper Jenkins
e64dde734b
Fixes #11078 ( #11079 )
...
* Fixes #11078
* Move to existing runnableExamples, update the expected html.
* Remove second comment token.
2019-04-23 14:20:27 +02:00
Araq
fb3681b425
make the CIs happy
2019-04-17 21:35:50 +02:00
Araq
7640a230fc
fixes #11050
2019-04-17 17:26:59 +02:00
Araq
6617b8deee
make tests green again
2019-04-10 08:41:38 +02:00
Araq
72408842d9
koch.nim compiles with --newruntime
2019-04-09 21:25:36 +02:00
Andreas Rumpf
f08e90f0d6
more efficient enumToStr implementation that works without the old typeinfo structures
2019-04-07 21:14:54 +02:00
Andreas Rumpf
efeee326f8
destructors: progress
2019-04-05 12:38:30 +02:00
cooldome
795de374fb
fixes destructor tuple regression #10940 ( #10941 )
...
* fixes #10940
* bug fixes
* fix spacing
2019-04-04 20:46:02 +01:00
Araq
c3067e36bb
newruntime: progress
2019-04-01 16:51:18 +02:00
Araq
3cf846e02c
fixes #10904
2019-03-26 16:12:47 +01: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
cooldome
8ceba8a7f3
fixes #10807 ( #10814 )
...
* fixes #10807
* use nkAddr instead of nkHiddenAddr
2019-03-12 13:45:05 +01:00
Andreas Rumpf
e3e4cd9fd5
make tests green again
2019-03-06 09:26:48 +01:00
Andreas Rumpf
c86b1fbcac
fixes a critical GC safety inference bug ( #10615 )
...
* fixes a critical GC safety inference bug
* make nimsuggest compile again
* make Nimble compile again
2019-03-05 19:54:44 +01:00
Andreas Rumpf
f55d094cf2
fixes #6955
2019-02-13 23:30:14 +01:00
LemonBoy
f23b0a7dc8
Fix handling of reraise in effect tracking ( #10582 )
...
This is the MVP in order not to get a completely useless error message
from the compiler.
Fixes #10579
2019-02-07 17:07:03 +01:00
LemonBoy
4c3f841212
Do not raise ProveInit/WanrUninit for .noinit. var ( #10566 )
2019-02-06 09:14:09 +01:00
LemonBoy
3ce6b2acb9
Fix exception tracking in try blocks ( #10455 )
...
Exceptions raised inside a nkFinally/nkExcept block are not caught by
the block itself.
Fixes #3886
2019-01-27 10:32:44 +01:00
Andreas Rumpf
11022fea1b
control flow graphs: introduce 'join' points for easy analyses based on abstract interpretation
2019-01-23 11:08:51 +01:00
Andreas Rumpf
413580bc04
new minor language feature: .noSideEffect blocks like .gcsafe blocks
2018-11-27 00:36:29 +01:00
Andreas Rumpf
cb4d810659
make Nim take roughly 100MB less RAM for bootstrapping via a new compiler switch -d:leanCompiler; useful for the Raberry PI
2018-11-07 18:36:52 +01:00
cooldome
eaca5be9d6
Change the order of compilation passes, transformation is made lazy at code gen ( #8489 )
...
* Ast no transformation
* Add getImplNoTransform to the macros module
* progress on delaying transf
* Fix methods tranformation
* Fix lazy lambdalifting
* fix create thread wrapper
* transform for lambda lifting
* improve getImplTransformed
* Fix destructor tests
* try to fix nimprof for linux
2018-10-18 20:21:25 +02:00
Araq
64517445ea
even more strict isNil handling for strings/seqs in order to detect bugs
2018-08-22 12:35:46 +02:00
LemonBoy
ebf4e9f717
Extend init variable tracking to tuple assignments ( #8321 )
...
Fixes #8314
2018-07-17 17:50:05 +02:00
cooldome
dec97924a4
Custom pragmas in proc types ( #8205 )
2018-07-09 12:11:03 +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
Araq
2a7fc84c86
remove ast.emptyNode global; cleanup configuration.nim
2018-05-16 03:06:07 +02:00
Araq
02b78d3f94
make tests green again
2018-05-14 21:38:18 +02:00
Andreas Rumpf
328e7a1005
options.nim: no global variables anymore
2018-05-13 17:52:21 +02:00