summary refs log tree commit diff stats
path: root/compiler/ccgutils.nim
Commit message (Collapse)AuthorAgeFilesLines
* right shift is now by default sign preserving (#11322)Arne Döring2019-05-291-17/+17
| | | | | | | | | | | * 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
* Replace countup(x, y-1) with x ..< yClyybber2019-05-071-2/+2
|
* name mangling: also special case the backslash characterAraq2018-09-171-0/+1
|
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-1/+1
|
* platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-2/+2
|
* ccgutils: code cleanup, no globalsAraq2018-05-161-108/+1
|
* C code generator compiles againAndreas Rumpf2018-05-121-1/+1
|
* remove dead code elimination option (#7669)Jacek Sieka2018-04-231-4/+0
|
* preparations for language extensions: 'sink' and 'lent' typesAndreas Rumpf2018-01-071-2/+2
|
* deprecated unary '<'Andreas Rumpf2017-10-291-2/+2
|
* first steps of making 'opt' a first class type for NimAndreas Rumpf2017-09-251-1/+1
|
* some work to make 'opt' a first class typeAndreas Rumpf2017-09-241-2/+2
|
* a few tiny cleanups (#5712)Jacek Sieka2017-05-291-16/+4
| | | exposes emitLazily (for nlvm) and simplifies some conditionals
* Ascii character code 127 (DEL) is not printable.Markus F.X.J. Oberhumer2017-05-161-1/+1
|
* introduce tyInferred for the unbound concept type paramsZahary Karadjov2017-03-241-1/+1
| | | | | | | | | | | | | | | | | | * 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.
* support for accessing the inferred concept type params with the dot operatorZahary Karadjov2017-03-241-0/+2
|
* Fixes #5452Yuriy Glukhov2017-02-281-1/+1
|
* fixes a minor codegen issue where name mangling could produce an identifier ↵Araq2017-02-261-1/+1
| | | | used by the codegen; refs #5437
* removed compiler internal list implementation (#5371)Arne Döring2017-02-221-1/+1
|
* name mangling bugfixes; ndi file generation for debugger supportAndreas Rumpf2017-02-031-4/+8
|
* new name mangling rules for easier debuggingAndreas Rumpf2017-02-021-14/+32
|
* removed tyArrayConstr completely from the compiler; introduced tyAlias ↵Araq2016-11-141-2/+2
| | | | instead in preparation for further bugfixes
* signature hashing: more progressAraq2016-11-111-75/+65
|
* clean up tyMutable remnantsJacek Sieka2016-10-241-2/+2
|
* clean up tyConst remnantsJacek Sieka2016-10-241-2/+2
|
* clean up tyBigNum remnantsJacek Sieka2016-10-241-2/+2
|
* remove remnants of tyIterJacek Sieka2016-10-241-1/+2
|
* get rid of deprecated toLower/toUpperAndreas Rumpf2016-07-191-1/+1
|
* fixes #4371Andreas Rumpf2016-07-081-1/+1
|
* fixes #3329Araq2015-09-181-1/+4
|
* fixes #2551; fixes #2212; breaks bootstrapping in debug mode; bootstrap with ↵Araq2015-04-251-1/+1
| | | | -d:release
* Get rid of deprecation warningsdef2015-04-071-3/+3
|
* prevent name mangling for C++ DLLsAraq2015-03-051-29/+29
|
* test tsets2.nim compiles againAraq2015-03-011-3/+3
|
* fixes #2199, fixes #2197Araq2015-02-241-22/+26
|
* Fix typosFederico Ceratto2015-02-151-1/+1
|
* preparations for C++ template supportAraq2015-01-231-4/+2
|
* implemented mixed mode codegenAraq2014-10-031-1/+1
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* renamefestAraq2014-08-231-1/+1
|
* fixes #1143Araq2014-08-191-1/+5
|
* progress on deepCopyAraq2014-08-011-2/+4
|
* Document manglingflaviut2014-05-261-0/+3
|
* Make codegen for `1` and similar validflaviut2014-05-161-0/+21
|
* handle arbitrary expressions dependent on static input params in proc signaturesZahary Karadjov2014-03-161-2/+3
|
* fixes #968Araq2014-03-041-1/+0
|
* implements #766;Zahary Karadjov2014-01-241-1/+1
| | | | | | 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
* introduce tyFromExpr; fixes #618Zahary Karadjov2014-01-041-3/+2
|
* Merge branch 'upstream' into develZahary Karadjov2013-12-291-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: compiler/ccgutils.nim compiler/msgs.nim compiler/sem.nim compiler/semexprs.nim compiler/seminst.nim compiler/semmagic.nim compiler/semstmts.nim compiler/semtypes.nim compiler/semtypinst.nim compiler/sigmatch.nim compiler/types.nim compiler/vmgen.nim lib/core/macros.nim lib/system.nim tests/reject/tenummix.nim web/news.txt
| * static params: expr[T] is now static[T]Zahary Karadjov2013-12-191-1/+1
| | | | | | | | | | | | | | This introduces tyStatic and successfully bootstraps and handles few simple test cases. Static params within macros are no longer treated as PNimrodNodes - they are now equivalent to constants of the designated type.
54'>854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071