summary refs log tree commit diff stats
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* Make pragmas look clickable in docs (#8176)Quelklef2018-07-171-3/+11
| | | | * Visual cues for hidden pragmas in docs. * Add hover cue
* Gdb pretty printers (#8263)Arne Döring2018-07-161-3/+3
|
* Resolve converter call to constants in case arms (#8336)LemonBoy2018-07-161-1/+4
| | | Fixes #8333
* fix #7405 and #8195 (#8198)Timothee Cour2018-07-163-26/+25
| | | | | | | | * fix #7405 and #8195 * control pushInfoContext in semExprNoType,genStmts via a new hintExtendedContext; make NotesVerbosity computation more DRY * addressed comments
* Bugfix for modules with multi byte characters in the name (#8319)Oscar Nihlgård2018-07-141-1/+1
|
* Do not crash while instantiating a generic outside a call (#8279)LemonBoy2018-07-141-1/+4
| | | Fixes #8270
* Don't depend on string.h in codegen (#8299)Yuriy Glukhov2018-07-132-31/+16
|
* Give different names to objects coming from cpp files (#8278)LemonBoy2018-07-131-4/+1
| | | | Prevent some nasty linker errors if the user switches between c and cpp backends.
* Do not consider enums with holes as ordinals (#8264)LemonBoy2018-07-122-8/+8
| | | | | | Make the compiler behave consistently with respect to what's written in the manual. Fixes #1239
* Correctly hash inferred types (#8286)LemonBoy2018-07-121-1/+1
| | | | | | | We don't really want to hash the tyInferred container since that'd make the "real" type and its inferred counterpart produce different hashes and types for the very same type. Fixes #8280
* make runnableExamples use a private nimcache so that they can be tested in ↵skilchen2018-07-121-2/+9
| | | | | parallel (#8281) * make runnableExamples use a private nimcache so that they can be tested in parallel
* Fixes #8287 (#8288)cooldome2018-07-121-6/+10
|
* Handle subtype relations for converter parameters (#8248)LemonBoy2018-07-091-2/+7
| | | Fixes #7098
* Fixes maxLineLength's bug in the renderer (#8240)Dmitry Atamanov2018-07-091-3/+3
|
* Reset typedescMatched before paramTypesMatch (#8250)LemonBoy2018-07-091-0/+3
| | | | | The flag should not be carried out across different parameters. Fixes #7794
* Custom pragmas in proc types (#8205)cooldome2018-07-093-12/+18
|
* Generate dynlib strings as a single rope (#8247)LemonBoy2018-07-081-1/+3
| | | | | | In order not to trip the optimization in genInfixCall we have to do so. The same trick is also used in setExternName. Fixes #8241
* Pick the `and` symbol we need explicitly (#8249)LemonBoy2018-07-081-2/+2
| | | | | | | Using getSysSym made the compiler pick a random `and` symbol: if the symbol table is shuffled we may end up selecting one of the wrong overloads. Fixes #8246
* Fix comparison of tyGenericBody in typerel (#8045)LemonBoy2018-07-071-1/+1
| | | | | | As shown in #7734 and #7733 the logic in typerel fails to determine that `type Foo` and `type Foo` are indeed equal. Fixes #7734
* make tmemfile2 work againAraq2018-07-061-0/+1
|
* make tests green againAndreas Rumpf2018-07-051-0/+2
|
* turn destructors into finalizersAndreas Rumpf2018-07-051-3/+15
|
* enable destructors without the --newruntime switchAndreas Rumpf2018-07-043-16/+4
|
* code cleanup: remove newScopeForIf switchAndreas Rumpf2018-07-045-78/+4
|
* Merge branch 'devel' into araq-develAndreas Rumpf2018-07-043-10/+31
|\
| * Error out if vararg match isn't an exact one (#8186)LemonBoy2018-07-031-1/+11
| | | | | | Fixes #8172
| * Deprecate 'c', 'C' prefix for octal literals, fixes #8082 (#8178)Vindaar2018-07-031-8/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * deprecate `0c`, `0C` prefix for octal literals Deprecates the previously allowed syntax of `0c` and `0C` as a prefix for octal literals to bring the literals in line with the behavior of `parseOct` from parseutils. * add `msgKind` arg to `lexMessageLitNum` for deprecation messages * change literal tests to check all valid integer literals Also adds the `tinvaligintegerlit3` test to test for the (still) invalid `0O` prefix.
| * Fix crash with static and anonymous procs (#8171)LemonBoy2018-07-021-1/+1
| | | | | | Fixes #6077
* | Merge branch 'devel' into araq-develAndreas Rumpf2018-07-018-46/+55
|\|
| * Minor changes to discardable handling (#8155)LemonBoy2018-07-012-21/+7
| |
| * Fix use of custom pragmas in generic procs (#8165)LemonBoy2018-07-011-1/+2
| | | | | | Fixes #7626
| * Fix constant folding of len() with concept type (#8143)LemonBoy2018-06-301-6/+6
| | | | | | Fixes #7952
| * Fix vm regression (#8163)Oscar Nihlgård2018-06-301-0/+7
| |
| * Fixes #6689 (#8135)Oscar Nihlgård2018-06-301-2/+8
| |
| * Check the RHS when building a set (#8159)LemonBoy2018-06-301-1/+1
| | | | | | Fixes #2669
| * fix #8129 by calling `semExpr` in `semIs` if node is `strLit` (#8130)Vindaar2018-06-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * call `semExpr` in `semIs` if node is `strLit`, fixes #8129 In case the second son of the node in `semIs` is of kind `strLit`, we now call `semExpr` to set the `typ` field of that node. Also removes the `t2 != tyTypeDesc` check in `isOpImpl`, since the kind of `n[2]` is already assertet with the `internalAssert`. * reintroduce check for `t2.kind != tyTypeDesc` to fix test case The `internalAssert` in the `isOpImpl` doesn't check `n.sons[2].typ.kind` as I previously read, but rather `n.sons[2].kind`. Therefore the check for `tyTypeDesc` here is useful. Otherwise the last test case in `isopr.nim` fails. Also removes the flag `efDetermineType` from the call to `semExpr`.
| * VM regression fixes (#8146)Oscar Nihlgård2018-06-291-1/+3
| |
| * Fix codegen for mInSet magic and empty sets (#8140)LemonBoy2018-06-291-13/+17
| | | | | | Fixes #8041
| * improve error message if literal ends with an underscore (#8114)Vindaar2018-06-281-1/+2
| |
* | codgen refactoring: prepare for alternative string/seq implementationsAndreas Rumpf2018-06-294-19/+23
|/
* Fix template codegen with static parameters (#8110)LemonBoy2018-06-271-8/+12
| | | | | | | | * Fix template codegen with static parameters Fixes #7477 * Move the test case to tstaticimportcpp
* Return an error symbol as macro output if needed (#8116)LemonBoy2018-06-271-1/+6
| | | | | | Return an error symbol if the macro output has no type and a typedesc is expected. Fixes #7454
* Reject ptr/ref void types (#8127)LemonBoy2018-06-271-0/+3
| | | | | Do this during the semantic pass to avoid tripping the following passes. Fixes #6454
* Reject enums with holes when computedGoto is used (#8132)LemonBoy2018-06-271-0/+3
| | | Fixes #7699
* Don't consider concept types as non-complex during codegen (#8119)LemonBoy2018-06-271-1/+1
| | | Fixes #7125
* Lexer: do not accept some invalid integer literals (#8089)Hiroki Noda2018-06-271-7/+12
| | | | | | * Lexer: do not accept some invalid integer literals * Use Natural instead of uint, and result variable
* Nintendo switch support (#8069)Joey2018-06-274-4/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | * Add config section for Nintendo Switch * Add compiler configuration for Nintendo Switch and it's CPU * Add specific lib code for Nintendo Switch * Add GC support for Nintendo Switch * Update changelog for Nintendo Switch * Update changelog with more info about fixed paths * Cleaned up GC memory management a bit * Relocate docs for Switch * Rename aarch64NoneElfGcc to nintendoSwitchGCC * Remove armv8a57 * Fix installer.ini * Reuse code in linux and amd64 * Add posix defs for nintendo switch * Add more defined sections for nintendo switch * Remove old comment * Add what's not supported for Nintendo Switch docs * Make nintendoswitch == posix * Remove DEVKITPRO references from nim.cfg * Make PR extccomp changes * Remove Result type alias * Add separate switch consts file * Update docs for nintendo switch * Fix travis errors with undefined consts and add correct wait.h procs
* compiler/types.nim: make low/high know about 'sink' parameters; cleans up #7736Araq2018-06-271-12/+16
|
* Merge pull request #7736 from cooldome/range_float_typeAndreas Rumpf2018-06-273-23/+60
|\ | | | | Language feature: range float types
| * manual merge 2cooldome2018-06-122-3/+3
| |