« first day (1903 days earlier)      last day (1277 days later) » 

12:00 AM
IINM, generics are just compile-time rules but in runtime, it's just plain non-generics (right?)
 
oh, not that I know of. ever heard of constructed types?
 
don't think so.
 
RELOAD!
[Phrancis/TwitterTools] 9 commits. 121 additions. 54 deletions.
 
using reflection to create a generic type is fun
 
[rubberduck-vba/Rubberduck] 23 commits. 4 opened issues. 1 closed issue. 4 issue comments. 4908 additions. 857 deletions.
[Zomis/Fighting] 1 commit. 60 additions. 8 deletions.
 
12:02 AM
@MathieuGuindon uh, yeah. Found out that the hard way in my mocking PR. :\
 
[Zomis/Server2] 2 commits. 74 additions. 79 deletions.
[Minesweeper] New Users: 21, Games Played: 65, Bombs Used: 36, Moves Performed: 8084
 
a static field in a generic type is shared across all instances of the constructed type
 
so a Something<Foo> and a Something<Bar> each get their own
@mansellan yup, that's how you get Something`1
 
contrast to Java, where they're just syntax-sugar that the runtime knows bugger all about.
 
12:04 AM
@this IL and runtime needs to know about them for dealing with dynamic dispatch and vtable lookup
also for specializing generic types at runtime, which you can do via reflection
 
Thanks for the edumation!
 
for Java that's not quite as relevant, because there always is a vtable attached to everything that can be in a generic
that's not true for C#, where value types are valid generic specializations
 
via boxing
(accessing a struct through an interface it implements)
 
interesting. the linked article suggests that generalizing on value types can lead to memory explosion
but I imagine that's relatively rare since most of times, we care about and work w/ reference types.
 
12:22 AM
@MathieuGuindon tbf, the reflection API makes it about as easy as it could, given its vintage and the complexity involved. It's not that bad...
At least you can make a generic type through reflection, unlike, uh... some other languages cough
uh, did we lose you @IvenBach?
 
well, reflection predated generics, didn't it?
I think that's why when dealing w/ generics, it feels quite.... tacked on
finding a member on a non-generic type? Easy-peasy. Doing the same with generics? uhhhh, hmmm, erm....
Pretty much why I decided to just use a library so I don't have to deal with the Hunt the Generics Wumpus! crap.
 
yeah, true. there's all sorts of things they wouldn't do if .net was new today. Non-generic IEnumerable being one.
Even in net core, where they had a cleaner slate, they had to carry some stuff to avoid too much breakage.
Well not so much breakage as "easier migration"
 
@mansellan and screw com interop!
 
@MathieuGuindon They're getting there :-) They have COM interop, they just don't generate TLBs just yet. They have it on plan, and even today I think we could work around it if need be. After all, we generate our own IDL... @this could probably confirm/deny.
 
so yes they will bring it over.... eventually.
 
12:37 AM
> You can now create COM-callable managed components, on Windows. This capability is critical to use .NET Core with COM add-in models, and also to provide parity with .NET Framework.
 
noice
 
back in preview 5...
@this IIUC, the TLB issue just means we can't generate an RD lib that VBA can reference?
 
which "just" means unit testing, fakes, mocks, all go down the drain for now
 
I can just compile a TLB out of thin air with MIDL....
 
uh, outside my specialty! sorry!
 
12:40 AM
...barring wizardry of course
 
but I do not know for sure if the .NET Core DLL will be 100% compatible because TLB is basically "here's a map into so and so"
which is why you can compile a TLB without even implementing the DLL at all
but your DLL better conform to the TLB's description or you're screwed.
 
I thought the TLB was just for early binding Intellisense niceness. I'm guessing it's more than that...
@this oh! I thought that was sarcasm!
whoosh
 
Nope. In fact I did that yesterday or day before to prove a point.
 
so... we could work around it, even today?
(not suggesting we should)
 
 
12:43 AM
nice :-)
 
Maybe. Need to be test because as I said, the DLL must conform to the TLB's description. From the other GH issue I linked few days earlier, a guy proved that he can late-bind in VB6 to .NET Core
just not early-bind.
Ah yes I knew I was forgetting something - in .NET FX, you have marshaler doing the hard work for you of proxying
I am not yet clear if we still have that in .NET Core. So, need to test.
 
ah ok fair enough. but my point stands - they've put a lot of work into com interop, they just couldn't get every use-case done before v3.
that's fine, so long as they finish by v5 in a couple of years, we're golden.
 
^
> With .NET Framework, we used mscoree.dll as the COM server. With .NET Core, we provide a native launcher dll that gets added to the component bin directory when you build your COM component.
That's the key point - the native DLL that's generated by the core has to be the one that implements the specifications - if it's incomplete in its implementation, then early binding may fail
with FX, mscoree.dll provided the universal marshaler.
 
yeah, iiuc they've moved from a system-wide, generic host to a per-library host that's built alongside each project.
 
pretty much.
 
12:50 AM
@mansellan work ended and had to make it to a chiro appt. I’m trying to catch up.
 
@this ...which I couldn't persuade the VBE to load. But I suspect that's my failing, not the tech.
@IvenBach ignore the geek-speak and focus on the generics explanations.
 
latebound?
 
as an addin, so no.
 
@mansellan sorry for derailing, @IvenBach - ignore my rambling questions. :)
@mansellan yeah, addin pretty much must be early-bound.
 
suspect I was missing some registry settings, need to re-read your wiki page.
 
12:53 AM
Note that with FX, it adds few extra keys esp. to the CLSID subkey that the universal marshaler uses -- that is not part of the COM. I bet you that the .NET Core won't use that trickery anymore
 
Yeah, need to dig into it some more.
 
@mansellan I understand the idea of gernerics from a hand wavey perspective. I can use them as well. I just don’t 100% rock solid understand them all. Lack of daily usage...
 
@IvenBach If you're using .net, you'll be using generics even if you don't realise. They underpin everything these days.
It gets fun when you try to define your own generics. In fact, you can't really grok them until you do.
 
@IvenBach IDK if you saw but did you attach a debugger and look at what it actually contained?
it'll tell you the actual object at runtime and you can then better inference than just a generic object
 
IObservableCollection, Ienumerable<TestEplorerUnitTest> and one other.
I think IEnumerable was the last common interface before object.
 
12:59 AM
I'm pretty sure the TestExplorerUnitTest has to have an interface.
does it?
actually it hit me
if we did go to the trouble of writing a shim, then using .NET Core is easier because binding is at shim, not on the .NET assembly
 
Uhm, sounds epiphanal, but I don't follow?
 
remember the discussion about creating C++ shims?
 
yes
 
well, if we wrote the same thing targeting .NET core, that's just the same thing
 
but not following why core makes it easier?
 
1:11 AM
no no no
i mean, writing our own C++ shim would be easier than trying to get it to work in half-assed OOB implementation (or waiting for it to be full-assed)
 
So... use that instead of the net core-supplied host?
 
sure. who's up for some C++?
:)
 
Uh, I watched a youtube the other day :) pointers look fun :-)
OTOH, net core is all MIT, we could always use it as a base...
 
@mansellan why, yes, yes they are!
 
How would that help with the missing TLB problem though?
rofl
 
1:19 AM
because we are implementing the shim, which means we are implementing the DLL in conformance to the IDL description.
then we can just proxy the call
 
:brain-tickle:
I'm conviced that owning the environment bootstrapping will also yield debugging opportunities we just don't have today too.
 
yep, that, too.
remember, Wayne found the problems because he basically bootstrapped RD himself
 
^
I swear he wrote his own proxy...
Or more likely, reused one he had lying around :-)
But yeah, ultimately a shim receives the COM call, and proxies it somewhere. ATM, that's mscoree.dll, forwarding to netfx. No reason it has to be...
That's just where we have the reg entries pointing.
 
exactly
 
so.. Core 3 at GA? ;-)
In all seriousness, perhaps not. But I think we should be looking into it sooner rather than later.
 
1:37 AM
ttgtb
 
@mansellan well, we actually might go with GA because of the build system
not sure what would break, though, soo ...
 
@this I think this might be the WP commenter:
0
Q: How do I run the VBA msi installer dependencies based on install options using WiX?

fidelisorisI am in the process of creating a new WiX 3.x installer project for our older integration product that depends on the VBA SDK in Visual Studio 2017. Our product currently uses an extremely outdated InstallShield project that I've determined isn't really salvageable and selected WiX for various r...

What's that compound name you gave RD's installer setup again? looks like they need that!
(not sure how answerable that is on SO though)
 
2:19 AM
@this Model.Tests is of type ObservableCollection<TestMethodViewModel>.
Results is of type ICollectionView.
_state.AllUserDeclarations is of type IEnumerable<Parsing.Symbols.Declaration>.
 
@MathieuGuindon not very. I don't have enough details to go on. Left a comment. We use heat.exe, not Burn --- that's the bootstrapper.
@IvenBach and you are supposed to output what?
 
ExportFormatter.CSV, XmlSpreadsheetNew and RTF expect object[][] data.
 
interesting
 
HtmlClipboardFormat is also used.
 
2:34 AM
object[][] is not a 2D array though
55
A: What is a jagged array?

Anthony PegramA jagged array is an array of arrays. string[][] arrays = new string[5][]; That's a collection of five different string arrays, each could be a different length (they could also be the same length, but the point is there is no guarantee that they are). arrays[0] = new string[5]; arrays[1] = n...

 
#ExposingMyIgnorance
 
#JustLearning
apparently jagged array access is much faster than 2D array access
#StillLearning
hmm, comments from 2009 are probably no longer relevant lol
 
2:59 AM
what would you all say to using WixSharp -- it's something I found out recently about. The only reason I kept using InnoSetup was because of complex scripting that would have been madness to express in declarative mode that WiX expects.
 
ooh, nice!
 
No more Pascal!
 
> Another important feature is the support for custom UI including WPF external UI
WPF! your favorite!
 
LOL
at least we can make it duck-shaped!
 
now that's an idea...
 
3:03 AM
Thanks for volunteering to write the XAML!
>:D
 
I'd just put the ducky xaml in there
the white is the background, not the window
 
That's cool
 
:)
#WPFRocks
 
for this kind of stuff sure. I can see why it rocks.
for simple stuff? mwahahaha
 
yeah
that UI was my first time using xaml storyboards
 
3:08 AM
anyway, glad to see that WiX has a solution - I do like the idea of using WiX but I had to keep on using InnoSetup back then. If there's a need to update installer might look at it.
that should at least come after there's EM re-introduced back in the ducky.
 
yeah
lol
 
#TryingNotToGetDistractedByShinyThings
GN!
 
Night.
 
'night!
 
3:21 AM
I'm feeling like a derp for not seeing a solution...
 
4:21 AM
I've given up for tonight. Night pond.
 
'night!
 
 
2 hours later…
6:23 AM
15 mins and if I can't figure out this example it's bed time.
@PeterMTaylor You ever have times where you just cant figure it out, no matter what you do?
 
6:57 AM
That's enough failing with unit tests. Bed time.</iven>
@IvenBach Should have just slept instead of letting the #BrainTickle get the best of me. Lesson learned.
 
 
3 hours later…
9:49 AM
> The main features of the PR are in now, i.e. resolution of default member calls due to Let coercion and procedure coercion and references for intermediate default member accesses on recursive default member resolution.

To make it possible to distinguish the different kinds/levels of default member calls, the `IdentifierReference` got a few new properties. There are now `IsIndexedDefaultMemberAccess` and `IsNonIndexedDefaultMemberAccess` to distinguish those accesses with an argument list p
 
 
1 hour later…
11:16 AM
> I do not see any problem in what has been discussed previously. Getting the new declaration should be possible the same way we add undeclared variables.
 
11:39 AM
@MathieuGuindon that sounds wrong... jagged arrays can't be tightly packed in memory
 
12:35 PM
@Duga I thought the problem was determining that the variable being Redim'd was in fact undeclared, not creating the undeclared variable.
 
12:53 PM
@23fc9a62-56de-47fb-97b4-737890 be sure to make plenty of SO comments as 23f before you change, though, that way there are lots of random @23fc9a62-56de-47fb-97b4-737890 something, something... comments scattered about the site, but nobody named that anywhere!
 
I'd hope that SO is bright enough to update all references
it'd be kind of stupid to allow anyone to rename themselves and leave behind ghosts.
 
@this Nope, it doesn't.
There are various comments around CR with my old name "Dain Ironfoot II"
 
1:10 PM
.... lame.
 
1:22 PM
@23fc9a62-56de-47fb-97b4-737890 You should, just for a bit, just to leave your GUID behind. You know, make comments that aren't obnoxious or inflammatory, but just require a bit of WTF clarification from others...
And, SO, CR, Aviation, wherever...
OK, network, why can I view this on AWS
12 hours ago, by this
user image
but can't get to the RD installers from GH?
If I add an '@Description("") (I miss my SCP, even here!) then it should show up at the bottom of the CE when I select the item it descripts, right?
 
because it's an exe?
 
@this probably...
Would it make a difference (I can't imagine it would) that the Description annotation is in an Interface? It should still show up there, right?
 
I don't think it does inheritance so if you're looking at implemented method, i'm not sure it'll show up
you would have to look at the definition to see it, I think.
that might be an enhancement for CE - show the description from the interface definition for the implementation
 
1:38 PM
I'm looking at the Interface itself and not seeing them.
I've added several, parsed and nada.
 
did you check if the attribute was missing?
 
in the code inspections?
oh... forgot about that, guess that might explain some of it.
 
yes. wondering if CE only reads from attributes, not annotations
(which seems like another enhancement but I'm iffy about that)
 
that must be the case. Plus I discovered that I can't put a @Description on an enum. I guess if the enum is done properly, it won't need a description...
Fix All in Module takes care of it. Thx - never thought about that...
 
hmm.
does OB let you describe an enum?
Nope it doesn't.
How weird.
My surprise is because it is legal to describe in an IDL but apparently not via OB. Go figure.
 
1:47 PM
having to make 2 passes to add a Description is a bit of a faff, but, whatever... If I keep adding them in, eventually I'll remember and not be confused!
 
that is why I mentioned that it could be an enhanceement
the part I'm iffy about is that it might make it less obvious that you are missing the attribute,w hich you should have
 
I get it, it's just a bit of a bother and, for those of us using it for the first time, fairly confusing. Especially since I just turned off Inspections on parse because it takes a fair bit longer.
BTW, no, descriptions are not inherited by Implementations of Interfaces. :sadface:
 
Yes that would have to e a separate enhancement of CE
 
^ that would make for a nice enhancement!
jinx
 
FWIW I agree that we should be displaying @Description annotations' contents in the CE. The question is, if @Description mismatches VB_Description, do we use the annotation or the attribute?
 
1:52 PM
show CRITICAL SYSTEM ERROR - SEGFAULT instead?
I'm envisioning that for annotation w/o attribute we italicize it, for mismatches, we show the attribute but make the font red
that also implies having a good toolt ip to explain why it's itaclized or red
 
@this LOL
both those sound like good ideas
 
@this that's not crazy at all
 
2:29 PM
> **What**
RD should identify all `ISomething_foo`s in an `Implementation` that do not have a `@Description("")` annotation that matches the one on the `Interface` that is being implemented. Quick Fixs should be offered with options to make them match.

**Why**
`Interface`s are a wonderful tool, properly documented with `'@Description ("")` annotations, they're even better. Having an `Implementation` inherit all the `'@Description ("")` annotations from the `Interface` it's implementing wou
 
^my first inspection submission!
 
What's the behavior when the implementation doesn't have a Description?
Could RD automatically show the one from the interface?
 
Because I don't like chaining descriptions all the way down forever.
What happens when an implementation has one that explains specifically what happens with this specific implementation (say, reads a file from the disk vs reads a file from the internet).
 
@23fc9a62-56de-47fb-97b4-737890 seems reasonable. That would be a CE enhancement feature as opposed to an inspection. I started out with an enhancement request, but changed to an inspection - that may be better as a CE feature than an inspection...
@23fc9a62-56de-47fb-97b4-737890 @IgnoreOnce
 
2:33 PM
We shouldn't force them to use the generic reads-a-file description there.
@FreeMan TBH, @IgnoreOnce is one annotation I wish we'd not added.
 
ah, but it's there, I'll abuse it 'til the day it dies!!! :D
 
I hate tooling-specific things in codebases.
 
I think inheritance should only applies if the descendant has no annotations/attributes
so in the example cited, there'd be a new annotation in the concrete and thus show that instead
 
the inspection and the CE enhancement could go hand-in-hand.
 
@Duga except the implementation wouldn't be Public
 
2:35 PM
CE could show what's in the Interface if the Implementation doesn't have a Description, while the inspection prompts to match them up. User could chose to turn off the inspection if he doesn't want a bajillion @IgnoreOnce everywhere or even @IgnoreModule (or whatever the proper term is).
@MathieuGuindon If a copy/pasta Public vs Private is the only thing you can find to nit-pick about, I consider that a Win!!! #MicDrop #DayIsComplete #GoesHome
 
@FreeMan I didn't consider CE descriptions, was thinking in terms of code - descriptions don't really make sense in interface implementation members, since such members would be accessed via the interface anyway
Dim foo As ISomething
Set foo = Something.Create(42)
foo.DoSomething '<~ select the member call; ISomething.DoSomething description should be in RD toolbar
I think we can get the CE to show descriptions from the interface on an implementation, without altering the code at all
 
hazasad...
 
@MathieuGuindon My suggestion :D
8 mins ago, by 23fc9a62-56de-47fb-97b4-737890
Could RD automatically show the one from the interface?
 
Maybe I completely misunderstood in my simplistic ways. I won't be in the least offended if that's morphed/closed&replaced with something that makes more sense. That's what I got out of the conversation.
 
2:41 PM
and show the one from the implementation if it's there
 
Gets back to work. Looks at 40+ line procedure and wishes there were an Extract Method feature in RD...
 
> Hello Carlos - sorry I didn't get around to testing this. This workaround
didn't solve the problem. When I followed the steps outlined above, I got
the same "Interop" error any time I would click on an open worksheet, or
when I would click on the native VBE project explorer window. I'm unable
to use Rubberduck any longer due to these errors.

If there is another workaround that can solve this issue, please let me
know.

Andre Kvaternik

On Sat, May 18, 2019 at 10:54 AM Carlos Quintero <noti
 
3:04 PM
> Considering that we want this and you've not gotten back to me, I'm picking this up from here. Thanks for your contribution :)
 
sigh... why unknown repository???
 
i guess he deleted it?
 
yea, he did...
 
i swear to fucking god
im so mad right now
the update command returned 1276 rows, the number expected
look at the table associated with said update command
NOTHING
 
@KySoto what, you weren't man enough before?
:D
 
3:11 PM
*rolls eyes
cant even type straight
 
I figured that's what you meant but that was too good to pass up. :)
 
ahhh, GH thought of that scenario and can deal with it
 
Source filled 1274 rows
Update method result 1274
Dest filled 0 rows
 
Never answered my question though. why do it in Posh?
Link, Vogel?
 
it looks like im going to have to hack together something
:/
 
3:12 PM
I was wondering why we couldn't get notified if a fork for a PR got deleted.
As I suggested yesterday, if you must use posh, (still not clear why you need it), at least use it to start Access or SSIS and do the actual data loading from inside rather than from posh
 
aaactually... I might overwrite that PR instead of superseding it with a new one...
if that's possible that is..
hmm. no it's not possible. unsurprising, actually
 
ah, I was thinking more that it'd be nice that if someone deleted their branch/fork/repo, the PR would get a notification so that we know that it's been abandoned
because I have no idea how long it has been. Could have been months ago and we've been asking for updates for nothing.
(though in this case, I can see the guy is active on other projects.... sooo)
 
would've been nice of them to leave a note they're dropping the PR, but alas...
 
@Vogel612 does that mean Jonathan can't have his commits merged anymore?
 
@MathieuGuindon no, I found a way to salvage them
 
3:22 PM
cool
 
GH has a read-only namespace under pulls/[ID]/head, where the heads of all pull requests are kept
or at least those of unmerged PRs
that's why the commits are reachable in the first place
I just needed to find out where they were stored to point a ref under my control at them
ermagherd, at least PS supports Ctrl+R
 
> This pullrequest supersedes #4963 which was abandoned by the original author
> Dropped in favor of #5101
 
interesting.... apparently all the reviews have been marked as outdated...
why did we not merge that PR earlier?
 
3:39 PM
-9
Q: I heavily skewed the data by repeatedly submitting the same anonymous workplace survey and the CEO is reacting, how do I come clean?

RR 2The company sent out an anonymous survey to everyone. I figured out by clearing my browser history I could fill out the survey multiple times. So I did that to make sure my feelings carried more weight. The CEO was so pleased that my department had the highest response rate. Most I talked to in ...

That guy's attitude stinks.
"I skewed the survey results. Now my department is mad at me. I don't think I did anything wrong, so how can I get them off my back?"
 
@Vogel612 it wasn't mergeable? last commit didn't build... no?
 
@MathieuGuindon yea, that was because of conflicts
then again, right now I have a test failure
that failure seems to be provoked by the change that Max requested to the testcase
 
aye, that test failure was there, wasn't just a conflict
 
[rubberduck-vba/Rubberduck] build for commit d66c82f3 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
anyway, happy to have these commits merged in a near future!
that's a very cool feature right there
 
3:48 PM
^
 
Why did you do this, as you plan to leave : workplace.stackexchange.com/q/142312/75821Solar Mike 10 hours ago
 
I'm kinda confused why Max suggested the unit test was wrong...
 

« first day (1903 days earlier)      last day (1277 days later) »