Clyybber
7e747d11c6
Cosmetic compiler cleanup ( #12718 )
...
* Cleanup compiler code base
* Unify add calls
* Unify len invocations
* Unify range operators
* Fix oversight
* Remove {.procvar.} pragma
* initCandidate -> newCandidate where reasonable
* Unify safeLen calls
2019-11-28 17:13:04 +01:00
Araq
07d465ca42
[refactoring] remove unused imports in the compiler and in some stdlib modules
2019-07-18 00:36:03 +02:00
Arne Döring
88b5dd3362
right shift is now by default sign preserving ( #11322 )
...
* right shift is now by default sign preserving
* fix hashString and semfold
* enable arithmetic shift right globally for CI
* fix typo
* remove xxx
* use oldShiftRight as flag
* apply feedback
* add changelog entry
2019-05-29 16:48:00 +02:00
Clyybber
f18b3af9d4
Replace countup(x, y-1) with x ..< y
2019-05-07 12:32:05 +02:00
Araq
34388c5cc5
name mangling: also special case the backslash character
2018-09-17 20:48:55 +02:00
Andreas Rumpf
669a564492
remove more global variables in the Nim compiler
2018-05-27 11:10:56 +02:00
Andreas Rumpf
a4e2b0c153
platform.nim doesn't use globals anymore; prepare msgs.nim for not using globals
2018-05-18 15:18:00 +02:00
Araq
479212995a
ccgutils: code cleanup, no globals
2018-05-16 02:05:00 +02:00
Andreas Rumpf
1284827df2
C code generator compiles again
2018-05-12 23:45:51 +02:00
Jacek Sieka
72dfe176f5
remove dead code elimination option ( #7669 )
2018-04-23 11:02:38 +02:00
Andreas Rumpf
e4081a7201
preparations for language extensions: 'sink' and 'lent' types
2018-01-07 23:09:26 +01:00
Andreas Rumpf
70ea45cdba
deprecated unary '<'
2017-10-29 08:37:13 +01:00
Andreas Rumpf
f7f3a25be8
first steps of making 'opt' a first class type for Nim
2017-09-25 13:19:36 +02:00
Andreas Rumpf
e879da5791
some work to make 'opt' a first class type
2017-09-24 11:21:52 +02:00
Jacek Sieka
ba4cc4bf35
a few tiny cleanups ( #5712 )
...
exposes emitLazily (for nlvm) and simplifies some conditionals
2017-05-29 09:42:26 +02:00
Markus F.X.J. Oberhumer
87888e8129
Ascii character code 127 (DEL) is not printable.
2017-05-16 18:09:24 +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
eab1d0cc02
support for accessing the inferred concept type params with the dot operator
2017-03-24 16:58:15 +02:00
Yuriy Glukhov
e213b120ab
Fixes #5452
2017-02-28 17:23:25 +02:00
Araq
4c5ecb46b0
fixes a minor codegen issue where name mangling could produce an identifier used by the codegen; refs #5437
2017-02-26 17:41:00 +01:00
Arne Döring
92c2a51bf7
removed compiler internal list implementation ( #5371 )
2017-02-22 17:33:12 +01:00
Andreas Rumpf
848676cec6
name mangling bugfixes; ndi file generation for debugger support
2017-02-03 09:49:36 +01:00
Andreas Rumpf
fab69661ad
new name mangling rules for easier debugging
2017-02-02 16:27:48 +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
860cbd3107
signature hashing: more progress
2016-11-11 08:58:42 +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
Andreas Rumpf
9605435f2e
get rid of deprecated toLower/toUpper
2016-07-19 19:28:01 +02:00
Andreas Rumpf
b47d9b7b91
fixes #4371
2016-07-08 10:34:12 +02:00
Araq
36f68e1650
fixes #3329
2015-09-18 02:24:12 +02:00
Araq
ecc0090939
fixes #2551 ; fixes #2212 ; breaks bootstrapping in debug mode; bootstrap with -d:release
2015-04-25 23:16:57 +02:00
def
39049e151f
Get rid of deprecation warnings
2015-04-07 15:47:18 +02:00
Araq
d61f326f38
prevent name mangling for C++ DLLs
2015-03-05 01:34:09 +01:00
Araq
76e44dd034
test tsets2.nim compiles again
2015-03-01 23:01:02 +01:00
Araq
f4a0400de2
fixes #2199 , fixes #2197
2015-02-24 19:19:08 +01:00
Federico Ceratto
c95f6f117a
Fix typos
2015-02-15 16:06:06 +00:00
Araq
6004280522
preparations for C++ template support
2015-01-23 00:36:58 +01:00
Araq
e65c296bcc
implemented mixed mode codegen
2014-10-03 01:21:35 +02:00
Araq
2781fea9e2
Nimrod renamed to Nim
2014-08-28 09:38:14 +02:00
Araq
2f43fdb837
renamefest
2014-08-23 01:43:49 +02:00
Araq
b5248d9037
fixes #1143
2014-08-19 10:01:46 +02:00
Araq
9673e4f2df
progress on deepCopy
2014-08-01 23:40:48 +02:00
flaviut
85e6e2a240
Document mangling
2014-05-26 10:44:14 -04:00
flaviut
a568c6102f
Make codegen for 1 and similar valid
2014-05-16 19:07:32 -04:00
Zahary Karadjov
f0953db3ba
handle arbitrary expressions dependent on static input params in proc signatures
2014-03-16 20:42:06 +02:00
Araq
ed5bbfe36d
fixes #968
2014-03-04 08:31:11 +01:00
Zahary Karadjov
3f71b7f1f6
implements #766 ;
...
expressions such as Type.field are now recognised by the compiler.
This also fixes a bug, preventing the user-defined to check for the presence of
regular fields in addition to procs
2014-01-24 23:52:52 +02:00
Zahary Karadjov
789ba107cf
introduce tyFromExpr; fixes #618
2014-01-04 13:10:52 +02:00