You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Regression: Cannot use two or more open sessions in FCS 43.7.200+ #16118
[Loading C:\Users\roman.kuzmin\source\repos\FSCS\43.7.200-regression\new_bad\Test2\Test4.fsx]
System.TypeLoadException: Could not load type 'FSI_0001.Test3' from assembly 'FSI-ASSEMBLY, Version=0.0.0.32767, Culture=neutral, PublicKeyToken=null'.
at <StartupCode$FSI_0002>.$FSI_0002_Test4$fsx.main@()
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
Stopped due to error
Known workarounds
Close all opened sessions before opening and invoking a new session.
(But in my case using 2+ open sessions is the design, not a mistake).
I am pretty sure that I know what caused it, and it should be relatively easily fixable. I believe it was caused by the change to using assembly versioning rather than assembly naming to enable fsi internals visibility.
Reacted by Vlad Zarytovskii and Roman Kuzmin 1967-2026
The issue was assembly resolution under multi-emit fell back to simple name matching which is not super helpful when parts of the script exist in many different assemblies with the same simple name, varying only by version number.
@vzarytovskii@KevinRansom
The PR with the fix was merged, great. But I have tried the just released FSharp.Compiler.Service 43.7.401 and the problem is still there. Is it how it should be?
The PR with the fix was merged, great. But I have tried the just released FSharp.Compiler.Service 43.7.401 and the problem is still there. Is it how it should be?
It was not backported to that version. Only to 43.8.xxx
Activity
vzarytovskii commentedon Oct 12, 2023
@KevinRansom can you look into it? Sounds about related to the multiemit fix you did earlier
KevinRansom commentedon Oct 13, 2023
I am pretty sure that I know what caused it, and it should be relatively easily fixable. I believe it was caused by the change to using assembly versioning rather than assembly naming to enable fsi internals visibility.
nightroman commentedon Oct 18, 2023
When is the fix and updated package expected approximately?
vzarytovskii commentedon Oct 18, 2023
Probably together with 8.0.200, not entirely sure when it's going to be released. 8.0.100 is locked down, and it won't hit the fix bar for 7.0.xxx.
KevinRansom commentedon Oct 19, 2023
I have a fix, it is a depressingly tiny fix.
The issue was assembly resolution under multi-emit fell back to simple name matching which is not super helpful when parts of the script exist in many different assemblies with the same simple name, varying only by version number.
#16139
psfinaki commentedon Oct 20, 2023
Closing as been fixed by the PR above.
nightroman commentedon Oct 25, 2023
@vzarytovskii @KevinRansom
The PR with the fix was merged, great. But I have tried the just released FSharp.Compiler.Service 43.7.401 and the problem is still there. Is it how it should be?
vzarytovskii commentedon Oct 25, 2023
It was not backported to that version. Only to 43.8.xxx