Commit Graph

963 Commits

Author SHA1 Message Date
Zahary Karadjov
b2cc17cde4 Merge branch 'master' of github.com:Araq/Nimrod into upstream 2012-04-15 02:58:01 +03:00
Zahary Karadjov
1ba31f8df7 minor changes to make the test suite green again 2012-04-15 02:54:12 +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
3628731064 unicode: invalid utf-8 bytes are preserved 2012-04-13 18:52:54 +02: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
dom96
bac790ae3b The build.sh file generated by niminst now supports a --extraBuildArgs param. 2012-04-11 20:45:27 +01: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
97ab16d46b typetraits module and tests 2012-04-10 22:32:23 +03:00
Zahary Karadjov
a64f03230a proper order of initialization for .global. variables 2012-04-10 20:53:44 +03:00
Araq
c53ad1b39f documentation improvements; higher level Mongodb wrapper 2012-04-09 11:18:10 +02:00
Araq
e9260e6c4d C sources rebuilt for BSD 2012-04-07 00:47:00 +02:00
Araq
e0e4e38272 yet attempt to fix realpath for BSD 2012-04-07 00:44:00 +02:00
Araq
1123252db5 bugfix: expandFilename for BSD 2012-04-06 23:42:33 +02:00
Araq
121e375f15 C sources rebuilt for BSD support 2012-04-06 22:45:55 +02:00
Araq
039f21ffd6 small fixes for BSD 2012-04-06 22:43:00 +02:00
Araq
ba3f90cc25 added terminal.isatty; nimgrep version 0.9 2012-04-06 21:26:48 +02: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
Araq
07b355bea4 better opengl wrapper; oids and endians modules documented 2012-04-04 21:26:23 +02:00
Araq
a4a99ae997 added libsvm wrapper 2012-04-04 16:01:28 +02:00
Araq
b9f99565e9 added new OpenGL wrapper 2012-04-04 01:40:39 +02:00
Araq
f788f603fe Merge branch 'master' of github.com:Araq/Nimrod 2012-04-01 01:01:25 +02:00
Araq
3ef9f54cc1 added strutils.parseEnum; fixes #95 2012-04-01 00:31:22 +02: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
c7fc519fa3 forgot to add lib/system/embedded.nim 2012-03-31 01:18:49 +02:00
Araq
b2c255c739 bugfix: DLLs should compile again 2012-03-31 01:16:44 +02: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
ff3e80279b corrected the index website 2012-03-28 20:50:40 +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
16adc837be added htmlgen to docs 2012-03-23 23:28:55 +01: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
22c310485a Merge branch 'master' of github.com:Araq/Nimrod 2012-03-23 00:16:50 +01:00
Araq
0857efe512 some bugfixes for symbolfiles 2012-03-23 00:16:29 +01:00