Path to this page:
Subject: CVS commit: pkgsrc/devel
From: Adam Ciarcinski
Date: 2019-09-18 13:27:53
Message id: 20190918112753.9E70CFBF4@cvs.NetBSD.org
Log Message:
thrift: updated to 0.12.0 and split into language modules
Thrift 0.12.0
New Languages
* Common LISP (cl)
* Swift
* Typescript (nodets)
Deprecated Languages
* Cocoa
Breaking Changes (since 0.11.0)
* Rust enum variants are now camel-cased instead of uppercased to conform to \
Rust naming conventions
* Support for golang 1.6 and earlier has been dropped.
* PHP now uses the PSR-4 loader by default instead of class maps.
* method signatures changed in the compiler's t_oop_generator.
* The C (GLib) compiler's handling of namespaces has been improved.
Known Issues (Blocker or Critical)
* build: use a single build system for thrift
* build: bootstrap.sh is missing from source tarball
* csharp: socket exhaustion in csharp implementation
* cocoa: Getters for fields defined with uppercase names do not work
* cocoa: Extended services aren't subclasses in generated Cocoa
* cocoa: Thrift de-capitalizes the name of IsSet property in Cocoa
* cpp: the http implementation is not standard; interop with other languages is \
spotty at best
* cpp: Impossible to build Thrift C++ library for Android (NDK)
* cpp: Using multiple async services simultaneously is not thread-safe
* haskell: Defaulted struct parameters on a service generates invalid Haskell
* nodejs: Exception swallowed by deserialization function
* nodejs: map<i64,value> key treated as hex value in JavaScript
* nodejs: ERROR in ./node_modules/thrift/lib/nodejs/lib/thrift/connection.js \
Module not found: Error: Can't resolve 'child_process'
* nodejs: Sequence numbering for multiplexed protocol broken
* php: sequence and reconnection management issues
* php: Error during deserialization int64 on 32-bit architecture
* php: thrift type i64 java to php serialize/deserealize not working
* php: PHP gets stuck in infinite loop
* python: sending int or float in a double field breaks the connection
* python: unix sockets can get stuck forever
* python: generated code is out of order and causes load issues
* py3: UnicodeDecideError in Python3
Build Process
* D language docker images need demios for libevent and openssl fixed to \
re-enable make cross on dlang
* Use Ubuntu Bionic (18.04 LTS) for CI builds instead of Artful (17.10)
* Define CI operating system coverage rules for the project and (hopefully) \
simplify CI a little more
* ubuntu install instructions broken on 16.04
* Appveyor builds are failing due to a haskell / cabal update in chocolatey
* optimize Dockerfile (only onetime apt-get update)
* rm `build/docker/ubuntu-trusty/Dockerfile.orig`
* Ubuntu Artful doesn't appear to be compatible with Thrift and Haxe 3.4.2
* DLang Client Pool Test fails sporadically
* CL tutorial build fails sporadically
* Make haxelib download quiet so it doesn't blow up the build log
* bootstrap.sh fails if automake=1.16.1
c_glib
* The C (GLib) compiler's handling of namespaces has been improved.
* glibC compilation issue
* c glib is unable to handle client close unexpectedly
cl (new language support in 0.12.0)
* Common Lisp support
csharp
* reserved Csharp keywords are not escaped in some cases
* C# async mode generates incorrect code with inherited services
* IAsyncResult style methods not being supported by certain transports leads to \
issues in mixed ISync/IAsync use cases
* Allow TBufferedTransport to be used as base class
* XML docs; code cleanup (tabs->spaces; String->string)
* protected ExceptionType type member of TApplicationException cannot be accessed
* JSONProtocol Base64 Encoding Trims Padding
* Missing dispose calls in ThreadedServer & ThreadpoolServer
* keep InnerException wherever appropriate
* IAsyncResult not supported by layered transports (buffered/framed)
cpp
* Typecasting problem on list items
* TNonblockingServer throwing THRIFT LOGGER: TConnection::workSocket(): \
THRIFT_EAGAIN (unavailable resources)
* TBufferTransports.h does not compile under Visual Studio 2017
* TNonblockingServer crash because of limitation of select()
* TZlibTransport.cpp doesn't ensure that there is enough space for the zlib \
flush marker in the buffer.
* ZeroMQ contrib library needs a refresh
* TSSLServerSocket incorrectly prints errors
* Move `TAsyncProtocolProcessor` into main thrift library
* evhttp_connection_new is deprecated; use evhttp_connection_base_new
compiler
* Compiler cannot be compiled on macOS(maybe also on other platforms with clang)
* Thrift generates wrong Python code for immutable structures with optional members
* thrift generated code is not stable for constants
* Avoid updating Thrift compiler generated code if the output has not changed
* Visual Studio Compiler project should link runtime statically in release builds
* plugin.thrift t_const_value is not used as a union in C++ code -- fix this
* Dealing with language keywords in Thrift (e.g. service method names)
* repeated runs of compiler produce different binary output at plugin interface
dlang
* Thrift will not build with dlang 2.078 or later
* dlang servers logError on normal client disconnection
* D language docker images need demios for libevent and openssl fixed to \
re-enable make cross on dlang
dart
* Effective Dart and Exceptions
* Shouldn't download dart.deb directly.
delphi
* Calling wrong exception CTOR leads to "call failed: unknown result" \
instead of the real exception being thrown
* uncompileable code with member names that are also types under specific conditions
* Add Async implementation via IFuture
* Possible invalid ptr AV with overlapped read/write on pipes
* Thrift exceptions should derive from TException
* buffered transport broken when trying to re-open a formerly closed transport
* Move Thrift.Console.pas out of the Library
* Allow a default service as fallback for multiplex processors connected by old \
clients
* Large writes/reads may cause range check errors in debug mode
* Compiler directive should match Delphi XE4
* First line in Console duplicated
* FPU ctrl word settings may cause an unexpected "denormalized" error
erlang
* Erlang records should use map() for map type
* Erlang records should allow 'undefined' for non-required fields
* Fix erlang tutorial unpack on Windows
* Ubuntu Xenial erlang 18.3 "make check" fails
golang
* Support for golang 1.6 and earlier has been dropped.
* Go generator assigns strings to field in const instead of pointers.
* Unions Field Count Does Not Consider Binary
* Golang: Panic on p.c.Call when using deprecated initializers
* Required field incorrectly marked as set when fieldType does not match
* Golang: -remote.go client cleanup
* TSimpleServer can exit Accept loop with lock still acquired
* Add support for go 1.10
* golang tests rely on gomock, which has change behaviour, causing tests to fail
* Communication crash when using binary/compact protocol and zlib transport
* golang race detected when closing listener socket
haskell
* Haskell builds with older cabal cannot reconcile complex version requirements
java
* Thrift does not compile due to Ant Maven task errors
* Compiling Thrift from source: Class \
org.apache.tools.ant.taskdefs.ConditionTask doesn't support the nested \
"typefound" element
* proposal: add nullability annotations to generated Java code
* Generate missing @Nullable annotations for Java iterator getters
* Getter of binary field in Java creates unnecessary copy
* libthrift is deployed on central with pom packaging instead of jar
* Java Configure Fails for Ant >= 1.10
* Java libraries missing from package when using cmake
* pom files are not generated or provided in the build
* Maven can't download resource from central when behind a proxy and won't use \
local repository
* Optional rethrow of unhandled exceptions in java processor
* Able to set keyStore and trustStore as InputStream in the \
TSSLTransportFactory.TSSLTransportParameters
* Pass message of unhandled exception to optional rethrow.
* Remove assertion in Java SASL code that would be ignored in release builds
* Include popular IDE file templates to gitignore
* Make TThreadPoolServer.executorService_ available in inherited classes and \
refactor methods to be able customization
* Fix logic of THRIFT-2268
* Increase Java Socket Buffer Size
* Remove Magic Number In TFIleTransport
js
* JavaScript: Use modern Promise implementations
* let / const variable decorators for es6 compiler
* ES6 Classes
* JS: readI32 performance on large arrays is very poor in Chrome
* js and nodejs libraries need to be refreshed with current libraries
* thrift.js: Incorrect usage of 'this' in TWebSocketTransport.__onOpen
* Deserialization of nested list discards content
* JS WebSocket client callbacks invoked twice on parallel requests
* Duplicate declaration of InputBufferUnderrunError in \
lib/nodejs/lib/thrift/json_protocol.js
* Add prettier for consistent JS code formatting
lua
* lua client uses two write() calls per framed message send
* Can't "make install" Lua Library
netcore
* .NET Core Server doesn't close properly when cancelled
* Update .NET Core components, add tests for .Net Core library and .Net Core \
compiler, fix bugs and build process
* JSONProtocol Base64 Encoding Trims Padding
node.js
* Error handling malformed arguments leaks memory, corrupts transport buffers \
causing next RPC to fail
* Memory leak while calling oneway method
* add typescript directory support
* TBufferedTransport can leave corrupt data in the buffer
* Node.js Fileserver webroot path
* Unix domain socket support for NodeJS client
* node.js json_protocol throws error in skip function
* NodeJS: Expose Int64 from browser.js for consumption by browser
* NodeJS warning on binary_protocol writeMessageEnd when seqid = 0
perl
* Replace the use of Perl Indirect Object Syntax calls to new()
* Thrift CPAN release is missing Makefile.PL and the clients are unable to build \
the module
* Perl CPAN Packaging Improvements
php
* PHP generator use PSR-4 default
* PHP generated code match PSR-2
* Extending Thrift class results in "Attempt serialize from non-Thrift \
object"
* TSocket block on read
* migrate php library to psr-4
* infinite loop in latest PHP library
* TBufferedTransport must have underlying transport
* lib/php/test should be checked for PSR-2
* add phpcs back
* php library use PSR-2
* TCurlClient doesn't check for HTTP status code
* TCurlClient: show actual error message when throwing TTransportException
* Add stream context support into PHP/THttpClient
* reduce php library directory depth
python
* Twisted, slots, and void method fails with "object has no attribute \
'success'"
* Potentially server-crashing typo in Python TNonblockingServer
* Supporting TBinaryProtocolAccelerated protocol when using \
TMultiplexedProcessor in Python
* Outdated cipher string in python unit test
* python build on Vagrant Windows boxes fails
* THeader for Python
* make socket backlog configurable for python
* Python: cleanup socket timeout settings
ruby
* Thrift RSpec test suite fails with Ruby 2.4.x due to Fixnum deprecation
* Support ruby rspec 3
* Add ssl socket option to ruby cross tests
* Add seek support to TCompactInputProtocol in Rust
* Codegen Creates Invalid Ruby for Recursive Structs
* Fix the genspec for ruby so it does not complain about an invalid license
rust
* Rust const string calls function at compile time
* Rust enum name wrong case in generated structs
* Avoid generating conflicting struct names in Rust code
* Rust generation should include #![allow(non_snake_case)] or force conform to \
Rust style guidelines
* Rust binary protocol and buffered transport cannot handle writes above 4096 bytes
* Rust framed transport cannot handle writes above 4096 bytes
* Rust's TBinaryInputProtocol fails when strict is false
* Dart -> Rust Framed cross tests fail
* Rust cannot create ReadHalf/WriteHalf to implement custom tranports
swift (new language support in 0.12.0)
* Swift Library
test suite
* Gracefully shutdown cross-test servers to fully test teardown
* Add .NET Core to the make cross standard test suite
* Add unix domain sockets in ruby to cross test - code exists
typescript (new language support in 0.12.0)
* add typescript directory support
Files: