Proto commits in abyss7/dist-clang

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:da235ad
Author:Ivan
Committer:GitHub

Save the arguments order (#124) Also upgrade `args_parser` to print generated command line from daemon

The documentation is generated from this commit.

Commit:ce556fe
Author:Matvey Larionov
Committer:abyss7

Add support for -frewrite-includes flag while preprocessing (#116) * Added support for rewrite-includes flag while preprocessing * Added rewrite-macros to ignored flags * Fixed review issues * Fix typo in comment * Updated tests * Fix dead pointer

Commit:9755135
Author:Matvey Larionov
Committer:abyss7

Implemented strict sharding (#110) A lot of changes in the |LockedQueue| logic

Commit:67dca53
Author:Ivan Lezhankin

Do not send "hash_match", if emitter doesn't provide "handled_hash".

Commit:19429c8
Author:Matvey Larionov
Committer:abyss7

Calculate unhandled hash only once and verify hash on absorber (#111) * Calculate unhandled hash only once. Also verify hash on absorber * Added tests for cache/hash flags in absorber response

Commit:74a43b3
Author:Matvey Larionov
Committer:abyss7

Support PCH & PTH files (#103) There are still some issues. Will fix them after this commit: * Don't render included headers in `FillFlags()` to remove duplication of code in tests and production. * `a call` → `calls` * Simplify and rename test `StoreDirectCacheForLocalResultAfterCacheMiss` → `StoreDirectCacheForLocalResultWithAndWithoutIncludedHeaders`. * Fix deps contents in tests to contain absolute header path instead of absolute PCH path.

Commit:fe21b4a
Author:Matvey Larionov
Committer:abyss7

Add more metrics Also add more tests on `Emitter`

Commit:e6c3039
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Properly check and use the number of total shards. Total shards can't be less than 2.

Commit:c137b42
Author:Ivan Lezhankin

Properly check and use the number of total shards. Total shards can't be less than 2.

Commit:664c212
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Coordinator now sets total shards for emitter.

Commit:44e9ad2
Author:Ivan Lezhankin

Coordinator now sets total shards for emitter.

Commit:dbdf066
Author:abyss7
Committer:GitHub

Implement a sharding of tasks between remote hosts (#96) * Added distribution support to LockedQueue Now Emitter finds out a hash of tasks for remote execution and puts this info to LockedQueue. Also DoRemoteExecute now has assigned distribution value that is used to pop appropriate task from queue. * Factored Index class out of LockedQueue Also updated distribution/range wording to shard/shards_number. Clang version used in travis builds also updated. * Use hash of |HandledSource| to compute shard * Add check on generated source when using shards. * Calculate shard for task - using handled source. * Use a separate worker pool for coordinators. Otherwise they will hang forever. Also don't use progressive sleep in |DoPoll()|. * Fix CoordinatorNoConnection test. * Fix bug with reverse index in LockedQueue. * Added tests for LockedQueue<T>::Index (#97) * Remove task counting from |ThreadPool| interface. It was used only in tests. * Move |LockedQueue::Index| implementation into separate header. * Add pop timeout to |LockedQueue| interface. And take it from configuration in emitter. * Implement |LocketQueue::Pop()| that respects external pool shutdown. * Add more tests on Coordinator rotation logics. * Fix Coorditanor rotation tests. * Update QtCreator project. * Update 'total_shards' from coordinator. * Clean-up emitter tests. * Implement EmitterTest.ConfigurationUpdateFromCoordinator.

Commit:8b6c752
Author:Matvey Larionov
Committer:abyss7

Implemented coordinator role. (#93) Also introduced changes to emitter to make him poll known coordinators to receive new remote hosts. Also added distribution field for remotes, but this one is not used for now.

Commit:a8b2dba
Author:Shekeen
Committer:abyss7

Support sanitizer blacklist file (#70) * Support sanitize blacklist file * Fix tests compilation * Correct hash computation * Get rid of ExtraFile type, use Immutable instead. * Remove std::transform and std::accumulate calls. * Refactor hash computation * Review fixes * Use HashMap instead of List for extra files. * Move ExtraFiles type alias to FileCache, more tests. * Add more tests * Remove fsanitize-blacklist flag when preprocessing + one more test.

Commit:fc94d9c
Author:Andrey Malets
Committer:abyss7

Issue 23: implement connection timeout (#62) * ISSUE-23: pass connect timeout to network service. * ISSUE-23: implement Linux part of connect with timeout. * ISSUE-23: implement Mac part. * ISSUE-23: enhance EndPoint a little, cover with test. * ISSUE-23: fix EndPoint::FromPassive and a test. * ISSUE-23: add a test for NetworkService::Connect. * ISSUE-23: fix EndPoint test, use dummy solution for NetworkServiceTest.ConnectTimedOut. * ISSUE-23: fix tests and timeout on Mac. * ISSUE-23: unify zero timeout with Mac, cleanup unused code. * ISSUE-23: s/indefinite/default/. * ISSUE-23: do not include a port if it is empty. * ISSUE-23: cleanup. * ISSUE-23: fix CHECK condition and move it to proper place. * ISSUE-23: fix buffer length for AF_INET6 address. * ISSUE-23: reorder parameters in code and protobufs. * ISSUE-23: remove tests and some EndPoint methods. * ISSUE-23: fix argument order, use clang-format. * ISSUE-23: fix confusing comment. * ISSUE-23: fixed compilation of clang/main.cc

Commit:4fcc9c1
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Do store cache index by default.

Commit:b507c84
Author:Ivan Lezhankin

Do store cache index by default.

Commit:f1e64a0
Author:Ivan Lezhankin

ISSUE-49: Take the process run timeout from config for Absorber.

Commit:592bfa5
Author:Ivan Lezhankin

Isolate client configuration logic in a separate class.

Commit:020d645
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-28: implement 'disabled' option for the client.

Commit:b8fc880
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-32: Implement the storing of the file cache index on disk. No tests for now.

Commit:0cd49e4
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-24: Store the size of an entry in the manifest v1.

Commit:0a3d53c
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-24: implement |Migrator|.

Commit:78cc5dc
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-14: Auto-generate C++ sources from proto files. Also a major refactoring is done. Need to fix packaging and python files auto-generation.

Commit:92f7516
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Fix bug with the cache not get actually cleaned. DCHECK() -> DCHECK_O_EVAL()!

Commit:8698a20
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-17: Add a couple of new cache size stats.

Commit:8274352
Author:Ivan Lezhankin

ISSUE-6: Add more stats.

Commit:9100c71
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-6: Implement the collector and the statistics service.

Commit:30996ae
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-6: split |BaseDaemon| into |BaseDaemon| and |CompilationDaemon|. New |BaseDaemon| only does some networking stuff.

Commit:1c57d1a
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Rename MACOS -> MACOSX

Commit:bdf07c4
Author:Ivan Lezhankin

Load plugins only for an actual platform.

Commit:80a9f43
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Use plugin path from the client configuration, if available.

Commit:910f111
Author:Ivan Lezhankin

Clean-up the cache periodically. Every 10 minutes by default.

Commit:f09de12
Author:Ivan Lezhankin

Use the version of the internal Clang library for a direct hash.

Commit:b5eb9d3
Author:Ivan Lezhankin

Allow to specify number of threads for the cache checking.

Commit:a95d842
Author:Ivan Lezhankin

Specify default read/send timeout values if no config present.

Commit:38bc170
Author:Ivan Lezhankin

Make the read and send connection timeouts configurable.

Commit:3090efe
Author:Ivan Lezhankin

Totally remove the option |cache.sync| from everywhere.

Commit:5b6d1b9
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Allow client to use configuration file instead of environment variables. Configuration file name should be ".distclang" It's searched in the current working directory and it's parents.

Commit:912691c
Author:Ivan Lezhankin

Turn off IPv6 by default. Since it doesn't work right now.

Commit:c88afc6
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Add support for IPv6.

Commit:1d14592
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Rename |file_cache| to |cache|. Also, move |FileCache| into namespace |cache|.

Commit:e97ff37
Author:Ivan Lezhankin

Update protobuf. They have moved to git repo - at last.

Commit:0b98dd6
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-19: Use precalculated hash inside |LocalExecute| message. Also distinguish different string types: sources, hashes, etc.

Commit:8b71c81
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-19: Revert adding and using |hash| field. Also fix |RemoveEntry| test.

Commit:b625ac2
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-19: [WIP] Implement Absorber and Emitter.

Commit:afc5153
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-19: [WIP] Remove deprecated stuff. Also fix some bugs in Emitter.

Commit:4bcb8d9
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Zip cached objects with Snappy.

Commit:73a86fa
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Remove deps on unused staff like |Statistics| and |Histogram|.

Commit:5538747
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Substitute --resource_dir with one, based or real Clang path. This should fix problems on Mac.

Commit:d1851da
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Allow to disable cache via config option.

Commit:0fe9a69
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Move all cache params to a separate config message.

Commit:71ceae4
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Fix problem with python bindings. Forgot to regenerate and add them to repository.

Commit:e3068fb
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-25: Implement the direct cache mode. No tests for now.

Commit:863f9ae
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Instrument test binaries with AddressSanitizer.

Commit:417a9a9
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-8: Try to implement something like direct mode.

Commit:ee2916c
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Move protobuf/src to protobuf/exported

Commit:cf0c0de
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Move config.proto to daemon/ Also some CC.

Commit:06781aa
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-23: Refactor clang arguments parsing. Now using libclang C++ API.

Commit:7768661
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

ISSUE-23: Some stable state with new arguments scheme. The client part is already refactored, but not tested yet.

Commit:4ffed87
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Fix deps file handling by file cache.

Commit:5000e17
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Major refactoring of the file cache.

Commit:d717953
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Add manifest description to file cache. Also, a little refactoring.

Commit:cba9a38
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Move |dependenies| to |non_cached| in proto-file. And add |deps_file| instead.

Commit:34859a2
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Allow to do local compilation only on failed tasks. Also, double the default jobs number.

Commit:5119cde
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Reduce number of original 'clang' invocations. The experiment shows that the '-###' and '-### -E' differs in a single param: '-mrelax-all'.

Commit:879327c
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Issue-10: Implement the remote cache store. With unit-tests. Also, this commit may fix Issue-13.

Commit:4158ecd
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Create object files with correct user id - on local side.

Commit:4483022
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Allow daemon to run as another user.

Commit:8718d0c
Author:Ivan Lezhankin
Committer:Ivan Lezhankin

Pass maximum cache size via daemon config.

Commit:ac1ad55
Author:ilezhankin
Committer:Ivan Lezhankin

Major refactoring within third-party libraries.

Commit:72cb70c
Author:ilezhankin
Committer:Ivan Lezhankin

Refactor client code - to be able to test it. Also, implement simple test for |ClangFlagSet|.

Commit:3959dc3
Author:ilezhankin
Committer:Ivan Lezhankin

Implement simple logging.

Commit:19fff85
Author:ilezhankin
Committer:Ivan Lezhankin

Add the cache size limit field to configuration.

Commit:c11d390
Author:ilezhankin
Committer:Ivan Lezhankin

Separate flags, that shouldn't affect cacheability.

Commit:a51100d
Author:ilezhankin
Committer:Ivan Lezhankin

Respect configuration about visible logging levels.

Commit:bfff4cf
Author:ilezhankin
Committer:Ivan Lezhankin

Implement some Statistic collection stubs. Also do a gyp-files CC.

Commit:5f167bd
Author:ilezhankin
Committer:Ivan Lezhankin

Revert "Implement TCP Fast Open protocol usage." This reverts commit 35d0e9b44a40a48df28c9e1d311234233c8f88ed. Silly me, TCP Fast Open doesn't work with multiple connections.

Commit:aa1ab7e
Author:ilezhankin
Committer:Ivan Lezhankin

Make |EpollEventLoop| behave like |KqueueEventLoop|. Also bring back connection tests.

Commit:eaabcc6
Author:ilezhankin
Committer:Ivan Lezhankin

Now local execution thread pool handles can all tasks. But the model is still not perfect.

Commit:db595c0
Author:ilezhankin
Committer:Ivan Lezhankin

Implement TCP Fast Open protocol usage.

Commit:8e8862b
Author:ilezhankin
Committer:Ivan Lezhankin

Add 'disabled' option to remotes in configuration. It allows to disable remotes temporarily.

Commit:7596cab
Author:ilezhankin
Committer:Ivan Lezhankin

Refactor |Connection| sending functions.

Commit:036300b
Author:ilezhankin
Committer:Ivan Lezhankin

Add protobuf library to third-party.

Commit:7234bef
Author:ilezhankin
Committer:Ivan Lezhankin

Fix potencial leak in case |DeferCompilation()| fails to push task.

Commit:567028f
Author:ilezhankin
Committer:Ivan Lezhankin

Add separate field for language flag "-x". Not used yet.

Commit:5e2907b
Author:ilezhankin
Committer:Ivan Lezhankin

Make field |Compiler.version| obligatory.

Commit:3264e0a
Author:ilezhankin
Committer:Ivan Lezhankin

Add more unit-tests. Fix problems found by those tests.

Commit:4bdb7ed
Author:ilezhankin
Committer:Ivan Lezhankin

Improve handling of clang flags.

Commit:4fb7f8b
Author:ilezhankin
Committer:Ivan Lezhankin

Properly handle clang plugins.

Commit:6fba18e
Author:ilezhankin
Committer:Ivan Lezhankin

Move execution logics to commands.

Commit:a916faa
Author:ilezhankin
Committer:Ivan Lezhankin

Implement the caching of compilation results.

Commit:78ea8e8
Author:ilezhankin
Committer:Ivan Lezhankin

One more refactoring. Also, fix some problems within the class |Process|.

Commit:1e2407c
Author:ilezhankin
Committer:Ivan Lezhankin

Refactor protocol one more time. Also move connection tests to using a test message.

Commit:cbdadce
Author:ilezhankin
Committer:Ivan Lezhankin

Present messages as extensions to top-level message. It allows to make |Connection::Send*()| interface polymorphic - to compose and send custom messages.

Commit:6389a81
Author:ilezhankin
Committer:Ivan Lezhankin

Local compilation starts to work.

Commit:c83543c
Author:ilezhankin
Committer:Ivan Lezhankin

A lot of changes. Among them are: - removal of 'futex' part; - removal of lock-free queue; - reimplementation of thread pool - a simpler variant; - sockets are created non-block and close-on-exec; - some protocol adjustments.

Commit:dcb08c8
Author:ilezhankin
Committer:Ivan Lezhankin

Major refactoring of existing code. Add some unit-tests for the class |Connection|.

Commit:b7a1d0d
Author:ilezhankin
Committer:Ivan Lezhankin

Daemon listens and accepts local messages. But does nothing special with them - only prints.

Commit:4bafce5
Author:ilezhankin
Committer:Ivan Lezhankin

Initial implementation on C++. Lock-free thread-pool added. Gyp-based build system added. Python implementation removed.