experimental编译指示

experimental 编译指示实现了实验语言功能。 根据具体特征,这意味着该特征被认为对于其他稳定版本而言太不稳定,或者该特征的未来不确定(可能随时删除)。 示例:

  1. {.experimental: "parallel".}
  2.  
  3. proc useParallel() =
  4. parallel:
  5. for i in 0..4:
  6. echo "echo in parallel"

作为顶级语句,实验编译指示为其启用的模块的其余部分启用了一项功能。 这对于跨越模块范围的宏和通用实例化是有问题的。 目前这些用法必须放在 .push/pop 环境中:

  1. # client.nim
  2. proc useParallel*[T](unused: T) =
  3. # use a generic T here to show the problem.
  4. {.push experimental: "parallel".}
  5. parallel:
  6. for i in 0..4:
  7. echo "echo in parallel"
  8.  
  9. {.pop.}
  1. import client
  2. useParallel(1)