Commit Graph

1167 Commits

Author SHA1 Message Date
Andreas Rumpf
0132f350af Merge pull request #814 from discoloda/devel
Many small improvements to c2nim
2014-01-14 13:42:20 -08:00
Vincent Burns
aec9195c95 Applied Araq's suggestions for c2nim 2014-01-14 16:35:00 -05:00
Vincent Burns
5395347582 removed hack for return statement 2014-01-14 12:05:14 -05:00
Vincent Burns
d35dedf041 Slightly better type parsing for parameters and cast expressions 2014-01-14 11:22:59 -05:00
Vincent Burns
d9a61c13dd Fix for expression parsing, 'new' is a valid C symbol 2014-01-13 02:01:10 -05:00
Vincent Burns
5f905865be Fix for some comments during if statements
added test files
2014-01-13 01:51:36 -05:00
Vincent Burns
58855c2fc7 Support more proper do..while statements 2014-01-13 01:42:26 -05:00
Vincent Burns
97eaeb3aec for statements support comma expressions 2014-01-13 01:16:24 -05:00
Araq
51ee524109 Merge branch 'devel' of https://github.com/Araq/Nimrod into devel 2014-01-13 01:22:03 +01:00
Vincent Burns
570f8b21e1 New expression parser
tests pass
2014-01-12 17:13:23 -05:00
Araq
616434c492 bugfix: renderer supports 'ptr' etc. as type constraint 2014-01-12 21:41:52 +01:00
Araq
137e971547 new vm: bugfix 2014-01-12 21:40:24 +01:00
Vincent Burns
c5bd98b7db Properly lex floating constants
digit-sequence? '.' digit-sequence exponent-part?
digit-sequence '.' exponent-part?
exponent-part: [eE] [+-]? digit-sequence
2014-01-12 13:23:52 -05:00
Vincent Burns
2dc91cb4d5 Lex '\xHH' character constants 2014-01-12 12:53:25 -05:00
Vincent Burns
0a0fec4a5c Added spliceHeader option to c2nim
parse a header file first, then the source. completing a c 'module'
2014-01-12 12:48:06 -05:00
Araq
346443d1b5 case consistency improvements 2014-01-11 21:56:05 +01:00
Zahary Karadjov
1280c56f38 fix bootstrapping on windows 2014-01-06 00:16:16 +02:00
Zahary Karadjov
1ffae7cbaf progress towards fixing tgenericshardcases 2014-01-06 00:15:55 +02:00
Zahary Karadjov
789ba107cf introduce tyFromExpr; fixes #618 2014-01-04 13:10:52 +02:00
Zahary Karadjov
02533c260b fixed #597 2014-01-02 17:55:18 +02:00
Zahary Karadjov
8e0941576f clean-up some obsolete code; close #602 2013-12-31 12:39:43 +02:00
Zahary Karadjov
8f3d5a25a6 Templates will pick the candidate in the nearest scope when symbols are mixed-in 2013-12-31 04:04:59 +02:00
Zahary Karadjov
754e2ef1db migrate the static param handling to ReplaceTypeVars; fix tgenericvariant 2013-12-30 19:15:41 +02:00
Zahary Karadjov
af7c3251cd properly remove intLiterals from proc signatures; fixes trettypeinference 2013-12-30 17:07:49 +02:00
Zahary Karadjov
7e24cf26de handle recursive types during the instantiation of meta types; propagate tfHasMeta more carefully 2013-12-30 16:06:32 +02:00
Zahary Karadjov
046d829e5d Introduce a PreMain proc in the C codegen
The rationale here is that it has become too hard to step into a program
when #line directives are enabled. You have to skip over many lines of init
code that doesn't have corresponding lines in the nimrod program.
Now, you can just step-out of PreMain and go straight to the useful code
in NimMain.
2013-12-30 11:02:48 +02:00
Zahary Karadjov
e3f53409f6 proc redefinition search based on the type system instead of on sloppy AST matching
This will work the same for procs/templates/macros/etc, having arbitrary mix of implicit
and explicit generics (as long as the symbols are equivalent for the purposes of overload
resolution, they will be detected as redefinitions)

fixes tgeneric
2013-12-30 10:57:12 +02:00
Zahary Karadjov
fa3bb8d66b restore return type inference 2013-12-30 00:03:57 +02:00
Zahary Karadjov
723efe7cfb fix the filtering of void params in procs' signatures 2013-12-29 19:26:52 +02: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
Zahary Karadjov
72291875bf integrate the logic of fixupProcType into ReplaceTypeVars 2013-12-29 16:08:33 +02:00
Araq
b731e6ef1c case consistency: cs:partial bootstraps on windows 2013-12-29 03:19:10 +01:00
Araq
438703f59e case consistency: next steps 2013-12-29 01:13:51 +01:00
Araq
1101a40f91 improvements for 'pretty' 2013-12-28 23:30:53 +01:00
Zahary Karadjov
66a2556525 make more tests green 2013-12-29 00:00:37 +02:00
Zahary Karadjov
5d75ce2f2e fix tclosure4 2013-12-28 15:07:30 +02:00
Zahary Karadjov
f34ca1a7d7 fix illegal recursion checks 2013-12-28 14:17:36 +02:00
Zahary Karadjov
a59f13b00d lift generic parameters from concrete composite type classes 2013-12-28 12:50:45 +02:00
Araq
f2b9905b4e case consistency part 9 2013-12-28 01:57:19 +01:00
Araq
e2648fa3fb case consistency part 8 2013-12-28 01:47:40 +01:00
Araq
9c3751a37c case consistency part 5 2013-12-28 00:37:45 +01:00
Araq
92b8fac94a case consistency part 4 2013-12-27 23:10:36 +01:00
Araq
706266d8b7 case consistency part 3 2013-12-27 21:46:43 +01:00
Zahary Karadjov
a27eb51535 towards support for composite type classes such as seq[Number] and SquareMatrix[T] 2013-12-27 18:34:28 +02:00
Araq
a427648c48 case consistency part 2 2013-12-27 16:35:21 +01:00
Araq
2df9b442c6 case consistency part 1 2013-12-27 15:48:53 +01:00
Zahary Karadjov
e2594f44bd bugfix: in some contexts, newSeq[T](n) is incorrectly inferred to have a seq[typedesc[T]] type 2013-12-26 01:09:10 +02:00
Zahary Karadjov
edab4aaad0 better integration of tyStatic into typeRel 2013-12-25 22:29:44 +02:00
Zahary Karadjov
1d02f2ea53 wip type class reforms (the compiler bootstraps fine)
* replace tfAny and tfAll with tyAnd and tyOr
* integrate matchTypeClass into typeRel
* introduce tyBuiltInTypeClass to handle types such as tuple, object, proc, etc
2013-12-25 19:25:04 +02:00
Araq
9e92455a53 templates can access hidden fields 2013-12-25 14:53:00 +01:00