Commit Graph

4406 Commits

Author SHA1 Message Date
LemonBoy
52fc16d5d2 Return an error symbol as macro output if needed (#8116)
Return an error symbol if the macro output has no type and a typedesc
is expected.

Fixes #7454
2018-06-27 21:43:07 +02:00
LemonBoy
7f148838a4 Reject ptr/ref void types (#8127)
Do this during the semantic pass to avoid tripping the following passes.

Fixes #6454
2018-06-27 21:41:40 +02:00
LemonBoy
722abbe9c9 Reject enums with holes when computedGoto is used (#8132)
Fixes #7699
2018-06-27 21:36:52 +02:00
LemonBoy
bb23d903b6 Don't consider concept types as non-complex during codegen (#8119)
Fixes #7125
2018-06-27 17:21:53 +02:00
Hiroki Noda
a85493610c Lexer: do not accept some invalid integer literals (#8089)
* Lexer: do not accept some invalid integer literals

* Use Natural instead of uint, and result variable
2018-06-27 17:07:26 +02:00
Joey
559a7615ad Nintendo switch support (#8069)
* 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
2018-06-27 12:35:09 +02:00
Araq
19ea3a70d2 compiler/types.nim: make low/high know about 'sink' parameters; cleans up #7736 2018-06-27 00:21:31 +02:00
Andreas Rumpf
d8f7174dda Merge pull request #7736 from cooldome/range_float_type
Language feature: range float types
2018-06-27 00:08:21 +02:00
Andreas Rumpf
edc3806aa2 Merge pull request #8120 from krux02/basic-debugging
make basic debugging possible
2018-06-26 23:58:07 +02:00
Andreas Rumpf
7cec5d1cfb Merge pull request #7681 from nim-lang/typedesc-reforms
Typedesc reforms
2018-06-26 23:53:30 +02:00
Andreas Rumpf
ccb1514837 Merge pull request #8108 from LemonBoy/fix-5958
Make `static` blocks introduce their own scope
2018-06-26 23:16:40 +02:00
Oscar Nihlgård
236bc06b5f Improve vm support for ref types 2018-06-26 21:25:27 +02:00
Andreas Rumpf
2a3a128e36 Merge branch 'devel' into typedesc-reforms 2018-06-26 18:33:51 +02:00
Jörg Wollenschläger
7e89f9a09a Don't remove extension of source files twice, if filenames contain dots 2018-06-26 20:08:40 +09:00
Araq
5976bd96be nimpretty: detect '; vs ,' style based on the first usage of the token in parameter lists 2018-06-26 01:43:41 +02:00
Arne Döring
ba3c6d022b make basic debugging possible 2018-06-26 01:42:36 +02:00
Araq
c68d52b69d Merge branch 'devel' of github.com:nim-lang/Nim into devel 2018-06-26 01:35:12 +02:00
Araq
aef441101f fixes docgen regression caused by refactorings; fixes #8097 2018-06-26 01:34:59 +02:00
Dominik Picheta
27b081d1f7 Merge pull request #8117 from LemonBoy/cmd-verbosity-level
Warn the user if the specified verbosity level is wrong
2018-06-25 17:08:12 +01:00
LemonBoy
589d6bc8d8 Warn the user if the specified verbosity level is wrong 2018-06-25 15:46:38 +02:00
Andreas Rumpf
193def6dcb Merge pull request #8105 from LemonBoy/concept-high-low-index
More concept fixes
2018-06-25 15:08:22 +02:00
Andreas Rumpf
7d437a3a74 Merge pull request #7964 from LemonBoy/fix-7936
Fixes #7936
2018-06-25 15:06:07 +02:00
Andreas Rumpf
890086baec Merge pull request #8072 from LemonBoy/fix-6899-6280
Fix minor codegen issue with static data types
2018-06-24 21:31:19 +02:00
LemonBoy
9543689306 Make static blocks introduce their own scope
Treat the static block as a normal block, don't leak any identifier in
the outer scope.

Fixes #5958
2018-06-24 18:27:40 +02:00
LemonBoy
bfa3d62cc1 More concept fixes
Fixes #7705, #7703, #7702
2018-06-24 15:13:34 +02:00
Andreas Rumpf
105a472dc5 Merge pull request #8084 from LemonBoy/fix-7905
Discriminate gensym'd type names in sigHash
2018-06-24 09:54:00 +02:00
LemonBoy
7f0d7871ed Use the resolved typedesc in semVarOrLet
By leaving the unsemanticized node in the AST we'd trip some passes like
the Transf one as seen in #7936.
2018-06-23 13:40:11 +02:00
LemonBoy
e39baf46fc Don't blow up with recursive objects 2018-06-22 19:47:44 +02:00
LemonBoy
af66258dca Discriminate gensym'd type names in sigHash
The root cause of #7905 lies in the codegen phase. The two template
instantiations generate two different MyType types with different
members but same t.sym.name leading the caching mechanism to confuse
the two.

Fixes #7905
2018-06-22 13:09:33 +02:00
Andreas Rumpf
6015749720 Merge pull request #8062 from LemonBoy/fix-7825
Fix constant folding for shl/not
2018-06-21 00:35:17 +02:00
Araq
1be82d96a6 nimpretty: bugfixes; refs #8078 2018-06-20 11:35:36 +02:00
Araq
9adfaa7f07 fixes #8076 2018-06-20 10:20:42 +02:00
Andreas Rumpf
0725003a8c nimpretty: fixes more reported issues 2018-06-20 00:56:29 +02:00
Andreas Rumpf
c3090fcb48 nimpretty: don't produce trailing whitespace; fixes the rendering of unary operators 2018-06-19 23:45:11 +02:00
LemonBoy
fb62dd1fae Fix constant folding for shl/not
Since the source and destination types are the same the result should be
trimmed to fit.
2018-06-19 22:32:15 +02:00
Andreas Rumpf
837d0c7270 nimpretty: proper command line handling; added tests; travis ensures these stay green 2018-06-19 20:06:04 +02:00
LemonBoy
8508dc46c8 Fix minor codegen issue with static data types 2018-06-19 17:12:51 +02:00
Andreas Rumpf
dd81d9d5b7 nimpretty improvements 2018-06-19 09:42:33 +02:00
Andreas Rumpf
98f3daea65 nimpretty: don't touch dense binary operators 2018-06-17 14:25:23 +02:00
Andreas Rumpf
c70706f4bd nimpretty: fixes pragma rendering 2018-06-17 14:15:42 +02:00
Andreas Rumpf
798a8bd45c Merge branch 'devel' of github.com:nim-lang/Nim into devel 2018-06-16 19:02:54 +02:00
Andreas Rumpf
dba26656f6 nimpretty: stuff that doesn't work 2018-06-16 19:02:47 +02:00
Zahary Karadjov
e129466910 requested pull-request changes 2018-06-16 16:46:32 +03:00
Zahary Karadjov
31651ecd61 allow referencing other parameters in default parameter values
fix #7756
fix #1201
fix #7000
fix #3002
fix #1046
2018-06-16 16:46:32 +03:00
Zahary Karadjov
e719f211c6 fix #6928; fix #7208 2018-06-16 16:46:32 +03:00
Zahary Karadjov
59d19946c0 fix some breakage after rebasing 2018-06-16 16:46:32 +03:00
Zahary Karadjov
16b594b532 Support default type parameters
progress on #7516
2018-06-16 16:46:32 +03:00
Zahary Karadjov
5bcf8bcb59 fixes #7222; fixes #5595; fixes #3747
* 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
2018-06-16 16:46:32 +03:00
Zahary Karadjov
a49b06a52a Implement the is operator for the new static and typedesc type classes
This also makes the first baby steps towards a sound treatment of
higher-order kinds (type type int).

Adds test cases showcasing the new features.

* Also fixes breakage after the rebase
2018-06-16 16:46:32 +03:00
Zahary Karadjov
ab9969ed3b Bugfix: the size of an array may be a static tuple element 2018-06-16 16:46:32 +03:00