Andreas Rumpf
07f58ddfa9
rename: semasgn -> liftdestructors
2019-03-14 07:59:44 +01:00
Andreas Rumpf
721bf7188b
code cleanup: there is no tyOptRef
2019-02-22 19:42:11 +01:00
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
cooldome
1e63f1edb3
destructors: first step towards fixing #9617 ( #10341 )
2019-01-18 08:51:22 +01:00
cooldome
44b4e289d6
destructors: lift type bound operations for case and distinct objects ( #10238 )
2019-01-10 09:25:35 +01:00
Andreas Rumpf
5ffa9a8be6
destructors: defensive programming against wrong generated destructor for string/seq
2018-12-11 22:02:18 +01:00
Araq
3fe8b4f69d
fixes #9692
2018-11-15 16:18:28 +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
Araq
e71410d74e
language cleanup: the .unchecked pragma is dead
2018-11-06 13:55:03 +01:00
LemonBoy
0ead36dae6
Unchecked arrays now have their own type ( #9267 )
2018-10-10 21:03:18 +02:00
Andreas Rumpf
9364369c1f
make tests green again
2018-09-24 16:00:57 +02:00
Andreas Rumpf
700448f359
destroyer pass: adaptations for the new destructor based runtime
2018-07-27 18:21:32 +02:00
Andreas Rumpf
04b3f8f24a
enable destructors without the --newruntime switch
2018-07-04 20:36:15 +02:00
Andreas Rumpf
40ec7be45c
refactoring: remove idents.legacy global variable and pass the IdentCache around explicitly
2018-05-27 22:09:15 +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
2a7fc84c86
remove ast.emptyNode global; cleanup configuration.nim
2018-05-16 03:06:07 +02:00
Andreas Rumpf
dd35111ff2
semstmts compiles again
2018-05-12 19:45:19 +02:00
Andreas Rumpf
ee366f1746
.experimental can now be used to enable specific features
2018-04-24 09:34:29 +02:00
Andreas Rumpf
e4081a7201
preparations for language extensions: 'sink' and 'lent' types
2018-01-07 23:09:26 +01:00
Andreas Rumpf
e695f9d94e
make Nim compile with older nim versions
2017-12-28 19:48:21 +01:00
Araq
fa92c519aa
more progress on destructors; removed old destructor based code as it proved confusing
2017-12-01 01:52:00 +01:00
Andreas Rumpf
70ea45cdba
deprecated unary '<'
2017-10-29 08:37:13 +01:00
Araq
3aa7c2232e
destructors: supportsCopyMem finally works for recursive types
2017-10-26 00:55:23 +02:00
Araq
4f2b79a380
topttree destructor finally works
2017-10-26 00:55:23 +02:00
Araq
b407f083ba
destructors: work in progress
2017-10-26 00:55:23 +02:00
Andreas Rumpf
1a0032eb68
added broken tbintree test
2017-10-19 21:03:20 +02:00
Andreas Rumpf
4f633dde64
make nested custom seqs work
2017-10-19 13:29:11 +02:00
Andreas Rumpf
9911d375b3
make destructors more robust against unchecked arrays
2017-10-19 13:29:11 +02:00
Andreas Rumpf
35c8b5e3bc
destructors: irresponsibly simple tcustomseq test works
2017-10-17 22:04:40 +02:00
Andreas Rumpf
58d5f96790
destructors: lift type bound ops to objects and arrays etc
2017-10-17 14:48:16 +02:00
Araq
45d74f4081
destructors: preparations for upcoming changes
2017-10-17 12:46:49 +02:00
Andreas Rumpf
8780d25e03
minor refactorings for better destructors
2017-10-14 20:37:49 +02: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
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
Andreas Rumpf
b7a1cad4a4
make tests green again
2017-02-24 13:05:58 +01:00
Andreas Rumpf
46efaf294b
big compiler refactoring; avoid globals for multi method dispatcher generation
2017-02-22 16:27:52 +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
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
3a13706d7d
fixes #4673
2016-09-01 13:02:53 +02:00
Andreas Rumpf
b47d9b7b91
fixes #4371
2016-07-08 10:34:12 +02:00
Araq
05e39cf6ad
overloading of '=' works
2015-04-06 23:21:52 +02:00
Araq
78f371c03a
first implementation of overloading of '='; missing: rewriting let/var sections
2015-04-06 23:21:51 +02:00
Araq
e8b4217c3b
minor todo update
2015-03-23 13:10:20 +01:00
Araq
3bcafb1c3a
concept example from the manual now works again
2015-03-23 13:10:19 +01:00
Federico Ceratto
c95f6f117a
Fix typos
2015-02-15 16:06:06 +00:00
Araq
fe30ec83e2
nimsuggest improvements
2015-01-30 03:04:45 +01:00