Commit graph

478 commits

Author SHA1 Message Date
Andreas Rumpf
dee8e6e98a
gc: destructors is beginning to work (#10483)
* kochdocs.nim: code cleanup
* docgen: nicer indentation
* parser.nim: code cleanup
* fixes #10458
* make tests green again
* make =destroy mixins
* gc:destructors: produced C code is almost working
* --gc:destructors simple program compiles (but leaks memory)
* gc:destructors make examples compile in C++ mode
* destructors: string implementation bugfixes
* strs.nim: minor code cleanup
* destructors: builtin seqs are beginning to work
* remove debugging helpers
2019-01-29 15:12:16 +01:00
LemonBoy
6825430831 Restrict ptr/ref to ptr/ref implicit conversion (#10411)
* Restrict ptr/ref to ptr/ref implicit conversion

Fixes #10409

* Make the ptr conversions explicit in db_odbc
2019-01-22 11:17:20 +01:00
LemonBoy
ee89ba6bdb Fix subtype conversion w/ varargs arguments (#10402)
The type matching is done on the `T` of the `varargs[T]` so the
conversion must be performed to `T` and not to the whole type.

This problem is only noticeable with the cpp backend since C doesn't
give a damn shit about your fucking (wrong) types.

Fixes #9845
2019-01-21 19:12:17 +01:00
Araq
aa7ad88978 fixes #10075 [backport] 2019-01-13 15:52:50 +01:00
Araq
4a6d699bc5 C++: make async tests green on Windows 2018-12-21 22:03:41 +01:00
cooldome
c50a04adc5 More converter fixes (#9737)
* fixes #9735
* fixes #9736
* fixes #3503
2018-11-26 09:51:13 +01:00
cooldome
2ac7f52388 Fixes multiple bugs with sink arguments (#9802)
* fixes #9781

* fix spacing
2018-11-26 09:45:45 +01:00
cooldome
c5c4da4f3c Converter bug fixes (#9700)
* Fixes #9698
* Fixes #9699
2018-11-15 13:14:48 +01:00
Andreas Rumpf
6e8ed8c6fa added first version of a nimfind tool for the poor souls that don't have a good nimsuggest integretation 2018-11-14 16:04:54 +01:00
Andreas Rumpf
cb4d810659 make Nim take roughly 100MB less RAM for bootstrapping via a new compiler switch -d:leanCompiler; useful for the Raberry PI 2018-11-07 18:36:52 +01:00
Araq
c735b75f6f compiler cleanup: flag tfOldSchoolExprStmt is gone 2018-11-06 13:55:03 +01:00
LemonBoy
16a70c84aa Fixes 6544 (#9427)
* Fix call to converters with var/lent args

Fixes #6544

* Fix printing of lent types

* lent is only valid for result types
2018-10-19 21:04:32 +02:00
Miran
675c629fee replace deprecated safeAdd with add (#9416) 2018-10-18 12:29:32 +02:00
Timothee Cour
745f1642d6 implement sizeof and alignof operator (manually squashed #5664) (#9356) 2018-10-14 00:52:28 +02:00
LemonBoy
0ead36dae6 Unchecked arrays now have their own type (#9267) 2018-10-10 21:03:18 +02:00
LemonBoy
b8d2f79ef0 Prevent the construction of recursive tyStatic types (#9256)
Fixes #9255
2018-10-09 14:26:34 +02:00
jcosborn
dd65986795 fixes #4435 (#9185) 2018-10-09 13:34:03 +02:00
Araq
ae901b3272 fixes #7351 2018-10-02 16:18:16 +02:00
Araq
0694c9080f fixes #8043 2018-09-03 16:07:44 +02:00
LemonBoy
b74faf354e Do not materialize empty varargs[untyped] arrays (#8715)
When an empty nkArgList `varargs[untyped]` is passed around it is now
reused for efficiency sake and to prevent the introduction of a spurious
element: before this commit we'd pass the caller a
nkArgList[nkHiddenStdConv[nkBracket]] node instead of just an empty
nkArgList.

Fixes #8706
2018-08-31 12:16:46 +02:00
Andreas Rumpf
df4d5b77a1
introduce precise string '[]', '[]=' accessors; fixes #8049 (#8817) 2018-08-30 23:01:15 +02:00
Araq
e98e214422 fixes #7854 2018-08-30 15:49:51 +02:00
zah
96de224a63 Fix #8126 (#8712)
This is a temporary fix that will be reworked in a follow up commit
that aims to eliminate the tfExplicit flag from the compiler. The
complete and proper fix was considered too risky for inclusion just
before our 0.19 release.
2018-08-21 22:14:12 +02:00
Andreas Rumpf
0da91aa744 changes how the now illegal 'string == nil' comparison is detected 2018-08-15 16:31:56 +02:00
Araq
a0cde8cee6 Merge branch 'devel' into araq-misc 2018-08-13 20:16:18 +02:00
cooldome
aa1cdebdc2 Converters to take into account constraints. Fixes #7520 (#8593) 2018-08-13 15:02:20 +02:00
Andreas Rumpf
dae5450947 WIP: disallow 'nil' for strings and seqs 2018-08-13 11:41:33 +02:00
andri lim
4d5cce9882 fixes #6255, add system.ashr arithmetic right shift (#8547) 2018-08-07 18:41:30 +02:00
Andreas Rumpf
f29225fc63 sigmatch: no trailing whitespace 2018-07-17 16:14:12 +02:00
LemonBoy
9b98add6c7 Do not crash while instantiating a generic outside a call (#8279)
Fixes #8270
2018-07-14 01:44:40 +02:00
LemonBoy
5c5388c0a6 Handle subtype relations for converter parameters (#8248)
Fixes #7098
2018-07-09 20:05:53 +02:00
LemonBoy
c6671776a1 Reset typedescMatched before paramTypesMatch (#8250)
The flag should not be carried out across different parameters.

Fixes #7794
2018-07-09 15:02:48 +02:00
LemonBoy
88714e77d8 Fix comparison of tyGenericBody in typerel (#8045)
As shown in #7734 and #7733 the logic in typerel fails to determine that
`type Foo` and `type Foo` are indeed equal.

Fixes #7734
2018-07-07 20:49:06 +02:00
LemonBoy
ab47a870bc Error out if vararg match isn't an exact one (#8186)
Fixes #8172
2018-07-03 15:10:12 +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
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
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
fb27357b62 A minimal patch enabling the new typedesc and static types syntax 2018-06-16 16:46:32 +03:00
Andreas Rumpf
5348fef003 implements a --nep1:on switch to make the compiler enforce the naming conventions outlined in NEP-1 2018-06-13 01:44:19 +02:00
cooldome
101f23f3a6 manual merge 2 2018-06-12 23:23:21 +01:00
cooldome
37aa488f99 merge devel 2018-06-12 21:19:30 +01:00
Andreas Rumpf
aaceec0744
Merge pull request #7981 from cooldome/Fix_-7980
Fixes 7980
2018-06-12 11:50:40 +02:00
cooldome
77f33db3ed style fixes, typos 2018-06-12 09:27:37 +01:00
cooldome
44d82d9492 style improvements 2018-06-12 09:17:24 +01:00
cooldome
746da12d74 add comment 2018-06-12 00:22:11 +01:00
cooldome
1b7cf3df51 New approach 2018-06-12 00:20:08 +01:00
cooldome
4619ee7058 remove underscores 2018-06-11 23:20:31 +01:00
cooldome
a65e9c0e25 fix comments 2018-06-10 23:27:45 +01:00
cooldome
73b7ec9009 merge devel 2018-06-10 22:58:39 +01:00