summary refs log tree commit diff stats
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* dfa.nim: track object/tuple field accesses more precisely; sink(o.x); ↵Araq2019-04-165-44/+97
| | | | sink(o.y) needs to compile; activate the tuple unpacking transf.nim bugfix
* Extend the fix for #11018 to strings (#11031)Clyybber2019-04-151-1/+1
| | | | | | * Extend the fix for #11018 to strings * Fix testcase
* Fixes #11018 (#11019)Clyybber2019-04-141-0/+3
|
* make strscans module work with --newruntimeAndreas Rumpf2019-04-142-4/+7
|
* render urls correctly (#11022)Andy Davidoff2019-04-141-2/+2
|
* fix reraise (#11017)cooldome2019-04-131-1/+1
|
* make koch.nim compile with --newruntime. Again.Araq2019-04-121-3/+16
|
* fixes #11004Araq2019-04-121-60/+72
|
* Compiler plugin for implementing incremental computation in user space (#10819)cooldome2019-04-118-81/+161
| | | | | | | | | | 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.
* preparations for --newruntime owned refs/callbacksAraq2019-04-115-30/+30
|
* sem'check understands 'owned procs'Araq2019-04-112-7/+22
|
* sigmatch: ensure 'owned proc' works with system.isNilAraq2019-04-111-1/+1
|
* Less ropes (#10979)Arne Döring2019-04-117-349/+451
| | | | | * convert ropecg to a macro * fewer intermediate ropes
* newruntime: raising an exception works but currently leaks memory because ↵Araq2019-04-103-6/+22
| | | | currentException global is not an 'owned' ref
* newruntime: fixes another bugAraq2019-04-101-0/+3
|
* be consistent, strings have destructors for --gc:destructorsAraq2019-04-101-3/+2
|
* make parseopt compile with --newruntimeAraq2019-04-101-1/+5
|
* make tests green againAraq2019-04-101-1/+1
|
* koch.nim compiles with --newruntimeAraq2019-04-092-5/+9
|
* make 'raise' statement work with --newruntimeAraq2019-04-091-6/+27
|
* added lowerings.evalOnceAraq2019-04-091-0/+16
|
* don't emit an implicit try finally when in system.nim in order to prevent ↵Araq2019-04-091-1/+2
| | | | endless recursions in the try handler
* compute sinks/assignments properly for for-loop iteration variablesAraq2019-04-082-2/+2
|
* use old for loop unpack syntax for bootstrappingAraq2019-04-081-1/+1
|
* an owned ref parameter behaves as a 'sink' parameterAndreas Rumpf2019-04-073-11/+11
|
* more efficient enumToStr implementation that works without the old typeinfo ↵Andreas Rumpf2019-04-077-20/+86
| | | | structures
* makes koch.nim sem'check with --newruntimeAraq2019-04-061-1/+1
|
* fixes compiler regressionAraq2019-04-061-1/+4
|
* destructors: we are cooking nowAraq2019-04-065-13/+37
|
* render lent types properlyAraq2019-04-061-1/+1
|
* fixes unowned->owned conversion ruleAndreas Rumpf2019-04-061-1/+1
|
* Fix astdef typ deref (#10245)Alexander Ivanov2019-04-051-1/+1
|
* fixes #10943 (#10947)cooldome2019-04-051-1/+4
|
* destructors: progressAndreas Rumpf2019-04-053-10/+27
|
* newruntime: codegen fixAndreas Rumpf2019-04-051-5/+4
|
* relax warning about inconsistent spacing (#10968)Miran2019-04-051-1/+1
| | | | | | Now the warning is raised only in the cases when there is an inconsistency in the style (spacing vs no spacing): * if a> b --> warning * if a > b --> no warning
* fixes destructor tuple regression #10940 (#10941)cooldome2019-04-043-3/+8
| | | | | | | | * fixes #10940 * bug fixes * fix spacing
* newruntime: fixes codegen for closuresAraq2019-04-041-0/+2
|
* fixes #10200 (#10950)tofu2019-04-041-1/+2
| | | | | | | | | | | | * fixes #10200 * add rule for other comparison operators * add rule for '!=' * add test * fixed to pass the test
* Pure ref object; fixes #10721 (#10955)Arne Döring2019-04-041-0/+2
|
* add alias for --debugger:native (#10957)Arne Döring2019-04-041-0/+5
|
* fixes #10942. Lent T bug (#10946)cooldome2019-04-034-16/+29
| | | | | | | | * fixes #10942 * add test * bug build
* fixes #10948 (#10949)cooldome2019-04-031-1/+1
|
* make tests green againAndreas Rumpf2019-04-021-1/+1
|
* try to make travis greenAraq2019-04-021-1/+1
|
* simple program works with --newruntimeAraq2019-04-022-1/+3
|
* make megatest work againAraq2019-04-021-1/+2
|
* newruntime: progressAraq2019-04-022-6/+13
|
* newruntime: progressAraq2019-04-015-23/+38
|
* fixes #10934Araq2019-03-312-0/+2
|