« first day (1507 days earlier)      last day (1673 days later) » 

12:00 AM
RELOAD!
[FreezePhoenix/XtraUtils] 6 commits. 1382956 additions. 1381576 deletions.
[rubberduck-vba/Rubberduck] 2 opened issues. 2 closed issues. 20 issue comments.
 
@ThunderFrame tbh i never seen anyone change for all modules. Maybe rarely for one or two that deals with bunary but as a rule they leave it at database.
 
12:17 AM
@this yep, I was thinking for all new modules rather than all exisiting modules. I guess it depends on the nature of the project.
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=h1) Report
> Merging [#4210](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/5d5a35562ebe653848201b5cd477b5eaf8c6068a?src=pr&el=desc) will **increase** coverage by `0.01%`.
> The diff coverage is `100%`.


```diff
@@ Coverage Diff @@
## next #4210 +/- ##
=========================
[rubberduck-vba/Rubberduck] build for commit 7f5e6d1a on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
@Duga gah
 
12:57 AM
Tries setting a UserForm's Predeclared attribute to False, but VBA ignores the attribute :-/
 
 
1 hour later…
Thanks for your detailed answer. but while I'm well aware of the Option Compare settings, my question clearly isn't about that. My question is about why the documentation lists vbUseCompareOption as a valid value, but it isn't declared in Access 2000, 2007 or 2016. Is it perhaps in another version? All of the documentation would seem to be incorrect, if it's meant to apply to all versions of Office. If vbUseCompareOption doesn't exist, then any code that tries to use it is going to either cause a compile error, or return unexpected results. — ThunderFrame 5 mins ago
Thanks ashleedawg for the copy/pasta answer, but it is clearly not what I was asking
 
 
1 hour later…
3:43 AM
is it quicker using a usernumber in the chat search than typing the name in @ThunderFrame?
 
 
1 hour later…
4:44 AM
@mansellan failing because the environment isnt right. To locte midl, must rub the script to configure the environment for the c++ build tools.
@mansellan i see the problem. Dont use new variable. Overwrite the devpath variable. See line 193
@ThunderFrame did u try using the option in a module without option compare database
 
Does anyone have a copy of the Open Group spec "DCE 1.1: REMOTE PROCEDURE CALL"?
They'll only send activation codes to business email addresses, and my RDP connection is apparently down.
 
 
2 hours later…
6:43 AM
@Comintern Google gave me this as the first hit pubs.opengroup.org/onlinepubs/9629399/toc.pdf
@PeterMTaylor yeah, I've just discovered that recently
 
 
3 hours later…
10:43 AM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4218?src=pr&el=h1) Report
> Merging [#4218](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4218?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `0.08%`.
> The diff coverage is `90.83%`.


```diff
@@ Coverage Diff @@
## next #4218 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit 4c05e3f7 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4218?src=pr&el=h1) Report
> Merging [#4218](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4218?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `0.08%`.
> The diff coverage is `90.83%`.


```diff
@@ Coverage Diff @@
## next #4218 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit 4c05e3f7 on unknown branch: 52.31% (target 0%)
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4218?src=pr&el=h1) Report
> Merging [#4218](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4218?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `0.08%`.
> The diff coverage is `90.83%`.


```diff
@@ Coverage Diff @@
## next #4218 +/- ##
=======================
 
11:26 AM
[rubberduck-vba/Rubberduck] build for commit 48395ed6 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4218?src=pr&el=h1) Report
> Merging [#4218](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4218?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `0.08%`.
> The diff coverage is `90.83%`.


```diff
@@ Coverage Diff @@
## next #4218 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit 48395ed6 on unknown branch: 52.31% (target 0%)
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=h1) Report
> Merging [#4210](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `n/a`.


```diff
@@ Coverage Diff @@
## next #4210 +/- ##
==========================
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=h1) Report
> Merging [#4210](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `n/a`.


```diff
@@ Coverage Diff @@
## next #4210 +/- ##
==========================
[rubberduck-vba/Rubberduck] build for commit 7f5e6d1a on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
@Duga knew that one would fail, it was before my latest commit
 
11:44 AM
[rubberduck-vba/Rubberduck] build for commit 076acba4 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=h1) Report
> Merging [#4210](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `n/a`.


```diff
@@ Coverage Diff @@
## next #4210 +/- ##
==========================
[rubberduck-vba/Rubberduck] build for commit 076acba4 on unknown branch: 52.23% (target 0%)
 
11:56 AM
[rubberduck-vba/Rubberduck] build for commit e3a97b06 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=h1) Report
> Merging [#4210](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `n/a`.


```diff
@@ Coverage Diff @@
## next #4210 +/- ##
==========================
[rubberduck-vba/Rubberduck] build for commit e3a97b06 on unknown branch: 52.23% (target 0%)
 
@Duga looks good
 
:D
 
Wasnt so hard, eh?
Verifying this woas tested on your vm, too?
 
yes, builds fine there. Thinking about it though, I should go back to my original dual-boot partition and check it actually does what it says on the tin (builds from non-C:)
rebooting, back in a bit
yep, fine there too
@this lol thanks for the hint. Wasn't so much me rage-quitting as not being that interested - I've given up working from non-C: as VB6 throws a tantrum :-)
and given no-one else reported it yet it seems a non-C: windows install is rare
 
12:29 PM
No prob, there was actually another guy who had problems with spacs? UNC? with the build. I like to ensure that the build script works anywhere as to not be an impedient to contributors. Nobody likes handholding a complicated build sysytem.
There is a post on CR to review the build system. Guess how many answers I got for that question...
 
lol
 
12:57 PM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4219?src=pr&el=h1) Report
> Merging [#4219](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4219?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **decrease** coverage by `0.07%`.
> The diff coverage is `5.26%`.


```diff
@@ Coverage Diff @@
## next #4219 +/- ##
========================
 
@Hosch250 how is the analyzer going?
 
Gah, don't merge that PR yet - reg file not right :-(
 
[rubberduck-vba/Rubberduck] build for commit f4c71232 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4219?src=pr&el=h1) Report
> Merging [#4219](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4219?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **decrease** coverage by `0.03%`.
> The diff coverage is `14.04%`.


```diff
@@ Coverage Diff @@
## next #4219 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit f4c71232 on unknown branch: 52.19% (target 0%)
 
1:25 PM
[rubberduck-vba/Rubberduck] build for commit de222262 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=h1) Report
> Merging [#4210](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4210?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/9d5f49a5e60e66eed77236da94402087a9dd86c0?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `n/a`.


```diff
@@ Coverage Diff @@
## next #4210 +/- ##
==========================
[rubberduck-vba/Rubberduck] build for commit de222262 on unknown branch: 52.23% (target 0%)
 
Hmm... Com collector still not 100%... problems with WithEvents atm. Details to follow.
 
@Comintern getting a nullref here: github.com/rubberduck-vba/Rubberduck/blob/… on DefaultValue
Guessing for an enum the default value should just be default(int) ?
 
@mansellan What library is it?
 
VB
DragDrop enum
 
2:39 PM
I'll have to test that - I changed the enum member resolution in the WIP PR - it's now var member = enumType.Members.FirstOrDefault(m => m.Value == Value);, but that's in the new base class.
I'm still a little puzzled at how an enum member could wind up with a null default value there.
 
msvbvm60.dll/3
ah sorry PR is still WIP? I thought it was already in next
 
No, it's still WIP. I was doing some research into the specs around VT_PTR in parameters. Although if that's broken, it's always been broken.
 
ok nw - you want me to test it against your branch?
 
Sure. I think that lib installs with either Windows or Office, so I should be able to test it too.
 
ok cool
 
3:13 PM
The olewoo pr got merged. This at least confirms I did not introduce obvious and brazen buga, only that I might havedone good enough job to hide the bugs.
 
3:26 PM
@Comintern I get a different error from your branch:
2018-07-22 08:24:51.9640;WARN-2.2.6777.15094;Rubberduck.Parsing.VBA.COMReferenceSynchronizerBase;Types were not loaded from referenced type library 'VBA'.;
2018-07-22 08:24:51.9640;ERROR-2.2.6777.15094;Rubberduck.Parsing.VBA.COMReferenceSynchronizerBase;System.ArgumentNullException: Value cannot be null.
Parameter name: ptr
   at System.Runtime.InteropServices.Marshal.PtrToStringUni(IntPtr ptr, Int32 len)
   at System.Runtime.InteropServices.Marshal.PtrToStringBSTR(IntPtr ptr)
   at Rubberduck.Parsing.ComReflection.ComVariant..ctor(IntPtr variant) in C:\My\Dev\GitHub\comintern\Rubberduck\Ru
looks like its when it's trying to resolve vbNullString
 
3:39 PM
I think more likely that they stored zero (the numeric value) in a field that is a pointer.... lpvarValue in the GetValue.
 
@mansellan what happens when you Import a module file that's in a temp directory, into a VB6 project? Does it copy the file into the project's folder? And if it's a FRM/FRX combo, does it copy both files into the project's directory?
 
^ I have this working in my local. It's up there with AutoComplete for convenience.
 
3:57 PM
@ThunderFrame no, it just stores the relative path to the .frm in the project file:
Form=..\Temp\Form1.frm
 
@ThunderFrame only for new module? I imagine would be convenient to restore for module that lost it....
 
4:28 PM
@mansellan Ah - those calls need to be members.ToPointer() == IntPtr.Zero ? string.Empty : Marshal.PtrToStringBSTR(members.ToPointer());. Fixed.
 
4:45 PM
I must be missing something - how could an enum member have a default value of emtpy string?
 
4:58 PM
@this I'm assuming that the second error was a parameter.
 
5:16 PM
[rubberduck-vba/Rubberduck] mansellan pushed commit 6ce51714 to next: Closes #4209
[rubberduck-vba/Rubberduck] mansellan pushed commit 5a211531 to next: Added VB6 to local registry file
[rubberduck-vba/Rubberduck] mansellan pushed commit 2b75ab5c to next: Merge branch 'next' of github.com/rubberduck-vba/Rubberduck into 4209
[rubberduck-vba/Rubberduck] mansellan pushed commit 7f5e6d1a to next: Changed to work with PS 5.0
[rubberduck-vba/Rubberduck] mansellan pushed commit 076acba4 to next: Merge branch '4209' of github.com/mansellan/Rubberduck into 4209
[rubberduck-vba/Rubberduck] mansellan pushed commit e3a97b06 to next: Fixes devPath
[rubberduck-vba/Rubberduck] mansellan pushed commit de222262 to next: Fixed reg file
Merge pull request #4210 from mansellan/4209

Allow RD to build when Windows not on C:
 
5:28 PM
[rubberduck-vba/Rubberduck] build for commit 0941bdcd on next: AppVeyor build succeeded
[rubberduck-vba/Rubberduck] build for commit 0941bdcd on next: 52.23% (target 0%)
> I would find the `SequenceEquals` assertion more useful if it could handle any iterable value, not just arrays. Currently I'm having to convert to arrays to use the test, and my typical call site looks like this: `Assert.SequenceEquals Array("0", "0", "1"), IterableToArray(someIterable)`

Where `IterableToArray` recursively extracts an iterable into a multi-dimensional 0-indexed array (0-indexed to match the indexing of `Array()`)

Is there any reason why Rubberduck could not internally ca
> I don’t see why it couldn’t. I’ve often found myself mildly irritated with other unit testing frameworks that can’t compare iterables. Then again, it’s also easier for the client to provide a reasonable `ToArray` function for their iterable than it is to thoroughly implement this in a generic way on our side.

I would think the team would be open to a pull request.
 
6:12 PM
> Off the cuff, I think it should be possible and easy enough (!) to support objects that implements the IEnumVARIANT interface. That should be the standard approach used in this context.

What I am not too sure about is the homebrewn VBA (VB6?) class posing as a collection. Normally, they do this by implementing the decorated _NewEnum and just forward calls to the underlying class. This might work to enable the "For Each" feature in VBA but I'm not sure that will also implement the required
> @bclothier you can test if the class object implements the DISPID_ENUM (-4) member through IDispatch, and if it does, call it and then query the returned object (IUnknown) for the IEnumVARIANT interface that you want.
 
6:32 PM
> @bclothier for the homebrew case, you can test if the class object implements the ~~DISPID_ENUM~~ DISPID_NEWENUM (-4) member through IDispatch, and if it does, call it and then query the returned object (IUnknown) for the IEnumVARIANT interface that you want.
 
 
2 hours later…
8:13 PM
@Comintern Chokes of vbNullChar - OutOfMemoryException
 
@mansellan Out of memory?
 
nope :-)
I wonder if it's trying to allocate 0 bytes? BSTRs are null-terminated iiuc?
 
Yep - they do that to be backward compatible with LPSTR.
WTH do they have vbNullChar declared as BSTR instead of signed byte?
 
msvbvm60 again, type constants
 
OK, I'll take a look at it in a couple hours.
 
8:23 PM
thanks
 
9:00 PM
@mansellan OK, thanks. Will have to deal with that. I assume the VB6 implementation of IVbComponents handles that. I'll take a look.
@this for now, yes, only for new modules. IIRC, the module level attributes don't get lost like the procedure level ones do. However, it would absolutely be nice to toggle the predeclared setting for an existing module, but I was hoping to create a dialog (similar to the VB6 one) or wait for AvalonEdit for editing all module level attributes.
But next up is adding a PublicNotCreatable UserForm.
 
9:19 PM
@this OK. Not sure how to test it under the debugger in real life ATM.
I think it's most of the way done.
 
In my case i could only test via the test project
hmm maybe it is also because i set up the code analysis to compile using "Release" even when the solution is set to "Debug"
that was necessary to ensure that when we develop on the RD project, we are running the release version of the code analysis.
 
9:52 PM
> Updating code written by the macro recorder. Started with
```
Range("B3").Select
Selection.FormulaR1C1 = "1"
Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
Step:=1, stop:=12, Trend:=False
```

And got to the point below.
```
With ActiveSheet.Range("B3")
.Value2 = "1"
Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
Step:=1, stop:=12, Trend:=False
End With
```

When I go to remove `Sel
 
10:56 PM
OK, WTF? I'm looking at vbe7 in the debugger and the vbCrLf constant has what looks to be a valid Variant loading from the pointer in varDesc.desc.lpvarValue, but the BSTR pointer in the data area appears to be a bad pointer when I try to dereference it as a BSTR.
:wonders if this is why oleview can't decompile the module to midl:
 
@Comintern FWIW, I can open it just fine in oleview
but IIRC, you are on 64-bit? Maybe you need to use 64-bit oleveiw
 
I can open it at the level of the const, but not at the level of the vbConstants module.
 
Lemme see
Yeah i can read it just fine
at all levles, i mean
 
What's weird is that oleview is able to pick up the constant value too.
I am on 64 bit, BTW. Could it be loading a 32 bit version of the tlb?
The pointer would be overflowing it.
 
If you're going to the program files x86 then yes
or you are loading 32-bit oleview
either way would be likely to do bad things
 
11:08 PM
Using 64 bit oleview in Program Files.
I'm not exactly clear on which dll that LoadLibrary pulled it from though.
 
insane test - if you loaded 32-bit oleview and if you do have 32-bit vbe7, will it work?
(or failing that, can you still load the vbe7 using 32-bit oleview)
 
It doesn't appear to be a bitness problem. I just confirmed that the last time I serialized it had the 64 bit vbe7 typelib loaded.
The weird thing is that some of the other BSTR consts are reading just fine.
 
In what context are you seeing the bad pointer?
 
I'm trying to dereference the pointer for the VARDESC of the const here:
            case VarEnum.VT_BSTR:
                Value = members.ToPointer() == IntPtr.Zero ? string.Empty : Marshal.PtrToStringBSTR(members.ToPointer());
                break;
For vbCrLf, that's an access violation.
 
With vbe type lib api , Wayne left a note warning that poitners become invalid once you allow the IDE to run again
if we are multithreading, there is also no thread safety
could either be the cause?
 
11:18 PM
It's possible. There's a note in the documentation for VARDESC that the pointers are "unique pointers".
 
you forgot "and you asked for it, so you clean up after yourself!" ;)
 
The Open Group spec has this in the definition:
A unique pointer’s value may change from non-NULL to NULL during a call.  This change
can  result  in  the  orphaning of the memory pointed to  on return from the call.  If a unique
pointer  changes  from  one  non-NULL  value  to  another  non-NULL  value,  the  change  is
ignored.
I'm getting an access violation on vbNullChar now.
 
Just so i'm clear, why are we relying on open group? Wouldn't Microsoft be the first soure?
 
They specifically refer to it in the VARDESC documentation.
 
I don't have the code in front of me but i think you have to ensure that your access to vardesc is done in a single thread
and that thread is not allowed to return until you're done.
since you're loading vbe7, I don't think IDE is a factor.... I hope.
with VBA's typelib, you definitely have to use the UI thread to do the access
 
11:22 PM
We are multi-threading the reference collection, but each one runs to completion in its own thread.
 
then i have no idea why you'd lose pointer among the way within that context.
Maybe @WaynePhillipsEA has better inisight in this than I do.
 
It sure as hell looks like a 64 bit pointer.
 
well it has to be if you're running 64-bit office, no?
 
Yeah, I was considering whether the bitness might always be treated as 32 internally in the tlb. These values should be static if I'm understanding this correctly.
 
Hmm. That'd be odd because we must publish 2 separate TLBs for each bitness
if it's always "32-bit" then we would not have to do this.
hey hey
 
11:27 PM
Yeah, it was the only thing I could think of off the top of my head. I'm loading symbols for mscorlib now. I need to take a look a bit deeper in the stack.
 
you're calling ToPointer() twice.
should you cache that?
 
That shouldn't matter, should it?
It's defined as public IntPtr ToPointer() => ProcessIs32Bit ? new IntPtr(iVal) : new IntPtr(lVal);.
 
oh sorry, right. It's your function
 
Caching it probably wouldn't hurt, but I didn't see much point.
 
i was thinking it was from .NET and if it's "unique" calling it multiple times wouldn't be safe.
 
11:29 PM
The IntPtr ctor wouldn't be pinning anything, would it?
 
I would not rely on IntPtr to pin anything.
 
I don't, but I could see how if it was pinned it might be an access violation.
 
if you can safely read say, vt member multiple times, then i don't think it's that.
 
Grrrr... symbol server timed out. Stupid Netflix, Hulu, every other service that's streaming in my neighborhood at 6:30 on a Sunday...
What sucks is that I can't even try\catch that exception because it smashes the stack.
 
You are running with native and managed code both enabled, yeah?
 
11:36 PM
I'm not, but I easily could be. The access violation takes down the host process though.
 
yeah only way to see them
 
Trying that now, hopefully the symbols pull this time...
Oh crap, I might not have configured my symbol server settings. :facepalm:
Forgot this was a fresh VM...
 
11:56 PM
@MathieuGuindon do you mind if i try to use an app called codehub w/ rd? It uses oauth so it will ask for auth from you (the owner of the org)
 

« first day (1507 days earlier)      last day (1673 days later) »