Subversion Repositories SmartDukaan

Rev

Rev 30 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
30 ashish 1
Release Notes for Thrift 0.2.0
2
 
3
General changes:
4
  * First release under the Apache Incubator
5
  * THRIFT-34, THRIFT-270: Namespaces have been updated to Apache instead of Facebook
6
  * THRIFT-110, THRIFT-332, THRIFT-333: Beginnings of a new "Compact Protocol" implemented in Ruby, Java, and C++
7
  * THRIFT-136: "async" has been renamed "oneway"
8
  * THRIFT-409: Support for unions
9
  * THRIFT-173: New HTML generator for generating documentation
10
 
11
C++:
12
      THRIFT-91. cpp: Fix compilation on Fedora Core 9
13
      THRIFT-95. cpp: Fix write buffer initialization in TBufferedTransport
14
      THRIFT-96. cpp: TSocket.peek fails on FreeBSD
15
      THRIFT-149. cpp: Make TNonblockingServer handle a shut-down ThreadManager
16
      THRIFT-168. cpp: Clear transport buffers before a flush
17
      THRIFT-177. cpp: Add a missing "std::"
18
      THRIFT-178. java, csharp, cpp: Final Keyword
19
      THRIFT-194. cpp: Properlyl namespace exception types in catch
20
      THRIFT-203. cpp: Make library headers compile under g++ -pedantic
21
      THRIFT-214. cpp: Qualify another cast
22
      THRIFT-214. cpp: Qualify a cast to fix OSX compilation
23
      THRIFT-215. cpp: Disable an assertion that fails on various platforms
24
      THRIFT-225. java/cpp: Handle non-i32 integer constants properly
25
      THRIFT-244. cpp: Fix TJSONProtocol::writeMessageBegin
26
      THRIFT-244. cpp: Make TJSONProtocolFactor inherit from TProtocolFactory
27
      THRIFT-255. cpp: Add TSimpleFileTransport, a wrapper around TFDTransport
28
      THRIFT-265. cpp: Reset buffers every 512 calls in TNonblockingServer
29
      THRIFT-289. cpp: Fix "make check" by defining a comparator for "Instanity"
30
      THRIFT-333. cpp: Initial TCompactProtocol implementation
31
      THRIFT-348. cpp: Fix readBool for vectors of bools (again)
32
      THRIFT-351. cpp: Allow a custom ThreadFactory in TThreadedServer
33
      Thrift-357. cpp: Fix buffer and connection bloat in TNonBlockingServer
34
      THRIFT-411. cpp: Make TNonblockingServer::connectionStackLimit_ accessors use the right type
35
      THRIFT-425. cpp: numeric_limits is declared in <limits>
36
      THRIFT-426. cpp: Fix include path under test/cpp
37
      THRIFT-464. cpp: Fix some STL misuse in the concurrency library
38
      THRIFT-465. cpp: Fix some STL misuse in the concurrency library test
39
      THRIFT-466. cpp: Make the concurrency library test more thorough
40
      THRIFT-469. cpp: Fix a bug in TimerManager::add
41
      THRIFT-497. cpp: Fix TSocket::read and peek on Max OS
42
      THRIFT-555. cpp: Fix macro defintions for TCompact on non-GNU big endian
43
      THRIFT-587. cpp: Properly set addrLen before accept calls
44
      THRIFT-606. cpp: Fix build on Solaris Nevada
45
      THRIFT-621. cpp: Fix generated files using "apache" namespaces
46
      cpp: Add some missing includes to fix OpenBSD compilation
47
      cpp: Deal with systems without AI_ADDRCONFIG (OpenBSD)
48
      cpp: Deal with systems without sched_get_priority_{min,max} (OpenBSD)
49
      cpp: Eliminate a buffer overflow in the tutorial server
50
      cpp: Eliminate the use of fprintf [THRIFT-77]
51
      cpp: Fix an OpenBSD compilation bug by moving a typedef
52
      cpp: Fix an OpenBSD compilation error that appears to be a real bug
53
      cpp: Fix compilation on OpenBSD by including sys/types.h
54
      cpp: Fix compiler and library compilation with newer glibc
55
      cpp: Fix implementations of "list<bool>"
56
      cpp: Fix test server/client under test/cpp
57
      cpp: Fix "make check" by defining a comparator for "Empty"
58
      cpp: Make the test server compatible with the Python test client
59
      cpp: Rename Makefiles under test/cpp
60
      cpp: Resolve an ambiguous overload in some tests
61
 
62
Java:
63
      Minor whitespace fixes in the Java generator and gen-code
64
      THRIFT-10. java: Descriptors used during serialization should be immutable objects
65
      THRIFT-34 Java libraries should be namespaced under org.apache.thrift, not com.facebook.thrift
66
      THRIFT-64. java: Allow TServerSocket to bind to a specific IP address
67
      THRIFT-81. java: TNonblockingServer: Support a limit on read buffer size
68
      THRIFT-100. java: Set __isset better in beans style
69
      THRIFT-110. java: A more compact format
70
      THRIFT-115. java: Isset structure has a large memory footprint
71
      THRIFT-116. java: Isset fields for non-primitive types unnecessary
72
      THRIFT-119. java: structs' toString omits unset optional fields
73
      THRIFT-120. java: Make the nocamel option work for more methods
74
      THRIFT-130. java: Eliminate frame{Read,Write} from TFramedTransport
75
      THRIFT-138. java: Create deep-copy constructors for Thrift structs
76
      THRIFT-138. java: Fix copy constructor for binary fields
77
      THRIFT-139. java: Expose field ids in more useful ways
78
      THRIFT-139. java: Fix indentation in beans mode
79
      THRIFT-142. java: Better handling of required fields
80
      THRIFT-144. java: Generated classes should implement Comparable
81
      THRIFT-145. java: Make TNonblockingServer more robust against errors
82
      THRIFT-152. java: Set isset appropriately in structure constructors
83
      THRIFT-166. java: Java tests should be in lib/java/test/ THRIFT-221. java: Make java build classpath more dynamic and configurable
84
      THRIFT-172. java: Improve toString output for binary fields
85
      THRIFT-178. java, csharp, cpp: Final Keyword
86
      THRIFT-179. java: Include per-field docstrings in generated code
87
      THRIFT-191. java: Create a static field id -> name map for each struct
88
      THRIFT-202: java: Fix "make check"
89
      THRIFT-218. java: When validation fails on serialization/deserialization, print out the invalid object
90
      THRIFT-222. java: Better exposure if __isset in beans style
91
      THRIFT-225. java/cpp: Handle non-i32 integer constants properly
92
      THRIFT-235. java: Explicitly cast integer constants to double
93
      THRIFT-239. java: Generate @Override annotations for all overrided methods
94
      THRIFT-240. java: TBase should implement Cloneable
95
      THRIFT-249. java: Add @param lines to function docstrings
96
      THRIFT-253. java: Enhance FieldMetaData
97
      THRIFT-262. java: Generate Javadocs for library classes
98
      THRIFT-278. java: #validate exceptions should contain the offending value
99
      THRIFT-288. java: Generated code iterates maps during write inefficiently
100
      THRIFT-289. test: "make check" no longer runs the Java tests
101
      THRIFT-290. java: Metadata map doesn't properly reference external thrift file's types
102
      THRIFT-292. Auto-generate the Java gen-code in build.xml
103
      THRIFT-297. java: getFieldValue and setFieldValue should be abstract TBase methods
104
      THRIFT-303. java: Changes to __isset interface
105
      THRIFT-316. java: @Override isn't generated for hashCode() without the hash code builder
106
      THRIFT-318. java: Performance of HashSet for enumeration VALID_VALUES seems poor
107
      THRIFT-321. java: THRIFT-303 broke EqualityTest Regenerated test code.
108
      THRIFT-359. java:  nocamel style breaks generated services
109
      THRIFT-364. java: Use of enums in other namespaces breaks java generated code
110
      THRIFT-366. java: Lots of little warnings in java library
111
      THRIFT-367. java: Some dead code in TNonblockingSocket.java
112
      THRIFT-368. java: setFieldValue should allow nulls for all field types
113
      THRIFT-378. java: Java servers do not turn internal errors into thrift exceptions
114
      THRIFT-379. java: Print enum value names
115
      THRIFT-382. java:  Unused imports in generated code
116
      THRIFT-409. java: Add "union" to Thrift
117
      THRIFT-416. java: java.util.logging eats exceptions without warning
118
      THRIFT-427. java: Fix print_const_value
119
      THRIFT-446. java: PartialDeserialization in Java
120
      THRIFT-450. java: Check for Apache Commons Lang also
121
      THRIFT-450. java: Propagate CLASSPATH from ./configure to make and ant
122
      THRIFT-450. java: Respect the global classpath during testing
123
      THRIFT-453. java: By default, use Ivy to download Java dependencies
124
      THRIFT-462. java: Installed jar shouldn't be executable
125
      THRIFT-479. java: Add javadocs for enum types
126
      THRIFT-482. java: build.xml does not specify a target version for compiled java classes
127
      THRIFT-489. java: Java enum validation only validates explicitly assigned values
128
      THRIFT-493. java: Stopping TNonblockingServer when it hasn't been starting results in an exception
129
      THRIFT-529. java: Change generated constructors so that application code evolves better Optional fields are now excluded from constructors.
130
      THRIFT-540. java: Have set methods return reference to self
131
      THRIFT-543. java: Generate normal style java files should respect the "optional" keyword when serializing
132
      THRIFT-551. java: Enumeration doesn't generate real enum in Java This patch makes the compiler generate actual Enum classes.
133
      THRIFT-558. java:  Replace use of log4j by commons-logging in Java library and generated Java code
134
      THRIFT-565. java: Structs containing typedefs for incomparable objects will be considered comparable This patch causes the compiler to fully unwrap typedefs when determining comparability.
135
      THRIFT-566. java: jar file should contain copies of LICENSE and NOTICE files
136
      THRIFT-572. java: Union compareTo is broken
137
      THRIFT-588. java: Generated .equals method throws NPE for thrift object
138
      THRIFT-589. java: Add Field Name to Field ID Mapping Java Thrift structs now have a static mapping of field name to field ID.
139
      THRIFT-620. java: Compact Protocol should call readAll, not read This patch switches to calling readAll instead of read.
140
      THRIFT-623. java: Use a Java enum to represent field ids in generated structs
141
      THRIFT-624. java: compareTo is broken for Unions with binary fields This patch adds a special case for byte[] values in TUnion. It also fixes a related bug in TBaseHelper for comparing two byte arrays.
142
      THRIFT-628. java: Hash code method for _Fields objects does not behave as expected This patch switches to using the hashcode of the actual field id, instead of the field id enumeration.
143
      java: Added SerializationBenchmark.java, helper class for performing tests on protocols.
144
      java: Add a helper function to implement nocamel style
145
      java: Add nocamel option to not CamelCase field accessors [THRIFT-42]
146
      java: Close broken connections [THRIFT-73]
147
      java: Fix a minor formatting problem in the gen-code
148
      java: Specify in build.xml that we are using Java 1.5
149
      (THRIFT-5) A TNonblockingServers (single-threaded and thread-pool) for Java
150
      (THRIFT-12) Make the Java library use java.util.logging instead of stdout.
151
      [THRIFT-70] Allow the Java install prefix to be configured.
152
 
153
 
154
Erlang:
155
      Add erl back to EXTRA_DIST because it doesn't use Automake.
156
      Allow the Thrift compiler to be built without the Erlang generator.
157
      Make the Erlang generator dynamic.
158
      THRIFT-83. erlang: Don't flush an empty buffer in the http transport.
159
      THRIFT-94. erlang: Fix a syntax error
160
      THRIFT-126. erlang: TMemoryBuffer for Erlang
161
      THRIFT-127. erlang: Skip fields that have the wrong type
162
      THRIFT-136. s/async/oneway/ in Erlang
163
      THRIFT-186. erl: Make the Makefile work on OpenSolaris
164
      THRIFT-192. erlang: Commit test code missed in r757870
165
      THRIFT-192. erl: Fix handling of booleans
166
      THRIFT-211. erlang: Allow clients to be created without connecting
167
      THRIFT-211. erlang: Modify test_tether to test protocol error handling as well
168
      THRIFT-211. erlang: Support unlinked Thrift clients.
169
      THRIFT-211. erlang: Support "tethered" clients
170
      THRIFT-266. erlang: Erlang atoms must always start with lower-case character
171
      THRIFT-305. erlang: Fix http_options for thrift_http_transport
172
      THRIFT-306. erlang: Let thrift_http_transport specify custom HTTP headers
173
      THRIFT-307. erlang: Make HiPE optional
174
      THRIFT-524. erlang: Decapitalize file names in include directives
175
      THRIFT-574. erlang: Support framed transport for servers
176
 
177
 
178
Python:
179
      Python generator exception namespacing, THRIFT-150
180
      THRIFT-48. python: Make TServerSocket work with Unix-domain sockets
181
      THRIFT-67. python: Add TNonblockingServer
182
      THRIFT-93. Remove unnecessary shebang lines from Python libraries
183
      THRIFT-108. python: Fix call to PyDict_Next in fastbinary.c
184
      THRIFT-109. python: Use self.assert* instead of assert in tests
185
      THRIFT-148. py: Add support for Twisted
186
      THRIFT-148. py: Add un-commited file missing from 749510
187
      THRIFT-148. py: One more time, reapply the most *recent* patch
188
      THRIFT-154. python: Make THttpClient take a URL in its constructor
189
      THRIFT-155. python: Reopen THttpClient on a flush
190
      THRIFT-195. python: Add a simple THttpServer
191
      THRIFT-212. python: Make TFramedTransport implement CReadableTransport
192
      THRIFT-217. Use "--gen py" instead of "-py" in build scripts
193
      THRIFT-241. python: Generate a better implementation of __repr__
194
      THRIFT-242. python: Used named arguments in __init__ instead of a dict
195
      THRIFT-256. python: Fix inheritance of services in the same IDL file
196
      THRIFT-282. Generate doccstrings for Python classes
197
      THRIFT-284. python: Update tutorial files to use repr
198
      THRIFT-285. python: Don't generate _result structs for async functions
199
      THRIFT-292. Auto-generate the Python gen-code in build.xml
200
      THRIFT-292. Restore fb303/FacebookBase.py
201
      THRIFT-310. python: Generate valid code for empty services
202
      THRIFT-329. python: Make TServerSocket.close() work properly
203
      THRIFT-340. python: Detect endianness properly on FreeBSD
204
      THRIFT-360. python: Make fastbinary skip struct fields with the wrong type
205
      THRIFT-362. python: Detect endianness on Solaris
206
      THRIFT-391. py: Fix memory leak in fastbinary
207
      THRIFT-412. python: Fix some syntacticaly-incorrect code generation
208
      THRIFT-463. python: Fix thrift_spec ordering bug from r760201
209
      THRIFT-471. python: Generated exceptions should implement __str__
210
      THRIFT-494. python: Update meta-information in setup.py
211
      THRIFT-495. python: Raise a TTransportException if TSocket is not open
212
      THRIFT-535. py: Twisted Thrift protocol max length is too small
213
      THRIFT-535. py: Twisted Thrift protocol max length is too small (fix off-by-one error in MAX_LENGTH)
214
      THRIFT-583. python: Allow new-style classes for Interfaces
215
      THRIFT-586. python: TSocket incorrectly sets the exception type when an end of file error occurs
216
      THRIFT-612. python: Fix exception bug in TFramedTransport.cstringio_refill
217
      THRIFT-637. python: Fix mixing of oneway and regular requests in TNonblockingServer
218
      cpp: Make the test server compatible with the Python test client
219
      generate Twisted code in a separate directory (gen-py.twisted)
220
      python: Add TFileObjectTransport
221
      python: Eliminate the option of TFramedTransport to not frame
222
      python: Make TFramedTransport use a cStringIO for reading
223
      python: Make the unit tests run faster and more reliably
224
      rb: Make TServer.py Python 2.4 compatible [THRIFT-44]
225
 
226
Ruby:
227
      Add Apache headers to Ruby libs and remove a few remaining Facebook notices
228
      Add back OCamlMakefile and setup.rb to LICENSE
229
      Fix "make distclean" when Ruby is not in use
230
      Remove now defunct tests (they've been moved to specs in lib/rb)
231
      THRFIT-231. rb: Make Thrift::Structs hashable
232
      THRIFT-132. ruby: Ruby generator should use ::Thrift::Foo namespace form
233
      THRIFT-157. rb: Quote strings and qualify class names properly
234
      THRIFT-175. Specs in Ruby library should be run during make check
235
      THRIFT-229. rb: Don't block indefinitely on connect()
236
      THRIFT-245. rb: FIELDS constant should contain name of enumerated type for enum fields
237
      THRIFT-246. rb: Generate #struct_fields rather than reflect.
238
      THRIFT-248. ruby: Factor BinaryProtocolAccelerated into separate protocol and struct components
239
      THRIFT-254. rb: Add optional strict version support to binary protocols
240
      THRIFT-260. rb: Some Protocol methods shouldn't have default nil implementations
241
      THRIFT-275. rb: Remove deprecated classes from Ruby library
242
      THRIFT-276. rb: Ruby libraries should have one class per file
243
      THRIFT-277. rb: Abstract Transport in Ruby #read method should throw NotImplementedException
244
      THRIFT-298. ruby: Exception propagation seems broken for Ruby clients
245
      THRIFT-302. ruby: Native extension fails to build
246
      THRIFT-312. rb: Ruby unit tests fail due to change in BinaryProtocolAccelerated interface
247
      THRIFT-313. rb: BinaryProtocolAccelerated and BinaryProtocol don't produce the same bytes when writes aren't strict
248
      THRIFT-332. rb: Compact Protocol in Ruby
249
      THRIFT-352. rb: Implicit enums should be valid values
250
      THRIFT-353. rb: Capitalize module names on ruby generation
251
      THRIFT-358. ruby:  Change how external thrift files' generated code is required
252
      THRIFT-372. rb: Ruby lib doesn't rescue properly from lack of native_thrift extension
253
      THRIFT-374. rb: ruby 1.9 compatibility
254
      THRIFT-375. rb: syntax error in benchmark.rb
255
      THRIFT-396. rb: BinaryProtocol missing method implementations
256
      THRIFT-401. rb: Speed up FramedTransport
257
      THRIFT-402. rb: MemoryBuffer > 4096 bytes will truncate remaining bytes
258
      THRIFT-408. rb: Ruby C extension doesn't build on 1.8.5
259
      THRIFT-410. rb: Ruby lib should have no checked in generated code
260
      THRIFT-410. rb:  Ruby lib should have no checked in generated code
261
      THRIFT-415. rb: BinaryProtocolAccelerated does not behave properly when strict reads are turned off
262
      THRIFT-417. rb: BufferedTransport can enter an infinite loop
263
      THRIFT-421. rb: Fix tests broken by original patch
264
      THRIFT-422. rb: scope all references to the Thrift module
265
      THRIFT-430. rb: ruby tutorials and ruby tests require deprecated files and class names
266
      THRIFT-431. rb: Capitalize namespace values
267
      THRIFT-433. rb: 'rake spec' sort of fails
268
      THRIFT-437. rb: fix benchmarking tools to require proper file names
269
      THRIFT-444. rb: THRIFT-356 broke compact protocol spec
270
      THRIFT-445. rb: client and processor do not inherit from the proper namespace scope
271
      THRIFT-451. rb: ruby structs use lowercase enum while modules are capitalized
272
      THRIFT-485. rb:  Generated validate methods that reference external thrift files' types are not referenced correctly
273
      THRIFT-486. rb: ruby tutorial needs updated require statements
274
      THRIFT-498. rb: Compact and Binary native protocols, used at the same time, can cause some issues
275
      THRIFT-501. rb: File.dirname(...) requires cause warnings in some scenarios
276
      THRIFT-511. rb: Better performing hash method for generated structs
277
      THRIFT-513. rb: spec test files broken, rake searching for misnamed files
278
      THRIFT-516. rb: If TFramedTransport reads a negative frame size, throw a TTransportException descendant instead of the default NegativeArraySizeException
279
      THRIFT-526. rb: Generated Ruby enums have no good way to get the names back out once you have a number.
280
      THRIFT-547. rb: Thrift deserializer hangs when deserializing empty string
281
      THRIFT-552. rb: gem requires exactly rubygems 1.2.0
282
      HRIFT-569. rb: Segmentation Fault when using BinaryProtocolAccelerated in Ruby
283
      THRIFT-571. rb: compact_protocol.c:89: warning: format not a string literal and no format arguments
284
      THRIFT-572. rb: fix RSTRING for 1.9 compatibility
285
      THRIFT-603. rb: Struct read method does not call validate After reading a struct, we will now call the struct's validate method.
286
      Thrift-421. rb: Underscore output file names and require file statments
287
      rb: Add FramedTransport#borrow/consume! [THRIFT-117]
288
      rb: Add TProtocolException to the backwards_compatibility_spec [THRIFT-88]
289
      rb: Add docstrings to generated ruby code [THRIFT-147]
290
      rb: Add ext/ to loadpath so BinaryProtocolAccelerated specs pass
291
      rb: Add optional timeout argument to Thrift::Socket [THRIFT-74]
292
      rb: Add pretty inspect, optional field hint for Thrift::Struct
293
      rb: Add some additional error handling to Thrift::Socket [THRIFT-53]
294
      rb: Add stubs for rake install/package when Echoe not present [THRIFT-52]
295
      rb: BinaryProtocolAccelerated should use Thrift::ProtocolException [THRIFT-89]
296
      rb: BufferedTransport should flush on close [THRIFT-49]
297
      rb: Buffer the slice!s in MemoryBuffer for a significant performance increase [THRIFT-63]
298
      rb: Bugfix for deprecation code [kevin@rapleaf.com][THRIFT-50]
299
      rb: Change the license from Thrift Software License to Apache Software License [THRIFT-38]
300
      rb: Check Thrift.type_checking earlier for a performance boost [THRIFT-55]
301
      rb: Check container elements when Thrift.type_checking = true [THRIFT-104]
302
      rb: Create constants for field ids in generated structs [THRIFT-165]
303
      rb: Delete setup.rb [THRIFT-38]
304
      rb: Display field name in type-checking error [THRIFT-78]
305
      rb: Ensure the specs that expect deprecation warnings actually get them [THRIFT-56]
306
      rb: Ensure the transport is closed if an exception is raised serializing data in Client.send_message [THRIFT-75]
307
      rb: Improve IOStreamTransport to behave more like a real transport [THRIFT-76]
308
      rb: Make TServer.py Python 2.4 compatible [THRIFT-44]
309
      rb: Performance tweaks in Struct#initialize [THRIFT-188]
310
      rb: Remove extra validate in read [THRIFT-207]
311
      rb: Reorganize the Rakefile a bit [THRIFT-38]
312
      rb: Spec out Thrift::BinaryProtocolAccelerated [THRIFT-90]
313
      rb: Speed up Struct#initialize for optional fields [THRFIT-112]
314
      rb: Support SSL and correct Content-Type in HTTPClient [THRIFT-156]
315
      rb: Support `raise Xception, message` for Structs that inherit from ::Exception [THRIFT-58]
316
      rb: Teach BinaryProtocolAccelerated to encode strings with NULs [THRIFT-97]
317
      rb: The deprecation stuff should skip thrift library code when showing caller [THRIFT-56]
318
      rb: The shared binary protocol specs lacked a test for read_message_begin
319
      rb: Thrift.check_type should check struct classes [THRIFT-185]
320
      rb: Update HTTPClientSpec for THRIFT-156
321
      rb: Use Echoe to manage the gem [THRIFT-38]
322
      rb: Use File.dirname(__FILE__) in generated requires [THRIFT-57]
323
      rb: Use defined? JRUBY_VERSION to detect JRuby [THRIFT-38]
324
      rb: Validate struct _after_ read. [THRIFT-206]
325
      rb: When passing unknown keys to Thrift::Struct.new, report those keys in the exception [THRIFT-51]
326
      rb: raise if an object is serialized without required fields [THRIFT-143]
327
      rb: require 'thrift' first in generated service definitions [THRIFT-38]
328
      rb: rewrite the README [THRIFT-38]
329
 
330
PHP:
331
      Allow the Thrift compiler to be built without the PHP generator.
332
      Make the PHP generator dynamic.
333
      Make the PHP generator use non-hardcoded namespaces.
334
      Remove obsolete php extension tag
335
      THRIFT-99. php: Add scheme (http[s], etc.) support to THttpClient
336
      THRIFT-349. php: Accelerated binary protocol serialization segementation fault
337
      THRIFT-350. php: Fix the extension build when C++ is not already used
338
      THRIFT-404. php: Make TPhpStream work for cli (cgi) scripts
339
      THRIFT-405. php: Create a tutorial server
340
      THRIFT-499. php: Thrift_protocol PHP extension does not handle signedness correctly
341
      THRIFT-584. php: Generate a better directory structure
342
      php: Fix an undefined variasble in an error message
343
      php: Improve some docblock comments for TSocket
344
 
345
Perl:
346
      Perl library should honor the INSTALLDIRS variable
347
      THRIFT-190. Added dependency check to perl Makefile
348
      THRIFT-193: Patch for proper namespace support in perl compiler
349
      THRIFT-199. perl: Let "make distclean" work when we are not using Perl
350
      THRIFT-199: integrate perl into automake
351
      THRIFT-470. fb303: Use a namespace in Perl gen-code
352
      THRIFT-542: Perl compiler uses invalid method 'method_exists' and subsequent test
353
      THRIFT-554: Perl improper namespace check for exception handling and writeMessageEnd missing on processor calls
354
      THRIFT-590: send/recv timeout values interchanged in perl socket lib
355
      THRIFT-619: Perl server and example
356
 
357
 
358
C#:
359
      THRIFT-25. csharp: Various compiler and library improvements
360
      THRIFT-46. csharp: Throw the correct exception for an unknown method
361
      THRIFT-129. csharp: Make all Thrift structures extend TBase
362
      THRIFT-158. csharp: Update headers to Apache
363
      THRIFT-159. csharp: Compiler doesn't add package scope to exceptions in catch blocks and assigns to unused local var when reading
364
      THRIFT-178. java, csharp, cpp: Final Keyword
365
      THRIFT-204. csharp: C# Partial Classes
366
      THRIFT-209. csharp: Make TTransportFactory.GetTransport virtual
367
      THRIFT-258. csharp: Include all lib source files in Makefile.am
368
      THRIFT-264. csharp: Include TBufferedTransport in the build on Linux
369
      THRIFT-264. csharp: Use /langversion:linq to fix the Linux build
370
      THRIFT-384. csharp: Fix handling of fields named "value"
371
      THRIFT-467. csharp: Fix compilation on Debian Sid
372
      THRIFT-525. csharp: ThriftTest project will not generate c# from .thrift file or generate ThriftImpl.dll
373
      THRIFT-531. csharp: C# project and solution files reference external source control system
374
      csharp: Remove a BOM and CRLF line endings from some test code
375
 
376
Haskell:
377
      Consolidate lib/hs/.gitignore into the top-level .gitignore
378
      THRIFT-385. hs: 64-bit integer and double types incorrectly serialized on 32-bit platforms
379
      THRIFT-390. hs: Cabalize Haskell library code
380
      THRIFT-392. hs: Make test scripts easier to use
381
      THRIFT-397. hs: Remove unnecessary redefinition of generate_program()
382
      THRIFT-398. hs: Remove unnecessary parens from generated type annotations
383
      THRIFT-399. hs: Fix set and number issues in generated constant code
384
      THRIFT-407. hs: Refactor and improve Haskell-related code
385
 
386
OCaml:
387
      No changes
388
 
389
Smalltalk:
390
      smalltalk: Fix TBinaryProtocol readString for empty strings
391
 
392
XSD:
393
      Allow the Thrift compiler to be built without the XSD generator.
394
      Make the XSD generator dynamic.
395
      Make the XSD generator use non-hardcoded namespaces.
396
 
397
HTML:
398
      THRIFT-173. Commit the html generator
399
      THRIFT-259. html: Generate "extends" link for extended services
400
      THRIFT-365. html:  HTML compiler infinite loop
401
 
402
Cocoa:
403
      THRIFT-280. Server-side Cocoa implementation.
404
      THRIFT-343. Import <Foundation/Foundation.h> instead of <Cocoa/Cocoa.h> to support iPhone
405
      THRIFT-344.  Add a 'log_unexpected' option to the cocoa generator.  off by default.  when supplied, unexpected field IDs and types are logged when reading a struct.
406
      THRIFT-520. Fix generation of cocoa constants when a namespace prefix is set.
407
 
408
 
409
 
410
Release Notes for Thrift 20080411
411
 
412
.equals and .hashCode() for Java scturcts (developed by dreiss).
413
 
414
Improvments to the C++ TSocketPool (developed by akhil).
415
 
416
PHP (de)serialization extension (developed by dweatherford).
417
 
418
Add fb303 to contrib (developed by Facebook).
419
 
420
TJSONProtocol for C++ and Java (contributed by Chad Walters of Powerset).
421
 
422
Support for "make check" and better tests (contributed by Nitay).
423
 
424
Smalltalk support (contributed by Patrick Collison).
425
 
426
Dave Simpson <dave@powerset.com>
427
Better support for connection tracking in the C++ server (contributed by
428
Dave Simpson of Powerset).
429
 
430
Perl HttpClient (contributed by Igor Afanasyev of Evernote).
431
 
432
C# support (contributed by Todd Berman of imeem).
433
 
434
MinGW port of the compiler (contributed by Todd Berman of imeem).
435
 
436
Tons of small improvements and bug fixes.
437
 
438
 
439
Release Notes for Thrift 20070917
440
 
441
TBinaryProtocol now includes a protocol version number in messaged.
442
This is a non-backwards-compatible change.  Please see the
443
TBinaryProtocol constructor for strictRead_ and strictWrite_.
444
 
445
Add binary type to support non-text "strings" in Java.
446
 
447
TSocketPool for C++ (developed by jsobel).
448
 
449
Syntax highlighting for vim and emacs (developed by hzhao and martin).
450
 
451
Perl support (contributed by Jake Luciani).
452
 
453
Erlang support (developed by cpiro).
454
 
455
Ruby API overhaul (contributed by Kevin Clark of Powerset).
456
 
457
IPv6 support in C++ and Python (contributed by Paul Saab of Powerset).
458
 
459
Read/Write locks (developed by boz).
460
 
461
OCaml support (developed by iproctor).
462
 
463
Human-readable strings from Thrift structures in C++ (developed by dreiss).
464
 
465
Haskell support (developed by iproctor).
466
 
467
Support for optional fields in C++ (contributed by Andy Lutomirsky).
468
 
469
Support for operator== for Thrift structures (contributed by Andy Lutomirsky).
470
 
471
Python/C module for fast (de)serialization (contributed by Ben Maurer).
472
 
473
Limited reflection for C++ services (developed by dreiss).
474
 
475
Python library installation defaults to /usr, override with PY_PREFIX.
476
 
477
Support for Javabean-style Java classes (contributed by Dave Engberg).
478
 
479
TDenseProtocol for C++ (experimental way to shrink structures)
480
(developed by dreiss).
481
 
482
Cocoa/Objective C support (contributed by Andrew McGeachie).
483
 
484
Thrift now builds without libevent.
485
 
486
TZlibTransport for C++ (compress serialized structures) (developed by dreiss).
487
 
488
Tons of small improvements and bug fixes.