ariccio / altWinDirStat

An unofficial modification of WinDirStat
Other
622 stars 41 forks source link

Can't get Visual Studio 2013 or 2015 to compile. constexpr undeclared + more #15

Closed genbtc closed 2 years ago

genbtc commented 7 years ago

I have tried to compile this project Under the VS2013 toolchain. It did not like that, saying: "constexpr" undeclared. https://puu.sh/wVfg2/77385effcd.png This lead me to searching, and trying the Visual C++ Compiler November 2013 CTP, and that toolchain, but selecting the CTP_Nov2013 toolchain gives worse errors: https://puu.sh/wVf8J/7cd58958a7.png To clarify: I'm on Windows 10 LTSB build 10240, with VS Pro 2010, Ultimate 2013(update 5), Community 2015(Update3), Community 2017(15.2), and Windows 7 and Win 10 SDK. What else would I need? How did you manage to use Constexpr on VS 2013 ?

This is my toolchain list: https://puu.sh/wVf4N/886470d74b.png This is what my installed programs list looks like: https://puu.sh/wV7Gy/f57c12f42d.png

With the VS2015 toolchain, I get weird errors about _Iterator https://puu.sh/wV7N3/357a658d8c.png

In case anyones reading this and is wondering about the "NuGet" errors, I fixed that by not using WTL 9.1.1 and using the 9.1 that was already provided, just re-activate it by going to Nuget Package Manager Console and doing:

Update-Package -reinstall

ariccio commented 6 years ago

Sorry I'm so far behind on maintaining this project! (life, ya know?) I'm working on getting back into normal development - the biggest issue I've had is that the behavior of std::async changed dramatically from VS2013 to VS2015, and remained that way in VS2017. I'm basically the only person who's using it this way, so I'm not gonna make a biiiig deal about implementation defined behavior. Basically, in 2015+, it's launching a new thread for every new directory encountered, which quickly brings the whole program to a hang/deadlock. Ooops. Since I'm so anal about using the latest toolchain, I can't really even push a new release that works. Now that more than one person (me) is actually using this program, I'm coming back to it, and trying to rewrite the async code to fix this issue, and probably even speed the program up a bunch more. Async/highly parallel programming is hard, and it's hard enough to reason about the main enumeration codepath as-is, let alone rewrite it. I shouldn't complain, since I got myself into this on purpose, trying to write highly parallel code and all. Hopefully coroutines will help, and I just started writing some emails for help understanding C++ coroutines, right before I decided to answer your issue.

But none of that really answers your question. Sorry! But I hope it helps clear up confusion about my absence for others. Back to your question.

So, my guess for the first issue is that you're building from the tip, which is not gonna work with VS2013, since I started working on VS 2015 sometime after the last release, which was 13398927eac58995884b1409c429f5cb9fe77fc3 - if you're building on VS2013, try that. Oh, and the code is kinda a mess right now as I figure out how to fix this cleanly. (I've been dicking around in this repo: https://github.com/ariccio/FindFileBench_cleaned_up/tree/new_async_test)

Regarding CTP, probably the same thing.

The toolchain & installed programs list would probably be helpful if it were actually something wrong, rather than the repo just being in a mutant/aborted surgery/hybrid state, but again, this is my fault right now, not yours.

I'm apparently late enough to this party that the _Iterator screenshot is gone, but it sounds unfun, and I'll bet it has something to do with errors somewhere else. Maybe insert it into the issue when you see it again? God I hate link rot.

Is the WTL issue just me not updating to the latest distribution? I'm crazy enough that maybe I'll ditch WTL altogether (once I expunge MFC's rotting corpse from this repo) by manually rewriting all that code. My aversion to dependencies in small projects is what has kept me from using Boost's ASIO/AFIO for all the async stuff, which probably would've made my code simpler, but I've had so much trouble getting Boost to compile in other people's small open source code that I decided that I didn't want to subject anybody else to it 😆 🤣

Thanks for actually caring enough to compile my code, and sorry for taking almost a year to respond! I'll (hopefully) fix this soon.

RichardMeadowsTC commented 6 years ago

I am also having some trouble compiling, or getting to that point. Noticed that the SLN was authored in VS 2013. So am trying it out using 2013. Getting an error that says 'This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ..\packages\wtl.9.1\build\native\wtl.targets.'

I have verified that my Visual Studio setting are setup to automatically download and check for missing packages. And my machine has wtl.0.1.nupkg file under altWinDirStatRoot/WinDirStat/packages/wtl.9.1

Any idea what I might be missing?

Microsoft Visual Studio Community 2013 Version 12.0.31101.00 Update 4 Microsoft .NET Framework Version 4.7.02556

Installed Version: Professional

ariccio commented 6 years ago

Hmmm... well, it looks like you're missing WTL, but I don't know why at the moment. Dependency issues are why I tried to avoid most 3rd party libraries, like boost. Boost AFIO actually has a highly parallel directory enumerator - it's masterful - but then I'd need to depend on boost, and that would be even harder to deal with.

RichardMeadowsTC commented 6 years ago

The project is setup to get WTL from NuGet. But it isn’t working. I fiddled with it some. Ended up with different version of WTL. Have version 9.1.1. The config from master is set to use version 9.1.0. Went ahead and converted my local project to VS2015. The constexpr isn’t present in 2013 and didn’t get very far by changing it to const. Now getting errors stating that ‘[[noreturn]]’ isn’t defined. Happens when building Debug | x64 but not Release | x64

1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstring(2264): warning C4467: usage of ATL attributes is deprecated 1> C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdexcept(21): note: see reference to class template instantiation 'std::basic_string<char,std::char_traits,std::allocator>' being compiled 1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstring(2264): error C2337: '[': attribute not found 1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstring(2264): error C2146: syntax error: missing ']' before identifier 'noreturn' 1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstring(2264): error C2143: syntax error: missing ';' before ']'

Using this compiler now Microsoft Visual Studio Community 2015 Version 14.0.25425.01 Update 3 Microsoft .NET Framework Version 4.7.03056

Installed Version: Community

From: Alexander Riccio Sent: Thursday, May 17, 2018 8:00 PM To: ariccio/altWinDirStat Cc: Richard Meadows ; Comment Subject: Re: [ariccio/altWinDirStat] Can't get Visual Studio 2013 or 2015 to compile. constexpr undeclared + more (#15)

Hmmm... well, it looks like you're missing WTL, but I don't know why at the moment. Dependency issues are why I tried to avoid most 3rd party libraries, like boost. Boost AFIO actually has a highly parallel directory enumerator - it's masterful - but then I'd need to depend on boost, and that would be even harder to deal with.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/ariccio/altWinDirStat/issues/15#issuecomment-390079971, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ajp3OKP_IPkUo2_zJ06pBHDIm831xcZUks5tzjk8gaJpZM4OmLn1.

ariccio commented 6 years ago

Hmm. What's the code at xstring(2264) and stdexcept(21)?

RichardMeadowsTC commented 6 years ago

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstring(2264): warning C4467: usage of ATL attributes is deprecated

[[noreturn]] void _Xlen() const { // report a length_error _Xlength_error("string too long"); }

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdexcept(21): note: see reference to class template instantiation 'std::basic_string<char,std::char_traits,std::allocator>' being compiled

explicit logic_error(const string& _Message) : _Mybase(_Message.c_str()) { // construct from message string }

From: Alexander Riccio Sent: Thursday, May 17, 2018 8:39 PM To: ariccio/altWinDirStat Cc: Richard Meadows ; Comment Subject: Re: [ariccio/altWinDirStat] Can't get Visual Studio 2013 or 2015 to compile. constexpr undeclared + more (#15)

Hmm. What's the code at xstring(2264) and stdexcept(21)?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/ariccio/altWinDirStat/issues/15#issuecomment-390084921, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ajp3OE2gU4W5zQhPcMY6okbiUHj5bpXiks5tzkJzgaJpZM4OmLn1.

RichardMeadowsTC commented 6 years ago

I was building Debug when I got those errors. So turned off ‘Expand Attributed Source’ Past that error. Now on to Dereferencing NULL pointers.

a:\development\altwindirstat\windirstat\windirstat\directory_enumeration.cpp(762): error C6011: Dereferencing NULL pointer 'ThisCItem->m_child_info.m_child_info_ptr'. const HRESULT copy_res = ThisCItem->m_child_info.m_child_info_ptr->m_name_pool.copy_name_str_into_buffer( new_name_ptr, ( new_name_length + 1u ), aFile.name );

From: Richard Meadows Sent: Thursday, May 17, 2018 8:54 PM To: ariccio/altWinDirStat Subject: Re: [ariccio/altWinDirStat] Can't get Visual Studio 2013 or 2015 to compile. constexpr undeclared + more (#15)

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstring(2264): warning C4467: usage of ATL attributes is deprecated

[[noreturn]] void _Xlen() const { // report a length_error _Xlength_error("string too long"); }

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdexcept(21): note: see reference to class template instantiation 'std::basic_string<char,std::char_traits,std::allocator>' being compiled

explicit logic_error(const string& _Message) : _Mybase(_Message.c_str()) { // construct from message string }

From: Alexander Riccio Sent: Thursday, May 17, 2018 8:39 PM To: ariccio/altWinDirStat Cc: Richard Meadows ; Comment Subject: Re: [ariccio/altWinDirStat] Can't get Visual Studio 2013 or 2015 to compile. constexpr undeclared + more (#15)

Hmm. What's the code at xstring(2264) and stdexcept(21)?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/ariccio/altWinDirStat/issues/15#issuecomment-390084921, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ajp3OE2gU4W5zQhPcMY6okbiUHj5bpXiks5tzkJzgaJpZM4OmLn1.

ariccio commented 6 years ago

Ok, error C6011 looks like a false positive, since it should be initialized when I placement-new-construct the item in the calling function. Once I fix things, I'll add a suppression.

About the other error, are you compiling under a VS2017 toolset somehow? Or otherwise have a version mismatch of some sort? Latest version of VS2015?

RichardMeadowsTC commented 6 years ago

I have 2017 installed. But sure the build was all done with 2015. Last update I have found for 2015 is update 3. Came out July 2016.

This is what I have installed Microsoft Visual Studio Community 2015 Version 14.0.25425.01 Update 3

This is the log from upgrade to 2015: Configuration 'Intel_Release|Win32': cannot upgrade as this platform is not supported by this Visual Studio version. Configuration 'Intel_Release|x64': cannot upgrade as this platform is not supported by this Visual Studio version. Configuration 'Debug|Win32': changing Platform Toolset to 'v140' (was 'v120'). Configuration 'Debug|x64': changing Platform Toolset to 'v140' (was 'v120'). Configuration 'Release|Win32': no upgrade required. Platform Toolset is 'v140'. Configuration 'Release|x64': no upgrade required. Platform Toolset is 'v140'. Configuration 'Intel_SSA|x64': cannot upgrade as this platform is not supported by this Visual Studio version. Configuration 'Intel_SSA|Win32': cannot upgrade as this platform is not supported by this Visual Studio version. Retargeting End: 1 completed, 0 failed, 0 skipped

Here is diagnostics from a build. Might be something in there to show tool set. 1>------ Build started: Project: windirstat, Configuration: Debug x64 ------ 1>Build started 5/17/2018 9:51:13 PM. 1>Environment at start of build: 1>ALLUSERSPROFILE = C:\ProgramData 1>AMDAPPSDKROOT = c:\Program Files (x86)\AMD APP\ 1>APPDATA = C:\Users\rmeadows\AppData\Roaming 1>CommonProgramFiles = C:\Program Files (x86)\Common Files 1>CommonProgramFiles(x86) = C:\Program Files (x86)\Common Files 1>CommonProgramW6432 = C:\Program Files\Common Files 1>COMPUTERNAME = LELA 1>ComSpec = C:\WINDOWS\system32\cmd.exe 1>DriverData = C:\Windows\System32\Drivers\DriverData 1>FPS_BROWSER_APP_PROFILE_STRING = Internet Explorer 1>FPS_BROWSER_USER_PROFILE_STRING = Default 1>FP_NO_HOST_CHECK = NO 1>HOMEDRIVE = C: 1>HOMEPATH = \Users\rmeadows 1>LOCALAPPDATA = C:\Users\rmeadows\AppData\Local 1>LOGONSERVER = \LELA 1>MSBuildLoadMicrosoftTargetsReadOnly = true 1>MSMPI_BIN = C:\Program Files\Microsoft MPI\Bin\ 1>NUMBER_OF_PROCESSORS = 8 1>OneDrive = C:\Users\rmeadows\OneDrive 1>OS = Windows_NT 1>Path = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\NativeBinaries\x86;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Microsoft MPI\Bin\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;c:\Program Files (x86)\AMD APP\bin\x86_64;c:\Program Files (x86)\AMD APP\bin\x86;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;A:\Win8SDK&Debuggers\Windows Performance Toolkit\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\Windows Live\Shared;C:\Users\rmeadows.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files (x86)\nodejs\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\dotnet\;C:\WINDOWS\System32\OpenSSH\;C:\Users\rmeadows\AppData\Roaming\npm;C:\Users\rmeadows\AppData\Local\Microsoft\WindowsApps;;C:\Program Files (x86)\Microsoft VS Code\bin;C:\Program Files (x86)\Common Files\Acronis\TibMounter64 1>PATHEXT = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 1>PkgDefApplicationConfigFile = C:\Users\rmeadows\AppData\Local\Microsoft\VisualStudio\14.0Exp\devenv.exe.config 1>PROCESSOR_ARCHITECTURE = x86 1>PROCESSOR_ARCHITEW6432 = AMD64 1>PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 58 Stepping 9, GenuineIntel 1>PROCESSOR_LEVEL = 6 1>PROCESSOR_REVISION = 3a09 1>ProgramData = C:\ProgramData 1>ProgramFiles = C:\Program Files (x86) 1>ProgramFiles(x86) = C:\Program Files (x86) 1>ProgramW6432 = C:\Program Files 1>PSModulePath = C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\PowerShell\Modules\ 1>PUBLIC = C:\Users\Public 1>SESSIONNAME = Console 1>SystemDrive = C: 1>SystemRoot = C:\WINDOWS 1>TEMP = C:\Users\rmeadows\AppData\Local\Temp 1>TMP = C:\Users\rmeadows\AppData\Local\Temp 1>USERDOMAIN = lela 1>USERDOMAIN_ROAMINGPROFILE = lela 1>USERNAME = rmeadows 1>USERPROFILE = C:\Users\rmeadows 1>VisualStudioDir = C:\Users\rmeadows\Documents\Visual Studio 2015 1>VisualStudioEdition = Microsoft Visual Studio Community 2015 1>VisualStudioVersion = 14.0 1>VS100COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\ 1>VS110COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\ 1>VS120COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\ 1>VS140COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\ 1>VSIDE = true 1>VSLANG = 1033 1>VSSDK140Install = C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\ 1>windir = C:\WINDOWS 1>windows_tracing_flags = 3 1>windows_tracing_logfile = C:\BVTBin\Tests\installpackage\csilogfile.log 1>XTC_IDE = 2e952adcfbad4e48ab8c154dba0a06e8 1>_PTVS_PID = 13248 1> 1>21:51:13.388 1>

From: Alexander Riccio Sent: Thursday, May 17, 2018 9:38 PM To: ariccio/altWinDirStat Cc: Richard Meadows ; Comment Subject: Re: [ariccio/altWinDirStat] Can't get Visual Studio 2013 or 2015 to compile. constexpr undeclared + more (#15)

Ok, error C6011 looks like a false positive, since it should be initialized when I placement-new-construct the item in the calling function. Once I fix things, I'll add a suppression.

About the other error, are you compiling under a VS2017 toolset somehow? Or otherwise have a version mismatch of some sort? Latest version of VS2015?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/ariccio/altWinDirStat/issues/15#issuecomment-390092192, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ajp3OBnI8FAuuJTMSGs4nChtNUBbGsj7ks5tzlBXgaJpZM4OmLn1.

ariccio commented 6 years ago

Hmm. This is weird. I'm not entirely sure what's going on. That build log also doesn't really have the required info (not verbose enough), though I'm not sure what info would reveal the problem. Try fiddling with the language/conformance options?

At this point I'd usually install Vs2015 myself and drill down into it, but I've got some very important stuff coming up this coming week that I should prepare for. May I get back to you then?

RichardMeadowsTC commented 6 years ago

That would great. I am going keep working on it. Would cool to get it working. Should we aim for 2017 support?

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10


From: Alexander Riccio notifications@github.com Sent: Friday, May 18, 2018 12:45:47 PM To: ariccio/altWinDirStat Cc: Richard Meadows; Comment Subject: Re: [ariccio/altWinDirStat] Can't get Visual Studio 2013 or 2015 to compile. constexpr undeclared + more (#15)

Hmm. This is weird. I'm not entirely sure what's going on. That build log also doesn't really have the required info (not verbose enough), though I'm not sure what info would reveal the problem. Try fiddling with the language/conformance options?

At this point I'd usually install Vs2015 myself and drill down into it, but I've got some very important stuff coming up this coming week that I should prepare for. May I get back to you then?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/ariccio/altWinDirStat/issues/15#issuecomment-390313029, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ajp3OOXfC9Gw6Q7U-W_n44xD6pxvgLT5ks5tzyTrgaJpZM4OmLn1.

ariccio commented 6 years ago

That would great. I am going keep working on it. Would cool to get it working.

That's awesome. It makes me feel all warm and fuzzy inside that I've written code that good enough for people to actually want to compile it, let alone work on it!

Should we aim for 2017 support?

Ya definitely. Once I figure out how to get it to stop deadlocking, I should really rewrite a lot of the asynchronous/parallel code to be more understandable, cleaner, and faster. There's actually a lot of room for improvement, because std::future has a ton of overhead, and because I'm synchronizing more often than I think I really need to. Coroutines, which are supported experimentally in VS2017 (but are implemented well enough that I hear Microsoft uses them a lot internally) should really* help with this if I can figure them out. For me, they're a super non-intuitive API, partly because they're so barebones... but I think Gor Nishanov is right that they are a "negative overhead abstraction". I actually have discussed this briefly with him, and major props to him for actually responding to a stranger's emails!

I'd love to squeeze more performance out of this app, and that's a goal that I think everybody can support. Personally, I'd also like to ditch MFC entirely (because it bloats the executable tremendously) and I also don't like the way it works too much. After that I might want to even ditch WTL - which is a very good library, much better than MFC - because dependencies always seem like a PITA that's not worth it on such small codebases. I think those last two might just be me though. It may be awkward for anybody to contribute to this repo while I'm doing that, because I'll be creating tons of churn :(

I'm using I a lot... I don't mean to sound like I want to scare people away, I'm just super weird about code style/implementation in this repo, so there are probably things that would-be-contributors will find off-putting or otherwise strongly disagree with. It's probably counter productive at times, so I'm trying to be upfront about it.

ariccio commented 6 years ago

Yeah, that was actually for a job interview. Sadly, I didn't get the job. I guess 223 stars on GitHub isn't enough!

ariccio commented 6 years ago

grumbles: Ok, so I need to join VS Dev Essentials to install VS2015 & VS2013?

ariccio commented 6 years ago

Ok, so this repo has seen no development work for almost two months now... And it's been driving me nuts.

So, continuing the thing where I'm (mis)using GitHub issues to provide project updates, I'm back in a non-programming job, and on top of that my now-primary development machine is acting up. How Windows 10 can get far enough through startup to bluescreen, then throw a INACCESSIBLE_BOOT_DEVICE code is currently a mystery...

I got a response on the msvc bug that I submitted for std::async and it turns out that the reasonable stl behavior - handling all the threading magically and behind the scenes - is actually the wrong behavior, and Microsoft fixed it. I knew std::async was broken already, but this is even worse. I'm not gonna really complain, because Microsoft did actually do the right thing, it's that the standard is bad.

So I've been thinking that I'm going to have to either (1) write my own scheduling/threading mechanism, (2) use the Windows threadpool API (which I've been toying with), or (3) use boost asio's scheduling engine (ew, boost) somehow. The Windows threadpool API should be the best solution, but I've been having strange issues with it, and so I don't know yet what to do. I'll be thinking about it.

RichardMeadowsTC commented 6 years ago

Sorry to hear about the computer problem. I had a machine fail kind of like that once. Got to where it would need to be repaired. The repair would fail to read CD Rom. Figured at first the CD was scratched. But that wasn’t it. Gave the machine to my dad, he likes fiddling with things. He replaced the memory and got a few months use out of the machine.

If you haven’t already, check event log for errors. Wondering if possibly the disk drive is going out.

I have not made any progress on the altWinDirStat. Debug config won’t build for me. When I run the Release X64 configuration, it crashes.

Also have not been able to get in touch with authors for WinDirStat. Have their sources from sourceforge.net. But the thing is, the sources there are missing files. I am looking into this just so I can export the result to some thing other than a screen shot. The email feature in sourceforge.net version is broken.

I did some experiments at work several months ago. Used PowerShell to measure file sizes. When I do that in parallel, it actually ran significantly longer.

From: Alexander Riccio Sent: Wednesday, July 18, 2018 8:28 AM To: ariccio/altWinDirStat Cc: Richard Meadows ; Comment Subject: Re: [ariccio/altWinDirStat] Can't get Visual Studio 2013 or 2015 to compile. constexpr undeclared + more (#15)

Ok, so this repo has seen no development work for almost two months now... And it's been driving me nuts.

So, continuing the thing where I'm (mis)using GitHub issues to provide project updates, I'm back in a non-programming job, and on top of that my now-primary development machine is acting up. How Windows 10 can get far enough through startup to bluescreen, then throw a INACCESSIBLE_BOOT_DEVICE code is currently a mystery...

I got a response on the msvc bug that I submitted for std::async and it turns out that the reasonable stl behavior - handling all the threading magically and behind the scenes - is actually the wrong behavior, and Microsoft fixed it. I knew std::async was broken already, but this is even worse. I'm not gonna really complain, because Microsoft did actually do the right thing, it's that the standard is bad.

So I've been thinking that I'm going to have to either (1) write my own scheduling/threading mechanism, (2) use the Windows threadpool API (which I've been toying with), or (3) use boost asio's scheduling engine (ew, boost) somehow. The Windows threadpool API should be the best solution, but I've been having strange issues with it, and so I don't know yet what to do. I'll be thinking about it.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/ariccio/altWinDirStat/issues/15#issuecomment-405972316, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ajp3OMT4N2IOn7KOnlj6WSWS8_pbLqkqks5uH1QVgaJpZM4OmLn1.

ariccio commented 6 years ago

Btw, I haven't forgotten, I've just been away from my computer a lot! This has definitely been bugging me

ariccio commented 5 years ago

Ok, so it's now in a compilable & functional state as of writing (dc02a1f98d5a3bdae96d04d096d68a518a6fe286). I ripped out the primary parallelism mechanism pending a rewrite; I'm trying to figure out the awesome new coroutines in C++! I've also toyed with several other methods of parallelism over the past few months in my free time, but all of them are kinda wonky for directory walking, at least for me.

I'm also probably going to upgrade the project to VS 2019 in a few days, now that it's out!

ariccio commented 2 years ago

Compiles all well now, I'm probably going to even move to VS2022!