Commit Graph

5338 Commits

Author SHA1 Message Date
Araq
665fcb12dd fixes #11073 2019-04-22 08:05:16 +02:00
Andreas Rumpf
fabc2a7086 revert discardable transformation (#10905)
* Revert "Properly wrap discarded statements (#10322)"

This reverts commit 15584879b9.

* add test for implicit discard after defer
* enable t10241 again
* make C++ tests green again
2019-04-21 09:57:53 +02:00
Andreas Rumpf
0121dda9ba remove the restriction that module names need to be unique per Nimble… (#11064)
* remove the restriction that module names need to be unique per Nimble package

* make tests green again

* use the 'response' linker file also on Unix in order to fix megatest
2019-04-20 15:19:02 +02:00
Andreas Rumpf
44ec66bd48 fixes #11053 2019-04-19 18:02:43 +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
Arne Döring
abb05ab645 fewer ropes (#11037) 2019-04-19 09:05:31 +02:00
Arne Döring
a55817f9ac Fix varargs int32 (#11054)
* fixes #10999
* adds a test for #10999
2019-04-18 20:53:57 +02:00
Arne Döring
ed6160ad6d callsite lineinfe for stackTrace template (#10785) 2019-04-18 14:02:10 +02:00
Araq
750f50b6c0 destructors: internal compiler refactoring 2019-04-18 00:53:02 +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
850e90ac30 DFA: We are not allowed to take ownership of parameters 2019-04-17 17:18:47 +02:00
Araq
5bdab044f5 fixes #11048 2019-04-17 13:22:22 +02:00
cooldome
7d8af25d58 revert parser stmtListExpr (#11007)
* Revert "Support for stmtListExpr in parser after major keywords. Scaled down version. (#10852)"

This reverts commit 862897dc0f.

* redo fix for #4035

* render stmtlistExpr using semicolon

* Revert "render stmtlistExpr using semicolon"

This reverts commit cafb78b8d5.

* revert test
2019-04-17 11:55:41 +02:00
Miran
43832f8e57 remove shadow warning, fixes #10732 (#11039) 2019-04-17 11:54:51 +02:00
Araq
d8a8c8806f fixes #11014 2019-04-17 00:15:40 +02:00
Araq
ce024a73bf make move-analysis smarter; see tuse_ownedref_after_move test case 2019-04-16 10:35:43 +02:00
Araq
a520eb7766 injectdestructors.nim: code cleanups 2019-04-16 10:35:43 +02:00
Araq
0e157de3a0 astalgo: use the code style that the other lines use; make debug() less verbose 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
Clyybber
2f56dd6b2b Extend the fix for #11018 to strings (#11031)
* Extend the fix for #11018 to strings

* Fix testcase
2019-04-15 17:06:31 +02:00
Clyybber
499fa3f3dc Fixes #11018 (#11019) 2019-04-14 23:34:19 +02:00
Andreas Rumpf
0e6eb7d483 make strscans module work with --newruntime 2019-04-14 23:13:49 +02:00
Andy Davidoff
485d5448fa render urls correctly (#11022) 2019-04-14 08:20:23 +02:00
cooldome
fdc3f54f97 fix reraise (#11017) 2019-04-13 10:50:30 +02:00
Araq
e33266ded1 make koch.nim compile with --newruntime. Again. 2019-04-12 19:59:04 +02:00
Araq
572735bbfa fixes #11004 2019-04-12 13:28:12 +02:00
cooldome
041d15392a Compiler plugin for implementing incremental computation in user space (#10819)
This plugin provides essential building block for implementing incremental computations in your programs. The idea behind incremental computations is that if you do the same calculation multiple times but with slightly different inputs you don't have to recompute everything from scratch. Also you don't want to adopt special algorithms either, you would like to write your code in standard from scratch manner and get incrementality for free when it is possible.

The plugin computes the digest of the proc bodies, recursively hashing all called procs as well . Such digest with the digest of the argument values gives a good "name" for the result. Terminology loosely follows paper "Incremental Computation with Names" link below. It works well if you have no side effects in your computations. If you have global state in your computations then you will need problem specific workarounds to represent global state in set of "names" . SideEffect tracking in Nim also useful in this topic.

Classical examples:

Dashboard with ticking data. New data arrives non stop and you would like to update the dashboard recomputing only changed outputs.
Excel spreadsheet where user changes one cell and you would like to recompute all cells that are affected by the change, but do not want to recompute every cell in the spreadsheet.
2019-04-11 23:09:11 +02:00
Araq
a2ad069769 preparations for --newruntime owned refs/callbacks 2019-04-11 12:42:51 +02:00
Araq
1c0b1e9d05 sem'check understands 'owned procs' 2019-04-11 12:35:49 +02:00
Araq
8fb04b320a sigmatch: ensure 'owned proc' works with system.isNil 2019-04-11 12:35:49 +02:00
Arne Döring
1da98b1636 Less ropes (#10979)
* convert ropecg to a macro
* fewer intermediate ropes
2019-04-11 09:48:10 +02:00
Araq
2846156e13 newruntime: raising an exception works but currently leaks memory because currentException global is not an 'owned' ref 2019-04-10 20:34:00 +02:00
Araq
a34ce2714a newruntime: fixes another bug 2019-04-10 13:53:47 +02:00
Araq
28b4db4470 be consistent, strings have destructors for --gc:destructors 2019-04-10 11:04:38 +02:00
Araq
0518794291 make parseopt compile with --newruntime 2019-04-10 10:10:08 +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
Araq
32ad3bb236 make 'raise' statement work with --newruntime 2019-04-09 11:39:10 +02:00
Araq
d59e9c37fa added lowerings.evalOnce 2019-04-09 11:38:54 +02:00
Araq
da6ff14184 don't emit an implicit try finally when in system.nim in order to prevent endless recursions in the try handler 2019-04-09 11:22:23 +02:00
Araq
9565b844dd compute sinks/assignments properly for for-loop iteration variables 2019-04-08 13:53:15 +02:00
Araq
001835bdec use old for loop unpack syntax for bootstrapping 2019-04-08 07:48:51 +02:00
Andreas Rumpf
b2898cd254 an owned ref parameter behaves as a 'sink' parameter 2019-04-07 23:11:37 +02:00
Andreas Rumpf
f08e90f0d6 more efficient enumToStr implementation that works without the old typeinfo structures 2019-04-07 21:14:54 +02:00
Araq
9f5d9d1993 makes koch.nim sem'check with --newruntime 2019-04-06 19:13:10 +02:00
Araq
f1ee36692a fixes compiler regression 2019-04-06 19:12:44 +02:00
Araq
6e6a9a721f destructors: we are cooking now 2019-04-06 17:32:53 +02:00
Araq
1a202b9754 render lent types properly 2019-04-06 17:32:53 +02:00