Andreas Rumpf
7ec187a8e1
make the VM aware of tyOwned
2019-02-23 11:31:31 +01:00
Timothee Cour
adbabf145c
FFI at CT ( #10150 )
...
* enable FFI at CT
* rename useFFI=>nimHasLibFFI; improve formatting rawExecute traceCode
* disable libffi on windows (works for win32, not yet win64)
2019-02-23 11:31:01 +01:00
LemonBoy
710cfcecd3
Rework exception handling in the VM ( #10544 )
...
* Rework exception handling in the VM
Make the safepoint handling more precise and less forgiving.
The new code is clearer and more commented.
Perform cleanup on `return`.
The no-exception-thrown case in a try block should be slightly faster
since we don't parse the whole set of exceptions every time.
More tests.
* Fix silly error that broke a few tests
* Testament doesn't like files having the same name
* Remove test case that failed compilation to js
2019-02-08 11:57:47 +01:00
Arne Döring
824f39b32e
Vm bitops fixes ( #10520 )
2019-02-05 09:31:37 +01:00
Arne Döring
b80dbdb77d
Fix vm signed xor ( #10519 )
...
* fix #10482
* undo changes
* fix for bitwise not
* remove dead opcode
2019-02-01 12:12:10 +01:00
cooldome
1d5437e9d2
vm fix for bitwise signed ints ( #10507 )
...
* fixes #10482
* add missing file
* bug fix
2019-01-31 19:48:39 +01:00
Arne Döring
6555d89c2c
free some registers after usage, allows more complex macros ( #10443 )
2019-01-24 11:33:44 +01:00
Oscar Nihlgård
a4cdd25b19
Support system.reset in vm ( #10400 )
2019-01-21 17:00:33 +01:00
Timothee Cour
beed27b75d
improve vmgen.codeListing formatting ( #10306 )
...
* improve vmgen.codeListing formatting
* address comments
2019-01-15 19:02:01 +01:00
Araq
23448a96cc
fixes #10058 [backport]
2018-12-21 11:50:24 +01:00
Andreas Rumpf
413580bc04
new minor language feature: .noSideEffect blocks like .gcsafe blocks
2018-11-27 00:36:29 +01:00
Andreas Rumpf
eb919c35b2
fixes #9675
2018-11-26 10:41:26 +01:00
cooldome
086676782a
Add isInstanceOf for generic procs to the macros module ( #9730 )
2018-11-21 21:30:03 +01:00
cooldome
8c1083d3b7
Of operator in vm fixes [backport] ( #9717 )
...
* fixes #9701
* fixes #9702
* optimize of statement to bool
2018-11-15 13:03:42 +01:00
Andreas Rumpf
1c73db08b8
nim check fix; fixes #9609 [backport]
2018-11-07 20:07:43 +01:00
Andreas Rumpf
24902394f7
VM: don't inject destructor calls, refs #7041
2018-11-06 19:36:39 +01:00
Arne Döring
07f76c3ef9
fix compiler crash
2018-10-30 13:50:06 +01:00
Andrii Riabushenko
a54e0703a9
Add test
2018-10-24 20:29:51 +01:00
Andrii Riabushenko
bd68d3d8f4
improve style
2018-10-24 11:26:32 +01:00
Andrii Riabushenko
a7c9533a73
Add int float casts to vm
2018-10-24 11:24:23 +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
Timothee Cour
745f1642d6
implement sizeof and alignof operator (manually squashed #5664 ) ( #9356 )
2018-10-14 00:52:28 +02:00
LemonBoy
ee14ace5d3
Field checks for everybody ( #8957 )
...
* Field checks for JS backend
* Clean nkCall nodes with no arguments
Generating a nkEmpty in place of no arguments makes no sense form the
AST point of view and also trips up the VM codegen.
* Field checks for VM backend
* Test case for #6612
This patchset fixes #6612
* Add test case for LHS double evaluation
* Prevent LHS double-eval for JS backend
* Prevent double evaluation in VM backend
2018-10-09 19:54:12 +02:00
LemonBoy
fb54f394e8
Fix for VM codegen with static[T] types
...
Fixes #9043
2018-09-23 18:17:00 +02:00
LemonBoy
c2e5faf959
The VM cannot call methods
...
Fixes #2574
2018-09-17 19:14:13 +02:00
cooldome
e63c66b810
Add sym owner to macros ( #8253 )
2018-09-03 13:25:59 +02:00
Araq
7278f28740
fixes the remaining fixable Nimrod->Nim renamings; closes #2032
2018-09-03 09:34:31 +02:00
LemonBoy
5cd152bfda
Allow hint and warning to specify its loc info ( #8771 )
...
Let's bring those to feature-parity with `error`.
2018-08-28 22:59:28 +02:00
andri lim
4d5cce9882
fixes #6255 , add system.ashr arithmetic right shift ( #8547 )
2018-08-07 18:41:30 +02:00
andri lim
6e3d1dced5
fixes #5617 , 'copyLineInfo' addition ( #8523 )
2018-08-05 23:38:21 +02:00
andri lim
78c0ac5407
fixes #7827 , bindSym enhancement ( #8499 )
...
* bindSym power up, working prototype
* update bindSym doc
* add bindSym test
* fix some typo
* fix bindSym doc
* get rid of specialops field from vm
* add experimental: dynamicBindSym
2018-08-02 12:56:44 +02:00
Oscar Nihlgård
931273cc6b
Fix ref bug in vmgen ( #8424 )
2018-07-30 22:28:24 +02:00
Yuriy Glukhov
dd06c46865
Fixed uncaught exception in vm gen
2018-06-13 15:39:45 +03:00
Andreas Rumpf
f555338ce8
bugfix: allow 'export' in the VM
2018-06-12 21:08:41 +02:00
Araq
8e9551b1c7
fixex merge conflicts
2018-06-08 19:50:36 +02:00
Oscar Nihlgård
440212a154
Fix for newStringOfCap in VM ( #7901 )
2018-06-04 13:38:26 +02:00
Andreas Rumpf
268260953c
completed VM support for incremental compilations
2018-06-04 01:01:08 +02:00
Andreas Rumpf
b5194f592c
WIP: an API for VM replay global state support
2018-06-03 20:18:43 +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
a4e2b0c153
platform.nim doesn't use globals anymore; prepare msgs.nim for not using globals
2018-05-18 15:18:00 +02:00
Andreas Rumpf
bf6c2c5ccf
preparations of making compiler/msgs.nim free of global variables
2018-05-17 15:21:22 +02:00
Araq
2a7fc84c86
remove ast.emptyNode global; cleanup configuration.nim
2018-05-16 03:06:07 +02:00
Andreas Rumpf
fedc136985
transf and vmgen compile again
2018-05-12 09:38:41 +02:00
alaviss
97056fbb9b
fixes #7774 ( #7783 )
2018-05-06 10:34:22 +02:00
Andreas Rumpf
1aa359febb
warn about inconsistent spacing around binary operators; fixes #7582
2018-05-05 14:58:33 +02:00
Andreas Rumpf
f64f9e50cc
correct comparisons for nil strings/seqs
2018-04-28 15:13:44 +02:00
Andreas Rumpf
47335aab41
introduce nkTupleConstr AST node for unary tuple construction; breaking change
2018-04-13 17:45:58 +02:00
Jacek Sieka
85e21158db
Cleanups 20180401 ( #7458 )
2018-04-12 17:35:10 +02:00