Andreas Rumpf
8d714d2b02
low/high/of are now overloadable operations
2017-08-30 23:14:33 +02:00
Zahary Karadjov
cd02561368
introduce a pre-processing pass for the concept bodies
...
fixes #4982
fixes #3805
close #3414
2017-06-20 11:29:42 +02:00
Zahary Karadjov
bc01835091
Allow tyOr,tyAnd and tyNot to be constructed in more contexts
2017-04-28 17:07:54 +03:00
Zahary Karadjov
9574d318ae
use lower-case proc names
2017-03-24 17:03:55 +02:00
Zahary Karadjov
52b241fd57
new type traits: GenericHead and StripGenericParams
2017-03-24 16:59:47 +02:00
Zahary Karadjov
644d645ea7
implement the special treatment of explicit type params in concepts
2017-03-24 16:58:15 +02:00
Andreas Rumpf
46efaf294b
big compiler refactoring; avoid globals for multi method dispatcher generation
2017-02-22 16:27:52 +01:00
Andreas Rumpf
01ae0d28d4
recursive modules are only detected to improve error messages
2016-11-24 12:27:21 +01:00
Jacek Sieka
6f7b891bdc
remove remnants of tyIter
2016-10-24 21:10:48 +08:00
Jacek Sieka
4d558e2608
Merge remote-tracking branch 'origin/devel' into compiler-cleanup
2016-08-17 18:49:36 +08:00
Matthew Baulch
674a1110f0
Require ordinal or set argument to system.ord
2016-08-11 21:13:18 +10:00
Jacek Sieka
3cd4cf4320
remove unused stuff
2016-08-09 22:54:27 +08:00
Andreas Rumpf
de6198c747
fixes #4555
2016-08-02 12:47:02 +02:00
Andreas Rumpf
db56174a19
fixes #3548
2016-07-15 00:22:14 +02:00
Andreas Rumpf
e8faa214eb
fixes #4295
2016-06-07 22:46:12 +02:00
bit
b6a11271b3
Removed error that disallows slices with negative indexes
2016-02-22 16:37:29 +02:00
Andreas Rumpf
bd8e89774e
fixes a critical bug concerning a[^1] rewritings
2015-12-14 18:40:58 +01:00
Araq
29a9166966
fixes the most pressing regressions introduced by the new handling of a[i] in the compiler
2015-09-16 15:34:54 +02:00
Araq
8ef66b973d
first attempt to fix 'a[i]' handling in generics
2015-09-12 10:55:28 +02:00
Yuriy Glukhov
a5be556a4c
Untyped pointers godegen changed. addr expression fixed.
2015-08-21 13:29:25 +03:00
Araq
ab26298a03
added system.unsafeAddr
2015-08-04 17:31:18 +02:00
Araq
0c947f31ba
system.locals is now a plugin for education
2015-04-24 02:08:06 +02:00
Araq
13c5f792dc
fixes #2447
2015-04-22 16:11:51 +02:00
Araq
4be0d16520
added '..^' and '..<' operators; 'nil' is allowed for 'len'; added plugin system to the compiler
2015-04-22 12:04:11 +02:00
Araq
2b80d75aa2
fixes #2420 ; negative indexing for slicing is obsolete (breaking change!)
2015-03-28 00:15:04 +01:00
Araq
ed0d9e271d
disallow negative indexing
2015-03-27 01:30:06 +01:00
Araq
5d63ecb3a4
implemented a[^1] notation
2015-03-26 02:12:38 +01:00
Araq
08c0ba379a
fixes #1805
2015-03-21 20:38:28 +01:00
Guillaume Gelin
3119fe087d
Happy new year!
2015-01-06 15:26:33 +01:00
Araq
105a0616a9
implemented procCall builtin
2014-11-28 02:43:41 +01:00
Araq
0257f389fe
fixes #1366
2014-08-30 20:16:35 +02:00
Araq
2781fea9e2
Nimrod renamed to Nim
2014-08-28 09:38:14 +02:00
Araq
d2dbcf2fa4
progress with futures
2014-05-23 08:57:16 +02:00
Araq
417b9f5a1d
'parallel' statement almost working
2014-05-22 08:41:50 +02:00
Araq
c43e8df90c
progress for the 'parallel' statement
2014-05-14 01:51:44 +02:00
Araq
73c6efdf66
'nil' as a statement is deprecated, use an empty 'discard' instead
2014-01-19 16:54:59 +01:00
Zahary Karadjov
afddae5aaf
Merge branch 'upstream' into devel
...
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
2013-12-29 17:21:00 +02:00
Araq
438703f59e
case consistency: next steps
2013-12-29 01:13:51 +01:00
Zahary Karadjov
66a2556525
make more tests green
2013-12-29 00:00:37 +02:00
Araq
92b8fac94a
case consistency part 4
2013-12-27 23:10:36 +01:00
Zahary Karadjov
027f30610e
static params: expr[T] is now static[T]
...
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.
2013-12-19 01:06:38 +02:00
Araq
328f193292
new VM: globals kinda work
2013-12-13 01:21:23 +01:00
Araq
6db20a4be8
new VM: improvements
2013-12-12 01:34:01 +01:00
Araq
6a9baf3fd7
compiler bootstraps with new VM
2013-10-15 08:06:54 +02:00
Zahary Karadjov
28d9398de7
implemented delegators and improved the error messages of unmatched type classes
2013-08-26 23:29:24 +03:00
Zahary Karadjov
fee2a7ecfa
Experimental support for delayed instantiation of generics
...
This postpones the semantic pass over the generic's body until
the generic is instantiated. There are several pros and cons for
this method and the capabilities that it enables may still be possible
in the old framework if we teach it a few new trick. Such an attempt
will follow in the next commits.
pros:
1) It allows macros to be expanded during generic instantiation that
will provide the body of the generic. See ``tmacrogenerics``.
2) The instantiation code is dramatically simplified. Dealing with unknown
types in the generic's body pre-pass requires a lot of hacky code and error
silencing in semTypeNode. See ``tgenericshardcases``.
cons:
1) There is a performance penalty of roughly 5% when bootstrapping.
2) Certain errors that used to be detected in the previous pre-pass won't
be detected with the new scheme until instantiation.
2013-08-23 01:10:20 +03:00
Zahary Karadjov
7a2b1a7520
get rid of ImportTablePos and ModuleTablePos
2013-05-12 01:20:40 +03:00
Zahary Karadjov
a8e12afc76
test-runner for caas multi-step tests
2013-05-04 01:04:28 +03:00
Araq
c9ed846a43
added system.locals
2013-03-21 21:28:46 +01:00
Zahary Karadjov
badb6c0f66
improved support for typedesc values
...
* can be stored in constants and variables (including in containers like sequences)
* can be passed to and returned from macros
2012-09-25 02:03:15 +03:00