« first day (715 days earlier)      last day (2465 days later) » 

00:01
RELOAD!
[Hosch250/Rubberduck] 9 commits. 957 additions. 154 deletions.
[retailcoder/Rubberduck] 13 commits. 1190 additions. 155 deletions.
[rubberduck-vba/Rubberduck] 8 commits. 4 opened issues. 5 closed issues. 10 issue comments. 943 additions. 148 deletions.
[Zomis/Duga] 4 commits. 4 additions.
00:14
Done for the day. Have a headache.
 
2 hours later…
02:31
@Comintern - good details on VBA guts here orlando.mvps.org/VBADecompilerMore.asp#WhatItIs
I realized a little bit ago that I'm going to need to figure out how to update windows while the VBE is in debug mode. :-/
Wow - stack overflow from a Linq statement...
@Comintern where's that?
Oh, that was mine. I had a blonde moment and forgot that when I call CodePane.Window.Caption it has to get the Caption by sending a WM_PAINT message. So... if I have vbe.CodePanes.Cast<CodePane>().FirstOrDefault(x => x.Window.Caption.Equals(caption.ToString())) in the message pump it recurses.
I keep forgetting that Linq isn't some magic wand that pulls stuff out of thin air.
02:45
[rubberduck-vba/Rubberduck] build for commit 118f5329 on next: AppVeyor build succeeded
@ThunderFrame - Am I remembering correctly that there's a VBA tool out there that can intercept the debug events when it asserts?
vbWatchdog can trace the stack
I don't remember seeing the kernel32 debug functions in the import list for the VBE. I might have to break down and read Inside Windows Debugging.
I should probably code the Dispose() methods before I run out of HDD space from these in my log file:
Faulting application name: EXCEL.EXE, version: 15.0.4823.1000, time stamp: 0x570cf720
Faulting module name: ole32.dll, version: 6.1.7601.17514, time stamp: 0x4ce7b96f
Exception code: 0xc0000005
vbWatchdog also subclasses the CodePanes.
It looks like they intercept the paint event, change the aspect ratio, and fill in the leftover space.
 
2 hours later…
06:08
> Working with 118f532 I also get this problem with Excel.
Steps to reproduce the problem

1. Open VBE
2. Close all windows
3. Goto Tools - Reference
4. Close Reference Dialog

Then the error occurs
06:29
.
@Mat'sMug yes, yes, yes
 
1 hour later…
08:24
> Working on 118f532 in Excel 2010
The code explorer shows an empty window.
I get a message Parser Error
When opening the result window it is empty.
Opening the result window several times I get multipl tabs in the window
![image](https://cloud.githubusercontent.com/assets/2772829/15447290/183cfb42-1f3e-11e6-97fe-3f974dde8425.png)
 
2 hours later…
12:09
> added translation for "Parser Errors", one typo fix in German translation
[rubberduck-vba/Rubberduck] build for commit fc32aa42 on unknown branch: AppVeyor build succeeded
 
1 hour later…
13:44
[rubberduck-vba/Rubberduck] retailcoder pushed commit 1dbe676e to next: translation: added translation for "Parser Errors", one typo fix in German translation (#1559)
[rubberduck-vba/Rubberduck] build for commit 1dbe676e on next: AppVeyor build succeeded
14:02
> Changes: 1. Add support for foreign identifiers (#1521). Only the first "level" is considered and simply treated as a normal identifier. 2. Speed up all parsers by rewriting the grammar (#1502). The 65k comments example parses in 400ms here. The parser tests run in 2secs now. The preprocessor tests in 1sec. Modules in smaller test projects are usually parsed in <100ms. If the faster approach fails, it falls back automatically to the slower approach. This way even if there's a combination...
that requires the slow approach it won't fail. It does get logged however so we can fix it (currently simply using Debug.WriteLine). 3. Integrated expressions into the main grammar. There's no separate expression grammar anymore. Because of that valueStmt and rules like "implicitCallStmt_InStmt" are no more. There's no need (in most cases) to reparse expressions anymore either. Please review and test with as much code as possible. All tests pass but since quite a few things have changed there...
might be some subtle things I've missed.
[rubberduck-vba/Rubberduck] build for commit 2bda98b1 on unknown branch: AppVeyor build succeeded
14:50
Speed up parsers (#1560)

* clean up file statements (fixes #1487)

* consider members in supertypes as members of enclosing module (fixes #1489)

* remove temp fix (should be fixed with #1489)

* add support for Circle and Scale special forms (fixes #1498)

* fix foreign names (#1521)

* speed up all parsers by using the "two-stage parsing" approach

* reenable "function return value not used" inspection

* clean up
> Awesome work!! Only missing #1539 with block resolution and we'll be good for a beta I think.
> I don't know what's up with this, but if you get a parser error on the very first parse, the code explorer will be empty, and there is nothing we can do about it.
[rubberduck-vba/Rubberduck] build for commit e063c79f on next: AppVeyor build succeeded
> @Hosch250 shouldn't it yield error nodes in the tree?
> Ummm, I guess it should--at the component level. I'll take a look on Monday.
> With block resolution should actually already work. Can you tell me what exactly doesn't work?

What I forgot to mention is that identifier references are now added even if part of an expression fails.
> Oh sweet! I'll only be able to pull and test things later though, but this is looking very very very good!
> No problem! Please tell me how long the parser/preprocessor tests take on your system. I wonder how long they take on @grleachman's PC. Hopefully under 1 minute...
> Do you have some example code that's causing the parser error?
> @Hosch250 we'll have to do something about refreshing the parser errors tab instead of making a new one everytime the parser error button is clicked.
15:26
@Mat'sMug Is it correct to say that the website is written in ASP.NET?
What is it written in?
ASP.NET MVC
OK.
Just wrote up the weekly report.
Monday is a statutory holiday here, I won't be able to scan & resend until Tuesday
I've been struggling with headaches the past couple days, and I think it might be because I'm on my computer so much.
Oh, I'll make a note on the submission then.
@Hosch250 do you ever take a break? ;-)
15:34
Never.
Well, on a more serious note, I've been quitting after 8 hours the past couple days.
I would like you to survive this internship... please take an hour off every day... minimum!
Well, Wednesday and Friday--Thursday, I only got in about 3:30.
Well, I do walk my dog and do the dishes.
We won't be practicing driving much this week, so I'll have an extra free hour or so.
And you rubberduck in your head all the while? Doesn't count as a break!
Umm, no.
I usually do that when I'm trying to sleep, if I'm not too tired to think.
I don't suppose you have a faxer if you don't have a scanner.
We can take faxes too, and we have to print it anyway for me to sign.
(In fact, apparently Windows can intercept faxes, but I've never done it.)
I'll be back later. Have fun reviewing all the changes.
It's amazing what you can break with Win32. I just locked it up so badly that it took down its VM host.
4
I might have to submit that as a bug report to VirtualBox...
 
1 hour later…
16:50
> This should work with the latest PR. I'll go ahead and close this then if that's OK.
> This should work with the latest PR.
> The latest changes might have helped with this issue. @joshuader6 can you give it a try again? Or at least give a quick summary of what you tried to rename?
> The parser should be a lot faster now. The comments example mentioned in the first post takes about 500ms to parse here now. @ThunderFrame (or anyone really): Can you use the latest version and tell me how long it takes?
> @Hosch250 had the idea of linking up members and the interfaces/interface members to implement since that would make a lot of things easier. Currently the class declarations have the supertypes/subtypes they implement but the members don't have anything like that.
 
1 hour later…
17:59
> "TypeOf Is" expressions are split up into "type of" and "is" operations and I got the hierarchy wrong. I thought it's type of expression -> relational op but it's relational op -> type of. Here's the fix plus tests.
[rubberduck-vba/Rubberduck] build for commit ff80eabc on unknown branch: AppVeyor build succeeded
18:48
> Yes absolutely - this would greatly simplify finding implementations and speed up inspections that need to account for interface members.
Fix TypeOfIs expression resolver (#1562)

* clean up file statements (fixes #1487)

* consider members in supertypes as members of enclosing module (fixes #1489)

* remove temp fix (should be fixed with #1489)

* add support for Circle and Scale special forms (fixes #1498)

* fix foreign names (#1521)

* speed up all parsers by using the "two-stage parsing" approach

* reenable "function return value not used" inspection

* clean up

* fix typeof expression resolver
[rubberduck-vba/Rubberduck] build for commit 9bd8d081 on next: AppVeyor build succeeded
 
1 hour later…
20:15
This is interesting - VBA's For loop can get confused if you're using a Step that doesn't get initialized. This code will exit, and outputs 0, 1:
Private Sub ForStepWierdness()
    Dim current As Integer

    GoTo InsideLoop:
    For current = 1 To 10 'Step 2
InsideLoop:
        Debug.Print current
    Next
    Debug.Print current
End Sub
But if you uncomment the Step 2, the loop iterater must never get initialized - it just falls into an endless loop. The current variable never gets updated.
20:31
> Related to #1541 and #1504 Changes: * Added logging for files (rollover at 5MB)
* Only one log file now, not one per "logging class" * Added log to debug/output window
* Tests only log to debug/output window * Removed EventId from event log
* Added example in identifier resolver * Added "Detailed logging enabled" to general settings. The idea is that the user can enable detailed logging which logs events with Log Level Debug+Trace. Otherwise only Info and above is logged. Also renamed...
the Event Log Source as specified in #1504. Does the installer have to be changed? Anything special in the config file that has to be done? The default is "detailed logging enabled"=false, that's why every developer has to enable the setting first. This is only an idea to get something out there, if there are ideas to make it different I'll change it.
[rubberduck-vba/Rubberduck] build for commit a4f27711 on unknown branch: AppVeyor build succeeded
@Comintern interesting grammar problem
@Duga What does this mean? member and interface members?
@Hosch250 @Mat'sMug What does #1561 mean. Can you give an exampled
It makes me think that when it's compiled, the Step is treated as a function that gets called by Next to increment the loop variable. If you jump past it, it doesn't get initialized, but neither does the default "add 1" increment.
This code would seem to confirm that:
Private Sub JumpIntoLoop()
    Dim jump As Integer
    Dim current As Integer
    Dim wentTo As Boolean

    jump = 1
    For current = 1 To 10 Step jump
InsideLoop:
        Debug.Print current
    Next
    Debug.Print current
    jump = 2
    If Not wentTo Then
        wentTo = True
        GoTo InsideLoop
    End If
End Sub
20:49
@Comintern very interesting. will remember that for my next VBA job interview. Which I hope never to ever have to do again.!
Feature request. More than 10 undo's or however many there are in VBA
@gleachman VBA can have interfaces: cpearson.com/Excel/Implements.aspx
If I can get the codepane replacement working that will come with it - unlimited undo.
5
Basically, in the list of declarations, it would be nice if a member that overrides an interface member has a link to the declaration of the interface's member.
I'm experimenting with Dragablz to see if it would be feasible to use as a tab control.
Some of our refactorings and inspections have to resolve this manually every time in a kind of clunky way.
@awgaya You really don't need to do this--especially if it has a noticeable impact on resolve performance.
What I really should do is just extract this logic out into a static helper class, or something, and call it from many places.
20:55
we're already linking the classes with the interfaces they implement so it shouldn't be too much work, haven't looked at it in detail yet though
OK.
@Mat'sMug I sent you my report.
21:28
> Looks great, the only thing that bothers me just a little is the sheer amount of commits that say "Merge branch 'next' of ..."

Rebasing is a thing when working with git :smile:
like... seriously... at least half of the commits are merge-commits for some updates from next
Configure logging (#1563)

* clean up file statements (fixes #1487)

* consider members in supertypes as members of enclosing module (fixes #1489)

* remove temp fix (should be fixed with #1489)

* add support for Circle and Scale special forms (fixes #1498)

* fix foreign names (#1521)

* speed up all parsers by using the "two-stage parsing" approach

* reenable "function return value not used" inspection

* clean up

* fix typeof expression resolver

* configure logging
> @Vogel612 meh.. they get squashed anyway.. does it really matter? What do you suggest? (Git noob here)
@Duga they get squashed? nope they don't @Mat'sMug
at least not by default
hmmm... you got that setting enabled on github?
okay then they do get squashed :D
It says "confirm squash & merge" on the button :-)
Personally I prefer to not squash those into one by default
21:34
I like that it makes each PR "atomic"
thereby losing atomicity on the changes themselves
and possibly control over how you want to group changes
[rubberduck-vba/Rubberduck] build for commit e6e991d0 on next: AppVeyor build succeeded
Sure.. but there's not enough hours in a day to review and organize everything, and have RL going on!
hmm.. You have a point there, then again it's really just adding a flag to git pull
360
Q: When should I use git pull --rebase?

Jason BakerI know of some people who use git pull --rebase by default and others who insist never to use it. I believe I understand the difference between merging and rebasing, but I'm trying to put this in the context of git pull. Is it just about not wanting to see lots of merge commit messages, or are ...

only works when working with console or a really well-done GUI
21:49
Ah, I think I get it. Commit locally and when it's ready to push, do pull -rebase... right?
When syncing I mean
Of course VS doesn't do that when you sync
@Hosch250 I'm pretty sure I saw you write a couple more things you learned last week. As I said I won't be able to send you back the report until Tuesday, feel free to fine-tune it by then :-)
@Comintern that would surprise me given WPF must be hosted in a WinForms interop container... but damn that'd be SICK!!
22:08
@Mat'sMug exactly
@Vogel612 gees I only use the console for git
@Hosch250 and its remarkable how many people refuse to use them.
If I load the addin after IDE is loaded a load of panes go from visible to invisible. Can these panels/panes whatever they are can have a default state of not visible
22:31
I'm currently replacing all debug.writelines with logger calls, anything that should have some logging added?
@awgaya I don't understand the problem with logging.. it is a cross cutting concern.
ninject is being used anyway.
so you could log against any class via a logged interface.
how would you do it then?
e.g. logging the time it takes to parse something
well area.Parse
for instance
that is a call on the class called Parser
and parser is injected into the app from its bootstrapper
lets assume Parser is an implementation of IParser
then a second implementation of IParser is LoggedParser
which might, or might not look like LoggedParser : IParser, IRDLogging
aren't you intermingling concerns here?
no you are actually seperating concerns
22:41
Logging is not something you should get a class out of
because logging in itself is not a "responsibility"
you should do it everywhere, always anyways
I haven't finished
so loggedparser is a decorator that does the logging?
I'm interjecting here because I challenge that part in your chain of logic :) but sure carry on
yes
Assert.That<> is not a logging
and IRDLogging is an adapter of nlog?
22:43
but will generate a log if it fails
no it's an illistration
ninject should do it all for you.
For your example. How long does it take to parse... That is not an Assert.That() failure. It's pure debug dross
dross being relative of course.. we do need it at certain times, but it doesn't really provide use in every day running
So anyway, I merely commenting on the fact that in using Ninject, there really shouldn't be a need for extensive logging messages of the Debug.Print sort that I have been seeing. IE Debug.Print("method in")... Debug.Print("Method Out")
yeah the logging was missing which should be there now
If I want to debug.Print (CanExecute <>Method : failed
Anyway my opinion is only my opinion
IMO : Debug.Print("method in") is not a high value log. Do I really want to see the method call chain for the entire application. And If I really do want to do that I can use Ninject to apply a log on start and end of every function anyway, without having to write a debug into every single method.
That said...
What you want is DI interception, available with the Ninject.Extensions.Interception namespace
It's only possible against Interfaced methods, and since RD has masses of privates that's going to be a challenge
Basically the DI equivalent of AOP
22:53
OAP you mean :)
how I feel
no, AOP.. aspect-oriented programming
Old age Pensioner
aspect orientated / cross cutting
quite
anyway.... hope everyone took that as a discussion, with me providing MY opinion
my opinion isn't always correct
and certainly isn't prescriptive
and is definitely not meant as a rule for RD to follow, merely to provoke thought on how logging can be applied non invasively using Ninject
Yep. But AOP frameworks mangle with the compiled code, which I take issue with. DI interception does the same thing but yiu execute the code that you actually wrote
22:56
and hopefully also to highlight the need for more interfaces, and fewer private methods....
replace private with protected internal
I'd be going for the DI interception myself
Definitely. But yeah we'd need some refactoring
The simplest would be to just inject an ILogger wherever we want to log. But that's the dirty and invasive way.
My hope is that you might get 100% coverage on your tests through TDD style testing
One day I suppose :-)
yes, that would be simplest. Simpler still use the Trace.Write and then use tracelistener
I mean why bother with NLog at all when microsoft provide the trace msdn.microsoft.com/en-us/library/4y5y10s7(v=vs.110).aspx
ok, so that's just a kind of throw out there
not meant to be taken litterly
23:04
@gleachman Nope.
Because NLog makes it easy to log anywhere and change targets and levels without changing a line of code... well in a .exe app anyway.. lol #fail
Well, actually, they are invisible by default.
What is going on is we need to make them visible to ensure they are at least the minimum size, then un-visible them.
Yes, I would like to get in the high 90%s for testing (not sure how feasible 100% is). It is mostly the UI that needs more tests now.
I've been having trouble getting calls to the dispatcher under test--it either hangs or doesn't run.
@Duga stupid ! LF!
@Mat'sMug how do I see the build logs
@gleachman there's no build logs, since there was no merge possible
doh
ok, someone suggest a quick way to get back all 500 files worth of linefeeds that were added when I pushed back up!
honestly!
23:16
 git config core.autocrlf true
@gleachman more conflicts?
there will be conflicts I've merged in the changes and there are conflicts as a result
until you pull my changes in there are going to be conflicts
the major conflict is 4 lines in the command
I'll check them myself and step you through what they will be
is that ok?
the main issue is that there's a presenter factory in the original code to pull up a gui for it
and I've removed the gui from the equation
but maybe I should first fix the 500 files of false positive changes
Showing 584 changed files with
actually reviewing the diff, it seems a lot of code has changed in the last 2 days
yeah maybe the change I made, sorry about that
@gleachman now that there's a PR, I'll merge it as soon as it's mergeable =)
so it's not my CRLF problem then. :)
mergable being?
you want to merge ontop of 584 changed files?
how did 584 files change in 2 days?
4
that 's massive
@PeterMTaylor :)
maybe it is my CRLF
23:27
Good morning @gleachman
@Duga Yeah, this is just something I'm not keen on, you're using a static logger, you'll have no options now. You might want to add something with a little more finesse later, but you won't be able to.
but what can I say hey, I've just pushed 584 changed files :)
23:43
> Does your source control config file look healthy?
And there I was thinking it was me....
@Mat'sMug I'm going to assume you will merge that in sometime
and carry on with the 2 adjustments required for #844
ice pack on right hand while typing with 2 fingers
@gleachman tbh I'm ambivalent about losing the UI and only extracting Sub procedures... otoh your work is so much more solid than the pile of mud I had...
@Mat'sMug says the man who's contributed 500k lines of code in 2 years.
500k lines of poorly tested mud yeah
I'll try to resolve the conflicts and merge it tonight. I'll merge @awgaya's PR first and then pull everything. PR-freeze until @gleachman's work is merged, guys
@Mat'sMug I love testing. I only write with testing. So I'm only too happy if the only thing I contribute to this project is testing.... So long as no one minds me pulling classes to pieces, and increasing the accessability of loads of private methods
23:53
OK
@Mat'sMug . I'm meaning unit testing, not black box testing.
you don't have to freeze PR's because of my merge. I only impact like 4 common classes. The other 560 odd are CRLF changes. In fact why don't I just rebase and then merge again
no didn't pickup the CRLF 's

« first day (715 days earlier)      last day (2465 days later) »