summary refs log tree commit diff stats
path: root/compiler/ast.nim
Commit message (Collapse)AuthorAgeFilesLines
* compiler cleanup: flag tfOldSchoolExprStmt is goneAraq2018-11-061-3/+0
|
* language cleanup: the .unchecked pragma is deadAraq2018-11-061-1/+0
|
* fixes tnre regressionAraq2018-10-291-1/+1
|
* make tstatic_t_bug compile with the C++ backendAraq2018-10-281-2/+2
|
* Change the order of compilation passes, transformation is made lazy at code ↵cooldome2018-10-181-2/+2
| | | | | | | | | | | | | | | 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
* Merge branch 'Fixes-7845' of https://github.com/cooldome/Nim into ↵Araq2018-10-151-6/+5
|\ | | | | | | cooldome-Fixes-7845
| * one more attemptcooldome2018-06-281-3/+5
| |
| * Fix failing testcooldome2018-06-261-1/+1
| |
| * Merge branch 'devel' into Fixes-7845cooldome2018-06-261-34/+45
| |\
| * | FIx test tembarrassing_generic_failurecooldome2018-06-121-1/+1
| | |
| * | Fixescooldome2018-06-121-5/+4
| | |
| * | Fixes 7845cooldome2018-06-101-7/+5
| | |
* | | implement sizeof and alignof operator (manually squashed #5664) (#9356)Timothee Cour2018-10-141-7/+3
| | |
* | | compiler: show name of instantiating context in error traces (#6763) (#9207)xzfc2018-10-111-0/+3
| | |
* | | Unchecked arrays now have their own type (#9267)LemonBoy2018-10-101-2/+4
| | |
* | | fixes unexpected transforming of runnableExamples (#9158)Steve Kellock2018-10-091-0/+5
| | |
* | | Try/Catch support for native JS exceptions (#8955)LemonBoy2018-10-091-2/+3
| | | | | | | | | | | | | | | | | | * Try/Catch support for native JS exceptions * Better tests
* | | Add sym owner to macros (#8253)cooldome2018-09-031-1/+1
| | |
* | | fixes #5745Araq2018-09-031-4/+8
| | |
* | | fixes merge conflictAraq2018-08-231-0/+1
|\ \ \
| * | | Fix #8126 (#8712)zah2018-08-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is a temporary fix that will be reworked in a follow up commit that aims to eliminate the tfExplicit flag from the compiler. The complete and proper fix was considered too risky for inclusion just before our 0.19 release.
* | | | even more strict isNil handling for strings/seqs in order to detect bugsAraq2018-08-221-19/+33
| | | |
* | | | fixes merge conflictAndreas Rumpf2018-08-191-6/+20
|\| | |
| * | | Merge branch 'devel' into araq-miscAndreas Rumpf2018-08-161-0/+8
| |\ \ \
| | * | | Fix unsound transform pass (#8633)LemonBoy2018-08-141-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | When a `var openArray[T]` function parameter goes trough the `transformAddrDeref` pass we may lose the `var` specifier, leading to nasty crashes at runtime.
| * | | | fixes more nil handling regressionsAraq2018-08-131-2/+2
| | | | |
| * | | | WIP: disallow 'nil' for strings and seqsAndreas Rumpf2018-08-131-3/+9
| |/ / /
| * | | fixes #6255, add `system.ashr` arithmetic right shift (#8547)andri lim2018-08-071-1/+1
| | | |
* | | | allows a destructor to be attached to a tyString/tySequenceAndreas Rumpf2018-07-271-3/+3
| | | |
* | | | ast.nim: remove space for unary operatorAndreas Rumpf2018-07-221-1/+1
| | | |
* | | | fix merge conflictAndreas Rumpf2018-07-181-1/+2
|\| | |
| * | | Custom pragmas in proc types (#8205)cooldome2018-07-091-1/+2
| | |/ | |/|
* / | WIP: strings/seqs based on destructorsAndreas Rumpf2018-07-171-0/+1
|/ /
* | allow referencing other parameters in default parameter valuesZahary Karadjov2018-06-161-1/+7
| | | | | | | | | | | | | | | | fix #7756 fix #1201 fix #7000 fix #3002 fix #1046
* | fixes #7222; fixes #5595; fixes #3747Zahary Karadjov2018-06-161-0/+1
| | | | | | | | | | | | | | | | | | | | * late instantiation for the generic procs' default param values * automatic mixin behaviour in concepts Other fixes: * don't render the automatically inserted default params in calls * better rendering of tyFromExpr
* | A minimal patch enabling the new typedesc and static types syntaxZahary Karadjov2018-06-161-2/+2
| |
* | WIP: an API for VM replay global state supportAndreas Rumpf2018-06-031-3/+7
| |
* | incremental compilation: implemented basic replay logicAndreas Rumpf2018-06-021-16/+20
| |
* | baby steps for incremental compilationAndreas Rumpf2018-05-301-0/+2
| |
* | refactoring: remove idents.legacy global variable and pass the IdentCache ↵Andreas Rumpf2018-05-271-1/+1
| | | | | | | | around explicitly
* | more refactoringAndreas Rumpf2018-05-271-2/+2
| |
* | remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-1/+1
| |
* | remove ast.emptyNode global; cleanup configuration.nimAraq2018-05-161-8/+2
|/
* fixes testament compilationAraq2018-05-141-1/+14
|\
| * fix a compiler crash related to the new strings in C++ modeZahary Karadjov2018-05-071-1/+1
| |
| * Better support for treating templates and macros as symbols.Zahary Karadjov2018-05-071-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows you to pass a template or a macro to another macro which can then inspect the implementation of the former template/macro using `getImpl`. Since templates can be freely redefined, this allows you to treat their symbols as compile-time variables that have lexical scope. A motivating PoC example for a logging library taking advantage of this will be provided in the next commit. Implementation details: * The name of a template or a macro will be consider a symbol if the template/macro requires parameters * For parameterless templates/macros, you can use `bindSym`, which was extended to also work outside of compile-time procs.
* | options.nim: no global variables anymoreAndreas Rumpf2018-05-131-9/+10
| |
* | big refactoring: parser compiles againAndreas Rumpf2018-05-101-8/+12
|/
* Use safeLen in pairs iterator for PNode (#7684)Oscar Nihlgård2018-04-251-1/+1
|
* remove dead code elimination option (#7669)Jacek Sieka2018-04-231-3/+3
|