Commit Graph

1019 Commits

Author SHA1 Message Date
Araq
596496f695 fixes #566 2013-09-11 00:00:11 +02:00
Araq
4d86b8a83c fixes #588 2013-09-10 23:49:53 +02:00
Araq
275c7ccf82 fixes #575 2013-09-10 22:04:12 +02:00
Araq
138db5a85d disabled M&S GC again 2013-09-10 00:46:02 +02:00
Araq
f659b6a0d9 Merge branch 'master' of github.com:Araq/Nimrod 2013-09-10 00:40:19 +02:00
Araq
db19b18241 cn2im: basic C++ support 2013-09-10 00:40:06 +02:00
Zahary Karadjov
f05ac0cb23 fix regressions affecting the echo magic and the creating of rod files
the markAndSweep GC was not responsible for the regressions so
this commit restores its use
2013-09-07 11:55:19 +03:00
Zahary Karadjov
0ade885617 reverting the GC change 2013-09-05 12:35:42 +03: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
Mark Flamer
73aba23a49 Add arity typetrait 2013-09-02 18:20:00 -07:00
Zahary Karadjov
6a04757e6d switching the compiler to the markAndSweep collector
This produces faster bootstrapping, works properly for the caas mode
and fixes the Aporia build on a mac
2013-09-03 03:18:09 +03:00
Zahary Karadjov
6082595e96 Merge branch 'type-classes' into upstream 2013-09-03 03:14:56 +03:00
Araq
f2b9af6ae1 bugfix: line information for comments 2013-09-01 18:50:03 +02:00
Araq
6825a69a70 -d:nocaas mode for easier bootstrapping on exotic OSes (Haiku) 2013-09-01 15:54:32 +02:00
Araq
8087f51d14 fixes #582 2013-09-01 10:36:13 +02:00
Zahary Karadjov
b5d833b329 implemented the using statement 2013-08-31 19:40:36 +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
1161482ec2 fixes #459 2013-08-31 11:22:49 +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
cf689f7472 bugfix: conversions to float32 are allowed again but of lower priority 2013-08-30 21:47:55 +02:00
Araq
74c24f3e6d conversions to float32 are allowed again but of lower priority 2013-08-30 21:40:47 +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
Araq
7056ceda67 float64 is now an alias to 'float'; fixes #545 2013-08-30 12:24:54 +02:00
Araq
1ad1980f1f bugfix: 'not x of y' requires () 2013-08-30 12:16:18 +02:00
Araq
5f943cf4bc docgen: more newlines in the output to support primitive postprocessors 2013-08-29 23:18:02 +02:00
Zahary Karadjov
01ccb52a00 minor improvement towards tgenericshardcases 2013-08-28 01:10:51 +03:00
Zahary Karadjov
52b00630c8 fix tisop
Adding nil checks on the exit paths for semCompiles errors.
This was probably not needed before, because semIndirectOp
had a special detection for semCompiles contexts. We could
try to restore these, but wouldn't this just postpone the crashes
until someone tries the same expressions in nimrod check?

One of the previous commits also used errorNode to avoid
returning nil. This may be an alaternative approach.
2013-08-27 01:51:02 +03: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
89086a8e19 prevent eval crashes due to PContext-dependent ops not being available in evalConstExpr 2013-08-25 18:11:28 +03:00
Zahary Karadjov
6378fbd66e working code for simple cases of user-defined type classes 2013-08-25 12:17:40 +03:00
Zahary Karadjov
03577bc936 fix parsing of `proc foo(x: distinct Type)` 2013-08-24 23:44:37 +03:00
Zahary Karadjov
037a1a3e0f parsing of user defined type classes 2013-08-23 21:36:56 +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
Araq
a8c8a85135 Merge branch 'master' of github.com:Araq/Nimrod 2013-08-22 19:28:58 +02:00
Araq
cf38d635bf implemented opcTypeTrait 2013-08-22 19:28:34 +02:00
Araq
6f1fc1b5ba fixed and documented computedGoto pragma 2013-08-22 08:38:47 +02:00
Zahary Karadjov
ca3a4ce672 hacky fix for generic constraints matching 2013-08-19 01:48:25 +03:00
Zahary Karadjov
4980ef85e2 check the owners of generic instantiations properly and fix tinvalidclosure 2013-08-19 01:45:16 +03:00
Zahary Karadjov
b01d9b6181 work-in-progress for compiling generics in their owner module 2013-08-19 01:45:16 +03:00
Zahary Karadjov
3e79e9f981 some steps to improve the type mismatches with the new
generic instantiation logic
2013-08-19 01:45:16 +03:00