Great explanations and details, thank you! Looks like it's time to read the
manual again...
Regarding your `important` concept: boolean values are treated special,
compared to other values, in concepts. Boolean `false` is treated the same way,
as not compiling lines, that is make concept check fail, and `false` is default
value for `bool`. Other expressions/statements are implicitly wr
You either test it with compiles or x is MyConcept.
100% pure. Organic. Unrefined. Cold pressed. Natural. Vegan. Easily absorbed.
Highly moisturizing. Lightweight. Light fresh scent. Paraben-free.
Sulfate-free. Colorant-free. Preservative-free. Additive-free. Cruelty-free.
Bottled in the USA.
[http://naturalbornoils.com/product/cucumber-seed-oil
> So are you saying there is a difference between `0..
Deprecating unary `<` is growing on me, it's always used with `..` and so `..<`
can be used instead.
Finally, I managed to call custom cuda kernels from Nim.
[Gist](https://gist.github.com/mratsim/dfbd944f64181727a97dffb30b8cbd0a).
Well, basically I lost the fights to:
1. Metaprogramming Cuda from Nim. I would have to prevent Nim from
"optimizing" the Cuda part and using CPU optimization.
After testing, the proper syntax is:
template squareCuda(bpg, tpb: int, y: var GpuArray, x: GpuArray) =
## Compute the square of x and store it in y
## bpg: BlocksPerGrid
## tpb: ThreadsPerBlock
## Output square<<>>(y,x)
{.emit:
["""square<<<""",bpg.cint
I also notice at the bottom of the **segsieve** function I have this code:
for byt in seg[0..