Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
Release Notes for Thrift 0.2.0General changes:* First release under the Apache Incubator* THRIFT-34, THRIFT-270: Namespaces have been updated to Apache instead of Facebook* THRIFT-110, THRIFT-332, THRIFT-333: Beginnings of a new "Compact Protocol" implemented in Ruby, Java, and C++* THRIFT-136: "async" has been renamed "oneway"* THRIFT-409: Support for unions* THRIFT-173: New HTML generator for generating documentationC++:THRIFT-91. cpp: Fix compilation on Fedora Core 9THRIFT-95. cpp: Fix write buffer initialization in TBufferedTransportTHRIFT-96. cpp: TSocket.peek fails on FreeBSDTHRIFT-149. cpp: Make TNonblockingServer handle a shut-down ThreadManagerTHRIFT-168. cpp: Clear transport buffers before a flushTHRIFT-177. cpp: Add a missing "std::"THRIFT-178. java, csharp, cpp: Final KeywordTHRIFT-194. cpp: Properlyl namespace exception types in catchTHRIFT-203. cpp: Make library headers compile under g++ -pedanticTHRIFT-214. cpp: Qualify another castTHRIFT-214. cpp: Qualify a cast to fix OSX compilationTHRIFT-215. cpp: Disable an assertion that fails on various platformsTHRIFT-225. java/cpp: Handle non-i32 integer constants properlyTHRIFT-244. cpp: Fix TJSONProtocol::writeMessageBeginTHRIFT-244. cpp: Make TJSONProtocolFactor inherit from TProtocolFactoryTHRIFT-255. cpp: Add TSimpleFileTransport, a wrapper around TFDTransportTHRIFT-265. cpp: Reset buffers every 512 calls in TNonblockingServerTHRIFT-289. cpp: Fix "make check" by defining a comparator for "Instanity"THRIFT-333. cpp: Initial TCompactProtocol implementationTHRIFT-348. cpp: Fix readBool for vectors of bools (again)THRIFT-351. cpp: Allow a custom ThreadFactory in TThreadedServerThrift-357. cpp: Fix buffer and connection bloat in TNonBlockingServerTHRIFT-411. cpp: Make TNonblockingServer::connectionStackLimit_ accessors use the right typeTHRIFT-425. cpp: numeric_limits is declared in <limits>THRIFT-426. cpp: Fix include path under test/cppTHRIFT-464. cpp: Fix some STL misuse in the concurrency libraryTHRIFT-465. cpp: Fix some STL misuse in the concurrency library testTHRIFT-466. cpp: Make the concurrency library test more thoroughTHRIFT-469. cpp: Fix a bug in TimerManager::addTHRIFT-497. cpp: Fix TSocket::read and peek on Max OSTHRIFT-555. cpp: Fix macro defintions for TCompact on non-GNU big endianTHRIFT-587. cpp: Properly set addrLen before accept callsTHRIFT-606. cpp: Fix build on Solaris NevadaTHRIFT-621. cpp: Fix generated files using "apache" namespacescpp: Add some missing includes to fix OpenBSD compilationcpp: Deal with systems without AI_ADDRCONFIG (OpenBSD)cpp: Deal with systems without sched_get_priority_{min,max} (OpenBSD)cpp: Eliminate a buffer overflow in the tutorial servercpp: Eliminate the use of fprintf [THRIFT-77]cpp: Fix an OpenBSD compilation bug by moving a typedefcpp: Fix an OpenBSD compilation error that appears to be a real bugcpp: Fix compilation on OpenBSD by including sys/types.hcpp: Fix compiler and library compilation with newer glibccpp: Fix implementations of "list<bool>"cpp: Fix test server/client under test/cppcpp: Fix "make check" by defining a comparator for "Empty"cpp: Make the test server compatible with the Python test clientcpp: Rename Makefiles under test/cppcpp: Resolve an ambiguous overload in some testsJava:Minor whitespace fixes in the Java generator and gen-codeTHRIFT-10. java: Descriptors used during serialization should be immutable objectsTHRIFT-34 Java libraries should be namespaced under org.apache.thrift, not com.facebook.thriftTHRIFT-64. java: Allow TServerSocket to bind to a specific IP addressTHRIFT-81. java: TNonblockingServer: Support a limit on read buffer sizeTHRIFT-100. java: Set __isset better in beans styleTHRIFT-110. java: A more compact formatTHRIFT-115. java: Isset structure has a large memory footprintTHRIFT-116. java: Isset fields for non-primitive types unnecessaryTHRIFT-119. java: structs' toString omits unset optional fieldsTHRIFT-120. java: Make the nocamel option work for more methodsTHRIFT-130. java: Eliminate frame{Read,Write} from TFramedTransportTHRIFT-138. java: Create deep-copy constructors for Thrift structsTHRIFT-138. java: Fix copy constructor for binary fieldsTHRIFT-139. java: Expose field ids in more useful waysTHRIFT-139. java: Fix indentation in beans modeTHRIFT-142. java: Better handling of required fieldsTHRIFT-144. java: Generated classes should implement ComparableTHRIFT-145. java: Make TNonblockingServer more robust against errorsTHRIFT-152. java: Set isset appropriately in structure constructorsTHRIFT-166. java: Java tests should be in lib/java/test/ THRIFT-221. java: Make java build classpath more dynamic and configurableTHRIFT-172. java: Improve toString output for binary fieldsTHRIFT-178. java, csharp, cpp: Final KeywordTHRIFT-179. java: Include per-field docstrings in generated codeTHRIFT-191. java: Create a static field id -> name map for each structTHRIFT-202: java: Fix "make check"THRIFT-218. java: When validation fails on serialization/deserialization, print out the invalid objectTHRIFT-222. java: Better exposure if __isset in beans styleTHRIFT-225. java/cpp: Handle non-i32 integer constants properlyTHRIFT-235. java: Explicitly cast integer constants to doubleTHRIFT-239. java: Generate @Override annotations for all overrided methodsTHRIFT-240. java: TBase should implement CloneableTHRIFT-249. java: Add @param lines to function docstringsTHRIFT-253. java: Enhance FieldMetaDataTHRIFT-262. java: Generate Javadocs for library classesTHRIFT-278. java: #validate exceptions should contain the offending valueTHRIFT-288. java: Generated code iterates maps during write inefficientlyTHRIFT-289. test: "make check" no longer runs the Java testsTHRIFT-290. java: Metadata map doesn't properly reference external thrift file's typesTHRIFT-292. Auto-generate the Java gen-code in build.xmlTHRIFT-297. java: getFieldValue and setFieldValue should be abstract TBase methodsTHRIFT-303. java: Changes to __isset interfaceTHRIFT-316. java: @Override isn't generated for hashCode() without the hash code builderTHRIFT-318. java: Performance of HashSet for enumeration VALID_VALUES seems poorTHRIFT-321. java: THRIFT-303 broke EqualityTest Regenerated test code.THRIFT-359. java: nocamel style breaks generated servicesTHRIFT-364. java: Use of enums in other namespaces breaks java generated codeTHRIFT-366. java: Lots of little warnings in java libraryTHRIFT-367. java: Some dead code in TNonblockingSocket.javaTHRIFT-368. java: setFieldValue should allow nulls for all field typesTHRIFT-378. java: Java servers do not turn internal errors into thrift exceptionsTHRIFT-379. java: Print enum value namesTHRIFT-382. java: Unused imports in generated codeTHRIFT-409. java: Add "union" to ThriftTHRIFT-416. java: java.util.logging eats exceptions without warningTHRIFT-427. java: Fix print_const_valueTHRIFT-446. java: PartialDeserialization in JavaTHRIFT-450. java: Check for Apache Commons Lang alsoTHRIFT-450. java: Propagate CLASSPATH from ./configure to make and antTHRIFT-450. java: Respect the global classpath during testingTHRIFT-453. java: By default, use Ivy to download Java dependenciesTHRIFT-462. java: Installed jar shouldn't be executableTHRIFT-479. java: Add javadocs for enum typesTHRIFT-482. java: build.xml does not specify a target version for compiled java classesTHRIFT-489. java: Java enum validation only validates explicitly assigned valuesTHRIFT-493. java: Stopping TNonblockingServer when it hasn't been starting results in an exceptionTHRIFT-529. java: Change generated constructors so that application code evolves better Optional fields are now excluded from constructors.THRIFT-540. java: Have set methods return reference to selfTHRIFT-543. java: Generate normal style java files should respect the "optional" keyword when serializingTHRIFT-551. java: Enumeration doesn't generate real enum in Java This patch makes the compiler generate actual Enum classes.THRIFT-558. java: Replace use of log4j by commons-logging in Java library and generated Java codeTHRIFT-565. java: Structs containing typedefs for incomparable objects will be considered comparable This patch causes the compiler to fully unwrap typedefs when determining comparability.THRIFT-566. java: jar file should contain copies of LICENSE and NOTICE filesTHRIFT-572. java: Union compareTo is brokenTHRIFT-588. java: Generated .equals method throws NPE for thrift objectTHRIFT-589. java: Add Field Name to Field ID Mapping Java Thrift structs now have a static mapping of field name to field ID.THRIFT-620. java: Compact Protocol should call readAll, not read This patch switches to calling readAll instead of read.THRIFT-623. java: Use a Java enum to represent field ids in generated structsTHRIFT-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.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.java: Added SerializationBenchmark.java, helper class for performing tests on protocols.java: Add a helper function to implement nocamel stylejava: Add nocamel option to not CamelCase field accessors [THRIFT-42]java: Close broken connections [THRIFT-73]java: Fix a minor formatting problem in the gen-codejava: Specify in build.xml that we are using Java 1.5(THRIFT-5) A TNonblockingServers (single-threaded and thread-pool) for Java(THRIFT-12) Make the Java library use java.util.logging instead of stdout.[THRIFT-70] Allow the Java install prefix to be configured.Erlang:Add erl back to EXTRA_DIST because it doesn't use Automake.Allow the Thrift compiler to be built without the Erlang generator.Make the Erlang generator dynamic.THRIFT-83. erlang: Don't flush an empty buffer in the http transport.THRIFT-94. erlang: Fix a syntax errorTHRIFT-126. erlang: TMemoryBuffer for ErlangTHRIFT-127. erlang: Skip fields that have the wrong typeTHRIFT-136. s/async/oneway/ in ErlangTHRIFT-186. erl: Make the Makefile work on OpenSolarisTHRIFT-192. erlang: Commit test code missed in r757870THRIFT-192. erl: Fix handling of booleansTHRIFT-211. erlang: Allow clients to be created without connectingTHRIFT-211. erlang: Modify test_tether to test protocol error handling as wellTHRIFT-211. erlang: Support unlinked Thrift clients.THRIFT-211. erlang: Support "tethered" clientsTHRIFT-266. erlang: Erlang atoms must always start with lower-case characterTHRIFT-305. erlang: Fix http_options for thrift_http_transportTHRIFT-306. erlang: Let thrift_http_transport specify custom HTTP headersTHRIFT-307. erlang: Make HiPE optionalTHRIFT-524. erlang: Decapitalize file names in include directivesTHRIFT-574. erlang: Support framed transport for serversPython:Python generator exception namespacing, THRIFT-150THRIFT-48. python: Make TServerSocket work with Unix-domain socketsTHRIFT-67. python: Add TNonblockingServerTHRIFT-93. Remove unnecessary shebang lines from Python librariesTHRIFT-108. python: Fix call to PyDict_Next in fastbinary.cTHRIFT-109. python: Use self.assert* instead of assert in testsTHRIFT-148. py: Add support for TwistedTHRIFT-148. py: Add un-commited file missing from 749510THRIFT-148. py: One more time, reapply the most *recent* patchTHRIFT-154. python: Make THttpClient take a URL in its constructorTHRIFT-155. python: Reopen THttpClient on a flushTHRIFT-195. python: Add a simple THttpServerTHRIFT-212. python: Make TFramedTransport implement CReadableTransportTHRIFT-217. Use "--gen py" instead of "-py" in build scriptsTHRIFT-241. python: Generate a better implementation of __repr__THRIFT-242. python: Used named arguments in __init__ instead of a dictTHRIFT-256. python: Fix inheritance of services in the same IDL fileTHRIFT-282. Generate doccstrings for Python classesTHRIFT-284. python: Update tutorial files to use reprTHRIFT-285. python: Don't generate _result structs for async functionsTHRIFT-292. Auto-generate the Python gen-code in build.xmlTHRIFT-292. Restore fb303/FacebookBase.pyTHRIFT-310. python: Generate valid code for empty servicesTHRIFT-329. python: Make TServerSocket.close() work properlyTHRIFT-340. python: Detect endianness properly on FreeBSDTHRIFT-360. python: Make fastbinary skip struct fields with the wrong typeTHRIFT-362. python: Detect endianness on SolarisTHRIFT-391. py: Fix memory leak in fastbinaryTHRIFT-412. python: Fix some syntacticaly-incorrect code generationTHRIFT-463. python: Fix thrift_spec ordering bug from r760201THRIFT-471. python: Generated exceptions should implement __str__THRIFT-494. python: Update meta-information in setup.pyTHRIFT-495. python: Raise a TTransportException if TSocket is not openTHRIFT-535. py: Twisted Thrift protocol max length is too smallTHRIFT-535. py: Twisted Thrift protocol max length is too small (fix off-by-one error in MAX_LENGTH)THRIFT-583. python: Allow new-style classes for InterfacesTHRIFT-586. python: TSocket incorrectly sets the exception type when an end of file error occursTHRIFT-612. python: Fix exception bug in TFramedTransport.cstringio_refillTHRIFT-637. python: Fix mixing of oneway and regular requests in TNonblockingServercpp: Make the test server compatible with the Python test clientgenerate Twisted code in a separate directory (gen-py.twisted)python: Add TFileObjectTransportpython: Eliminate the option of TFramedTransport to not framepython: Make TFramedTransport use a cStringIO for readingpython: Make the unit tests run faster and more reliablyrb: Make TServer.py Python 2.4 compatible [THRIFT-44]Ruby:Add Apache headers to Ruby libs and remove a few remaining Facebook noticesAdd back OCamlMakefile and setup.rb to LICENSEFix "make distclean" when Ruby is not in useRemove now defunct tests (they've been moved to specs in lib/rb)THRFIT-231. rb: Make Thrift::Structs hashableTHRIFT-132. ruby: Ruby generator should use ::Thrift::Foo namespace formTHRIFT-157. rb: Quote strings and qualify class names properlyTHRIFT-175. Specs in Ruby library should be run during make checkTHRIFT-229. rb: Don't block indefinitely on connect()THRIFT-245. rb: FIELDS constant should contain name of enumerated type for enum fieldsTHRIFT-246. rb: Generate #struct_fields rather than reflect.THRIFT-248. ruby: Factor BinaryProtocolAccelerated into separate protocol and struct componentsTHRIFT-254. rb: Add optional strict version support to binary protocolsTHRIFT-260. rb: Some Protocol methods shouldn't have default nil implementationsTHRIFT-275. rb: Remove deprecated classes from Ruby libraryTHRIFT-276. rb: Ruby libraries should have one class per fileTHRIFT-277. rb: Abstract Transport in Ruby #read method should throw NotImplementedExceptionTHRIFT-298. ruby: Exception propagation seems broken for Ruby clientsTHRIFT-302. ruby: Native extension fails to buildTHRIFT-312. rb: Ruby unit tests fail due to change in BinaryProtocolAccelerated interfaceTHRIFT-313. rb: BinaryProtocolAccelerated and BinaryProtocol don't produce the same bytes when writes aren't strictTHRIFT-332. rb: Compact Protocol in RubyTHRIFT-352. rb: Implicit enums should be valid valuesTHRIFT-353. rb: Capitalize module names on ruby generationTHRIFT-358. ruby: Change how external thrift files' generated code is requiredTHRIFT-372. rb: Ruby lib doesn't rescue properly from lack of native_thrift extensionTHRIFT-374. rb: ruby 1.9 compatibilityTHRIFT-375. rb: syntax error in benchmark.rbTHRIFT-396. rb: BinaryProtocol missing method implementationsTHRIFT-401. rb: Speed up FramedTransportTHRIFT-402. rb: MemoryBuffer > 4096 bytes will truncate remaining bytesTHRIFT-408. rb: Ruby C extension doesn't build on 1.8.5THRIFT-410. rb: Ruby lib should have no checked in generated codeTHRIFT-410. rb: Ruby lib should have no checked in generated codeTHRIFT-415. rb: BinaryProtocolAccelerated does not behave properly when strict reads are turned offTHRIFT-417. rb: BufferedTransport can enter an infinite loopTHRIFT-421. rb: Fix tests broken by original patchTHRIFT-422. rb: scope all references to the Thrift moduleTHRIFT-430. rb: ruby tutorials and ruby tests require deprecated files and class namesTHRIFT-431. rb: Capitalize namespace valuesTHRIFT-433. rb: 'rake spec' sort of failsTHRIFT-437. rb: fix benchmarking tools to require proper file namesTHRIFT-444. rb: THRIFT-356 broke compact protocol specTHRIFT-445. rb: client and processor do not inherit from the proper namespace scopeTHRIFT-451. rb: ruby structs use lowercase enum while modules are capitalizedTHRIFT-485. rb: Generated validate methods that reference external thrift files' types are not referenced correctlyTHRIFT-486. rb: ruby tutorial needs updated require statementsTHRIFT-498. rb: Compact and Binary native protocols, used at the same time, can cause some issuesTHRIFT-501. rb: File.dirname(...) requires cause warnings in some scenariosTHRIFT-511. rb: Better performing hash method for generated structsTHRIFT-513. rb: spec test files broken, rake searching for misnamed filesTHRIFT-516. rb: If TFramedTransport reads a negative frame size, throw a TTransportException descendant instead of the default NegativeArraySizeExceptionTHRIFT-526. rb: Generated Ruby enums have no good way to get the names back out once you have a number.THRIFT-547. rb: Thrift deserializer hangs when deserializing empty stringTHRIFT-552. rb: gem requires exactly rubygems 1.2.0HRIFT-569. rb: Segmentation Fault when using BinaryProtocolAccelerated in RubyTHRIFT-571. rb: compact_protocol.c:89: warning: format not a string literal and no format argumentsTHRIFT-572. rb: fix RSTRING for 1.9 compatibilityTHRIFT-603. rb: Struct read method does not call validate After reading a struct, we will now call the struct's validate method.Thrift-421. rb: Underscore output file names and require file statmentsrb: Add FramedTransport#borrow/consume! [THRIFT-117]rb: Add TProtocolException to the backwards_compatibility_spec [THRIFT-88]rb: Add docstrings to generated ruby code [THRIFT-147]rb: Add ext/ to loadpath so BinaryProtocolAccelerated specs passrb: Add optional timeout argument to Thrift::Socket [THRIFT-74]rb: Add pretty inspect, optional field hint for Thrift::Structrb: Add some additional error handling to Thrift::Socket [THRIFT-53]rb: Add stubs for rake install/package when Echoe not present [THRIFT-52]rb: BinaryProtocolAccelerated should use Thrift::ProtocolException [THRIFT-89]rb: BufferedTransport should flush on close [THRIFT-49]rb: Buffer the slice!s in MemoryBuffer for a significant performance increase [THRIFT-63]rb: Bugfix for deprecation code [kevin@rapleaf.com][THRIFT-50]rb: Change the license from Thrift Software License to Apache Software License [THRIFT-38]rb: Check Thrift.type_checking earlier for a performance boost [THRIFT-55]rb: Check container elements when Thrift.type_checking = true [THRIFT-104]rb: Create constants for field ids in generated structs [THRIFT-165]rb: Delete setup.rb [THRIFT-38]rb: Display field name in type-checking error [THRIFT-78]rb: Ensure the specs that expect deprecation warnings actually get them [THRIFT-56]rb: Ensure the transport is closed if an exception is raised serializing data in Client.send_message [THRIFT-75]rb: Improve IOStreamTransport to behave more like a real transport [THRIFT-76]rb: Make TServer.py Python 2.4 compatible [THRIFT-44]rb: Performance tweaks in Struct#initialize [THRIFT-188]rb: Remove extra validate in read [THRIFT-207]rb: Reorganize the Rakefile a bit [THRIFT-38]rb: Spec out Thrift::BinaryProtocolAccelerated [THRIFT-90]rb: Speed up Struct#initialize for optional fields [THRFIT-112]rb: Support SSL and correct Content-Type in HTTPClient [THRIFT-156]rb: Support `raise Xception, message` for Structs that inherit from ::Exception [THRIFT-58]rb: Teach BinaryProtocolAccelerated to encode strings with NULs [THRIFT-97]rb: The deprecation stuff should skip thrift library code when showing caller [THRIFT-56]rb: The shared binary protocol specs lacked a test for read_message_beginrb: Thrift.check_type should check struct classes [THRIFT-185]rb: Update HTTPClientSpec for THRIFT-156rb: Use Echoe to manage the gem [THRIFT-38]rb: Use File.dirname(__FILE__) in generated requires [THRIFT-57]rb: Use defined? JRUBY_VERSION to detect JRuby [THRIFT-38]rb: Validate struct _after_ read. [THRIFT-206]rb: When passing unknown keys to Thrift::Struct.new, report those keys in the exception [THRIFT-51]rb: raise if an object is serialized without required fields [THRIFT-143]rb: require 'thrift' first in generated service definitions [THRIFT-38]rb: rewrite the README [THRIFT-38]PHP:Allow the Thrift compiler to be built without the PHP generator.Make the PHP generator dynamic.Make the PHP generator use non-hardcoded namespaces.Remove obsolete php extension tagTHRIFT-99. php: Add scheme (http[s], etc.) support to THttpClientTHRIFT-349. php: Accelerated binary protocol serialization segementation faultTHRIFT-350. php: Fix the extension build when C++ is not already usedTHRIFT-404. php: Make TPhpStream work for cli (cgi) scriptsTHRIFT-405. php: Create a tutorial serverTHRIFT-499. php: Thrift_protocol PHP extension does not handle signedness correctlyTHRIFT-584. php: Generate a better directory structurephp: Fix an undefined variasble in an error messagephp: Improve some docblock comments for TSocketPerl:Perl library should honor the INSTALLDIRS variableTHRIFT-190. Added dependency check to perl MakefileTHRIFT-193: Patch for proper namespace support in perl compilerTHRIFT-199. perl: Let "make distclean" work when we are not using PerlTHRIFT-199: integrate perl into automakeTHRIFT-470. fb303: Use a namespace in Perl gen-codeTHRIFT-542: Perl compiler uses invalid method 'method_exists' and subsequent testTHRIFT-554: Perl improper namespace check for exception handling and writeMessageEnd missing on processor callsTHRIFT-590: send/recv timeout values interchanged in perl socket libTHRIFT-619: Perl server and exampleC#:THRIFT-25. csharp: Various compiler and library improvementsTHRIFT-46. csharp: Throw the correct exception for an unknown methodTHRIFT-129. csharp: Make all Thrift structures extend TBaseTHRIFT-158. csharp: Update headers to ApacheTHRIFT-159. csharp: Compiler doesn't add package scope to exceptions in catch blocks and assigns to unused local var when readingTHRIFT-178. java, csharp, cpp: Final KeywordTHRIFT-204. csharp: C# Partial ClassesTHRIFT-209. csharp: Make TTransportFactory.GetTransport virtualTHRIFT-258. csharp: Include all lib source files in Makefile.amTHRIFT-264. csharp: Include TBufferedTransport in the build on LinuxTHRIFT-264. csharp: Use /langversion:linq to fix the Linux buildTHRIFT-384. csharp: Fix handling of fields named "value"THRIFT-467. csharp: Fix compilation on Debian SidTHRIFT-525. csharp: ThriftTest project will not generate c# from .thrift file or generate ThriftImpl.dllTHRIFT-531. csharp: C# project and solution files reference external source control systemcsharp: Remove a BOM and CRLF line endings from some test codeHaskell:Consolidate lib/hs/.gitignore into the top-level .gitignoreTHRIFT-385. hs: 64-bit integer and double types incorrectly serialized on 32-bit platformsTHRIFT-390. hs: Cabalize Haskell library codeTHRIFT-392. hs: Make test scripts easier to useTHRIFT-397. hs: Remove unnecessary redefinition of generate_program()THRIFT-398. hs: Remove unnecessary parens from generated type annotationsTHRIFT-399. hs: Fix set and number issues in generated constant codeTHRIFT-407. hs: Refactor and improve Haskell-related codeOCaml:No changesSmalltalk:smalltalk: Fix TBinaryProtocol readString for empty stringsXSD:Allow the Thrift compiler to be built without the XSD generator.Make the XSD generator dynamic.Make the XSD generator use non-hardcoded namespaces.HTML:THRIFT-173. Commit the html generatorTHRIFT-259. html: Generate "extends" link for extended servicesTHRIFT-365. html: HTML compiler infinite loopCocoa:THRIFT-280. Server-side Cocoa implementation.THRIFT-343. Import <Foundation/Foundation.h> instead of <Cocoa/Cocoa.h> to support iPhoneTHRIFT-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.THRIFT-520. Fix generation of cocoa constants when a namespace prefix is set.Release Notes for Thrift 20080411.equals and .hashCode() for Java scturcts (developed by dreiss).Improvments to the C++ TSocketPool (developed by akhil).PHP (de)serialization extension (developed by dweatherford).Add fb303 to contrib (developed by Facebook).TJSONProtocol for C++ and Java (contributed by Chad Walters of Powerset).Support for "make check" and better tests (contributed by Nitay).Smalltalk support (contributed by Patrick Collison).Dave Simpson <dave@powerset.com>Better support for connection tracking in the C++ server (contributed byDave Simpson of Powerset).Perl HttpClient (contributed by Igor Afanasyev of Evernote).C# support (contributed by Todd Berman of imeem).MinGW port of the compiler (contributed by Todd Berman of imeem).Tons of small improvements and bug fixes.Release Notes for Thrift 20070917TBinaryProtocol now includes a protocol version number in messaged.This is a non-backwards-compatible change. Please see theTBinaryProtocol constructor for strictRead_ and strictWrite_.Add binary type to support non-text "strings" in Java.TSocketPool for C++ (developed by jsobel).Syntax highlighting for vim and emacs (developed by hzhao and martin).Perl support (contributed by Jake Luciani).Erlang support (developed by cpiro).Ruby API overhaul (contributed by Kevin Clark of Powerset).IPv6 support in C++ and Python (contributed by Paul Saab of Powerset).Read/Write locks (developed by boz).OCaml support (developed by iproctor).Human-readable strings from Thrift structures in C++ (developed by dreiss).Haskell support (developed by iproctor).Support for optional fields in C++ (contributed by Andy Lutomirsky).Support for operator== for Thrift structures (contributed by Andy Lutomirsky).Python/C module for fast (de)serialization (contributed by Ben Maurer).Limited reflection for C++ services (developed by dreiss).Python library installation defaults to /usr, override with PY_PREFIX.Support for Javabean-style Java classes (contributed by Dave Engberg).TDenseProtocol for C++ (experimental way to shrink structures)(developed by dreiss).Cocoa/Objective C support (contributed by Andrew McGeachie).Thrift now builds without libevent.TZlibTransport for C++ (compress serialized structures) (developed by dreiss).Tons of small improvements and bug fixes.