« first day (1000 days earlier)      last day (1510 days later) » 

12:00 AM
All of the _DockableWindowHosts are passing through the Windows wrapper class in Rubberduck.VBEditor. If I cache the references there, I have complete control over when the GC handle gets released.
public static void ReleaseDockableHosts()
    foreach (dynamic host in _dockableHosts)
[Cardshifter/Cardshifter] 8 commits. 2 issue comments. 127 additions. 28 deletions.
[retailcoder/Rubberduck] 29 commits. 8331 additions. 5743 deletions.
[rubberduck-vba/Rubberduck] 27 commits. 6 opened issues. 6 closed issues. 31 issue comments. 8731 additions. 5827 deletions.
@Duga You've been playing too much House of the Dead lately it seems.
> Rubberduck.Setup. (5.53 MiB) - Downloaded 1152 times.
Last updated on 2017-01-06
> Total Downloads 9,842
12:24 AM
I just got through and, I think and really hope, understood my first unit test on a very simple example. Thanks so much for this tool!
@IvenBach =)
Tried the refactorings yet?
'Rename' and 'Move Closer To Usage' even submitted a bug report for Move Closer.
Haven't gotten to the others yet but I will.
12:52 AM
I think that deserializing the declarations is taking longer than reading them from the typelib. I need to do some performance testing.
Well at least the toolwindows are getting closed. Might have gone a bit overboard there...
@Comintern that's after unloading?
Yeah. I forgot to filter for RD windows.
That's after reopening.
@IvenBach I'm disabling extract method for .12
too many bugz
@Comintern wait you mean we reload without crashing everything?!
No, that was post crash restart. :-)
I think this is a bug in UserControl.
@Comintern IIRC we're only serializing on request, in a debug build? And deserializing would only be if the xmls exist.. So... No problem there? (save for the website, but hey we'll take what we can)
1:02 AM
I can't get the damned thing to keep ahold of it's OLE handle long enough.
@Mat'sMug No problems at all - I'd just skip the caching on the non-website builds.
The intent is for the website to run the latest release build..
Definately. COM reflection ~555ms to full ready on open.
That includes inspections on an empty workbook.
Wait, we're down to half a second to ready state?!
1:06 AM
Deserializing = ~646ms
We haul ass now.
@Comintern I need to test the current build on the website... iirc there were breaking api changes, that's why I hadn't updated it...
That doesn't include spin-up time though - that's measured from the parser starting.
The declarations in the test folder are current in next.
Not sure about the API changes.
I wonder wth is making it take over 3 minutes to yield the results online
The ImplicitActive* tests are the heaviest test runs - those are taking about 4-5 seconds on my machine.
> Pretty sure this was related to the UI thread lag I just fixed by moving to asych events. This needs to be retested after my next PR.
> Ref #2763
> You can click Fix and select an option in there. Would it be possible to allow a Rt-Click and have the same options pop up?
[rubberduck-vba/Rubberduck] build for commit f3778899 on unknown branch: AppVeyor build succeeded
[rubberduck-vba/Rubberduck] build for commit 0e8690b0 on unknown branch: AppVeyor build succeeded
> Going ahead and merging this - consider it a hot-fix.
[rubberduck-vba/Rubberduck] comintern pushed commit ceefdb1e to next: Stop throwing in WndProc of SubclassingWindow
[rubberduck-vba/Rubberduck] build for commit 243eb058 on next: AppVeyor build succeeded
1:28 AM
@Comintern That exit is a little too clean
> I can't replicate this with the current build no matter what I try. Did the module in question have any pre-compiler directives in it?
> Duplicate of #2614.


Definitely a must - the only problem is that the way inspections work ATM doesn't quite play well with it... but I'm going to be moving the `IInspection` interface (the whole `Rubberduck.Inspections.Abstract` namespace actually) to the `Rubberduck.Parsing` assembly/namespace, and from there we'll be able to *eventually* start *annotating* things (e.g. parse tree nodes) with inspection results.

Right now inspections run *as a result of* parsing/resolving being c
Oh Hai RD trying to load itself...
2017-03-01 19:39:58.1755;WARN-;Rubberduck.Parsing.Symbols.TypeHierarchyPass;Failed to resolve interface _Object.;
2017-03-01 19:39:58.1755;WARN-;Rubberduck.Parsing.Symbols.TypeHierarchyPass;Failed to resolve interface _Object.;
2017-03-01 19:39:58.1755;WARN-;Rubberduck.Parsing.Symbols.TypeHierarchyPass;Failed to resolve interface _Object.;
2017-03-01 19:39:58.1755;WARN-;Rubberduck.Parsing.Symbols.TypeHierarchyPass;Failed to resolve interface _IDTExtensibility2.;
I really need to finish the class reflector.
1:42 AM
> nice, this will make UseMeaningfulNames inspection fire results for undeclared variables! 👍
[rubberduck-vba/Rubberduck] build for commit 654634ec on unknown branch: AppVeyor build succeeded
> > *the reparsing time in my test project dropped from 25s to 17s when there are no changes of the code at all and to 9s if there are minor changes.*

That's rather interesting..
[rubberduck-vba/Rubberduck] MDoerner pushed commit a302e55b to next: Saved the unresolved member declarations on the module states and refilled the unresolved and undeclared collections on the DeclarationFinder upon refresh.
Will anyone still be active in 1-2 hours? I would like to get my VS working to test RD.
[retailcoder/Rubberduck] retailcoder pushed 15 commits to rd-next (only showing some of them below)
[retailcoder/Rubberduck] MDoerner pushed commit 55501546 to rd-next: Some optimization
@IvenBach definitely :)
Thanks for the help today.
[rubberduck-vba/Rubberduck] build for commit 5f9658c5 on next: AppVeyor build succeeded
1:52 AM
@Comintern so, 2 days to go - do you see any potential showstopper?
Not really - that last commit of mine would have been.
SC is still pretty unstable, but that's a lot more than 2 days work
We're killing it on performance. My torture workbook parsed and inspected in 10796ms...
yeah definitely
That's the one that used to take 5 minutes.
1:54 AM
with 2.x
wasn't it 20 minutes with 1.4.3?
I don't know. It's not done yet on 1.4.3
probably didn't even parse...
The commandbar was killing performance on pretty much everything.
It didn't even occur to me that it has always been running on the UI thread.
hijacking the UI thread will do that, yeah
wait, it always has been?
Anything that gets called from a WndProc is going to block the VBE.
I should do a quick audit to see if there's anything else that needs to run async there.
1:56 AM
unless... can we make them async?
The declaration finder runs really fast, but finding a declaration 20 times a second adds up really fast.
> @retailcoder consider asking Appveyor themselves for depth investigation and present their results here to support this pathway (github.com/appveyor/ci/issues)
We're updating faster than the native selection widget now. :-)
that's awesome. imagine when we end up only reparsing modified nodes... we'll be faster than Roslyn haha
2:02 AM
628 commits since last release, and counting. Test project that used to parse in 5 minutes now ready in 10 seconds.… https://twitter.com/i/web/status/837120748829491200
@Duga pretty sure that's reported already
Huh. I didn't see it. Let me search harder...
hmm, apparently not
No, you're right. #2451. At least I know what the problem is now.
@Comintern I honestly have no idea how that could happen
I do.
                        // Idiotic approach to find the best declaration out of a set of overlapping declarations.
                        // The one closest to the start of the user selection with the smallest width wins.
> This has been implemented as the @IgnoreModule annotation, which will ship with 2.0.12.
@Comintern oh
> Pretty sure the issue on this is in RubberduckParserState.FindSelectedDeclaration - overlapping declarations are using a naive approach based on the location of the selection. More correct behavior would be to find all of the overlapping declarations and select the one with the smallest scope.
2:19 AM
is #2286 still WIP?
WNIP? I'd still leave it open - I'll implement the rest of the features after more important stuff gets fixed.
all good
other than that the Features project is all set for 2.0.12
I think #2622 is fixed
I should probably re-milestone #2286.
eh, just as long as we know what we're shipping in two days =)
let's make a "planning day" to clean up the issues and projects for 2.0.13 (or .20? whatever)
2:24 AM
If #2622 is fixed, I didn't do it - that's the default member access resolution.
That might prove to be a bitch.
I think I did it
@Mat'sMug Good idea.
gosh and I need to review the French translations too
2.0.13 should be fine for a name. Reasoning: 13 is a hexed number. Witches hex things. Witches float. Rubberducks float. Rubberducks own the number 13.
2:30 AM
Adding a scope option toFindSelectedDeclaration won't be very straight-forward... It has a ton of callers.
> This is probably related to the implementation of FindSelectedDeclaration. Linking #2451.
@Hosch250 got the pen, it's in one piece - and wow, it's beautiful!
I'll try to confirm #2298 is fixed tonight.
I'm having issues with RD when I'm testing it with VS
It appears to load but wont resolve it's initial parse
@IvenBach did you sync with the latest changes?
2:41 AM
No. I don't know how to do that.
hold on, gimme 5-10 minutes
Just Create pull request?
..and then merge it
notice the dropdowns at the top
the fork/branch you're merging into is on the left
the fork/branch you're merging from is on the right
once you merged the PR, your remote will be up-to-date
you need to pull the unsynced commits into your local
It's easier to do from the command line.
I'll try that in a bit.
I'll let you know how it goes.
2:54 AM
I just run a bash script to synch my fork on github with next.
huh, why didn't I think of that
I just use git powershell. Up arrow to the last used command, press enter.
I used the up arrow method until I got too lazy even for that.
I really need to learn to use git CLI
@Comintern say, what does that script look like? :-)
cd C:\Users\Mathieu\Documents\GitHub\Rubberduck
^ Untitled - Notepad
3:00 AM
A: How do you merge two Git repositories?

Simon PerepelitsaA single branch of another repository can be easily placed under a subdirectory retaining its history. For example: git subtree add --prefix=rails git://github.com/rails/rails.git master This will appear as a single commit where all files of Rails master branch are added into "rails" directory...

^ I'm totally not looking at the right thing
git fetch upstream
git merge upstream/next
git push -f origin next
fetch upstream fetches the remote commits from rubberduckvba/rubberduck
git merge upstream/next merges current branch with remote next
Yeah. That forces my fork equal with next.
git push -f origin next force-pushes to myfork/rubberduck in the next branch
do I get this right?
The target is the clone of your fork
upstream is set to next
3:04 AM
upstream is rubberduckvba/rubberduck, right?
git fetch upstream pulls next.
then merges with the clone.
I just use git pull upstream/next
There are 2 nexts.
you never pull?
upstream next is rd/next
3:04 AM
I only use it if I'm way behind next.
@Mat'sMug I had a friend like that in College
why do you need to fetch then?
the fetch overwrites the local.
3:05 AM
you don't want to do it if you want to keep your local.
that's kinda exactly the opposite of what the Team Explorer "fetch" does...
TE fetch fetches from the forked next.
pull upstream/next pulls from rd/next
[fetch] fills up the incoming commits from .. yeah that
so why fetch & merge instead of pull upstream?
(or vice-versa)
then the merge merges the commits from rd/next that aren't in the fork into fork/next
3:07 AM
the force-push then synchs the fork.
with the merge conflicts?
or it'll fail?
only if you do it directly onto your clone.
eh, the next commit would resolve the conflicts and end up pushed there anyway
I use a second bare clone in Linux exclusively for force-synching to next.
gosh I know nothing
3:09 AM
The bare clone doesn't catch my VM commits, so when I synch in that clone, I only get changes in next that aren't in my VM clone.
That way, when I synch with my fork from the bare clone, it only gets rd/next.
I just make a new branch off upstream/next for that
A: Clean up a fork and restart it from the upstream

VonCThe simplest solution would be (using 'upstream' as the remote name referencing the original repo forked): git remote add upstream /url/to/original/repo git fetch upstream git checkout master git reset --hard upstream/master git push origin master --force (Similar to this GitHub page, secti...

A: How do I update a GitHub forked repository?

Mark LongairIn your local clone of your forked repository, you can add the original GitHub repository as a "remote". ("Remotes" are like nicknames for the URLs of repositories - origin is one, for example.) Then you can fetch all the branches from that upstream repository, and rebase your work to continue ...

Those are my 2 bash scripts.
@Comintern bookmarked ...pretty sure I'll end up needing it
huh, I'd set up a "chatroom event" for the 2.0.13 planning, but..
> Schedule a new event

Because you are a moderator there, an event that you schedule in this room may be advertised on codereview.stackexchange.com and tweeted by the site's Twitter account.
I've been to enough community forums to know that's a bad idea.
@Comintern can you access this page with RO privs?
lol, IKR
3:16 AM
Yeah, I can access it - no idea what the rights are.
date and time?
the kids are off to the cottage with their grandparents this weekend; I suppose soon after 2.0.12 is released and up & running on the website
2017-03-04 ...gosh UTC time
Sometime on the 5th? It's a bit hard with Germany and Australia being roughly 12hrs apart.
Who's 4th? International dateline.
yeah 5th is perfect
I have no idea what SE uses for dates.
I'd guess yyyy-MM-dd
3:21 AM
OK, so it's 3:22 UTC now...
Wow, I hate datetime and I'm even pretty good at it.
so 2PM would be, uh 7PM UTC
what's the offset for Germany & Australia?
Other way I think. I'm at UTC -6 in CST.
gah, -5 yeah
Germany is like +1?
Whew. Wikipedia to the rescue.
This is a list of the UTC time offsets, showing the difference in hours and minutes from Coordinated Universal Time (UTC), from the westernmost (−12:00) to the easternmost (+14:00). It includes countries and regions that observe them during standard time or year round. The main purpose of this page is to list the standard time offsets of different countries, territories and regions. Information on daylight saving time or historical changes in offsets can be found in the individual offset articles (e.g. UTC+01:00), or the country-specific time articles (e.g. Time in Russia). Places that observe...
So Melbourne is UTC+10
so that's -6, -5, +1 and +10
1PM, 2PM, 8PM, 7AM
3:27 AM
So morning and afternoon for DE and AU, midday for US and CA.
looks like 9PM UTC would be reasonable?
Works for me. @ThunderFrame? @Vogel612? @M.Doerner?
hmm that's 9AM on Monday for Australia
Oh crap.
3:30 AM
Monday in Melbourne.
Eh, can always reschedule if needed.
3:51 AM
sry - had a work thing FFS
sails through month-end without issue.... 2 days later and the fan is being hit.
6am would be better
i.e. one hour earlier
I'm good with that.
huh, SE says "Starts in 3 days (in your timezone, that's 20:00 on Sunday), lasts 60 minutes"
> Starts in 3 days (in your timezone, that's 4:00 on Sunday), lasts 60 minutes.
4:03 AM
Hmmm... Parameter can be passed by value is thoroughly confused by recursion.
looking at the ICS - DTSTART:20170305T090000Z
FML, found another string function issue.
@Mat'sMug 0900 Zulu is 4AM
oh shit
I think you want T190000Z
4:08 AM
^ @Comintern ^
What is that in an Excel time format string?
You can download the iCal/ICS file from SE chat - it's the only way to see the real UTC time
    private void RemoveVariable(Declaration target)
        var module = target.QualifiedName.QualifiedModuleName.Component.CodeModule;
Sunday 1900 UTC should be 2000 in Germany, 1400 Quebec, 1300 Nebraska, and 0600 Monday for me
4:10 AM
Crap. I don't think you can edit the events.
Wait, that's not right.
5 + 6 = 11
I hate datetime
Wow, I suck at this. The Zulus are attacking my base 60 math skills.
DateTime proficiency is negatively correlated with proximity to the meridian line
Comintern has added an event to this room's schedule.
Comintern has removed an event from this room's schedule.
Comintern has removed an event from this room's schedule.
4:13 AM
Doh. I just crashed it.
Chat schedule DDOS attack there.
There we go.
might last longer though
but blocking 60 minutes is reasonable I think
OK, CR post time. Confused the hell out of RD.
I still think it's bizarre that CR warns about duplicates based on the title...
4:42 AM
Anyone still active that could help finish a merge?
I think I merged my pull request.
How do I acquire the updated build to my VS so I can test with the updates that have been done?
you can do that from the VS Team Explorer's Unsynced Commits tab (just hit the 'sync' button), or from command-line
Unsynced Commits is under Team Explorer?
OK, with some luck that will be the ugliest piece of code I ever post on CR.
4:51 AM
@IvenBach yeah.. the large-font title is actually a drop-down menu
that "oh" moment when I found out...
Mine just says sync
Does that mean I have it updated?
oh wait, you're on VS2015 right?
VS 2015 is way different.
Community 2015
4:53 AM
I don't have an install here.
launches RD-Web
damn that's taking forever
oh, yeah - the sync button
Q: Find all differences between 2 strings

CominternI pulled this out of my code bucket and dusted it off earlier today in response to a post over on SO that made me cringe. This was originally written to highlight changes in Excel cells in real time via Worksheet_Change, so it is designed with an eye toward raw speed to avoid blocking the UI. Be...

then the little "Sync" linkbutton

« first day (1000 days earlier)      last day (1510 days later) »