Go to file
Sam McCall dc8f3cf8b0 [clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction. (re-land r344620)
Summary:
This paves the way for alternative transports (mac XPC, maybe messagepack?),
and also generally improves layering: testing ClangdLSPServer becomes less of
a pipe dream, we split up the JSONOutput monolith, etc.

This isn't a final state, much of what remains in JSONRPCDispatcher can go away,
handlers can call reply() on the transport directly, JSONOutput can be renamed
to StreamLogger and removed, etc. But this patch is sprawling already.

The main observable change (see tests) is that hitting EOF on input is now an
error: the client should send the 'exit' notification.
This is defensible: the protocol doesn't spell this case out. Reproducing the
current behavior for all combinations of shutdown/exit/EOF clutters interfaces.
We can iterate on this if desired.

Reviewers: jkorous, ioeric, hokein

Subscribers: mgorny, ilya-biryukov, MaskRay, arphaman, kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D53286

llvm-svn: 344672
2018-10-17 07:32:05 +00:00
clang NFC: Remove trailing space from CodeGenModule.cpp 2018-10-17 04:29:56 +00:00
clang-tools-extra [clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction. (re-land r344620) 2018-10-17 07:32:05 +00:00
compiler-rt [XRay][compiler-rt] Generational Buffer Management 2018-10-17 06:57:50 +00:00
debuginfo-tests Revert "(Retry) Add a basic integration test for C++ smart pointers" 2018-08-20 19:53:33 +00:00
libclc configure: Rework support for gfx9+ devices that were added post LLVM 3.9 2018-09-15 22:02:01 +00:00
libcxx [libcxx] Mark chrono literal unit tests as being unsupported on AppleClang 10 2018-10-17 00:34:13 +00:00
libcxxabi cxa_demangle: make demangler's parsing functions overridable 2018-10-16 14:29:14 +00:00
libunwind [CMake] Link to compiler-rt if LIBUNWIND_USE_COMPILER_RT is ON. 2018-10-08 18:35:00 +00:00
lld Reland "[PPC64] Add split - stack support." 2018-10-16 17:13:01 +00:00
lldb Delete commented-out code. 2018-10-16 22:01:49 +00:00
llgo
llvm [ARM][NFCI] Do not fuse VADD and VMUL, continued (1/2) 2018-10-17 07:26:35 +00:00
openmp [OpenMP] Convert KMP_DYNAMIC_LIB to a 0 or 1 guard everywhere 2018-10-05 17:59:39 +00:00
parallel-libs
polly [TI removal] Make `getTerminator()` return a generic `Instruction`. 2018-10-15 10:42:50 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.