Commit Graph

19850 Commits

Author SHA1 Message Date
Zahary Karadjov
0f2c4be129 infer static parameters even when more complicated arithmetic is involved 2017-03-24 16:58:15 +02:00
Zahary Karadjov
0b0a3e5f20 support derived values in non-generic user type classes 2017-03-24 16:58:15 +02:00
Zahary Karadjov
77a4512ae8 some revisions to the Concepts and VTable types specs 2017-03-24 16:58:15 +02:00
Zahary Karadjov
a90c4c4d7e kill the reportConceptFailures options as it will be replaced by the .explain. pragma 2017-03-24 16:58:15 +02:00
Zahary Karadjov
19918ad96f future manual additions for the full concept spec I'm aiming to implement 2017-03-24 16:58:15 +02:00
Zahary Karadjov
76c663f692 support for inferring static[T] concept params 2017-03-24 16:58:15 +02:00
Zahary Karadjov
8cd5f1f8f5 introduce tyInferred for the unbound concept type params
* Why is tyInferred needed?

The bindings in TCandidate are capable of inferring types within a single
call expression. In concepts, we need to infer types in the same way, but
across the whole body of the concept.

Previously, once a concept type param was inferred, it was destructively
mutated using t.assignType, but this proved to be problematic in the presence
of overloads, because the bindings established while a non-matching overload
is tested must be reverted/forgotten. tyInferred offers a non-destructive way to
keep track of the inference progress.

While introducing new types usually requires a lot of code paths in the compiler
to updated, currently tyInferred is only a short-lived type within the concept body
pass and it's unlikely to introduce breakage elsewhere in the compiler.
2017-03-24 16:58:15 +02:00
Zahary Karadjov
815724db71 support the full range of type modifiers when declaring concept vars and testing proc signatures 2017-03-24 16:58:15 +02:00
Zahary Karadjov
0a9a878bd3 support for matching generic types' procs in generic concepts 2017-03-24 16:58:15 +02:00
Zahary Karadjov
33f4e69759 support for accessing types and consts defined in concepts with the dot operator 2017-03-24 16:58:15 +02:00
Zahary Karadjov
eab1d0cc02 support for accessing the inferred concept type params with the dot operator 2017-03-24 16:58:15 +02:00
Zahary Karadjov
66e0f0e19c concept type params inference working in basic examples 2017-03-24 16:58:15 +02:00
Andreas Rumpf
0d8a503e45 fixes #5597; wrong eager template instantiation in generic context (#5601) 2017-03-24 07:35:12 +01:00
Dmitriy Fomichev
268a1f7cfd Deques compilation error fix (#5591) 2017-03-24 00:09:51 +01:00
Arne Döring
d4b4cad4ea Added few documentation lines for the unsafeAddr operator. (#5362) 2017-03-23 23:49:07 +01:00
Anatoly Galiulin
434a7c8426 Fix posix version of moveFile between different filesystems (#5580) 2017-03-23 23:40:03 +01:00
andri lim
568c954062 fixes #5241, fixes #5411 inherit from specialized generic typeRel problem (#5573) 2017-03-23 23:39:29 +01:00
Dominik Picheta
0cad2896ae Implement asyncfile.readToStream. 2017-03-23 21:34:53 +01:00
Dominik Picheta
f2ca6021dc Implement requestAnimationFrame and cancelAnimationFrame in dom module. 2017-03-23 21:34:32 +01:00
Dominik Picheta
d221e6a35c Improve os.getFileSize documentation to specify the unit. 2017-03-23 21:34:03 +01:00
def
ab31b776ef Fix typo 2017-03-23 21:29:10 +01:00
Araq
93f0f1c6e4 fixes #5598 2017-03-23 16:43:21 +01:00
Eugene Kabanov
254fbcc548 Fixes #4719. (#5585) 2017-03-23 16:13:38 +01:00
Emery Hemingway
d508303fad fix empty link file list during external compilation (#5577) 2017-03-23 13:27:16 +01:00
zah
be174fc3c7 Fix generic forward declarations; fixes #4104; fixes #4908 (#5566) 2017-03-23 12:40:57 +01:00
andri lim
70237e1fdd fix taliasinequality test case (#5587) 2017-03-22 08:40:15 +01:00
Ruslan Mustakov
310b73b556 Reduce the scope of stackTrace var (#5583)
Fixes #5571.
2017-03-22 01:06:05 +01:00
jlp765
c8954b2b34 tut1.rst: Slices indices explanation (#5569) 2017-03-22 01:04:37 +01:00
Araq
c9b86ebce8 koch: cleanup its help output, remove cruft 2017-03-21 13:17:23 +01:00
Araq
3962c6339f nimsuggest: die with a project dir/file that doesn't exist 2017-03-21 13:09:57 +01:00
Araq
e01d2244e4 make semObjConstr robust for nimsuggest 2017-03-21 13:02:38 +01:00
Fredrik Høisæther Rasch
24f07d9b71 Exchanged debug compilation with verbose command-line argument 2017-03-21 12:18:32 +01:00
Fredrik Høisæther Rasch
513b0fed4d vcvarsallpath explaination no longer needed with vccdiscover
This reverts commit 7c4911d
2017-03-21 12:18:32 +01:00
Fredrik Høisæther Rasch
c7a0087c82 vccdiscover: Added additional documentation
Added explaination that vccdiscover output is machine-parsable
2017-03-21 12:18:32 +01:00
Fredrik Høisæther Rasch
05faad30a4 vccexe tool can use vccdiscover utility
Used when vcvarsall path is not specified, or if only a vccversion is specified
2017-03-21 12:18:32 +01:00
Fredrik Høisæther Rasch
aa14ee1856 Created vccdiscover utility for vcc auto-discovery 2017-03-21 12:18:31 +01:00
Fredrik Høisæther Rasch
747e5a6b64 vccenv module for vcc auto-discovery
Only works for VCC Installations with Visual Studio 2015 and below
2017-03-21 12:18:31 +01:00
Fredrik Høisæther Rasch
289f72ad67 Fixed vccexe, now regards the command argument 2017-03-21 12:18:31 +01:00
Fredrik Høisæther Rasch
5341d36397 Reduced verbosity of vcvarsall
Only lines that are not part of the loaded developer environment are echoed
2017-03-21 12:18:29 +01:00
Fredrik Høisæther Rasch
86206b2533 Added explanatory comments about vccexe and its path argument in nim.cfg 2017-03-21 12:18:29 +01:00
Fredrik Høisæther Rasch
503a816b36 Corrected erroneous vccexe tool path in koch 2017-03-21 12:18:22 +01:00
Fredrik Høisæther Rasch
45f61ad046 Moved vccexe to a more logical place (vccexe) 2017-03-21 12:17:09 +01:00
Fredrik Høisæther Rasch
9446ae5576 Moved vccenv over to vcvarsall
Updated vccexe with new command-line arguments
2017-03-21 12:17:09 +01:00
Fredrik Høisæther Rasch
93e03144fc Added Visual Studio build artifacts to gitignore
The Microsoft Linker creates an incremental linker database (extension: ilk)

Debugging symbols are stored in pdb files.
2017-03-21 12:17:09 +01:00
Fredrik Høisæther Rasch
7267d35c3f Removed arch option in compiler definition
Previous Artifiact, changed to better reflect the settings in the default nim.cfg
2017-03-21 12:17:09 +01:00
Fredrik Høisæther Rasch
4002bdf873 Added missing VCC C++ options to nim.cfg 2017-03-21 12:17:09 +01:00
Araq
d862d22723 koch: vcc is also built with 'koch tools' 2017-03-21 12:04:14 +01:00
Konstantin Molchanov
742c7e1179 JS: Times: Add timezone prop to TimeInfo. 2017-03-21 13:50:43 +04:00
Eugene Kabanov
8310d252c2 Update testament to include all tests from tests/threads category. (#5576) 2017-03-20 20:20:26 +01:00
Andreas Rumpf
2d0ee2c8ab mark symbols in getAst context as used 2017-03-20 11:44:58 +01:00