aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Rollback of commit 52b34308428cfd117470c966d8df329f686fb9ed.Gravatar Marcel Hlopko2016-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Rolling forward, cl fixing underlying issue is uploaded, will land this one as soon as I get lgtm to the fix from emscripten crosstool owners. *** Original change description *** Automated [] rollback of commit 2d87bf1937c81ef84358fd5f6a372875f6c6fabf. *** Reason for rollback *** We have to roll back unknown commit, on which this one depends. Will resubmit after I fix the underlying issue. *** Original change description *** Support versioned shared library targets for cc_binary linkshared=1 This change allows versioned shared libraries (e.g. "libfoo.so.1.2") to be built and linked. -- PiperOrigin-RevId: 142263653 MOS_MIGRATED_REVID=142263653
* Creating separate instances of CAS and execution handlers for every action. ↵Gravatar Ola Rozenfeld2016-12-16
| | | | | | | | | | This allows Bazel to talk to multiple instances of the server, if these exist, enabling server-side parallelism (due to using separate gRPC channels). TESTED: internally and local server -- PiperOrigin-RevId: 142262973 MOS_MIGRATED_REVID=142262973
* Fix formatting of README.mdGravatar Tom Payne2016-12-16
| | | | | | | | | | | A number of the shorter commands were not displayed in a code block, making them trickier to copy and paste into a console. Closes #2257. -- Reviewed-on: https://github.com/bazelbuild/bazel/pull/2257 PiperOrigin-RevId: 142262893 MOS_MIGRATED_REVID=142262893
* Pass through a "cpu:" tag to the execution info of genrules and tests.Gravatar Philipp Wollermann2016-12-16
| | | | | | | | This might be used to influence resource allocation for actions later. -- PiperOrigin-RevId: 142262023 MOS_MIGRATED_REVID=142262023
* Revert "Fix repositories to use 'BUILD.bazel' as the name for the ↵Gravatar John Cater2016-12-16
| | | | | | | | | | | | | symlinked/new build file, which has less changes of causing conflicts. Fixes #2226." This reverts commit 2f31d60d1454cd324196a5159262c1ba32eabda8. Re-open #2226. -- Change-Id: I7f223df4bb239daf8c306955e92f817310e6cd4f Reviewed-on: https://cr.bazel.build/7950 PiperOrigin-RevId: 142257579 MOS_MIGRATED_REVID=142257579
* Continued TestStrategy refactoring.Gravatar Ulf Adams2016-12-16
| | | | | | | | | More renaming and some reformatting to make StandaloneTestStrategy more closely resemble the internal implementation of TestStrategy. -- PiperOrigin-RevId: 142254302 MOS_MIGRATED_REVID=142254302
* Make StandaloneTestStrategy more closely resemble the internal one.Gravatar Ulf Adams2016-12-16
| | | | | | | | | This just changes the order of variable initialization, method names, and similar. It should not result in any semantic changes. -- PiperOrigin-RevId: 142251887 MOS_MIGRATED_REVID=142251887
* Fix wrong LibraryToLinkValue lib_group_presence computationGravatar Marcel Hlopko2016-12-16
| | | | | | -- PiperOrigin-RevId: 142250621 MOS_MIGRATED_REVID=142250621
* Add option to dynamically link in the compilation output of cc_test andGravatar Googler2016-12-16
| | | | | | | | | | | | | | | | | | | cc_binary if we are doing dynamic linking anyway. The additional option is only for a smooth rollout and will go away once everything works as expected. The benefit is in an incremental save-build-test-cycle. When editing a test (or any of it's transitive headers), the linker input currently changes, meaning we need to do the full link again before the test can run. However, in conjunction with the option --interface_shared_objects, this actually isn't necessary. With this new option, the test source gets compiled into a .so file and while that file changes with each source change, the .ifso file often does not change. Thus, the costly link linking to gether all the .so and .ifso files can be retrieved from cache. Thus, this change should remove this linking step from the critical path of many save-build-test-cycles. -- PiperOrigin-RevId: 142244352 MOS_MIGRATED_REVID=142244352
* Bazel client, Windows: implement pipe handlingGravatar Laszlo Csomor2016-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create WindowsPipe which implements IPipe, and is a Windows-native implementation of pipe handling. It wraps the ::CreatePipe, ::WriteFile, and ::ReadFile API functions. Start using WindowsPipe on MSYS. Also move everything from file_test.cc into file_posix_test.cc, because these test methods heavily depend on POSIX and they test file_posix's functionality anyway. Also add tests for pipes: this will use the platform-specific implementation of IPipe. file_test.cc is now platform-independent, and we can test it with --cpu=x64_windows_msvc (and it passes!). See https://github.com/bazelbuild/bazel/issues/2107 Might also fix: https://github.com/bazelbuild/bazel/issues/2182 https://github.com/bazelbuild/bazel/issues/2248 -- PiperOrigin-RevId: 142240377 MOS_MIGRATED_REVID=142240377
* Rollback of commit 2d87bf1937c81ef84358fd5f6a372875f6c6fabf.Gravatar Marcel Hlopko2016-12-16
| | | | | | | | | | | | | | | | | *** Reason for rollback *** We have to roll back unknown commit, on which this one depends. Will resubmit after I fix the underlying issue. *** Original change description *** Support versioned shared library targets for cc_binary linkshared=1 This change allows versioned shared libraries (e.g. "libfoo.so.1.2") to be built and linked. -- PiperOrigin-RevId: 142240145 MOS_MIGRATED_REVID=142240145
* Up the MD5-reading buffer size to 8192. This keeps us within a 16K stack ↵Gravatar Googler2016-12-16
| | | | | | | | size while halving the number of syscalls required to get an MD5 of a file. This shaves a few hundred milliseconds off of startup time. -- PiperOrigin-RevId: 142235555 MOS_MIGRATED_REVID=142235555
* Some improvements to ParallelQueryUtils.Gravatar Nathan Harmata2016-12-16
| | | | | | | | | | | | | | | | | | | | | | | | (i) Use a CountDownLatch in ParallelQueryUtils#executeQueryTasksAndWaitInterruptibly to avoid busy-looping while waiting for query subtask completion (this busy-looping unnecessarily ties up a thread). But we still retain the fail-fast semantics we want (I renamed the method to emphasize this). (ii) Also have a special-case in ParallelQueryUtils#executeQueryTasksAndWaitInterruptibly for evaluating one query subtask so we don't wastefully use another thread. (iii) Also add ThreadSafety annotations to ParallelQueryUtils. ---- (i) and (ii) combine to address the following theoretical issue. Suppose we're evaluating a query expression of the form "(e1 - e2) + (e3 - e4)". The old code would (with the worst-case FJP thread scheduling) have the following threads at the _same_ time: Main QueryCommand thread - executeQueryTasksAndWaitInterruptibly(queryTasks = [(e1 - e2), (e3 - e4)] FJP thread - executeQueryTasksAndWaitInterruptibly(queryTasks = [e2]) FJP thread - eval(e2) FJP thread - executeQueryTasksAndWaitInterruptibly(queryTasks = [e4]) FJP thread - eval(e4) So of those 5 concurrent threads, 3 would be doing busy-loop waiting. For more pathological query expressions, we could end up tying up lots of threads doing wasteful busy-loops. -- PiperOrigin-RevId: 142215680 MOS_MIGRATED_REVID=142215680
* Improve the error message for when bazel can't determine the java package ↵Gravatar Alex Humesky2016-12-16
| | | | | | | | for android resource processing. -- PiperOrigin-RevId: 142215076 MOS_MIGRATED_REVID=142215076
* RELNOTES[NEW]: Allow Android aidl tool to add a jar to the program's ↵Gravatar Googler2016-12-16
| | | | | | | | classpath, such as if needed to support generated sources. -- PiperOrigin-RevId: 142214383 MOS_MIGRATED_REVID=142214383
* Expose apple_generate_dsym value to Skylark and use in swift_libraryGravatar Dmitry Shevchenko2016-12-16
| | | | | | -- PiperOrigin-RevId: 142194378 MOS_MIGRATED_REVID=142194378
* Support versioned shared library targets for cc_binary linkshared=1Gravatar Googler2016-12-16
| | | | | | | | | This change allows versioned shared libraries (e.g. "libfoo.so.1.2") to be built and linked. -- PiperOrigin-RevId: 142193230 MOS_MIGRATED_REVID=142193230
* Add an option to enable Whole Module OptimizationGravatar Dmitry Shevchenko2016-12-15
| | | | | | | | This is not production ready, but allows us to collect user feedback on this option. -- PiperOrigin-RevId: 142166665 MOS_MIGRATED_REVID=142166665
* Add a missing 'function' keywordGravatar Dmitry Shevchenko2016-12-15
| | | | | | -- PiperOrigin-RevId: 142158214 MOS_MIGRATED_REVID=142158214
* Move TestStrategy to lib.exec package.Gravatar Ulf Adams2016-12-15
| | | | | | | | | | | | | | | | This is part of refactoring test strategy to unify its implementation between Bazel and Blaze (Google's internal version of Bazel), which should fix several issues in Bazel. It's also necessary to untangle lib.rules and lib.exec to enforce proper layering by separating compilation of these packages, and to provide a minimal Bazel binary. In particular, no core part of Bazel should depend on any of the rules, to facilitate moving them out of Bazel / reimplementing them in Skylark (except for some core rules like test_suite, alias, and genquery). -- PiperOrigin-RevId: 142151901 MOS_MIGRATED_REVID=142151901
* Streamline Fingerprint implementationGravatar Michajlo Matijkiw2016-12-15
| | | | | | | | | | | | Thread all updates through a CodedOutputStream. This has the benefit of potentially hashing less data, as many int values can be represented more compactly, and reducing the churn of hashing strings (generally), since CodedOutputStream is already heavily optimized for this. While the buffer size is a little generous, it winds up paying off. -- PiperOrigin-RevId: 142151062 MOS_MIGRATED_REVID=142151062
* Fix PathFragment to not use Java8-only static hashCode methods.Gravatar John Cater2016-12-15
| | | | | | | | Fixes #2247. -- PiperOrigin-RevId: 142143520 MOS_MIGRATED_REVID=142143520
* New operators for Skylark:Gravatar Andreas Bergmeier2016-12-15
| | | | | | | | | | | | | - list * int - int * list RELNOTES[NEW]: Skylark: you can now multiply a list by an integer to get the concatenation of N copies of this list, e.g. [a,b] * 3 = [a,b,a,b,a,b] -- Change-Id: I2068ad30e11df26dc7b4b8c41e51f85db56f0390 Reviewed-on: https://github.com/bazelbuild/bazel/pull/1524 PiperOrigin-RevId: 142140726 MOS_MIGRATED_REVID=142140726
* Delete dead codeGravatar Marcel Hlopko2016-12-15
| | | | | | -- PiperOrigin-RevId: 142129925 MOS_MIGRATED_REVID=142129925
* Bazel client, Windows: use file_windows under MSYSGravatar Laszlo Csomor2016-12-15
| | | | | | | | | | | | | | | | | | | | | | | Use file_windows.cc and file_posix.cc when compiling for MSYS/GCC (--cpu=x64_windows). This way we can implement functions in file_windows.cc one by one, start using them with MSYS, and put #ifdef __CYGWIN__ ... #endif around these functions in file_posix.cc, until all functions are implemented in file_windows.cc. The change contains a lot of code deletion, but nothing should change because of that. The deleted code was not being used at all: neither with MSVC (it was behind #else // not COMPILER_MSVC) nor with MSYS (the file was not in the `select` of the rule's `srcs`). See https://github.com/bazelbuild/bazel/issues/2107 -- PiperOrigin-RevId: 142128611 MOS_MIGRATED_REVID=142128611
* Bazel client, Windows: implement GetUserNameGravatar Laszlo Csomor2016-12-15
| | | | | | | | See https://github.com/bazelbuild/bazel/issues/2107 -- PiperOrigin-RevId: 142128121 MOS_MIGRATED_REVID=142128121
* Windows, JNI: implement nativeGetLongPathGravatar Laszlo Csomor2016-12-15
| | | | | | | | | | | | | | | | | | | | Implement a JNI method that can resolve 8dot3 style paths. This is necessary because we need to be able to compare 8dot3 style paths and long paths [1], and because implementing this correctly in Java seems to be impossible [2]. This change also adds tests for the JNI isJunction implementation. See https://github.com/bazelbuild/bazel/issues/2101 [1] https://github.com/bazelbuild/bazel/issues/2145 [2] https://github.com/bazelbuild/bazel/issues/2145#issuecomment-266766716 -- PiperOrigin-RevId: 142123750 MOS_MIGRATED_REVID=142123750
* Bazel client: get rid of RunProgramGravatar Laszlo Csomor2016-12-15
| | | | | | | | | | | | | | | | | | Move GetJvmVersion from blaze_util to blaze_util_platform, and remove the RunProgram declaration from blaze_util.h. Since GetJvmVersion is the only user of RunProgram this is safe to do, and allows making RunProgram static as well as simplifying its implementation on Windows, while also changing it to use CreateProcessW instead of CreateProcessA. See https://github.com/bazelbuild/bazel/issues/2181 -- PiperOrigin-RevId: 142122045 MOS_MIGRATED_REVID=142122045
* blaze_util_windows: use some widechar Win32 APIGravatar Laszlo Csomor2016-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | In this change: - implement PrintErrorW (copy of PrintError but uses FormatMessageW) - use GetModuleFileNameW in GetSelfPath and do not worry about UNC paths, we'll automatically handle them in the future when we use widechar functions everywhere. Until then, if a path happens to have the "\\?\" prefix and that causes an error, we won't be worse off than today; today we just call `pdie` - use GetTempPathW in GetOutputRoot; in theory this might also return an UNC path but again that shouldn't be a problem - add comments for the arguments of CreateFileA and CreateProcessA calls, to make the code a bit more readable See https://github.com/bazelbuild/bazel/issues/2181 -- PiperOrigin-RevId: 142118854 MOS_MIGRATED_REVID=142118854
* Make sure that --proto_toolchain_for_cc works in the HOST configuration.Gravatar Carmi Grushko2016-12-15
| | | | | | -- PiperOrigin-RevId: 142074257 MOS_MIGRATED_REVID=142074257
* Rollback of commit 27cd7f6bb4a02f56f9ad73e57e71e69a1c00d5ea.Gravatar Adam Michael2016-12-15
| | | | | | | | | | | | *** Reason for rollback *** Rolling forward, intentionally breaking loading phase (and therefore `bazel fetch`) for android_binary in Bazel if no android_sdk_repository is set up. Will not submit until Tensorflow's use case is cleaned up in https://github.com/tensorflow/tensorflow/pull/6225. -- PiperOrigin-RevId: 142068703 MOS_MIGRATED_REVID=142068703
* Creates a new BundleLoaderProvider that propagates necessary artifacts, ↵Gravatar Sergio Campama2016-12-15
| | | | | | | | paths, etc, for test binaries (bundle binaries) to compile successfully against a bundle loader artifact. -- PiperOrigin-RevId: 142063256 MOS_MIGRATED_REVID=142063256
* I don't know why we had these but let's get rid of them.Gravatar Adam Michael2016-12-15
| | | | | | -- PiperOrigin-RevId: 142056062 MOS_MIGRATED_REVID=142056062
* Fix an analysis phase performance regression with dynamic configurations.Gravatar Greg Estren2016-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The short story is that env.valuesMissing() returns true without regard for which Skyframe evaluation missed values. In other words, given: env.getValues(missingValues); // Not all values ready. env.getValues(presentValues); // All value ready. if (env.valuesMissing()) { return null; } this returns null even if "env.getValues(presentValues)" has all its results. This doesn't have correctness consequences, but it does have (major) performance consequences, particularly in ConfiguredTargetFunction. The quick reason is that the successful call can still do useful followup work, but that gets short-circuited if the function nulls out early. See the code changes for full details. This eliminates a 30% hit on analysis time with dynamic configurations. With this change, that goes down to 0. The takeaway: ConfiguredTargetFunction is both unintuitively complex and performance-critical. C'est la vie. -- PiperOrigin-RevId: 142044069 MOS_MIGRATED_REVID=142044069
* fix declaration of Pipe variableGravatar Thiago Farina2016-12-14
| | | | | | | | | | | While at it fix a typo of "receive" and fix some other documentation comments. -- Change-Id: Ifb7df972200627730114d6cf751033c0d5e3bc46 Reviewed-on: https://cr.bazel.build/7710 PiperOrigin-RevId: 142015037 MOS_MIGRATED_REVID=142015037
* Bazel client: implement Cstring-Wstring conversionGravatar Laszlo Csomor2016-12-14
| | | | | | | | | | | | Implement conversion methods between char strings and wchar_t strings. This is necessary to use widechar Windows functions. See https://github.com/bazelbuild/bazel/issues/2181 -- PiperOrigin-RevId: 142009930 MOS_MIGRATED_REVID=142009930
* Fixing typo.Gravatar Googler2016-12-14
| | | | | | -- PiperOrigin-RevId: 141942246 MOS_MIGRATED_REVID=141942246
* Windows, JNI: build the DLL with /O2 optimizationGravatar Laszlo Csomor2016-12-14
| | | | | | -- PiperOrigin-RevId: 141939490 MOS_MIGRATED_REVID=141939490
* Make Argument factory methods public.Gravatar Nathan Harmata2016-12-13
| | | | | | -- PiperOrigin-RevId: 141920696 MOS_MIGRATED_REVID=141920696
* Record correct exit code for uncaught exceptions in async threads.Gravatar Chloe Calvarin2016-12-13
| | | | | | | | | | Async threads are divorced from the server's error-reporting mechanism. In the event of a server shutdown originating in an async-thread, write the exit code to a file that can be read by the client. -- PiperOrigin-RevId: 141920284 MOS_MIGRATED_REVID=141920284
* Fix doc typo.Gravatar Alex Humesky2016-12-13
| | | | | | -- PiperOrigin-RevId: 141916305 MOS_MIGRATED_REVID=141916305
* Enables the propagation of the XcodeVersionProperties provider for reading ↵Gravatar Sergio Campama2016-12-13
| | | | | | | | from Skylark. -- PiperOrigin-RevId: 141912220 MOS_MIGRATED_REVID=141912220
* Fix repositories to use 'BUILD.bazel' as the name for the symlinked/new ↵Gravatar John Cater2016-12-13
| | | | | | | | | | build file, which has less changes of causing conflicts. Fixes #2226. -- Change-Id: I4a378d693004d4d6857c78d7ffe886ada3fb9239 Reviewed-on: https://cr.bazel.build/7850 PiperOrigin-RevId: 141909918 MOS_MIGRATED_REVID=141909918
* Rephrase query transformation in terms of composition of QueryExpressionMappers.Gravatar Nathan Harmata2016-12-13
| | | | | | -- PiperOrigin-RevId: 141904124 MOS_MIGRATED_REVID=141904124
* Work around interrupt bug in download_and_extractGravatar Justine Tunney2016-12-13
| | | | | | | | | | | The actual issue is with the code that calls this method by way of reflection. This is a temporary work around to fix #2232. RELNOTES: An IE bug was fixed in repository_ctx.download_and_extract -- PiperOrigin-RevId: 141899395 MOS_MIGRATED_REVID=141899395
* Fix error message that gives incomplete informationGravatar Jon Brandvein2016-12-13
| | | | | | -- PiperOrigin-RevId: 141896569 MOS_MIGRATED_REVID=141896569
* Disable failing tests related to code coverage work.Gravatar John Cater2016-12-13
| | | | | | | | | | | This will silence the problems in #2227 and #2228 until the actual underlying issues can be fixed. -- Change-Id: Id2bc062104b4111bbcde8455f30059b3cb04eff6 Reviewed-on: https://cr.bazel.build/7870 PiperOrigin-RevId: 141892371 MOS_MIGRATED_REVID=141892371
* Document aar_import in Bazel.Gravatar Adam Michael2016-12-13
| | | | | | | | | | Fixes https://github.com/bazelbuild/bazel/issues/564. RELNOTES: aar_import rule is now documented. -- PiperOrigin-RevId: 141843994 MOS_MIGRATED_REVID=141843994
* Make Bazel android_integration_test.sh pass with NDK12.Gravatar Adam Michael2016-12-13
| | | | | | | | | | | NDK12 removed the thumb and hard armeabi cpu variants, but android_integration_test.sh still tried to build with them. Fixes https://github.com/bazelbuild/bazel/issues/2184. -- PiperOrigin-RevId: 141843012 MOS_MIGRATED_REVID=141843012
* Add a flag for disabling local fallback for actions that failed remotely.Gravatar Ola Rozenfeld2016-12-13
| | | | | | -- PiperOrigin-RevId: 141817345 MOS_MIGRATED_REVID=141817345