Commit Graph

348 Commits

Author SHA1 Message Date
Araq
04300542da fixes #127 2012-05-30 22:37:17 +02:00
Araq
b5d8e8bfaa '+=' etc for all floating point types 2012-05-29 00:42:28 +02:00
Araq
bb7a14fec0 bugfix: UFCS for templates (ttempl3.nim enhanced) 2012-05-27 16:22:48 +02:00
Araq
7a249eb8c1 bugfix: field names of tuples are treated consistently in the C backend 2012-05-27 14:57:12 +02:00
Araq
848c1b297f added system.||; lacks runtime support 2012-05-23 02:05:28 +02:00
Araq
15dd3a2251 fixes #109 2012-05-20 10:56:17 +02:00
Araq
e6019b6f98 fixes #103 2012-05-11 00:22:04 +02:00
Araq
8cf9b48ad4 thoughts about 'continue/break' bug 2012-05-10 23:26:38 +02:00
Araq
63326f19f0 fixes #111; however may introduce other problems 2012-05-10 08:21:06 +02:00
Araq
76235348f8 extracted documentation generator 2012-05-09 01:50:08 +02:00
Araq
c323ec0155 added system.getStackTrace; docgen refactoring (incomplete) 2012-05-06 01:16:36 +02:00
Araq
a41bf611a0 fixes binding of overloaded procs 2012-05-04 01:58:54 +02:00
Araq
28b68d914e rst parser does not support 'raw' directive per default (security risk) 2012-05-01 22:55:06 +02:00
Araq
e95f155af3 small bugfixes; documentation generator supports smilies for the forum 2012-05-01 11:14:29 +02:00
Araq
ce1138dfa7 some code formating 2012-04-26 01:16:50 +02:00
Araq
7511a05b27 resolved conflict for news.txt 2012-04-21 03:22:53 +02:00
Araq
4aba7421f5 GC with realtime support 2012-04-21 03:19:43 +02:00
Zahary Karadjov
251c44ff04 implicit generics types as return types. removed the error message for capturing incorrect uses of `proc` 2012-04-21 03:24:32 +03:00
Zahary Karadjov
2f4ae65917 produce errors on proc types with implicit empty param lists. 2012-04-20 22:32:36 +03:00
Zahary Karadjov
064f296213 allow the use of built-in type constraints in type sections 2012-04-20 22:28:53 +03:00
Zahary Karadjov
c1d16c5a4d made built-in types primary expressions to allow infix operators to be used with them 2012-04-20 21:35:59 +03:00
Zahary Karadjov
8319e2411d fixed incorrect C++ code generation for sequences. more revealing type names in the generated code 2012-04-18 19:50:32 +03:00
Zahary Karadjov
818787457d grammar: the built-in type classes are now valid expressions 2012-04-18 19:50:32 +03:00
Zahary Karadjov
38710b614f more Objective-C and C keywords are now escaped 2012-04-18 19:50:32 +03:00
Araq
cb79bf9f16 compiler finally supports 'object {.pragma.}' syntax 2012-04-16 23:40:08 +02:00
Araq
d4c2f2509c bugfix: 'error' statement pragma works as expected again 2012-04-16 17:23:44 +02:00
Araq
17d67ab828 fixes #105 2012-04-16 16:31:15 +02:00
Araq
da9ff288d9 Merge branch 'master' of github.com:Araq/Nimrod 2012-04-15 10:02:35 +02:00
Araq
959e370ae9 @ is a sigil-like operator 2012-04-15 10:02:15 +02:00
Zahary Karadjov
b2cc17cde4 Merge branch 'master' of github.com:Araq/Nimrod into upstream 2012-04-15 02:58:01 +03:00
Zahary Karadjov
57fe3e8c41 avoid duplicated variable names in unrolled loops 2012-04-15 02:53:32 +03:00
Zahary Karadjov
20d56875de fix threading tests 2012-04-15 02:52:09 +03:00
Zahary Karadjov
567b5b07ea fixes #20 properly 2012-04-15 01:06:40 +03:00
Zahary Karadjov
42e0b08214 fix the usage of definedInScope in pegs.=~
template `=~`*(s: string, pattern: TPeg): bool =
   when not definedInScope(matches):
      var matches: array[0..maxSubpatterns-1, string]

It seems that this never worked as intended.
I discovered it now, because when variables' names are preserved, multiple
variables named `matches` were created. The reason this happens is that
when the template is used as an if condition, the if scope is already entered,
but the variables end up in the outer scope.

This patch is consistent with how `expr` templates work, but makes the
definition of a variable injection template like := a bit harder, yet still possible.
(note that if foo := bar(): is still not creating properly scoped variable prior to the patch)
2012-04-14 13:32:51 +03:00
Zahary Karadjov
f25c638dc4 experimental support for preserving local variable names in the generated code 2012-04-13 21:03:49 +03:00
Araq
82813e58c4 Merge branch 'master' of github.com:Araq/Nimrod 2012-04-13 18:37:17 +02:00
Araq
fe750a5cf9 performance improvements for ropes 2012-04-13 18:36:55 +02:00
Zahary Karadjov
caf7878009 Proper C scopes for if, try and case statements
even thought the setjmp implementation for try statement won't be used in C++,
using properly scoped variables for them is beneficial, because we'll be able to
establish a 1:1 relation between nimrod scopes and C scopes.
Once we have that, we'll be able to keep the original names of local variables
to greatly improve the debugging experience (i.e. watch expressions and
hover tooltips will work).
2012-04-12 17:52:55 +03:00
Zahary Karadjov
d2b45dbe85 C variables are created in their enclosing block instead of their enclosing function 2012-04-12 14:12:32 +03:00
Zahary Karadjov
238202ccbc re-enable rodfiles tests; fixes #91 2012-04-11 01:52:12 +03:00
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