summary refs log tree commit diff stats
path: root/compiler/semtypinst.nim
Commit message (Expand)AuthorAgeFilesLines
* progress on deepCopyAraq2014-08-011-1/+1
* fixes #847Araq2014-04-211-2/+3
* removed flawed thread analysis passAraq2014-04-201-1/+1
* new concurrency model: first steps; shared is not a keyword anymoreAraq2014-04-141-2/+14
* handle arbitrary expressions dependent on static input params in proc signaturesZahary Karadjov2014-03-161-3/+6
* more robust handling of proc signatures containing inter-param type referencesZahary Karadjov2014-03-161-5/+5
* first phase of tyGenericParam reforms needed for static paramsZahary Karadjov2014-03-161-12/+2
* fix #988Zahary Karadjov2014-03-101-3/+2
* fix #986Zahary Karadjov2014-03-101-1/+3
* implements higher-order inline iterators and return type inference for iteratorsZahary Karadjov2014-03-081-1/+6
* fix #931 and few more testsZahary Karadjov2014-02-181-3/+6
* quite messy implementation of generic lambdas, needs reworking; fixes #715Zahary Karadjov2014-02-171-6/+15
* fixes #833Araq2014-02-141-0/+3
* tyTypeDesc and tyRange always have 1 child; this might be tyNone but it is re...Araq2014-02-051-1/+1
* Merge branch 'devel' of https://www.github.com/Araq/Nimrod into develZahary Karadjov2014-01-261-2/+2
|\
| * fixes #838Araq2014-01-251-2/+2
* | support for parametric user-defined type classesZahary Karadjov2014-01-241-1/+4
|/
* 'nil' as a statement is deprecated, use an empty 'discard' insteadAraq2014-01-191-2/+2
* progress towards fixing tgenericshardcasesZahary Karadjov2014-01-061-18/+86
* introduce tyFromExpr; fixes #618Zahary Karadjov2014-01-041-0/+4
* Templates will pick the candidate in the nearest scope when symbols are mixed-inZahary Karadjov2013-12-311-7/+8
* migrate the static param handling to ReplaceTypeVars; fix tgenericvariantZahary Karadjov2013-12-301-11/+10
* properly remove intLiterals from proc signatures; fixes trettypeinferenceZahary Karadjov2013-12-301-5/+13
* handle recursive types during the instantiation of meta types; propagate tfHa...Zahary Karadjov2013-12-301-19/+79
* fix the filtering of void params in procs' signaturesZahary Karadjov2013-12-291-4/+20
* Merge branch 'upstream' into develZahary Karadjov2013-12-291-31/+52
|\
| * integrate the logic of fixupProcType into ReplaceTypeVarsZahary Karadjov2013-12-291-15/+27
| * make more tests greenZahary Karadjov2013-12-291-3/+4
| * lift generic parameters from concrete composite type classesZahary Karadjov2013-12-281-4/+5
| * towards support for composite type classes such as seq[Number] and SquareMatr...Zahary Karadjov2013-12-271-8/+13
| * better integration of tyStatic into typeRelZahary Karadjov2013-12-251-4/+4
| * wip type class reforms (the compiler bootstraps fine)Zahary Karadjov2013-12-251-1/+1
| * static params: expr[T] is now static[T]Zahary Karadjov2013-12-191-2/+2
* | case consistency: cs:partial bootstraps on windowsAraq2013-12-291-1/+1
* | case consistency: next stepsAraq2013-12-291-1/+1
* | case consistency part 4Araq2013-12-271-24/+24
* | case consistency part 2Araq2013-12-271-2/+2
* | case consistency part 1Araq2013-12-271-11/+10
|/
* 'noStackFrame' implies 'naked' in the generated C codeAraq2013-10-061-0/+1
* minor improvement towards tgenericshardcasesZahary Karadjov2013-08-281-2/+6
* pass-through of static int generic params to arrays when late instantiation i...Zahary Karadjov2013-08-231-0/+6
* Experimental support for delayed instantiation of genericsZahary Karadjov2013-08-231-2/+2
* implemented large parts of the 'not nil' checkingAraq2013-06-091-0/+2
* Removes executable bit for text files.Grzegorz Adam Hankiewicz2013-03-161-0/+0
* remove any traces of the old global generics cacheZahary Karadjov2013-01-271-67/+48
* minor bug fixes to make some tests greenZahary Karadjov2013-01-211-1/+0
* store the instantiation cache in the generic symbolZahary Karadjov2012-11-281-24/+32
* fixes #211Zahary Karadjov2012-10-131-0/+4
* syntax compatibility between do blocks and stmt blocksZahary Karadjov2012-10-041-1/+2
* the `is` operator now works with type classes and type variablesZahary Karadjov2012-10-031-1/+2
f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# example program: maintain multiple counters with isolated lexical scopes
# (spaces)

recipe new-counter n:number -> default-space:address:shared:array:location [
  default-space <- new location:type, 30
  load-ingredients
]

recipe increment-counter outer:address:shared:array:location/names:new-counter, x:number -> n:number/space:1 [
  local-scope
  load-ingredients
  0:address:shared:array:location/names:new-counter <- copy outer  # setup outer space; it *must* come from 'new-counter'
  n/space:1 <- add n/space:1, x
]

recipe main [
  local-scope
  # counter A
  a:address:shared:array:location <- new-counter 34
  # counter B
  b:address:shared:array:location <- new-counter 23
  # increment both by 2 but in different ways
  increment-counter a, 1
  b-value:number <- increment-counter b, 2
  a-value:number <- increment-counter a, 1
  # check results
  $print [Contents of counters
]
  # trailing space in next line is to help with syntax highlighting
  $print [a: ], a-value, [ b: ], b-value, [ 
]
]