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
Zahary Karadjov
a27eb51535
towards support for composite type classes such as seq[Number] and SquareMatrix[T]
2013-12-27 18:34:28 +02:00
Zahary Karadjov
86108be24b
test case for semistatic
2013-12-25 22:40:06 +02:00
Araq
9e92455a53
templates can access hidden fields
2013-12-25 14:53:00 +01:00
Araq
1081c104d0
Merge branch 'vm2' of github.com:Araq/Nimrod into vm2
2013-12-24 01:30:48 +01:00
Satish BD
033938a53a
Correct the spelling of the word 'implicitly'
2013-12-23 04:29:50 +02: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
8c553fa8a2
Merge branch 'master' into vm2
2013-12-13 15:58:03 +01:00
Araq
328f193292
new VM: globals kinda work
2013-12-13 01:21:23 +01:00
Clay Sweetser
5b3bc28721
Commented out CAAS testing code.
2013-12-12 15:04:28 -05:00
Araq
6db20a4be8
new VM: improvements
2013-12-12 01:34:01 +01:00
Michał Zieliński
8561ef5bc8
use parseopt2 in parseopt2 test
2013-12-10 20:48:18 +01:00
Michał Zieliński
896766ae2c
Fix : and = precedence in parseopt.
2013-12-10 19:10:06 +01:00
Michał Zieliński
d1f3512aba
Reimplement parseopt which parses arguments given as a sequence of strings, not single string.
2013-12-09 23:29:16 +01:00
Araq
4ffe6a8282
new VM: passes more tests
2013-12-06 01:48:02 +01:00
Araq
3560827a28
makes 'reject' tests green
2013-12-05 11:28:45 +01:00
Araq
c0a3d44060
bugfix: keywords are sorted
2013-12-05 10:45:36 +01:00
Araq
5eba93d584
Merge branch 'master' into vm2
...
Conflicts:
compiler/sem.nim
2013-12-05 00:03:27 +01:00
Araq
fe983b1309
fixes a regression where memset was used without including <string.h>
2013-12-03 01:59:38 +01:00
Araq
b3d759ca6d
fixes #681
2013-11-30 03:15:14 +01:00
Araq
2dcbc6493a
fixes #686
2013-11-29 20:42:12 +01:00
Zahary Karadjov
a068aaed3c
simple unit test and better documentation for the user defined type classes
2013-11-17 22:50:26 +02:00
Zahary Karadjov
9061b8961e
failing test for static params
2013-11-05 21:55:46 +02:00
Araq
6ea538cec3
computed goto now works; some progress on the new VM
2013-10-25 13:30:34 +02:00
Dominik Picheta
199c4d21bd
Fixed regression on ARM caused by the changed behaviour of noStackFrame in commit ac474a2812.
2013-10-19 21:01:32 +01:00
Andreas Rumpf
b700e0d2f8
Merge pull request #604 from reactormonk/master
...
moved eqproc to the correct magic position
2013-10-05 12:07:26 -07:00
Araq
422327c010
fixed another semicolon related parsing bug
2013-10-02 07:57:30 +02:00
Araq
2f0671eb79
examples from the talk part of test suite
2013-09-27 08:45:14 +02:00
Simon Hafner
ab31ad2704
don't mess with semfold, use vars instead
2013-09-26 15:10:54 -05:00
Simon Hafner
becd55dced
moved eqproc to the correct magic position
...
also added mEqCString to evalOps so the test runs
2013-09-26 15:05:00 -05:00
Araq
a0b82db402
the compiler can now deal with multiple modules of the same name
2013-09-26 17:34:46 +02:00
Araq
275c7ccf82
fixes #575
2013-09-10 22:04:12 +02:00
Araq
40b379859c
resolved the conflict
2013-09-03 23:46:41 +02:00
Araq
891f871ba7
better support for GNU's assembler
2013-09-03 23:44:31 +02:00
Zahary Karadjov
6082595e96
Merge branch 'type-classes' into upstream
2013-09-03 03:14:56 +03:00
Araq
9c6de08db0
fixes #516
2013-08-31 16:45:10 +02:00
Araq
b40ab4dc9e
fixes #554 , fixes #179
2013-08-31 11:49:33 +02:00
Araq
e698d6255b
fixes #563
2013-08-31 10:03:41 +02:00
Araq
6cc06cd35d
fixes #569 ; C++ codegen works again
2013-08-31 02:07:52 +02:00
Araq
4d9b2f671a
fixes #578
2013-08-30 22:47:14 +02:00
Araq
8710118b2c
Merge branch 'master' of github.com:Araq/Nimrod
2013-08-30 12:44:27 +02:00
Araq
a17076cf4f
fixes #572
2013-08-30 12:44:09 +02:00
Zahary Karadjov
9cc23118be
fix tcompiles
2013-08-27 01:01:03 +03:00
Zahary Karadjov
dc33638cb2
proper discrimination between csEmpty and csNoMatch
...
fixes twrongtupleaccess and topaque
2013-08-27 00:08:47 +03:00
Zahary Karadjov
bdeaee4a33
fix tnoop
...
This commit requires further investigation.
Fixing semExpr(nkCall) once and for all to work with sym-choices and to
allow overloading with immediate templates and macros will probably set
this straight too.
2013-08-26 23:43:39 +03: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
56d75bd23b
implemented and documented the new typedesc binding rules
2013-08-23 15:43:27 +03:00
Zahary Karadjov
8682ed9bd0
pass-through of static int generic params to arrays when late instantiation is disabled
2013-08-23 01:10:20 +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