« first day (1777 days earlier)      last day (1403 days later) » 

6:00 PM
My main problem is that although it is a Worksheet, the declared type is Object.
 
um, did we use to be able to reply to and use fixed font at same time?
 
Or Variant; I am not sure which.
 
anyway, TypeName() is a red herring
 
It provides the unqualified name of the underlying type, right?
 
@M.Doerner it's Object, so that it can return a Sheets reference or a Worksheets reference, depending on what Variant argument it's given
 
6:02 PM
Provided, it is an object type.
 
OB says Object too slow
 
Woo, 2.4 installed at work! Hooray for fewer crashes.
 
@M.Doerner Apparently, yes. I'm a bit surprised that it didn't return an Object, though.
 
Thanks team for a good release. I've been using 2.4 at home for my open-source work and like it much better than 2.2.
 
Thanks for using 2.4!
 
6:04 PM
@puzzlepiece87 nice!
 
The reduced crashes is the best part to me, but I also really appreciate auto-complete and the improved code explorer
 
2.2 didn't have the reference explorer either :)
 
We also have the attributes synchronization via quickfixes now.
 
Yes though I remember having some minor niggles with it though I can't remember what specifically they were.
 
:49976676 Yes.
We.
Can.
 
6:06 PM
I remember my minor niggle with the project explorer, it's that you can't double-click to see userform UI design like you can in the old project explorer.
 
@this or, not so much...
 
@FreeMan Bbzzzt
 
That was probably by choice, but that's the only time I bring out the old project explorer.
 
@puzzlepiece87 Shift+F7 from code-behind, brings up the designer.
F7 from designer, brings up the code-behind
 
Thanks!
 
6:07 PM
double-click to code pane is completey by design #noregrets
99% of the time I bring up a form, it's the code I want to see
 
That's fair! People will use that more often
@MathieuGuindon Exactly.
 
and there's Open Designer if you're mousing
 
Let me see what my reference explorer niggle was here...
@this Cool, I am, thank you.
 
I did notice a problem with "open designer" not picking up that this UserForm1 class-with-a-predeclared-id was actually a form-with-a-designer
I don't recall the build#, but it ends with 666
 
Oh yes, my niggle was that a couple of times I used Reference Explorer and my changes didn't stick, but I don't have recreate steps for that, so shrug
If I get some I'll open a GitHub issue.
 
6:12 PM
@puzzlepiece87 IIRC there's already an issue for it. it involves project refs though, not standard com typelibs
 
There are 2 False Positive Assignment is not used reports. Does this one seem to fit either, or should I open a third?
 
works fine for standard COM libraries
 
ExitHere:
  YtdClinicSatScore = Round(Score, 2)
  Exit Function

ErrHandle:
  Score = -1      '<---This line is highlighted
  Resume ExitHere

End Function
 
@MathieuGuindon Good to know, thank you.
Thanks again team for a great release that I have already enjoyed using at home and can now enjoy at work.
 
@FreeMan ooh code-path needs to track Resume ExitHere
#fun
 
6:14 PM
for #SomeValues of #fun!
 
@puzzlepiece87 still need to vet it through IT?
 
Yeah, I saw that and thought "whaaaaaaat???"
 
@MathieuGuindon You know it, we're bigger and more corporate now than ever. :D
But our internal tools do continue to improve, so that's nice.
My life is much much better at work since we got a no-approvals-needed app store that auto-queues installation of free software.
 
@puzzlepiece87 schweet!
 
(Pay licensed software still requires managerial approval)
 
6:19 PM
@MathieuGuindon need to post a new issue, or just tag that onto one of the others?
 
@FreeMan you can add it to one already labeled with
 
ttqw
 
Oh, another thing that would be nice, I forgot
if you are writing in the code pane, if the project explorer can highlight your module
Like the old one does
Very minor suggestion, not important
 
someone in fact opened an issue about that like yesterday?
or a day before?
so certainly not a "minor" suggestion. ;-)
 
:)
Is there a way to list modules alphabetically?
Sort by name is already checked
fiddles
Sorting by "As in module" and then back to name didn't fix it.
The modules outside of folders are sorted by name
 
6:32 PM
we may have an open issue for that...
 
But if you folder annotate them, they are not
Cool, I'll go upvote those issues after work.
 
@puzzlepiece87 that's for sorting members though
Are you grouping modules by type?
 
@MathieuGuindon If I'm understanding you correctly, yes. I just followed the No Folder Annotations inspection result and annotated all of my medical file classes into a Fixes folder or Reports folder
and inside those two folders, the class modules are no longer sorted alphabetically even when sorting by name, and even after fiddling
 
@puzzlepiece87 the members of these modules should be sorted correctly, though
at least that's what the issue I linked above suggests
 
6:37 PM
@Vogel612 Dumb question, but are a module's members the functions and subs inside of it?
Oh yes, and the properties
 
exactly
 
expands a class module and confirms
That's good, so now you all just need that middle layer sorted correctly.
 
> Just stumbled across this as another example of a false positive:

```VBA
ExitHere:
YtdClinicSatScore = Round(Score, 2)
Exit Function

ErrHandle:
Score = -1
Resume ExitHere

End Function
```

`Score = -1` is flagged in build .4666.
 
@MathieuGuindon done
 
Different issue, I'm using the Quick Fix for "parameter is never used" and getting the Quick Fix Application Failure - Failed to apply quick fix even though it seems like everything actually went okay.
 
6:39 PM
that might also be already reported...
 
Okay, I need to stop doing this, I'm sorry :D
 
..and fixed in one of Max's PRs I believe
 
we really need to get some of these issues fixed...
sooo ... you regularly prodding us about that is perfectly fine :)
 
GitHub is blocked at work, I'll write down any issues and double-check them at home rather than spamming the channel
Great job again team :)
 
why tf would they block GH?
2
I don't even... WHAT THE HECK?
 
6:41 PM
I'll quote you the reason exactly :D
 
I'm guessing "No social media" </tongue-in-cheek>
 
@puzzlepiece87 I second that thought! :)
 
Category Technology/Internet;Office/Business Applications
Threat Risk 2
I'm surprised, I thought it was going to say file downloads
But yes, the reason in plain English is:
 
lol, but SE chat is fine
 
^do not attempt to understand the logic of corporate IT. You will hurt your brain.
 
6:43 PM
"We are a massive organization of 35,000+ employees of varying tech savvy with a ton of protected health information on hand. We have locked down our environment to reduce risk."
 
@puzzlepiece87 You work at the same place I do???
 
@MathieuGuindon chat.stackoverflow.com is blocked, I can only get on here because it's stackexchange :D
 
@puzzlepiece87 and I bet your intranet login password prohibits special characters and is capped at 8 characters?
 
actually, you can't... I can get to GitHub via corporate network.
You can check GitHub on your phone by avoiding corporate WiFi!
 
I'm grateful they didn't block SE chat, otherwise I'd be protesting that "I use SE for coding mentorship" and they'd be like "that's funny because you spend 95% of your SE chat activity on This Is Fine"
 
@FreeMan Indeed, I do use my phone for stuff that can't wait.
I pay per GB so I use data sparingly.
 
@puzzlepiece87 yeowch...
 
@FreeMan We probably work at competitors of each other, US medical insurance is consolidating so, so rapidly
 
I pay for a fixed amount of GB/month and haven't come close to using it in... ages
 
@Vogel612 Or at least that's how that conversation deserves to go lol
 
@puzzlepiece87 yeah, we'll soon be coworkers!! (So long as they retain our firewall policies, we'll be OK. ish...)
 
obtw, can one of you folks reproduce the bug where the preview of the "Reorder Parameters" refactoring is wonky?
 
I don't know who (@Comintern?) or when it was implemented, but having the "Fix" menu available via right click in the CI pane is a major bonus!!! (Especially since the :checkmark: Fix text still does not look like a dropdown option at all)
 
aside from the preview being utterly broken with multiline headers?
 
@FreeMan judging from some YT videos it's also apparently completely invisible and not worth mentioning
 
6:51 PM
@MathieuGuindon you really need to get onto making some YT videos, yea
 
16 hours ago, by Mathieu Guindon
I really need to start making RD vids
 
^^ !!
 
@FreeMan obtw, I'm happy to answer any git questions you have (assuming you can wait for me to get back to them) at any time
 
@Vogel612 date must have gone well, then. ;) (wait for me to get back to them)
thanks, I appreciate that!
 
@FreeMan yea, pizza and a walk in the sun :)
 
6:54 PM
:thumbsup:
 
@FreeMan Where do you have to right click? I'm right clicking on inspection results and nothing is happening
@Vogel612 Nice!
 
@puzzlepiece87 right click on any inspection result should give you a context menu with the available fixes. You're running 2.4, right?
 
@FreeMan And yes the checkmark Fix still needs to be indicated as a dropdown menu
 
:)
 
@FreeMan Yup, 2.4.0.4488 if that makes a difference
 
6:58 PM
mmm... that's from late January. I'm pretty sure the fixes/updates to the CI were more recent than that. Like sometime in March.
If your CI window doesn't look like this, you don't have the necessary update:
 
Question: Could someone check the CodeInspectionSettings view and expand one of the categories?
for me all are expanded at once
 
That is an issue with all expanders, atm.
 
@Vogel612 repo here.
 
@FreeMan Yeah, that makes sense. Since I have to specifically push each update through a corporate process I only do the minor/major releases, not the point releases.
 
so many little things
 
7:00 PM
@Vogel612 same, 2.4.1.4647
 
@puzzlepiece87 2.4.1 probably has it.
 
@FreeMan Yeah, we have a 5 week lag time
I'll probably just chill on it until 2.5 or whatever
 
In theory, there will be monthly releases, but that theory was proposed a year or 2 or 3 ago and hasn't become fact yet.
 
Since pushing things through corporate IT is like my least favorite thing.
 
@FreeMan we weren't that bad in schedule for the last two releases, though
 
7:01 PM
@puzzlepiece87 that would be funny... submit an update request every 4 weeks in order to wait 5 weeks for it to be approved...
 
and next one still has two more weeks to go :)
 
@FreeMan do they not review the diff?
@MathieuGuindon yea, at the very least :/
 
@Vogel612 true. Not bad considering I haven't pitched in to help...
:)
 
One time I linked them to the GitHub release page instead of the page for the specific release page and the packaging person honestly needed help finding the release page even though I included the release version number in my request
 
@Vogel612 dunno, ask @puzzlepiece87
 
7:02 PM
I need to win the lottery and RD full-time or something.
be it just to get the damn website up to date
btw I bought & parked modernvba.com
2
 
^^^
 
@Vogel612 Seeing as how they weren't able to find a GitHub release page given the version number, I'm not confident they're super capable of reviewing the diff. I'm not sure what their minor version update process is exactly.
 
@MathieuGuindon Nice!
 
For major version update I assume it goes to IT security
@MathieuGuindon Has there been a second donation drive?
 
7:04 PM
@puzzlepiece87 do they use automated analysis tools? Or do they eyeball it?
I don't envy the job....
 
@this No idea.
Put obfuscated malware calculator openers into RD and let's find out :D
 
uhm, no
 
^
 
I assume it's also #TooSoon to joke about Norton false positives then?
 
7:06 PM
Do not speak the name of the evil one...
 
~sigh. Symantic has traditionally been a pain
 
xD Okay, I won't make any more jokes about the sore points then.
 
Symantec is a complete jerk as far as OSS is concerned
 
I am continually amazed they didn't get ditched by most companies after their fckup around their Root CA Certificate
 
@Vogel612 I think you mispelt "black hole of burning doom"
 
7:07 PM
reverts back to the South Park-standard of 22.3 years for painful things to be funny
 
Most companies' IT moves a glacial speed.
 
aight... it seems to be okay
@M.Doerner can you give me a hint how you found the IO bottleneck in CE loading?
I think it should already be fixed, but I'd like to verify
Or did you just use the "Performance Analyzer" from VS?
 
@this Lol, is that how you referred to the scientific picture as well?
My circles were calling it Eye of Sauron 2.0
 
I used the profiler coming with R# and looked at the events.
 
hmm ... okay.
 
7:17 PM
There was an incredible amount of file read requests.
 
I don't have R#, so I'll try to do something with the VS builtin tools
 
more than 100k
 
ouch ...
 
@puzzlepiece87 No, didn't have a name for that. I honestly wasn't thinking about it. At least not consiciously?
@M.Doerner Ouch, indeed.
 
@Vogel612 there's one waiting for you if you want it
 
7:18 PM
I will keep in mind to use R# to check file reads next time I do anything with IO
 
@MathieuGuindon My PC will not be able to handle the load
 
I don't think I actually I used R# profiler -- that's not the same thing as dotMemory, right?
(or dotPeek, whatever it was)
 
dotPeek is a disassembler :)
 
Hm, today VS is having a bad day.
 
I'm currently just scraping by on RAM and usually have a fully used CPU, soo ...
 
7:19 PM
test runs are longer than 10min
 
dotMemory is for memory profiling, and then there's dotTrace and other dotStuff
 
Yeah, I have it but I haven't cracked it open. I only used dotMemory but I'm sure I used it clumsily.
 
dotTrace should be the actual profiler.
 
@Vogel612 let me know if/when you get a better machine or change your mind then :)
 
Sure will :)
 
7:21 PM
I also have no real experience with it.
However, clicking through the views available can already show the most obvious problems, like excessive file reads or high lock contention.
 
Gotcha. Thanks!
I indeed did not use dotTrace before.
 
“How’s the SQL Server upgrade going?” “Well, the new WinDbg is pretty fancy” “What does that have to d...oh”
^^ tangentially related
 
It also showed that the DLR really does not like concurrency.
 
the DLR?
 
I imagine it has to drag around a lot of metadata, possibly more so than Variant data type.
dynamic language runtime, I think -- the framework that provides us with the dynamic type.
 
7:24 PM
ugh... "opening report"
apparently my Symbol Server is basically dead
nearly no system resources used
 
Apparently, if you have too many concurrent dynamic calls, you get high lock contention in some low-level windows libraries.
 
How much improvement did you realize from the PR that removed dynamic?
 
The test project never really took long to resolve.
I think it was abou 0.5s out of 3s or something like that.
However, I have not tested the changes I still have to push.
 
@M.Doerner do I need to have CE nodes expanded to repro?
Because my profiling found no waits for settings IO at all
 
No
 
7:31 PM
even if it's only 0.5s out of the 3s, that's roughly 20% improvement, which isn't too shabby.
(unless my math is wrong, of course)
 
okay, that means it's just straight up hitting the cache now
 
I think we load them at the start already. So, if you cash them, no file access will happen during parsing.
The easiest test is actually to take a decently sized project and parse it.
If the UI freezes for some seconds on resolving declarations, the problem is still there.
 
I took a small one, but I'm happy to check against a larger one
I'm not gonna capture RD startup...
 
Btw, running RD under the profiler also showed that we basically have no chance to get near instant parses.
Loading the code via the API takes ages.
 
@Vogel612 now I wonder how much of RD startup is re-re-re-re-re-loading the settings
 
7:35 PM
@MathieuGuindon none.
 
We only load settings twice
 
not if settings cache isn't working though
 
once to obtain the general settings for splash screen and the settings for experimental features and then again when first hitting the settings after the initial start
 
Once for the startup sequence and once from the providers, right?
 
7:36 PM
in theory, yes
 
^^ (too slow)
 
in practice, injected VMs might try to read settings in their ctor
 
@M.Doerner sorry, which API?
 
@MathieuGuindon we're not using the settings for the startup because we're not actually doing anything but resolving stuff
 
VBE API
 
7:37 PM
@MathieuGuindon ohhhhhhh... yea that should be fixed
 
In the test project, loading all modules via the API takes twice as long as parsing them.
 
it's not an I/O hit if caching works though
@M.Doerner wow!
 
@M.Doerner I thought I remembered reading that it's faster to parse attribute stream than via modules.... right?
 
Yes, about twice as fast.
 
if we had our custom code panes, we could just do away with the code pane pass altogether.
 
7:39 PM
However, 95% it takes is the module export.
It is probably very fast for VB6.
(Export is a no-op there)
 
@M.Doerner we only still need to do this because we're still not using the typelib api to read module & member attributes, right?
 
@MathieuGuindon considering the speed of COM API access, I think we might even be faster than typelib access
 
We need the attribute pass to get the attributes and the positions where we can insert new ones.
 
Sidenote: AFAICT Settings are no longer incurring disk IO on parse or parse-completion
 
That is good news.
 
7:41 PM
^
 
@M.Doerner typelib API will help us if we don't need to parse code; but we need the code for rewriting
 
So I'm moving my PR out of draft status
 
@Vogel612 Nicely done!
 
Hm, my last changes away from dynamic seem to have slowed down resolving again a bit.
 
7:42 PM
I might look to completely hide away persistence from anyone but settings, though.
 
However, it might as well be that Excel just got less recources.
 
I've seen some stuff in RD.Core use PersistenceProviders instead of the ConfigurationServices
 
@Vogel612 we have a open issue about encapuslating the IO entirely
 
give me a link and I might just go and fix it
 
nobody should be putting their grubby paws on the filesystem willy nilly
 
7:44 PM
because I've just now seen that inspections seem to be accessing persistence directly
 
I think that should go into a separate PR, though.
 
@M.Doerner sure. The diff is at +-1kLoC already anyways
 
I agree.
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4924?src=pr&el=h1) Report
> Merging [#4924](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4924?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/63e529a2bd25f73822bcea037c83b4001b5aa800?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `83.81%`.


```diff
@@ Coverage Diff @@
## next #4924 +/- ##
=======================
 

« first day (1777 days earlier)      last day (1403 days later) »