Commit Graph

62 Commits

Author SHA1 Message Date
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