Araq
6a9baf3fd7
compiler bootstraps with new VM
2013-10-15 08:06:54 +02:00
Araq
9de3bc8ef6
improvements for TR macros
2013-09-17 23:43:07 +02:00
Zahary Karadjov
6082595e96
Merge branch 'type-classes' into upstream
2013-09-03 03:14:56 +03:00
Araq
b40ab4dc9e
fixes #554 , fixes #179
2013-08-31 11:49:33 +02:00
Araq
4d9b2f671a
fixes #578
2013-08-30 22:47:14 +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
89086a8e19
prevent eval crashes due to PContext-dependent ops not being available in evalConstExpr
2013-08-25 18:11:28 +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
f760bc243b
Revert "Revert "static and default params for generics""
...
This reverts commit 0662ec4a43 .
2013-08-19 01:29:37 +03:00
Araq
731c6f9083
'nimrod pretty' usable
2013-07-31 20:35:04 +02:00
Araq
1bdc0d1dd3
fixes lots of regressions
2013-06-29 10:04:18 +02:00
Araq
2ca05eeb16
var tuple unpacking works at compile time
2013-06-28 08:40:49 +02:00
Araq
d4c91bbd85
improvements for 'not nil' checking
2013-06-13 01:40:11 +02:00
Araq
23ef565a3c
implemented large parts of the 'not nil' checking
2013-06-09 23:29:43 +02:00
Araq
2aaa8f7909
implemented dataflow analysis; activate via --warning[Uninit]:on
2013-06-04 21:58:39 +02:00
Araq
2f5d5e3ba7
fixes #451
2013-06-04 07:48:46 +02:00
Araq
0662ec4a43
Revert "static and default params for generics"
...
This reverts commit 46813bbe4e .
2013-05-27 23:18:38 +02:00
Zahary Karadjov
46813bbe4e
static and default params for generics
2013-05-26 13:59:39 +03:00
Araq
1c9b4e5d33
made some tests green; implemented 'from module import nil'
2013-05-19 23:17:16 +02:00
Araq
7b36d3d6ff
made some tests green
2013-05-19 17:06:11 +02:00
Araq
9f6547ba63
fixes #433
2013-05-18 23:41:44 +02:00
Araq
635ad3b336
Merge branch 'master' of github.com:Araq/Nimrod
2013-05-14 00:59:07 +02:00
Araq
9b9a180947
'inject' for 'for' loop variables
2013-05-14 00:41:07 +02:00
Zahary Karadjov
1d29d24465
documented the `noforward` pragma
2013-05-12 16:14:28 +03:00
Zahary Karadjov
14b5d5f262
merged the persistent scopes work with the delayed proc compilation strategy
2013-05-12 14:41:32 +03:00
Zahary Karadjov
f317807a89
final fixes giving us a working compiler
2013-05-12 02:19:17 +03:00
Zahary Karadjov
7a2b1a7520
get rid of ImportTablePos and ModuleTablePos
2013-05-12 01:20:40 +03:00
Zahary Karadjov
3d1c6de638
get rid of the SymTab* procs in astalgo
2013-05-12 00:49:00 +03:00
Zahary Karadjov
9a6f47ae69
switch to a linked list of scopes
2013-05-11 23:45:20 +03:00
Zahary Karadjov
f44a4362bb
added a `noforward` pragma that enables a new compilation strategy
...
not requiring forward declarations on a per-module basis
2013-05-11 22:47:37 +03:00
Araq
9fc98cefda
Merge branch 'master' into newparser
2013-05-07 18:44:24 +02:00
Araq
4de6d1be72
fixed void context detection
2013-05-07 13:54:38 +02:00
Araq
cb51c1a0e7
more intelligent handling of 'discardable'
2013-05-07 11:13:29 +02:00
Araq
635469ec45
fixes #121
2013-05-06 20:36:03 +02:00
Araq
6c0425d574
'result/return' triggers a void context
2013-05-06 18:30:54 +02:00
Araq
f8af7ed6b4
more intuitive behaviour for 'discardable' in expression bodies
2013-05-04 18:58:58 +02:00
Zahary Karadjov
3f1e9b3a25
Merge branch 'master' of gh:/Araq/Nimrod into upstream
2013-05-04 17:50:38 +03:00
Araq
3aa36a8568
bugfixes
2013-05-04 02:22:38 +02:00
Araq
fa0a327dd6
completed expr/stmt unification
2013-05-03 23:51:43 +02:00
Araq
2afadc5c9c
first steps to the expr/stmt unification
2013-04-30 02:38:49 +02:00
Araq
3cb3813eed
fixes #287 ; bugfix: subrange checking is performed again
2013-04-12 16:24:58 +02:00
Araq
bb3f648bd2
improvements for destructors
2013-04-08 00:10:34 +02:00
Grzegorz Adam Hankiewicz
72a3e21f28
Removes executable bit for text files.
2013-03-16 23:53:07 +01:00
Araq
4f79e34a9a
fixed some typos
2013-03-05 21:36:06 +01:00
Araq
5b0d8246f7
make some tests green
2013-03-03 12:05:03 +01:00
Araq
eebee0eff2
lazy operand sem'checking (beware)
2013-03-02 20:23:56 +01:00
Zahary Karadjov
0774af169b
containerID is no longer needed for generics
2013-03-01 12:12:53 +02:00
Araq
45c9975e9c
better typeToString; fixes #340
2013-02-20 01:00:17 +01:00
Araq
d15981adbc
system.fields|fieldPairs for objects
2013-02-18 17:23:26 +01:00
Zahary Karadjov
81a3585872
merged upstream master
2013-01-27 23:41:45 +02:00