Reference support for kernel launch arguments
-
To capture the argument lifetime of kernel launch (for !88 (merged)), we cannot use pointer because it drop lifetime information
-
This MR add a support for reference to kernel definitions, e.g.
#[kernel] fn f(a: &i32, b: &mut i32) { ... } -
Drop
ArgReftrait andArgRefNstructs introduced in !87 (merged), and introduce specializedLaunchableNtraits- It can capture only immutable reference
&'arg T. We need to also capture&'arg mut T - We may extend
ArgRefNlike(1: mutable, 0: immutable) but it needsstruct ArgRef101<T1, T2, T3> { arg1: &'arg mut T1, arg2: &'arg T2, arg3: &'arg mut T3, }2^Nvariations. - I revert it to use tuple as before !87 (merged), and specialize
Launchabletrait intoLaunchableNtraits instead
- It can capture only immutable reference
Edited by termoshtt