clcache is a third-party software, act much like ccache. (Compile-time cache)
*.iobj and *.ipdb is a MSVC built-in cache. (Link-time cache)
DrahtBot
commented at 9:02 pm on August 27, 2018:
member
practicalswift
commented at 10:36 pm on August 27, 2018:
contributor
@ken2812221 Promising numbers - nice work! Any potential drawbacks?
fanquake added the label
Tests
on Aug 27, 2018
ken2812221
commented at 7:22 am on August 28, 2018:
contributor
Any potential drawbacks?
~I am not sure if there is any. This is my first time trying this stuff.~
Oh, there is one. We cannot use appveyor logger anymore, it’s incompatible with clcache.
ken2812221
commented at 2:22 pm on August 28, 2018:
contributor
Update: It is really hard to see where the error is if it print a lot of warning messages, so I just disable the warnings.
practicalswift
commented at 2:38 pm on August 28, 2018:
contributor
@ken2812221 Actually there are only two warnings (C4244 and C4267) that make the log output unreadable due to the sheer amount of them. Could you try disabling those two warnings specifically instead of disabling all warnings?
I analyzed the warnings:
0$ grep ": warning " log.txt | cut -f4--d" "| cut -f1 -d: | grep ^C | sort | uniq -c
11 C4018 == signed/unsigned mismatch
28 C4101 == unreferenced local variable
32056 C4244 == conversion from […] to […], possible loss of data
41482 C4267 == conversion from […] to […], possible loss of data
51 C4305 == truncation from 'int' to 'bool'61 C4312 == conversion from 'int' to 'void *' of greater size
71 C4334 == result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
88 C4715 ==not all control paths return a value
The total number of warnings 3558 is reduced to only 20 warnings when excluding C4244 and C4267.
Having warnings enabled adds additional value to the appveyor integration by giving access to the MSVC warnings (which are good!) also to developers who don’t use Windows. I know I enjoy having access to them :-)
ken2812221 force-pushed
on Aug 28, 2018
ken2812221 force-pushed
on Aug 28, 2018
ken2812221 force-pushed
on Aug 28, 2018
ken2812221 force-pushed
on Aug 28, 2018
ken2812221 force-pushed
on Aug 28, 2018
ken2812221 force-pushed
on Aug 28, 2018
ken2812221
commented at 4:59 pm on August 28, 2018:
contributor
practicalswift
commented at 7:16 pm on August 28, 2018:
contributor
@ken2812221 What about disabling C4715: '[…]': not all control paths return a value too? We intentionally assert(false); unconditionally (in default:) in eight places which we don’t want to change. This triggers C4715. That warning is not actionable in our case so I think disabling it is a net win.
ken2812221 force-pushed
on Aug 28, 2018
practicalswift referenced this in commit
071500a09c
on Aug 28, 2018
practicalswift referenced this in commit
f38517cae2
on Aug 28, 2018
ken2812221 force-pushed
on Aug 28, 2018
practicalswift referenced this in commit
14e8ecc741
on Aug 28, 2018
MarcoFalke referenced this in commit
13887f41f2
on Aug 29, 2018
ken2812221
commented at 3:57 am on August 31, 2018:
contributor
sipsorcery
commented at 8:15 am on September 1, 2018:
member
@ken2812221 are you currently able to get the build based on the appveyor.yml file to work? My attempts are failing with:
LINK : fatal error C1047: The object or library file ‘C:\Tools\vcpkg\installed\x64-windows-static\lib\libzmq-mt-s-4_3_1.lib’ was created with an older compiler than other objects; rebuild old objects and libraries [C:\projects\bitcoin-72c17\build_msvc\bitcoind\bitcoind.vcxproj]
LINK : fatal error LNK1257: code generation failed [C:\projects\bitcoin-72c17\build_msvc\bitcoind\bitcoind.vcxproj]
So far I’ve been unsuccessful in getting the libzmq dependency to update (my mingw32 build is also failing because of libzmq so something has changed there recently). I have managed to get my custom AppVeyor Bitcoin build that doesn’t use appveyor.yml to work so I’m pretty sure this failure is due to the libzmq dependency needing to be updated.
ken2812221
commented at 12:46 pm on September 1, 2018:
contributor
@sipsorcery You can just clear the cache by this. Every thing should work fine.
sipsorcery
commented at 3:35 pm on September 1, 2018:
member
tACK
Build time is reduced from ~22mins to ~11mins.
@ken2812221 do you think it would be worth adding artifacts to the AppVeyor? It would be nice to be able to use the results of the build even if it’s just for sanity testing.
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2024-11-17 12:12 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me