Commit Graph

2608 Commits

Author SHA1 Message Date
Zahary Karadjov
c1ad05c4c5 Merge branch 'master' of github.com:Araq/Nimrod into upstream 2012-04-10 22:39:00 +03:00
Zahary Karadjov
a64f03230a proper order of initialization for .global. variables 2012-04-10 20:53:44 +03:00
Zahary Karadjov
e941a14767 completing the "types as first class values" reform 2012-04-06 18:14:12 +03:00
Zahary Karadjov
efb53233cb the foundations of a type traits module; better error messages for expr, typedesc and typeclasses params 2012-04-06 13:46:31 +03:00
Araq
0f96e72b18 fixed another docgen bug; initial mongodb wrapper 2012-04-06 00:41:27 +02:00
Zahary Karadjov
98b7bdaa50 when expressions, proper rendering for nkDo and nkLambda and parser support for x.type and x.addr 2012-04-05 22:43:37 +03:00
Zahary Karadjov
6d80583d5a Added `global` pragma that can be used to introduce new global variables from within procs 2012-04-05 20:43:22 +03:00
Zahary Karadjov
8d698b2bdd Merge branch 'master' of github.com:Araq/Nimrod into upstream 2012-03-31 18:51:11 +03:00
Zahary Karadjov
22dc76a361 typedesc and expr params
types are now valid proc/template/macro params and you can overload over them:
proc foo(T: typedesc)        # accept any type
proc foo(T: typedesc{int}) # overload specifically for int
proc foo(T: typedesc{int or float or Callable}) # overload for any type matching the constraints

expr{type} is a param expecting compile time value of the designated type (or type class).

when typedesc or expr params are used with a proc, the proc will be instantiated once
for each unique type/value used as parameter.
2012-03-31 18:50:48 +03:00
Araq
142e849b91 implemented support for the AVR CPU and standalone OS 2012-03-31 01:03:14 +02:00
Araq
97743faa83 tests tcnstseq and tcnstseq3 work again 2012-03-28 23:03:55 +02:00
Araq
1af0601011 bugfix #100 again 2012-03-28 16:43:05 +02:00
Araq
a79acb58fc attempt to fix a bug concerning implicit type conversions in case statements 2012-03-27 00:48:59 +02:00
Zahary Karadjov
6216046bc6 genSym support for hygienic macros and templates.
example:
template hygienic(val: expr) =
  var `*x` = val
  echo `*x`

*x was chosen as mnemonic for "opposite of public" and thus private
2012-03-26 04:36:26 +03:00
Zahary Karadjov
bc2eb0ea9b generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
Araq
91db6bd9c9 fixes #102 2012-03-23 20:28:35 +01:00
Araq
5c33f76517 bugfix: GC marker procs; making tests green again 2012-03-23 09:29:53 +01:00
Araq
0857efe512 some bugfixes for symbolfiles 2012-03-23 00:16:29 +01:00
Zahary Karadjov
296ef07955 tyOrdinal now means "integral types". tyTypeClass created to take care of type constraints 2012-03-22 16:24:12 +02:00
Zahary Karadjov
3a5cf3d63a expr params implemented for procs; paving the way for type classes 2012-03-22 03:27:00 +02:00
Araq
4f22326b24 Merge branch 'master' of github.com:Araq/Nimrod 2012-03-21 23:11:16 +01:00
Araq
03ba0f3e25 implemented marker procs for the GC resulting in huge speedups 2012-03-21 23:10:56 +01:00
Zahary Karadjov
70f5236d48 untyped proc/template/macro params default to expr 2012-03-20 17:44:30 +02:00
Zahary Karadjov
a72fe16f9d making tests green again 2012-03-20 14:44:23 +02:00
Araq
bb1885115d Merge branch 'master' of github.com:Araq/Nimrod 2012-03-19 22:12:08 +01:00
Araq
7cd2f353c7 preparations for marker procs generation 2012-03-19 22:11:19 +01:00
Zahary Karadjov
7b41b0f841 missed file from the previous commit 2012-03-19 12:14:32 +02:00
Zahary Karadjov
e43f8d842b merged branch overloading-for-macros 2012-03-19 12:06:38 +02:00
Araq
be1154106a clean separation of PNimrodNode and tyExpr 2012-03-16 19:33:24 +01:00
Zahary Karadjov
72f2a6e275 the test suite is mostly green again 2012-03-16 05:33:21 +02:00
Zahary Karadjov
6975ba401b fix for template redefinition. test cases added. 2012-03-15 14:15:37 +02:00
Araq
4da067691e implemented 'static'; macros do not work anymore 2012-03-15 00:28:28 +01:00
Zahary Karadjov
d1d5fc8254 allowing definitions of procs and templates to be overridden in local scopes 2012-03-14 21:01:18 +02:00
Zahary Karadjov
c45b714dfb allowing multiple definitions of templates 2012-03-14 21:01:18 +02:00
Zahary Karadjov
e5bd3b5b97 bootstraps fine with overloadable templates 2012-03-14 21:00:42 +02:00
Araq
c25ffbf262 first steps for cleaner static/const distinction 2012-03-13 02:01:56 +01:00
Araq
1d8ff40f56 vars can be 'compileTime'; shallow introduced weird string aliasing bug 2012-03-11 12:01:10 +01:00
Araq
ec0f982ed4 attempt to make tests green again 2012-03-11 01:46:37 +01:00
Araq
e88123fb17 fixes #100 2012-03-10 12:43:04 +01:00
Araq
ff4a69b624 win64 is a supported target; bugfix: nimrod c -r on windows; stdlib uses wide char versions of the WinAPI 2012-03-04 21:44:56 +01:00
Araq
34d3c042af c2nim, pas2nim compile again 2012-02-29 00:04:34 +01:00
Araq
4a9e07a47c ERecoverableError exception contains the error message 2012-02-25 12:57:16 +01:00
Araq
96e7ee91cc added docgen.rst2html for the forum; fixed tester bug concerning removeDir 2012-02-21 21:03:36 +01:00
Araq
ccd58fba2c bugfix: semfold supports merging of '&' 2012-02-19 21:01:04 +01:00
Araq
a13a14327a fixes #99 2012-02-17 20:19:14 +01:00
Araq
547e8aa418 Merge branch 'master' of github.com:Araq/Nimrod 2012-02-17 02:16:50 +01:00
Araq
97366d4419 bugfix: optimization of complex constant string concatenations 2012-02-17 02:16:33 +01:00
dom96
6901a725d5 niminst is now able to create build files for debhelper so that .deb packages can be created. Implemented $ in the times module for TWeekDay and TMonth. 2012-02-16 22:11:00 +00:00
Araq
375c95d3ad bugfix: no need for arrows to be new token kinds 2012-02-12 18:56:36 +01:00
Zahary Karadjov
560a3bad28 `do' keyword in the grammar for lambda blocks 2012-02-10 14:50:35 +02:00