Skip to content

Commit

Permalink
[THRIFT-82] Add Common Lisp support
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Tomek Kurcz authored and dkochmanski committed Jan 14, 2018
1 parent 31d5b7b commit fb6071d
Show file tree
Hide file tree
Showing 33 changed files with 1,921 additions and 33 deletions.
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,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 @@ -298,6 +301,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 @@ -339,6 +344,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 @@ -386,3 +393,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/cgrn.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/cgrn.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/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.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.076.0</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
59 changes: 30 additions & 29 deletions build/docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,33 +136,34 @@ Last updated: October 1, 2017

Last updated: October 1, 2017

| Language | ubuntu-trusty | ubuntu-xenial | ubuntu-artful | Notes |
| :-------- | :------------ | :------------ | :------------ | :---- |
| as3 | | | | Not in CI |
| C++ gcc | 4.8.4 | 5.4.0 | 7.2.0 | |
| C++ clang | 3.4 | 3.8 | 4.0 | |
| C# (mono) | 3.2.8.0 | 4.2.1 | 4.6.2.7 | |
| c_glib | 2.40.2 | 2.48.2 | 2.54.0 | |
| cocoa | | | | Not in CI |
| d | 2.070.2 | 2.073.2 | 2.076.0 | |
| dart | 1.20.1 | 1.24.2 | 1.24.2 | |
| delphi | | | | Not in CI |
| dotnet | | 2.0.3 | 2.0.3 | |
| erlang | R16B03 | 18.3 | 20.0.4 | |
| go | 1.2.1 | 1.6.2 | 1.8.3 | |
| haskell | 7.6.3 | 7.10.3 | 8.0.2 | |
| haxe | | 3.2.1 | 3.4.2 | disabled in trusty builds - cores on install v3.0.0, disabled in artful builds - see THRIFT-4352 |
| java | 1.7.0_151 | 1.8.0_131 | 1.8.0_151 | |
| js | | | | Unsure how to look for version info? |
| lua | 5.1.5 | 5.2.4 | 5.2.4 | Lua 5.3: see THRIFT-4386 |
| nodejs | | 4.2.6 | 8.9.1 | trusty has node.js 0.10.0 which is too old |
| ocaml | | 4.02.3 | 4.04.0 | |
| perl | 5.18.2 | 5.22.1 | 5.26.0 | |
| php | 5.5.9 | 7.0.22 | 7.1.8 | |
| python | 2.7.6 | 2.7.12 | 2.7.14 | |
| python3 | 3.4.3 | 3.5.2 | 3.6.3 | |
| ruby | 1.9.3p484 | 2.3.1p112 | 2.3.3p222 | |
| rust | 1.15.1 | 1.15.1 | 1.18.0 | |
| smalltalk | | | | Not in CI |
| swift | | | | Not in CI |
| Language | ubuntu-trusty | ubuntu-xenial | ubuntu-artful | Notes |
| :---------- | :------------ | :------------ | :------------ | :---- |
| as3 | | | | Not in CI |
| C++ gcc | 4.8.4 | 5.4.0 | 7.2.0 | |
| C++ clang | 3.4 | 3.8 | 4.0 | |
| C# (mono) | 3.2.8.0 | 4.2.1 | 4.6.2.7 | |
| c_glib | 2.40.2 | 2.48.2 | 2.54.0 | |
| cocoa | | | | Not in CI |
| Common Lisp | | | 1.3.14 | |
| d | 2.070.2 | 2.073.2 | 2.076.0 | |
| dart | 1.20.1 | 1.24.2 | 1.24.2 | |
| delphi | | | | Not in CI |
| dotnet | | 2.0.3 | 2.0.3 | |
| erlang | R16B03 | 18.3 | 20.0.4 | |
| go | 1.2.1 | 1.6.2 | 1.8.3 | |
| haskell | 7.6.3 | 7.10.3 | 8.0.2 | |
| haxe | | 3.2.1 | 3.4.2 | disabled in trusty builds - cores on install v3.0.0, disabled in artful builds - see THRIFT-4352 |
| java | 1.7.0_151 | 1.8.0_131 | 1.8.0_151 | |
| js | | | | Unsure how to look for version info? |
| lua | 5.1.5 | 5.2.4 | 5.2.4 | Lua 5.3: see THRIFT-4386 |
| nodejs | | 4.2.6 | 8.9.1 | trusty has node.js 0.10.0 which is too old |
| ocaml | | 4.02.3 | 4.04.0 | |
| perl | 5.18.2 | 5.22.1 | 5.26.0 | |
| php | 5.5.9 | 7.0.22 | 7.1.8 | |
| python | 2.7.6 | 2.7.12 | 2.7.14 | |
| python3 | 3.4.3 | 3.5.2 | 3.6.3 | |
| ruby | 1.9.3p484 | 2.3.1p112 | 2.3.3p222 | |
| rust | 1.15.1 | 1.15.1 | 1.18.0 | |
| smalltalk | | | | Not in CI |
| swift | | | | Not in CI |

4 changes: 4 additions & 0 deletions build/docker/ubuntu-artful/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ RUN apt-get install -y --no-install-recommends \
`# csharp (mono) dependencies` \
mono-devel

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 \
Expand Down
3 changes: 2 additions & 1 deletion compiler/cpp/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,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 fb6071d

Please sign in to comment.