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
Silvio
51cd3bd86f
Fixes #5062 ( #5527 ); JS: holes in enums
2017-03-15 10:33:37 +01:00
Andreas Rumpf
46f33515d7
Merge branch 'devel' into faster-nimsuggest
2017-02-24 01:28:50 +01:00
Arne Döring
92c2a51bf7
removed compiler internal list implementation ( #5371 )
2017-02-22 17:33:12 +01:00
Andreas Rumpf
46efaf294b
big compiler refactoring; avoid globals for multi method dispatcher generation
2017-02-22 16:27:52 +01:00
Michael Jendrusch
d75760f5d3
made nodecl implicit for vars in the js backend. ( #5297 )
2017-01-29 17:34:08 +01:00
shsnow23
c7e54eba91
fix genderef of jsgen ( #5274 )
2017-01-24 16:59:34 +01:00
Yuriy Glukhov
0ead17bf0e
Fixes #5271 ( #5273 )
2017-01-24 06:19:28 +01:00
Yuriy Glukhov
268c899b98
Fixup #5240 ( #5270 )
2017-01-23 20:09:43 +01:00
Michael Jendrusch
953b8cbcc2
fixes #5234 ( #5240 )
2017-01-20 05:16:42 +01:00
Yuriy Glukhov
05dec08cea
Fixes #5244 ( #5245 )
2017-01-18 20:13:08 +01:00
Michael Jendrusch
454547da8e
Removed mangling of object fields for the js target only. ( #5226 )
...
* removed mangling of object fields for the js target only.
* changed default mangling behaviour for the php target as well.
* Added test for unorthodox field names (reserved words and operators). Adjusted field accessors and object constructors / new to be ECMAScript first edition compatible, when using fieldnames which are reserved words.
2017-01-17 16:43:06 +01:00
Araq
9c47bb9cc0
happy new year
2017-01-07 22:35:09 +01:00
Araq
e6c5622aa7
removed tyArrayConstr completely from the compiler; introduced tyAlias instead in preparation for further bugfixes
2016-11-14 23:18:30 +01:00
Araq
9e6fb3f696
new dependency tracking for nimsuggest
2016-11-05 01:19:23 +01:00
Araq
29db0d8585
refactoring complete: explicit ident cache
2016-10-31 19:47:20 +01:00
Jacek Sieka
f5c3eb6a25
clean up tyMutable remnants
2016-10-24 23:30:10 +08:00
Jacek Sieka
b3de34548d
clean up tyConst remnants
2016-10-24 23:19:46 +08:00
Jacek Sieka
f488ed973d
clean up tyBigNum remnants
2016-10-24 23:11:38 +08:00
Jacek Sieka
6f7b891bdc
remove remnants of tyIter
2016-10-24 21:10:48 +08:00
Yuriy Glukhov
82b022ebc6
JS: Fixed ICE on ptr assignment
2016-09-20 17:01:53 +03:00
Andreas Rumpf
3a13706d7d
fixes #4673
2016-09-01 13:02:53 +02:00
Yuriy Glukhov
e39138fe42
Fixed codegen for asmNoStackFrame pragma. More bulletproof frame restoration.
2016-08-27 19:37:49 +03:00
Yuriy Glukhov
62785be5a5
Restore framePtr after exceptions
2016-08-27 18:09:24 +03:00
Yuriy Glukhov
8bff930c7c
Fixed js codegen issue for uncaught exceptions.
2016-08-27 16:52:08 +03:00
Andreas Rumpf
84a09d2f5b
minor things
2016-08-24 11:48:40 +02:00
Andreas Rumpf
200ccff015
fixes #4632
2016-08-23 17:51:26 +02:00
Hans Raaf
bb683cb983
Fix using ptr to seq in js backend.
...
I suddenly got ReferenceError exceptions for some of the code which is
using etyBaseIndex ptr. Initialising the xxx_Idx part of the variable
fixes this problem.
2016-08-07 03:48:20 +02:00
Andreas Rumpf
60b187513e
stdlib and compiler don't use .immediate anymore
2016-07-29 23:51:01 +02:00
Andreas Rumpf
f1e77d3124
fixes #4496
2016-07-18 13:05:18 +02:00
Andreas Rumpf
b7c1be03c8
added system.newSeqOfCap for improved efficiency
2016-07-15 17:04:14 +02:00
Andreas Rumpf
f47165af11
fixes #3706
2016-07-13 01:06:33 +02:00
Andreas Rumpf
7a018007a4
fixes #4471
2016-07-12 00:50:25 +02:00
Andreas Rumpf
bcb2365dec
fixes a critical JS codegen bug which caused 'importcpp' statements not to be emitted
2016-07-11 23:19:24 +02:00
Andreas Rumpf
c9ce38e56d
fixes a strange JS codegen bug
2016-07-11 23:19:24 +02:00
Andreas Rumpf
66f37971e9
undocumented feature: JS backend: unit and group separators generate hash and at symbols
2016-07-09 00:28:14 +02:00
Andreas Rumpf
ba273057e3
Fixes a critical JS codegen bug about @ in call pattern
2016-07-08 23:03:11 +02:00
Andreas Rumpf
b47d9b7b91
fixes #4371
2016-07-08 10:34:12 +02:00
Yuriy Glukhov
a76b74ed74
Repr now works in js for enums starting with non-zero.
2016-07-05 22:43:59 +03:00
Andreas Rumpf
ad8784eef0
PHP codegen: code works with PHP 5.3 (with some luck)
2016-06-23 01:45:10 +02:00
Andreas Rumpf
2405f8e347
PHP backend: proper setLen implementation
2016-06-21 11:50:24 +02:00
Andreas Rumpf
e8d507c859
system. for cstrings uses value comparisons, not reference comparisons
2016-06-02 16:38:20 +02:00
Yuriy Glukhov
4d0d2d69f3
Fixes #4222
2016-05-26 08:49:56 +03:00
Andreas Rumpf
746132d696
PHP codegen improvements
2016-05-13 00:47:18 +02:00
Andreas Rumpf
b48e178969
JS target improvements
2016-04-29 17:56:06 +02:00
Andreas Rumpf
55aa4c2689
fixes a critical PHP codegen bug
2016-04-29 09:09:49 +02:00
Hans Raaf
fcc6daf78b
Fix PHP and JS codegen to not escape single quotes in strings anymore.
2016-03-14 21:33:14 +01:00
Andreas Rumpf
87e52bddbe
Merge pull request #3949 from oderwat/hara-php-addr
...
Try to fix addr() ref and pointer for PHP
2016-03-10 13:39:32 +01:00
Hans Raaf
060a820d62
Try to fix addr() ref and pointer for PHP
2016-03-08 16:16:21 +01:00
Hans Raaf
5450c944d7
Fix für PHP codegen integer modulo calculation.
2016-03-07 20:08:58 +01:00