Commit Graph
2298 Commits
Author SHA1 Message Date
Zahary Karadjov c8c8d2035a partially documented the new features 2013-09-03 03:14:22 +03:00
Zahary Karadjov b5d833b329 implemented the using statement 2013-08-31 19:40:36 +03: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 3940bd5b84 GC: added static cycleGC checks 2013-08-22 19:20:45 +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
Zahary Karadjov 8b933e470e fixes iterating over enums 2013-08-19 01:36:04 +03:00
Zahary Karadjov c6d0611112 Revert "Revert "made some tests green"" 2013-08-19 01:35:33 +03:00
Zahary Karadjov a453d8d64d Revert "Revert "further fixes for void stripping. fixes tvoid.""
This reverts commit d11cf5d191.
2013-08-19 01:30:17 +03:00
Zahary Karadjov cefa16ae77 Revert "Revert "fix threading tests""
This reverts commit 9c45e33d8c.
2013-08-19 01:29:58 +03:00
Zahary Karadjov fc858927f0 Revert "Revert "fix tforwardgeneric""
This reverts commit e3f93241c3.
2013-08-19 01:29:47 +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
Zahary Karadjov ea54aa386c Revert "Revert "allow keyword params for the [] and {} operators""
This reverts commit b7ea4a7e65.
2013-08-19 01:29:22 +03:00
Zahary Karadjov 19eeb3556e remerge "allow void as field type" 2013-08-19 01:29:01 +03:00
Zahary Karadjov 6ddd4e6a3f Revert "Revert "bugfix: emulated thread vars used in combination with the mark & sweep GC""
This reverts commit 75c586bbe1.
2013-08-19 01:27:05 +03:00
Zahary Karadjov dfb5cb3c5d remerge "Fixes #267" 2013-08-19 01:26:37 +03:00
Zahary Karadjov f127bc387a Revert "Revert "test cases for the new features""
This reverts commit e1b668c868.
2013-08-19 01:17:07 +03:00
Araq 50403afb5c fixes base64 module 2013-08-15 00:22:48 +02:00
Araq d53f313599 implemented computed goto support 2013-08-13 11:21:02 +02:00
Araq 1633e22aec Merge branch 'master' of github.com:Araq/Nimrod 2013-08-11 18:48:59 +02:00
Araq d18c82a9ef new VM: preparations for evalMacroCall 2013-08-11 18:48:33 +02:00
Araq db027faf38 fixes a long standing channels bug 2013-08-09 00:25:31 +02:00
Araq a294d45fd6 Merge branch 'master' of github.com:Araq/Nimrod 2013-08-08 21:11:20 +02:00
Araq 288cd05f89 new VM: register allocator bugfix; implemented more magics 2013-08-08 21:10:54 +02:00
Zahary Karadjov 5dfc0d0d19 Take into account dirty buffers in suggest output; Fixes zah/nimrod.vim#14 2013-08-07 18:58:46 +03:00
Araq 06b3852143 Merge branch 'master' of github.com:Araq/Nimrod 2013-08-07 01:40:37 +02:00
Araq aefa0da8a6 new VM: implemented constructors and jump optimizer 2013-08-07 01:40:08 +02:00
Araq ee9aee6c00 bugfix createDir for solaris 2013-08-07 01:36:15 +02:00
Zahary Karadjov 5c32156a71 fixes #534 2013-08-07 00:01:58 +03:00
Dominik Picheta 015b814e6a Updated bootstrap instructions. Removed csources.zip. 2013-08-04 22:24:21 +01:00
Dominik Picheta 201e4d2835 Modified the behaviour of the build scripts to accommodate new C sources
repo.
2013-08-04 19:41:20 +01:00
Dominik Picheta 8ac7bda244 sockets.send now throws an exception when a non-blocking socket is
passed to it.
2013-08-04 19:13:29 +01:00
Araq 30bb68d48a new VM: next steps 2013-08-03 21:14:57 +02:00