-
Notifications
You must be signed in to change notification settings - Fork 123
Fix ProjectCracker, optimize Filename.checkPathForIllegalChars #659
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
fixed: ProjectCracker returns unnormalized (regarding to platform) ProjectFileName list, which causes symbols to be not equal while Find Usages performs
4107a7d
to
0c1f673
Compare
CI is failing because on .NET Core 1.0 we have
|
…e build failing on .NET Core
@dsyme Thanks! |
Hmmm On both Travis and AppVeyor:
|
Yeah, same failure on my machine... |
So, |
OK, I fixed the tests according to this behavior:
|
@vasily-kirichenko We should really merge the perf fix into Microsoft\visuafsharp too |
@vasily-kirichenko Thanks for the contribution! |
@dsyme I ported the perf fix to visualfsharp repo and tested it on FCS project. Absolutely no improvements: 43 seconds on F# 4.0/4.1(master)/this perf fix. So I don't think it's worth to make this change in VFT. |
@vasily-kirichenko It might be that the fix applies primarily in the IDE tools - endless rechecking of fie names while preparing project options or doing incremental building. So perhaps the fix would apply specifically to the Visual F# IDE Tools. Anyway, it's ok - we can back port at some point, or perhaps we eventually work out how to merge repos. |
Ah, I see. It's very easy to port it, so I'll make a PR in a minute or two. |
This function popped up in a profiler as one of hot paths. With this PR it disappears.
Path.GetInvalidPathChars()
returns 36 chars and checking, say, 200 chars path, means 7200 array accesses and char comparisons. It seems this function is called very often.