WIP: Allow generation of multiple kernels simultaneously
This fixes #40 (closed) .
It allows the following syntaxes:
Generators have a new keyword argument context_tags=("foo",)
. The value of the tag foo is mangled into the cache key.
The value is taken from either the global context:
with global_context(foo="bar"):
...
or from a keyword argument to the generator itself, like:
@generator(foo="bar")
def bla()
....