Andreas Rumpf
55aa2129b5
make twidgets example green ( #11135 )
2019-04-28 13:28:18 +02:00
Andreas Rumpf
eb9043c0e9
fixes #11095 ( #11104 )
...
* fixes #11095
2019-04-25 07:59:34 +02:00
Andreas Rumpf
bc7d1de7fd
added a note about what to not do
2019-04-19 18:02:43 +02:00
Andreas Rumpf
a394d31746
move analyser is smarter; refs #11053
2019-04-19 18:02:43 +02:00
Araq
850e90ac30
DFA: We are not allowed to take ownership of parameters
2019-04-17 17:18:47 +02:00
Araq
ce024a73bf
make move-analysis smarter; see tuse_ownedref_after_move test case
2019-04-16 10:35:43 +02:00
Araq
045e026d0e
dfa.nim: track object/tuple field accesses more precisely; sink(o.x); sink(o.y) needs to compile; activate the tuple unpacking transf.nim bugfix
2019-04-16 10:35:43 +02:00
Araq
9565b844dd
compute sinks/assignments properly for for-loop iteration variables
2019-04-08 13:53:15 +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
Andreas Rumpf
f8bf24623c
explicit default values for a leaner codegen, .cursor variables for optimization
2019-03-07 12:50:33 +01:00
Andreas Rumpf
cfd5210405
dfa.nim: continues are bad
2019-03-06 09:00:06 +01:00
Andreas Rumpf
4be36d77f6
introduce tfHasOwned for fast must-move checkings; removed tfAcyclic as the GC has ignored this hint for quite some time now
2019-03-05 19:58:54 +01:00
Andreas Rumpf
9c6b628df6
DFA: fixes wrong 'def' instruction emission
2019-03-05 05:54:08 +01:00
Andreas Rumpf
3e922d0fec
destructors/dfa: more documentation
2019-03-04 22:41:50 +01:00
cooldome
690f21043d
isLastRead regression fix ( #10463 )
...
* fixes #10462
* add a test
2019-01-28 08:32:14 +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
Timothee Cour
beed27b75d
improve vmgen.codeListing formatting ( #10306 )
...
* improve vmgen.codeListing formatting
* address comments
2019-01-15 19:02:01 +01:00
Andrii Riabushenko
dc935f2b41
use control flow graph for sink params
2018-12-09 18:32:43 +00:00
Araq
234bed1b38
destructors; fixes #9594
2018-11-02 11:29:31 +01:00
Andreas Rumpf
b39302b0d2
DFA: implement exception handling properly
2018-10-14 17:36:55 +02:00
Andreas Rumpf
33cdae8c32
dfa.nim: clarify exception handling
2018-10-13 08:28:56 +02:00
Andreas Rumpf
2fecf4f36a
compiler: cleanup dfa.nim
2018-10-12 19:56:51 +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
Andreas Rumpf
669a564492
remove more global variables in the Nim compiler
2018-05-27 11:10:56 +02:00
Andreas Rumpf
feef109e60
make tests green again
2018-05-18 20:53:41 +02:00
Andreas Rumpf
bf6c2c5ccf
preparations of making compiler/msgs.nim free of global variables
2018-05-17 15:21:22 +02:00
Andreas Rumpf
fedc136985
transf and vmgen compile again
2018-05-12 09:38:41 +02:00
Andreas Rumpf
1310279691
lambda lifting compiles again
2018-05-12 08:30:55 +02:00
Andreas Rumpf
47335aab41
introduce nkTupleConstr AST node for unary tuple construction; breaking change
2018-04-13 17:45:58 +02:00
Andreas Rumpf
a74dfcfd00
DFA: code cleanups and some support for consuming operations
2017-12-27 12:22:47 +01:00
Andreas Rumpf
8e7829ff82
DFA attempt to capture the essence of linear types
2017-12-23 19:50:15 +01:00
Andreas Rumpf
c2d91771bc
DFA works for simple examples
2017-12-21 19:05:23 +01:00
Araq
2502f86d2f
next steps in giving Nim a decent DFA infrastructure
2017-12-18 13:12:10 +01:00
Gerke Max Preussner
d3f966922e
Fixed koch warning when installing Nim. ( #6898 )
2017-12-12 14:43:12 +01:00
Andreas Rumpf
70ea45cdba
deprecated unary '<'
2017-10-29 08:37:13 +01:00
Andreas Rumpf
ec253ada72
initial version of the new untested destructor pass
2017-10-12 11:32:29 +02:00
Andreas Rumpf
cf01cb1935
preparations for a new AST transformation pass with the aim of giving us reliable destructors
2017-10-09 21:12:40 +02:00
Andreas Rumpf
7eaa2474a2
disable the new DFA
2017-10-09 21:12:40 +02:00
Andreas Rumpf
b9511a2d7f
work in progress: a dataflow architecture for Nim
2017-10-09 21:12:40 +02:00