Skip to content

Commit

Permalink
THRIFT-82: Add Common Lisp support
Browse files Browse the repository at this point in the history
Client: cl

There's framed and buffered socket transport, binary protocol, multiplex, simple
server, cross-tests, self-tests, tutorial, CL library, CL code generator. Only
SBCL is supported for now.

This closes apache#1412
  • Loading branch information
Tomek Kurcz authored and jeking3 committed Mar 2, 2018
1 parent d907cc9 commit e93a901
Show file tree
Hide file tree
Showing 33 changed files with 1,906 additions and 4 deletions.
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,9 @@ project.lock.json
/contrib/fb303/py/fb303/ttypes.py
/depcomp
/install-sh
/lib/cl/backport-update.zip
/lib/cl/lib
/lib/cl/run-tests
/lib/cpp/Debug/
/lib/cpp/Debug-mt/
/lib/cpp/Release/
Expand Down Expand Up @@ -307,6 +310,8 @@ project.lock.json
/test/results.json
/test/c_glib/test_client
/test/c_glib/test_server
/test/cl/TestServer
/test/cl/TestClient
/test/cpp/StressTest
/test/cpp/StressTestNonBlocking
/test/cpp/TestClient
Expand Down Expand Up @@ -348,6 +353,8 @@ project.lock.json
/test/rs/target/
/test/rs/*.iml
/test/rs/**/*.iml
/tutorial/cl/TutorialClient
/tutorial/cl/TutorialServer
/tutorial/cpp/TutorialClient
/tutorial/cpp/TutorialServer
/tutorial/c_glib/tutorial_client
Expand Down Expand Up @@ -395,3 +402,7 @@ project.lock.json
/tutorial/rs/target
/tutorial/rs/Cargo.lock
/ylwrap
/lib/cl/quicklisp.lisp
/lib/cl/externals/
/lib/cl/run-tests
/lib/cl/quicklisp/
12 changes: 11 additions & 1 deletion LANGUAGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Apache Thrift Language Support #

Last Modified: 2017-10-05<br>
Last Modified: 2018-01-13<br>
Version: 0.10.0+

Thrift supports many programming languages and has an impressive test suite that exercises most of the languages, protocols, and transports that represents a matrix of thousands of possible combinations. Each language typically has a minimum required version as well as support libraries - some mandatory and some optional. All of this information is provided below to help you assess whether you can use Apache Thrift with your project. Obviously this is a complex matrix to maintain and may not be correct in all cases - if you spot an error please inform the developers using the mailing list.
Expand Down Expand Up @@ -82,6 +82,16 @@ The Language/Library Levels indicate the minimum and maximum versions that are u
<td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312398">Cocoa</a></td>
</tr>
<tr align=center>
<td align=left><a href="lib/cl/README.md">Common Lisp</a></td>
<!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td>
<!-- Language Levels -------><td colspan=2>unknown</td>
<!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td>
<!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td>
<!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td>
<!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td></td>
<td align=left><a href="https://issues.apache.org/jira/browse/THRIFT-82">Common Lisp</a></td>
</tr>
<tr align=center>
<td align=left><a href="lib/d/README.md">D</a></td>
<!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td>
<!-- Language Levels -------><td>2.070.2</td><td>2.077.1</td>
Expand Down
2 changes: 1 addition & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ empty :=
space := $(empty) $(empty)
comma := ,

CROSS_LANGS = @MAYBE_CPP@ @MAYBE_C_GLIB@ @MAYBE_D@ @MAYBE_JAVA@ @MAYBE_CSHARP@ @MAYBE_PYTHON@ @MAYBE_PY3@ @MAYBE_RUBY@ @MAYBE_HASKELL@ @MAYBE_PERL@ @MAYBE_PHP@ @MAYBE_GO@ @MAYBE_NODEJS@ @MAYBE_DART@ @MAYBE_ERLANG@ @MAYBE_LUA@ @MAYBE_RS@ @MAYBE_DOTNETCORE@
CROSS_LANGS = @MAYBE_CPP@ @MAYBE_C_GLIB@ @MAYBE_CL@ @MAYBE_D@ @MAYBE_JAVA@ @MAYBE_CSHARP@ @MAYBE_PYTHON@ @MAYBE_PY3@ @MAYBE_RUBY@ @MAYBE_HASKELL@ @MAYBE_PERL@ @MAYBE_PHP@ @MAYBE_GO@ @MAYBE_NODEJS@ @MAYBE_DART@ @MAYBE_ERLANG@ @MAYBE_LUA@ @MAYBE_RS@ @MAYBE_DOTNETCORE@
CROSS_LANGS_COMMA_SEPARATED = $(subst $(space),$(comma),$(CROSS_LANGS))

if WITH_PY3
Expand Down
1 change: 1 addition & 0 deletions build/docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ Last updated: October 1, 2017
| C++ clang | 3.4 | 3.8 | 4.0 | |
| C# (mono) | 3.2.8.0 | 4.2.1.0 | 4.6.2.7 | |
| c_glib | 2.40.2 | 2.48.2 | 2.54.0 | |
| CL (sbcl) | | | 1.3.14 | |
| cocoa | | | | Not in CI |
| d | 2.070.2 | 2.073.2 | 2.077.1 | |
| dart | 1.20.1 | 1.22.1 | 1.24.3 | |
Expand Down
4 changes: 4 additions & 0 deletions build/docker/ubuntu-artful/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ RUN apt-get install -y --no-install-recommends \
mono-devel

ENV D_VERSION 2.077.1-0.1
RUN apt-get install -y --no-install-recommends \
`# Common Lisp (sbcl) dependencies` \
sbcl

RUN apt-get install -y --no-install-recommends \
`# D dependencies` \
dmd-bin=$D_VERSION \
Expand Down
3 changes: 2 additions & 1 deletion compiler/cpp/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,8 @@ thrift_SOURCES += src/thrift/generate/t_c_glib_generator.cc \
src/thrift/generate/t_gv_generator.cc \
src/thrift/generate/t_d_generator.cc \
src/thrift/generate/t_lua_generator.cc \
src/thrift/generate/t_rs_generator.cc
src/thrift/generate/t_rs_generator.cc \
src/thrift/generate/t_cl_generator.cc

thrift_CPPFLAGS = -I$(srcdir)/src
thrift_CXXFLAGS = -Wall -Wextra -pedantic -Werror
Expand Down
Loading

0 comments on commit e93a901

Please sign in to comment.