-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[THRIFT-82] Add Common Lisp support #1412
Conversation
squashed and rebased on top of the thrift master head. |
The bottom line is this: under the law of where mr. Anderson lives he can't yield the IP rights nor he sees a reason to do so, so we can't remove the copyrights put by him there. Code is licensed under the same license as the Thrift code though. |
My take on the Apache licensing rules is that we cannot accept this if it has other copyrights in it:
If Mr. Anderson would provide the ASF with written permission to move the copyright statements into a NOTICE.md file within lib/cl that would be sufficient for inclusion in the project. |
After email exchange with Mr. Anderson I've came to conclusion that we should first put thrift CL library in Quicklisp (we already download dependencies from there) and pull the library from there. In this scenario lib/cl will have only Makefile and some tests. That way there is no problem with copyrights. As of tutorial part and cross tests, they are written by us, so there shouldn't be any issue with that. Tutorial code is written by us, same goes for cross tests. My only concern is about t_cl_generator.cc file from compiler/ module, which has yet another copyright owner, original PR THRIFT-82 issuer (https://issues.apache.org/jira/browse/THRIFT-82) Mr. Patrick Collison: https://issues.apache.org/jira/secure/attachment/12386027/thrift-cl.patch . Should I write to him? His GH handle is @pc, but he doesn't seem to be very active here lately. |
Good news, I have consent from @pc to change the header of the generator to match contributor guidelines. So next steps are:
should I close this pull request for now, or leave it as is until then? |
@jfarrell was going to take action either on contacting individuals or making decisions on this, so I'm waiting to see what the result of those efforts is. I would much prefer the cl code for thrift be in the thrift project itself and not hosted somewhere else. |
any update on this? I'm fine with both options (given all parties agree on them) and have time to work on code forward. |
@dkochmanski still waiting for @jfarrell to chime in since he was going to take some actions. I provided him with an email that could be used to contact the author(s) involved, but I haven't heard anything since that. My preference would be to get permission to build the cl implementation for thrift into the thrift project rather than have it sitting external. If the cl part of the project is going to sit external then we'll likely need to consider it a "contrib/" type of submission where it is maintained external to the project. That doesn't sound like a good long term solution for adding a language to the collection. |
I have sent an email to the two participants for which permission is needed to move copyright statements in order to comply with the Apache licensing requirements. I asked them to each post either acceptance or rejection here for the record. Once we have their answers we can proceed to whatever the next step will be. Without permission the bulk of the code may have to live in some other repository, untouched, and downloaded as part of the build process. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove all code copyrighted by James Anderson as we do not have permission to move the copyright notices on his work to a NOTICE file.
|
@jeking3 I'm really sorry, I only noticed there were suggested changes attached to your comment after I did a forced push. I can't see them anymore. Do you remember if there was anything important there? I removed the CL Thrift library and made it so that it's downloaded during the building process. I think all the code that is left is either written by us (cross-tests, tutorial, build integration, etc.) or isn't an issue (code generator). Currently we download the library from our fork of Anderson's work by downloading (curl) the zip file from github and unzipping it. The long-term goal, though, is to merge our fork with upstream and get it added to quicklisp (will probably take about a month before it's available in the repo). After that we can just download the library in a similar way we download all the dependencies. I used that suggested bash snippet from the closed PR. It worked nicely. What do you think? Is this PR fine in its current shape? |
I will take another look. Can you squash this into a single commit to prepare it for inclusion if it looks good? |
Of course. Squashed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good, a new language supported! Nice job! Very complete.
I won't lie, this feels good! Thanks a lot for the extensive support. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see no Dockerfile changes that would install Common Lisp on any of the docker images for purposes of running the cross test. I just pulled this into the ubuntu-xenial sandbox and lisp is not being configured. Please add lisp to the build/docker/ubuntu-xenial/Dockerfile and follow the instructions in the build/docker/README.md, or tell me how to add Common Lisp to Ubuntu Xenial and I will do that locally to prove it out.
Let me know what the commands are to add lisp to an Ubuntu Xenial system. We need to update the Dockerfile to include Common Lisp so that it actually runs in the build system. This has to happen before we commit. |
Need the following things to happen:
Once lisp is part of the docker images then "make check" and "make cross" will exercise it with every build. Thanks, Jim |
2b3ae9a
to
703c583
Compare
ddeea1e
to
49bc12b
Compare
and one more change: ensure-externals uses |
It seems that SBCL has some problems when ran in docker (investigating that – sadly I can't reproduce this problem on my local machine). I'll install SBCL 1.3.1 on my machine to make 100% sure it is docker-specific. I'll let you know when I know more (and/or resolve the issue). |
@dkochmanski I think it might be, sadly, compiler specific. I don't know about you, but I only ever ran this on a newer version of SBCL. But the warnings SBCL gives in Docker can probably be ignored. While I think there was some kind of file transport (or UDS?), I never tested it. I wouldn't put it down unless we know it works. We don't have the compact protocol. We have simple server, not non-blocking. |
Okay if we need to then let's have the docker build pull down the latest SBCL, build and install it into /usr/local? Usually we like to leave the language stock at the LTS level unless there is something wrong with it, and in this case there might be. |
@dkochmanski I confirmed I get the issue locally on SBCL 1.3.1, but 1.3.14 works fine. @jeking3 I don't think we can fix the issue with SBCL 1.3.1 (easily), as it seems like either Quicklisp or one of the library it pulls causes that, not the code we maintain. Would it be fine to just use Artful? Or do you need it to build on Xenial specifically for Travis integration? |
Currently "make cross" builds on Xenial and it will probably stay that way for a while. It would be acceptable to use a different version, either from an ubuntu PPA or just downloading and building it as part of the docker image setup. So for example putting in 1.3.14 into Xenial and the latest 1.4.x into Artful would work. Is this something you want me to look at? If I get this changelist working on xenial with a modified docker script then I can merge it all together... |
@jeking3 I managed to find other problems while trying to run this stuff on my local machine in the docker, regardless of SBCL version. I'm trying to look into that for now. I'll let you know if I have anything. There's probably no sense having you do what you described until then. Right now Xenial succeeds because apparently @dkochmanski removed SBCL from the dockerfile for it. Curiously, I don't locally have the problem you can see in the failed Artful job. Do you have any idea how to debug this? Looks like compiler first writes a file and then is unable to open it.
|
Could it be that |
046ce46
to
f79610d
Compare
|
Basically SBCL 1.3.14 (artful) works fine locally on Docker (and 1.3.1 had a bug with base strings according to SBCL devs - xenial). So the problem is probably something on environment hosting docker. I've noticed that some languages doesn't have docker tests enabled at all, if this problem persists is it acceptable to skip it for CL too? @jeking3 can you try running tests on Docker on your host locally to confirm that? What steps do you suggest in order to move forward? |
Rebased. |
Sorry I have been working on some other things - I will try to get back around to this as soon as I can. It's important to the project to have as many languages supported as possible. |
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.
Rebased. |
Thanks, I am working on running this in my local docker container and checking the "make cross" results. |
I ran the cross test in ubuntu-artful using your PR and only ttwo unexpected failures occurred:
I think we're good to go. I will change the cross test to use the artful image (and disable those two tests explicitly for now), now that artful has haxe enabled again, it has as many languages as the xenial image does. |
Best I can tell there seems to be some sort of timing or logic error. Builds will randomly fail after writing a fasl, apparently renaming it, then being unable to find it. This is the "ubsan" build job which runs "make precross": https://api.travis-ci.org/v3/job/347498508/log.txt
then immediately after:
Is it possible that the RENAME implementation in sbcl is buggy when the source and destination are the same, and perhaps it exhibits some undefined behavior? Just a wild guess... |
I updated the ubuntu-artful image to SBCL 1.4.4 and it seems to be stable. Merging. |
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
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
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
- testing double rendering in JS, Java, Python and C++ - a comment added (about setprecision) - BOOST_TEST -> BOOST_CHECK double rendering in erlang, fixed (some additional tests added) less than operator - correction in erlang test style changes, some fixes in erlang test some fixes in erlang test some fixes in erlang test - no need for including lists library more style changes - something overlooked expected 2 lines before main - fixed (not seen locally) noticed that test cases should be added manually in Python DoubleConstantTest thrift compilation directive is now given in generate.cmake render_double_to_string -> emit_double_as_string added assertion error messages to see the problems inside Java tests in more detail RDP access to AppVeyor build workers THRIFT-82: Add Common Lisp support 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 THRIFT-82: follow-up to common lisp to stabilize the linux build environment and update some docs THRIFT-82: fix cl test server to return the correct SecondService string and enable multi tests THRIFT-4503: fix dlang server logging on client disconnect so it does not report an error for normal operation THRIFT-4498: add phpcs back Client: php This closes apache#1498 THFIFT-4486: golang: support https from generated clients golang: don't generate -remote.go clients when there are no functions golang: support for http headers in -remote clients golang: serialize cli requests with TJsonProtocol since serialization is not supported with TSimpleJsonProtocol Client: golang This closes apache#1488 duplicate key problem in appveyor settings ignore the test cases with (-+)1.7e+308 in Java tests ignore the test cases with (-+)1.7e+308 in Java tests - 2 pyflakes8 style changes disabling the test named 'TestRenderedDoubleConstants' on machines with the MSVC2010 configuration msvc.profile parameter existence check passing "msvc profile" on build stage "MSVC_PROFILE" as a cache variable wrong usage of cache variables let's see whether the MSVC_PROFILE parameter is passed correctly let's see whether the MSVC_PROFILE parameter is passed correctly let's see whether TestRenderedDoubleConstants is excluded or not msvc.profile access - fixed msvc.profile access - fixed THRIFT-4436: port nodejs changes from THRIFT-3748 to js lib, test for serialization of nested list, run all tests when building js lib Client: js This closes apache#1457 THRIFT-4505: Fix python build on Vagrant Windows boxes Client: py This closes apache#1499 THRIFT-4506: fix use of assert for correctness in Java SASL negotiation Client: java Updated the languages matrix markdown documentation. Minor tweaks to the language matrix markdown documentation. THRIFT-4508: Fix node.js to be the desired version in docker ubuntu-artful image THRIFT-4354: fix php socket blocking behavior Patch: Robert Lu <[email protected]> Client: php This closes apache#1384 THRIFT-4508: end trusty CI builds; handle nodejs 4.x LTS EOL; update docs THRIFT-4508: change windows CI builds to use current MSVC, one cygwin and one mingw build THRIFT-4480 - Handle seqid = 0 Client: js This closes apache#1487 THRIFT-4509: remove nodejs browser test Client: nodejs This closes apache#1501 fix wrong document @param in TBase.h Client: cocoa This closes apache#1504 THRIFT-4024: Skip() throws TProtocolException.INVALID_DATA on unknown data types Client: js This closes apache#1503 THRIFT-4495: Allow `undefined` for non-required Erlang records fields. Client: erl As of Erlang 19, the dialyzer static type-analysis tool no longer implicitly adds `undefined` to the allowed types for a field. This means that dialyzer will now complain about any non-required fields that are not explicitly initialed when creating a new record. This closes apache#1494 THRIFT-4497: Use `map()` field type for Erlang type for map struct fields. Client: erl The Thrift Erlang code generator previously generated fields with the `#{}` Erlang type for maps fields. In the Erlang type specification languages, however, `#{}` specifically means an empty map. This commit fixes the code to emit `map()` instead, which means the maps keys and values may be of any type. It would be possible to emit a field type such as `${keytype() => maptype()}`, but this commit does not do that. This closes apache#1495 THRIFT-4515: fix up nonblocking options and enable ssl for nonblocking in cpp server cross Client: cpp THRIFT-4465: Fix C++ TNonblockingServer and THRIFT_EAGAIN issues Client: cpp This closes apache#1497 THRIFT-4337: Able to set keyStore and trustStore as InputStream in the TSSLTransportFactory.TSSLTransportParameters Client: java This closes apache#1486 THRIFT-4515: fix windows build Client: cpp THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. Client: go This closes apache#1459 THRIFT-4517: disable ocaml in xenial because it is broken THRIFT-4337: fix javadoc build error related to changes THRIFT-4508: remove cygwin64 build in favor of MSVC2013 TestRenderedDoubleConstants (in Java/Python) has been disabled on MSVC2013 builders THRIFT-4509: * switch from grunt-external-daemon and grunt-shell to grunt-shell-spawn * update grunt to 1.0.2 * always use local copy of jquery and qunit * commit the package-lock files for npm keep versions stable Client: js This closes apache#1506 THRIFT-4509: add jslint and fix build script output THRIFT-4429: Make TThreadPoolServer.executorService_ available in inherited classes and refactor methods to be able customization Client: java This closes apache#1485 THRIFT-4513: Fix thrift compiler to generate constants in stable order. This closes apache#1505 reverting changes on disabling a test depending on the MSVC compiler double emitting operation depending on the compiler version THRIFT-4474: Use PSR-4 autoloader by default Client: php This closes apache#1479 THRIFT-4516: Fix "go vet" warnings for Go 1.10 Client: go THRIFT-4419: Fix bug where framed messages > 4K could not be read Client: rs This closes apache#1508 emit_double_as_string refactored unnecessary carat has been removed
- testing double rendering in JS, Java, Python and C++ - a comment added (about setprecision) - BOOST_TEST -> BOOST_CHECK double rendering in erlang, fixed (some additional tests added) less than operator - correction in erlang test style changes, some fixes in erlang test some fixes in erlang test some fixes in erlang test - no need for including lists library more style changes - something overlooked expected 2 lines before main - fixed (not seen locally) noticed that test cases should be added manually in Python DoubleConstantTest thrift compilation directive is now given in generate.cmake render_double_to_string -> emit_double_as_string added assertion error messages to see the problems inside Java tests in more detail RDP access to AppVeyor build workers THRIFT-82: Add Common Lisp support 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 THRIFT-82: follow-up to common lisp to stabilize the linux build environment and update some docs THRIFT-82: fix cl test server to return the correct SecondService string and enable multi tests THRIFT-4503: fix dlang server logging on client disconnect so it does not report an error for normal operation THRIFT-4498: add phpcs back Client: php This closes apache#1498 THFIFT-4486: golang: support https from generated clients golang: don't generate -remote.go clients when there are no functions golang: support for http headers in -remote clients golang: serialize cli requests with TJsonProtocol since serialization is not supported with TSimpleJsonProtocol Client: golang This closes apache#1488 duplicate key problem in appveyor settings ignore the test cases with (-+)1.7e+308 in Java tests ignore the test cases with (-+)1.7e+308 in Java tests - 2 pyflakes8 style changes disabling the test named 'TestRenderedDoubleConstants' on machines with the MSVC2010 configuration msvc.profile parameter existence check passing "msvc profile" on build stage "MSVC_PROFILE" as a cache variable wrong usage of cache variables let's see whether the MSVC_PROFILE parameter is passed correctly let's see whether the MSVC_PROFILE parameter is passed correctly let's see whether TestRenderedDoubleConstants is excluded or not msvc.profile access - fixed msvc.profile access - fixed THRIFT-4436: port nodejs changes from THRIFT-3748 to js lib, test for serialization of nested list, run all tests when building js lib Client: js This closes apache#1457 THRIFT-4505: Fix python build on Vagrant Windows boxes Client: py This closes apache#1499 THRIFT-4506: fix use of assert for correctness in Java SASL negotiation Client: java Updated the languages matrix markdown documentation. Minor tweaks to the language matrix markdown documentation. THRIFT-4508: Fix node.js to be the desired version in docker ubuntu-artful image THRIFT-4354: fix php socket blocking behavior Patch: Robert Lu <[email protected]> Client: php This closes apache#1384 THRIFT-4508: end trusty CI builds; handle nodejs 4.x LTS EOL; update docs THRIFT-4508: change windows CI builds to use current MSVC, one cygwin and one mingw build THRIFT-4480 - Handle seqid = 0 Client: js This closes apache#1487 THRIFT-4509: remove nodejs browser test Client: nodejs This closes apache#1501 fix wrong document @param in TBase.h Client: cocoa This closes apache#1504 THRIFT-4024: Skip() throws TProtocolException.INVALID_DATA on unknown data types Client: js This closes apache#1503 THRIFT-4495: Allow `undefined` for non-required Erlang records fields. Client: erl As of Erlang 19, the dialyzer static type-analysis tool no longer implicitly adds `undefined` to the allowed types for a field. This means that dialyzer will now complain about any non-required fields that are not explicitly initialed when creating a new record. This closes apache#1494 THRIFT-4497: Use `map()` field type for Erlang type for map struct fields. Client: erl The Thrift Erlang code generator previously generated fields with the `#{}` Erlang type for maps fields. In the Erlang type specification languages, however, `#{}` specifically means an empty map. This commit fixes the code to emit `map()` instead, which means the maps keys and values may be of any type. It would be possible to emit a field type such as `${keytype() => maptype()}`, but this commit does not do that. This closes apache#1495 THRIFT-4515: fix up nonblocking options and enable ssl for nonblocking in cpp server cross Client: cpp THRIFT-4465: Fix C++ TNonblockingServer and THRIFT_EAGAIN issues Client: cpp This closes apache#1497 THRIFT-4337: Able to set keyStore and trustStore as InputStream in the TSSLTransportFactory.TSSLTransportParameters Client: java This closes apache#1486 THRIFT-4515: fix windows build Client: cpp THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. Client: go This closes apache#1459 THRIFT-4517: disable ocaml in xenial because it is broken THRIFT-4337: fix javadoc build error related to changes THRIFT-4508: remove cygwin64 build in favor of MSVC2013 TestRenderedDoubleConstants (in Java/Python) has been disabled on MSVC2013 builders THRIFT-4509: * switch from grunt-external-daemon and grunt-shell to grunt-shell-spawn * update grunt to 1.0.2 * always use local copy of jquery and qunit * commit the package-lock files for npm keep versions stable Client: js This closes apache#1506 THRIFT-4509: add jslint and fix build script output THRIFT-4429: Make TThreadPoolServer.executorService_ available in inherited classes and refactor methods to be able customization Client: java This closes apache#1485 THRIFT-4513: Fix thrift compiler to generate constants in stable order. This closes apache#1505 reverting changes on disabling a test depending on the MSVC compiler double emitting operation depending on the compiler version THRIFT-4474: Use PSR-4 autoloader by default Client: php This closes apache#1479 THRIFT-4516: Fix "go vet" warnings for Go 1.10 Client: go THRIFT-4419: Fix bug where framed messages > 4K could not be read Client: rs This closes apache#1508 emit_double_as_string refactored unnecessary carat has been removed THRIFT-82: Add Common Lisp support 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 THRIFT-82: follow-up to common lisp to stabilize the linux build environment and update some docs THRIFT-82: fix cl test server to return the correct SecondService string and enable multi tests THRIFT-4503: fix dlang server logging on client disconnect so it does not report an error for normal operation THRIFT-4498: add phpcs back Client: php This closes apache#1498 THFIFT-4486: golang: support https from generated clients golang: don't generate -remote.go clients when there are no functions golang: support for http headers in -remote clients golang: serialize cli requests with TJsonProtocol since serialization is not supported with TSimpleJsonProtocol Client: golang This closes apache#1488 THRIFT-4436: port nodejs changes from THRIFT-3748 to js lib, test for serialization of nested list, run all tests when building js lib Client: js This closes apache#1457 THRIFT-4505: Fix python build on Vagrant Windows boxes Client: py This closes apache#1499 THRIFT-4506: fix use of assert for correctness in Java SASL negotiation Client: java Updated the languages matrix markdown documentation. Minor tweaks to the language matrix markdown documentation. THRIFT-4508: Fix node.js to be the desired version in docker ubuntu-artful image THRIFT-4354: fix php socket blocking behavior Patch: Robert Lu <[email protected]> Client: php This closes apache#1384 THRIFT-4508: end trusty CI builds; handle nodejs 4.x LTS EOL; update docs THRIFT-4508: change windows CI builds to use current MSVC, one cygwin and one mingw build THRIFT-4480 - Handle seqid = 0 Client: js This closes apache#1487 THRIFT-4509: remove nodejs browser test Client: nodejs This closes apache#1501 fix wrong document @param in TBase.h Client: cocoa This closes apache#1504 THRIFT-4024: Skip() throws TProtocolException.INVALID_DATA on unknown data types Client: js This closes apache#1503 THRIFT-4495: Allow `undefined` for non-required Erlang records fields. Client: erl As of Erlang 19, the dialyzer static type-analysis tool no longer implicitly adds `undefined` to the allowed types for a field. This means that dialyzer will now complain about any non-required fields that are not explicitly initialed when creating a new record. This closes apache#1494 THRIFT-4497: Use `map()` field type for Erlang type for map struct fields. Client: erl The Thrift Erlang code generator previously generated fields with the `#{}` Erlang type for maps fields. In the Erlang type specification languages, however, `#{}` specifically means an empty map. This commit fixes the code to emit `map()` instead, which means the maps keys and values may be of any type. It would be possible to emit a field type such as `${keytype() => maptype()}`, but this commit does not do that. This closes apache#1495 THRIFT-4515: fix up nonblocking options and enable ssl for nonblocking in cpp server cross Client: cpp THRIFT-4465: Fix C++ TNonblockingServer and THRIFT_EAGAIN issues Client: cpp This closes apache#1497 THRIFT-4337: Able to set keyStore and trustStore as InputStream in the TSSLTransportFactory.TSSLTransportParameters Client: java This closes apache#1486 THRIFT-4515: fix windows build Client: cpp THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. Client: go This closes apache#1459 THRIFT-4517: disable ocaml in xenial because it is broken THRIFT-4337: fix javadoc build error related to changes THRIFT-4508: remove cygwin64 build in favor of MSVC2013 THRIFT-4509: * switch from grunt-external-daemon and grunt-shell to grunt-shell-spawn * update grunt to 1.0.2 * always use local copy of jquery and qunit * commit the package-lock files for npm keep versions stable Client: js This closes apache#1506 THRIFT-4509: add jslint and fix build script output THRIFT-4429: Make TThreadPoolServer.executorService_ available in inherited classes and refactor methods to be able customization Client: java This closes apache#1485 THRIFT-4513: Fix thrift compiler to generate constants in stable order. This closes apache#1505 THRIFT-4474: Use PSR-4 autoloader by default Client: php This closes apache#1479 THRIFT-4516: Fix "go vet" warnings for Go 1.10 Client: go THRIFT-4419: Fix bug where framed messages > 4K could not be read Client: rs This closes apache#1508 THRIFT-4523 TStreamTransportImpl.GetOutputStream broken Client: Delphi Patch: Jens Geyer THRIFT-4515: cross server test improvement: graceful test server shutdown This closes apache#1509 THRIFT-82: move to SBCL 1.4.5 (hopefully will address 1.4.4 sporadic build errors)
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
THRIFT-4490 Allow a default service as fallback for multiplex processors connected by old clients Client: Delphi Patch: Jens Geyer THRIFT-4492 protected ExceptionType type member of TApplicationException cannot be accessed Client: C# Patch: Jens Geyer This closes apache#1493 THRIFT-4352: update artful to use haxe 3.4.4 which fixes a core in haxe THRIFT-82: Add Common Lisp support 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 THRIFT-82: follow-up to common lisp to stabilize the linux build environment and update some docs THRIFT-82: fix cl test server to return the correct SecondService string and enable multi tests THRIFT-4503: fix dlang server logging on client disconnect so it does not report an error for normal operation THRIFT-4498: add phpcs back Client: php This closes apache#1498 THFIFT-4486: golang: support https from generated clients golang: don't generate -remote.go clients when there are no functions golang: support for http headers in -remote clients golang: serialize cli requests with TJsonProtocol since serialization is not supported with TSimpleJsonProtocol Client: golang This closes apache#1488 Add nodejs test cases for unix domain socket Indicate that nodejs now supports unix domain socket THRIFT-4436: port nodejs changes from THRIFT-3748 to js lib, test for serialization of nested list, run all tests when building js lib Client: js This closes apache#1457 THRIFT-4505: Fix python build on Vagrant Windows boxes Client: py This closes apache#1499 THRIFT-4506: fix use of assert for correctness in Java SASL negotiation Client: java Updated the languages matrix markdown documentation. Minor tweaks to the language matrix markdown documentation. THRIFT-4508: Fix node.js to be the desired version in docker ubuntu-artful image THRIFT-4354: fix php socket blocking behavior Patch: Robert Lu <[email protected]> Client: php This closes apache#1384 THRIFT-4508: end trusty CI builds; handle nodejs 4.x LTS EOL; update docs THRIFT-4508: change windows CI builds to use current MSVC, one cygwin and one mingw build THRIFT-4480 - Handle seqid = 0 Client: js This closes apache#1487 move the newly supported socket to the correct programming lnguage THRIFT-4509: remove nodejs browser test Client: nodejs This closes apache#1501 fix wrong document @param in TBase.h Client: cocoa This closes apache#1504 THRIFT-4024: Skip() throws TProtocolException.INVALID_DATA on unknown data types Client: js This closes apache#1503 THRIFT-4495: Allow `undefined` for non-required Erlang records fields. Client: erl As of Erlang 19, the dialyzer static type-analysis tool no longer implicitly adds `undefined` to the allowed types for a field. This means that dialyzer will now complain about any non-required fields that are not explicitly initialed when creating a new record. This closes apache#1494 THRIFT-4497: Use `map()` field type for Erlang type for map struct fields. Client: erl The Thrift Erlang code generator previously generated fields with the `#{}` Erlang type for maps fields. In the Erlang type specification languages, however, `#{}` specifically means an empty map. This commit fixes the code to emit `map()` instead, which means the maps keys and values may be of any type. It would be possible to emit a field type such as `${keytype() => maptype()}`, but this commit does not do that. This closes apache#1495 THRIFT-4515: fix up nonblocking options and enable ssl for nonblocking in cpp server cross Client: cpp THRIFT-4465: Fix C++ TNonblockingServer and THRIFT_EAGAIN issues Client: cpp This closes apache#1497 THRIFT-4337: Able to set keyStore and trustStore as InputStream in the TSSLTransportFactory.TSSLTransportParameters Client: java This closes apache#1486 THRIFT-4515: fix windows build Client: cpp THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. Client: go This closes apache#1459 THRIFT-4517: disable ocaml in xenial because it is broken THRIFT-4337: fix javadoc build error related to changes THRIFT-4508: remove cygwin64 build in favor of MSVC2013 THRIFT-4509: * switch from grunt-external-daemon and grunt-shell to grunt-shell-spawn * update grunt to 1.0.2 * always use local copy of jquery and qunit * commit the package-lock files for npm keep versions stable Client: js This closes apache#1506 THRIFT-4509: add jslint and fix build script output THRIFT-4429: Make TThreadPoolServer.executorService_ available in inherited classes and refactor methods to be able customization Client: java This closes apache#1485 THRIFT-4513: Fix thrift compiler to generate constants in stable order. This closes apache#1505 remove uds type; use --domain-socket only implement createHttpUDSConnection API
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.