blob: 0dc40b65cd99dbbe9f5c282b0cab9e1eb51ea726 [file] [log] [blame]
Todd Lipcon72a1a882009-12-08 03:40:31 +00001Release Notes for Thrift 0.2.0
2
3General 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
11C++:
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
62Java:
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
154Erlang:
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
178Python:
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
226Ruby:
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
330PHP:
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
345Perl:
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
358C#:
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
376Haskell:
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
386OCaml:
387 No changes
388
389Smalltalk:
390 smalltalk: Fix TBinaryProtocol readString for empty strings
391
392XSD:
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
397HTML:
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
402Cocoa:
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
David Reiss10a22bf2008-04-21 18:08:07 +0000410Release Notes for Thrift 20080411
411
412.equals and .hashCode() for Java scturcts (developed by dreiss).
413
414Improvments to the C++ TSocketPool (developed by akhil).
415
416PHP (de)serialization extension (developed by dweatherford).
417
418Add fb303 to contrib (developed by Facebook).
419
420TJSONProtocol for C++ and Java (contributed by Chad Walters of Powerset).
421
422Support for "make check" and better tests (contributed by Nitay).
423
424Smalltalk support (contributed by Patrick Collison).
425
426Dave Simpson <dave@powerset.com>
427Better support for connection tracking in the C++ server (contributed by
428Dave Simpson of Powerset).
429
430Perl HttpClient (contributed by Igor Afanasyev of Evernote).
431
432C# support (contributed by Todd Berman of imeem).
433
434MinGW port of the compiler (contributed by Todd Berman of imeem).
435
436Tons of small improvements and bug fixes.
437
438
David Reissb72d19f2007-09-18 19:46:00 +0000439Release Notes for Thrift 20070917
440
441TBinaryProtocol now includes a protocol version number in messaged.
442This is a non-backwards-compatible change. Please see the
443TBinaryProtocol constructor for strictRead_ and strictWrite_.
444
445Add binary type to support non-text "strings" in Java.
446
447TSocketPool for C++ (developed by jsobel).
448
449Syntax highlighting for vim and emacs (developed by hzhao and martin).
450
451Perl support (contributed by Jake Luciani).
452
453Erlang support (developed by cpiro).
454
455Ruby API overhaul (contributed by Kevin Clark of Powerset).
456
457IPv6 support in C++ and Python (contributed by Paul Saab of Powerset).
458
459Read/Write locks (developed by boz).
460
461OCaml support (developed by iproctor).
462
463Human-readable strings from Thrift structures in C++ (developed by dreiss).
464
465Haskell support (developed by iproctor).
466
467Support for optional fields in C++ (contributed by Andy Lutomirsky).
468
469Support for operator== for Thrift structures (contributed by Andy Lutomirsky).
470
471Python/C module for fast (de)serialization (contributed by Ben Maurer).
472
473Limited reflection for C++ services (developed by dreiss).
474
475Python library installation defaults to /usr, override with PY_PREFIX.
476
477Support for Javabean-style Java classes (contributed by Dave Engberg).
478
479TDenseProtocol for C++ (experimental way to shrink structures)
480(developed by dreiss).
481
482Cocoa/Objective C support (contributed by Andrew McGeachie).
483
484Thrift now builds without libevent.
485
486TZlibTransport for C++ (compress serialized structures) (developed by dreiss).
487
488Tons of small improvements and bug fixes.