OSC related error on VL.Wekinator help patches preventing them to run

Hey there,

Making a round of updates on the VL.Wekinator help patches. None of them seem to run properly : Update does not seem to be running at all and the help browser constantly displays the Loading animation next to them.

EmitException: "D:\Documents\dev\libraries\VL.Wekinator\help\Explanation Introduction.vl.1.5.cs(330,40): error CS0315: The type '_Explanation_Introduction_.__AdaptiveImplementations__U40UhGQC1ALN7QcBY75oSe' cannot be used as type parameter 'AdM' in the generic type or method 'OSCClient_C.SendMessage<T, AdM>(string, T, bool, bool)'. There is no boxing conversion from '_Explanation_Introduction_.__AdaptiveImplementations__U40UhGQC1ALN7QcBY75oSe' to '_VL_IO_OSC_.IO.OSC.IAdaptiveArgsToData<VL.Lib.Collections.Spread<float>>'."
Full error
EmitException: "D:\Documents\dev\libraries\VL.Wekinator\help\Explanation Introduction.vl.1.5.cs(330,40): error CS0315: The type '_Explanation_Introduction_.__AdaptiveImplementations__U40UhGQC1ALN7QcBY75oSe' cannot be used as type parameter 'AdM' in the generic type or method 'OSCClient_C.SendMessage<T, AdM>(string, T, bool, bool)'. There is no boxing conversion from '_Explanation_Introduction_.__AdaptiveImplementations__U40UhGQC1ALN7QcBY75oSe' to '_VL_IO_OSC_.IO.OSC.IAdaptiveArgsToData<VL.Lib.Collections.Spread<float>>'."
    StackTrace:
        VL.Lang.Platforms.Roslyn.TargetCompilation+<>c__DisplayClass6_3 { internal System.ValueTuple<Microsoft.CodeAnalysis.PortableExecutableReference, VL.Core.RawAssembly> <InitializeAsync>g__Emit|5(bool includeSource, System.Threading.CancellationToken token, VL.Lang.Platforms.Roslyn.<>c__DisplayClass6_2& ) { ... } } 
        VL.Lang.Platforms.Roslyn.TargetCompilation+<>c__DisplayClass6_0 { internal VL.Lang.Platforms.Roslyn.ProjectCompilation <InitializeAsync>g__Build|0(VL.Lang.Platforms.Roslyn.ProjectBuildRequest projectBuildRequest) { ... } } 
        VL.Lang.Platforms.Roslyn.TargetCompilation+<>c__DisplayClass6_1+<<InitializeAsync>b__1>d { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Lang.Platforms.Roslyn.TargetCompilation+<InitializeAsync>d__6 { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Lang.Platforms.Roslyn.TargetCompilation+<CreateAsync>d__4 { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Lang.Platforms.Roslyn.TargetCompilation+<WithCompilationAsync>d__43 { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Lang.Platforms.Roslyn.TargetCompilation+<VL-Lang-Symbols-ITargetCompilation-WithCompilationAsync>d__44 { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Model.VLSession+<CreateTargetCompilationAsync>d__118 { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        VL.Model.VLSession+<UpdateRuntimesAsync>d__117 { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        VL.Model.VLSession+<UpdateCompilationAsync>d__141 { private virtual void MoveNext() { ... } } 


Repro steps :

  • Clone VL.Wekinator
  • Mark it as Editable in the launcher and start vvvv (using latest preview - 7.0-65
  • Open the Introduction help patch in the Wekinator section

Observed the same behavior on latest stable (6.7).

Cheers!

Offtopic : such an explanation patch that does not have any renderer, or things moving on the screen. There’s absolutely zero clue when you look at it that something is wrong/not working/not updating (apart from the console popping up), which is why I’d argue we still need an indication that Update is running :-)

Noticed that the problem only shows up when running the pack as editable. Turns out there is a VL.IO.OSC.vl in the \lib folder that gets loaded in the editable case. Instead of shipping its own version of VL.IO.OSC the pack should rely on the official one, or was there a reason for this “hack”?

I guess there must have been one back then, but it should not be the case anymore. Will test that today or tomorrow and report here.

Thanks for having a look!

Hey,

Did you pull the latest version of the repo?

There was indeed a local OSC lib at some point but that got removed in this commit and the few ones before.

In my case, using the package from source but not marking it as editable still throws this error and prevents the patch from running.

yes, and then compared it to the nuget (the last stable), which works (when not editable!). saw that OSC file and concluded too fast that such a construct could be the culprit.

ok, so next: for me it works from latest source when not marked as editable. can you confirm this?

Yep, I can confirm it works on latest source when not marked as editable. Sorry for my previous message, I missed the editable checkbox on GammaLauncher 🙃

Making it editable though creates the issue mentioned in my original post.