PageRenderTime 44ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/src/extThree20JSON/Vendors/JSON/Changes.md

https://github.com/GetMoPix/three20
Markdown | 337 lines | 263 code | 74 blank | 0 comment | 0 complexity | 777646aa9c38a05197164199d6707b47 MD5 | raw file
  1. # JSON Framework Changes
  2. ## Version 3.0.2 (July 27th, 2011)
  3. * [Issue 88][#88]: Fix parsing of -0 into the integer 0.
  4. * [Issue 86][#86]: Make framework compile on Leopard.
  5. ## Version 3.0.1 (July 1st, 2011)
  6. * [Issue 80][#80]: Kill memory leak reported by DinosaurDad.
  7. * Fix typo in Readme
  8. ## Version 3.0 (June 18th, 2011)
  9. * Bump version number
  10. ## Version 3.0beta3 (June 11th, 2011)
  11. ### Changes
  12. * Fleshed out the [API documentation][api].
  13. * Remove the (admittedly rather cool) JavaScript hack from the Contrib directory, as I don't want to get stuck maintaining JavaScript I don't understand after 3.0.
  14. * Moved content of Installation file to Readme.
  15. * [Issue 73][#73]: Project rename, to avoid clashing with Apple's internal JSON.framework
  16. * Renamed Mac framework to SBJson.framework
  17. * Renamed iOS static lib to sbjson-ios.
  18. * Changed name of main header to be SBJson.h rather than JSON.h. A backward compatibility header is included, but this will be removed in the future.
  19. * Expanded the Mac example app to be a fully functional application
  20. that reformats JSON you put into a text field.
  21. * Removed the header indirection hack by making more headers public.
  22. * Detect if NSCache is available and only use it if it is. This lets us support iOS versions prior to 4.0.
  23. ### Bug Fixes
  24. * [Issue 43][#43]: Don't crash on parsing broken UTF8.
  25. * [Issue 70][#70]: SBStateStack breaks when running with GC. This was
  26. fixed by removing it and just using an NSMutableArray. This turns out
  27. to have very little measurable effect on performance.
  28. ## Version 3.0beta2 (May 24th, 2011)
  29. ### Changes
  30. * The parser used to always return NSMutableStrings, but may now return NSString instead, for strings with no escapes in them. This change speeded up the parser by about 30% on samsoffes' benchmark.
  31. * Recent refactoring to clean up the code had negative impact on the performance in samsoffes' comparative benchmark. Most of this was reclaimed, but we are still a bit slower than beta1 in his test. Particularly for writing. (We are, however, not slowest.)
  32. ### Enhancements
  33. * [Issue 40][#40]: Remove unnecessary script phase build
  34. * [Issue 55][#55]: SBJsonStreamWriter stringCache is now using NSCache instead of NSMutableDictionary. This firstly means it is now thread-safe, and secondly that it will free up memory automatically if the OS requests it.
  35. [#40]: http://github.com/stig/json-framework/issues/40
  36. ### Bug Fixes
  37. * [Issue 64][#64]: Handle really long integers better.
  38. * [Issue 66][#66]: Parser fails to ignore trailing garbage
  39. * [Issue 42][#42]: Fix bug in handling of Unicode Surrogate Pairs.
  40. * [Issue 48][#48]: Increase precision when writing floating-point numbers so NSTimeInterval instances since epoch can be represented fully.
  41. ## Version 3.0beta1 (January 30th, 2011)
  42. ### Bug Fixes
  43. * [Issue 36][#36]: Fix bug in build script that caused it to break if $SRCROOT has spaces.
  44. ### Changes
  45. * Remove the hacky dataToHere method in favour of just exposing the internal NSMutableData buffer.
  46. * Added a minimal Mac example project showing how to link to an external JSON framework rather than copying the sources into your project.
  47. ## Version 3.0alpha3 (January 2nd, 2011)
  48. * Added documentation to the TwitterStream sample project.
  49. * Fixed a few warnings, bugs & a memory leak reported by Andy Warwick.
  50. ## Version 3.0alpha2 (December 28th, 2010)
  51. ### Changes
  52. * Minor changes to formatting when the HumanReadable flag is set. Empty arrays and objects are no longer special-cased to appear on a single line. The separator between key and value in an object has changed to ': ' rather than ' : '.
  53. * [Issue 25][#25]: Simplified error handling.
  54. ### New Features
  55. * [Issue 16][#16]: Added support for parsing a UTF8 data stream. This means you can start parsing huge documents before it's all downloaded. Supports skipping the outer-most layer of huge arrays/objects or parsing multiple whitespace-separated completed documents.
  56. * [Issue 12][#12]: Added support for writing JSON to a data stream. This means you can write huge JSON documents to disk, or an HTTP destination, without having to hold the entire structure in memory. You can even generate it as you go, and just stream snapshots to an external process.
  57. * [Issue 18][#18] & [27][#27]: Re-orient API to be NSData-based. The NSString-oriented API methods now delegates to this.
  58. ### Enhancements
  59. * [Issue 9][#9]: Improve performance of the SBJsonWriter. This implementation is nearly twice as fast as 2.3.x on Sam Soffes' [benchmarks][bench].
  60. * [Issue 30][#30]: Added *TwitterStream* example project showing how to interact with Twitter's multi-document stream. (See `Examples/TwitterStream` in the distribution.)
  61. ## Version 2.3.1 (September 25th, 2010)
  62. ### Changes
  63. * Move to host releases on Github rather than Google code.
  64. * Renamed .md files to .markdown.
  65. * Removed bench target--use [Sam Soffes's benchmarks][bench] instead.
  66. * Releases are no longer a munged form of the source tree, but identical to the tagged source.
  67. ### Bug fixes
  68. * [Issue 2][#2]: Linkage not supported by default distribution.
  69. * [Issue 4][#4]: Writer reported to occasionally fail infinity check.
  70. * [Issue 8][#8]: Installation.markdown refers to missing JSON folder.
  71. [#2]: http://github.com/stig/json-framework/issues/2
  72. [#4]: http://github.com/stig/json-framework/issues/4
  73. [#8]: http://github.com/stig/json-framework/issues/8
  74. ## Version 2.3 (August 7, 2010)
  75. * Renamed README.md to Readme.md
  76. * Updated version number
  77. ## Version 2.3beta1 (July 31, 2010)
  78. ### Changes
  79. * **Parsing performance improvements.**
  80. [Issue 56][issue-56]: Dewvinci & Tobias Höhmann came up with a patch to improve parsing of short JSON texts with lots of numbers by over 60%.
  81. * **Refactored tests to be more data-driven.**
  82. This should make the source leaner and easier to maintain.
  83. * **Removed problematic SDK**
  84. [Issue 33][issue-33], [58][issue-58], [63][issue-63], and [64][issue-64]: The vast majority of the issues people are having with this framework were related to the somewhat mystical Custom SDK. This has been removed in this version.
  85. * **Removed the deprecated SBJSON facade**
  86. [Issue 71][issue-71]: You should use the SBJsonParser or SBJsonWriter classes, or the category methods, instead. This also let us remove the SBJsonParser and SBJsonWriter categories; these were only there to support the facade, but made the code less transparent.
  87. * **Removed the deprecated fragment support**
  88. [Issue 70][issue-70]: Fragments were a bad idea from the start, but deceptively useful while writing the framework's test suite. This has now been rectified.
  89. [issue-56]: http://code.google.com/p/json-framework/issues/detail?id=56
  90. [issue-33]: http://code.google.com/p/json-framework/issues/detail?id=33
  91. [issue-58]: http://code.google.com/p/json-framework/issues/detail?id=58
  92. [issue-63]: http://code.google.com/p/json-framework/issues/detail?id=63
  93. [issue-64]: http://code.google.com/p/json-framework/issues/detail?id=64
  94. [issue-70]: http://code.google.com/p/json-framework/issues/detail?id=70
  95. [issue-71]: http://code.google.com/p/json-framework/issues/detail?id=71
  96. ### Bug Fixes
  97. * [Issue 38][issue-38]: Fixed header-inclusion issue.
  98. * [Issue 74][issue-74]: Fix bug in handling of Infinity, -Infinity & NaN.
  99. * [Issue 68][issue-68]: Fixed documentation bug
  100. [issue-38]: http://code.google.com/p/json-framework/issues/detail?id=39
  101. [issue-74]: http://code.google.com/p/json-framework/issues/detail?id=74
  102. [issue-68]: http://code.google.com/p/json-framework/issues/detail?id=68
  103. ## Version 2.2.3 (March 7, 2010)
  104. * **Added -all_load to libjsontests linker flags.**
  105. This allows the tests to run with more recent versions of GCC.
  106. * **Unable to do a JSONRepresentation for a first-level proxy object.**
  107. [Issue 54][issue-54] & [60][issue-60]: Allow the -proxyForJson method to be called for first-level proxy objects, in addition to objects that are embedded in other objects.
  108. [issue-54]: http://code.google.com/p/json-framework/issues/detail?id=54
  109. [issue-60]: http://code.google.com/p/json-framework/issues/detail?id=60
  110. ## Version 2.2.2 (September 12, 2009)
  111. * **Fixed error-reporting logic in category methods.**
  112. Reported by Mike Monaco.
  113. * **iPhone SDK built against iPhoneOS 3.0.**
  114. This has been updated from 2.2.1.
  115. ## Version 2.2.1 (August 1st, 2009)
  116. * **Added svn:ignore property to build directory.**
  117. Requested by Rony Kubat.
  118. * **Fixed potential corruption in category methods.**
  119. If category methods were used in multiple threads they could potentially cause a crash. Reported by dprotaso / Relium.
  120. ## Version 2.2 (June 6th, 2009)
  121. No changes since 2.2beta1.
  122. ## Version 2.2beta1 (May 30th, 2009)
  123. * **Renamed method for custom object support**
  124. Renamed the -jsonRepresentationProxy method to -proxyForJson.
  125. ## Version 2.2alpha5 (May 25th, 2009)
  126. * **Added support for custom objects (generation only)**
  127. Added an optional -jsonRepresentationProxy method that you can implement (either directly or as category) to enable JSON.framework to create a JSON representation of any object type. See the Tests/ProxyTest.m file for more information on how this works.
  128. * **Moved maxDepth to SBJsonBase**
  129. Throw errors when the input is nested too deep for writing json as well as parsing. This allows us to exit cleanly rather than break the stack if someone accidentally creates a recursive structure.
  130. ## Version 2.2alpha4 (May 21st, 2009)
  131. * **Renamed protocols and moved method declarations**
  132. Renamed SBJsonWriterOptions and SBJsonParserOptions protocols to be the same as their primary implementations and moved their one public method there.
  133. * **Implemented proxy methods in SBJSON**
  134. This facade now implements the same methods as the SBJsonWriter and SBJsonParser objects, and simply forwards to them.
  135. * **Extracted private methods to private protocol**
  136. Don't use these please.
  137. * **Improved documentation generation**
  138. Classes now inherit documentation from their superclasses and protocols they implement.
  139. ## Version 2.2alpha3 (May 16th, 2009)
  140. * **Reintroduced the iPhone Custom SDK**
  141. For the benefit of users who prefer not to copy the JSON source files into their project. Also updated it to be based on iPhoneOS v2.2.1.
  142. * **Deprecated methods for dealing with fragments**
  143. Tweaked the new interface classes to support the old fragment-methods one more version.
  144. ## Version 2.2alpha2 (May 11th, 2009)
  145. * **Added a Changes file.**
  146. So people can see what the changes are for each version without having to go to the project home page.
  147. * **Updated Credits.**
  148. Some people that have provided patches (or other valuable contributions) had been left out. I've done my best to add those in. (If you feel that you or someone else are still missing, please let me know.)
  149. * **Removed .svn folders from distribution.**
  150. The JSON source folder had a .svn folder in it, which could have caused problems when dragging it into your project.
  151. ## Version 2.2alpha1 (May 10th, 2009)
  152. * **Improved installation instructions, particularly for the iPhone.**
  153. Getting the SDK to work properly in all configurations has proved to be a headache. Therefore the SDK has been removed in favour of instructions for simply copying the source files into your project.
  154. * **Split the SBJSON class into a writer and parser class.**
  155. SBJSON remains as a facade for backwards compatibility. This refactoring also quashed warnings reported by the Clang static analyser.
  156. * **Improved interface for dealing with errors.**
  157. Rather than having to pass in a pointer to an NSError object, you can now simply call a method to get the error stack back if there was an error. (The NSError-based API remains in the SBJSON facade, but is not present in the new classes.)
  158. * **Documentation updates.**
  159. Minor updates to the documentation.
  160. Release notes for earlier releases can be found here:
  161. http://code.google.com/p/json-framework/wiki/ReleaseNotes
  162. [#100]: http://github.com/stig/json-framework/issues/100
  163. [#99]: http://github.com/stig/json-framework/issues/99
  164. [#98]: http://github.com/stig/json-framework/issues/98
  165. [#97]: http://github.com/stig/json-framework/issues/97
  166. [#96]: http://github.com/stig/json-framework/issues/96
  167. [#95]: http://github.com/stig/json-framework/issues/95
  168. [#94]: http://github.com/stig/json-framework/issues/94
  169. [#93]: http://github.com/stig/json-framework/issues/93
  170. [#92]: http://github.com/stig/json-framework/issues/92
  171. [#91]: http://github.com/stig/json-framework/issues/91
  172. [#90]: http://github.com/stig/json-framework/issues/90
  173. [#89]: http://github.com/stig/json-framework/issues/89
  174. [#88]: http://github.com/stig/json-framework/issues/88
  175. [#87]: http://github.com/stig/json-framework/issues/87
  176. [#86]: http://github.com/stig/json-framework/issues/86
  177. [#85]: http://github.com/stig/json-framework/issues/85
  178. [#84]: http://github.com/stig/json-framework/issues/84
  179. [#83]: http://github.com/stig/json-framework/issues/83
  180. [#82]: http://github.com/stig/json-framework/issues/82
  181. [#81]: http://github.com/stig/json-framework/issues/81
  182. [#80]: http://github.com/stig/json-framework/issues/80
  183. [#79]: http://github.com/stig/json-framework/issues/79
  184. [#78]: http://github.com/stig/json-framework/issues/78
  185. [#77]: http://github.com/stig/json-framework/issues/77
  186. [#76]: http://github.com/stig/json-framework/issues/76
  187. [#75]: http://github.com/stig/json-framework/issues/75
  188. [#74]: http://github.com/stig/json-framework/issues/74
  189. [#73]: http://github.com/stig/json-framework/issues/73
  190. [#72]: http://github.com/stig/json-framework/issues/72
  191. [#71]: http://github.com/stig/json-framework/issues/71
  192. [#70]: http://github.com/stig/json-framework/issues/70
  193. [#69]: http://github.com/stig/json-framework/issues/69
  194. [#68]: http://github.com/stig/json-framework/issues/68
  195. [#67]: http://github.com/stig/json-framework/issues/67
  196. [#66]: http://github.com/stig/json-framework/issues/66
  197. [#65]: http://github.com/stig/json-framework/issues/65
  198. [#64]: http://github.com/stig/json-framework/issues/64
  199. [#63]: http://github.com/stig/json-framework/issues/63
  200. [#62]: http://github.com/stig/json-framework/issues/62
  201. [#61]: http://github.com/stig/json-framework/issues/61
  202. [#60]: http://github.com/stig/json-framework/issues/60
  203. [#59]: http://github.com/stig/json-framework/issues/59
  204. [#58]: http://github.com/stig/json-framework/issues/58
  205. [#57]: http://github.com/stig/json-framework/issues/57
  206. [#56]: http://github.com/stig/json-framework/issues/56
  207. [#55]: http://github.com/stig/json-framework/issues/55
  208. [#54]: http://github.com/stig/json-framework/issues/54
  209. [#53]: http://github.com/stig/json-framework/issues/53
  210. [#52]: http://github.com/stig/json-framework/issues/52
  211. [#51]: http://github.com/stig/json-framework/issues/51
  212. [#50]: http://github.com/stig/json-framework/issues/50
  213. [#49]: http://github.com/stig/json-framework/issues/49
  214. [#48]: http://github.com/stig/json-framework/issues/48
  215. [#47]: http://github.com/stig/json-framework/issues/47
  216. [#46]: http://github.com/stig/json-framework/issues/46
  217. [#45]: http://github.com/stig/json-framework/issues/45
  218. [#44]: http://github.com/stig/json-framework/issues/44
  219. [#43]: http://github.com/stig/json-framework/issues/43
  220. [#42]: http://github.com/stig/json-framework/issues/42
  221. [#41]: http://github.com/stig/json-framework/issues/41
  222. [#40]: http://github.com/stig/json-framework/issues/40
  223. [#39]: http://github.com/stig/json-framework/issues/39
  224. [#38]: http://github.com/stig/json-framework/issues/38
  225. [#37]: http://github.com/stig/json-framework/issues/37
  226. [#36]: http://github.com/stig/json-framework/issues/36
  227. [#35]: http://github.com/stig/json-framework/issues/35
  228. [#34]: http://github.com/stig/json-framework/issues/34
  229. [#33]: http://github.com/stig/json-framework/issues/33
  230. [#32]: http://github.com/stig/json-framework/issues/32
  231. [#31]: http://github.com/stig/json-framework/issues/31
  232. [#30]: http://github.com/stig/json-framework/issues/30
  233. [#29]: http://github.com/stig/json-framework/issues/29
  234. [#28]: http://github.com/stig/json-framework/issues/28
  235. [#27]: http://github.com/stig/json-framework/issues/27
  236. [#26]: http://github.com/stig/json-framework/issues/26
  237. [#25]: http://github.com/stig/json-framework/issues/25
  238. [#24]: http://github.com/stig/json-framework/issues/24
  239. [#23]: http://github.com/stig/json-framework/issues/23
  240. [#22]: http://github.com/stig/json-framework/issues/22
  241. [#21]: http://github.com/stig/json-framework/issues/21
  242. [#20]: http://github.com/stig/json-framework/issues/20
  243. [#19]: http://github.com/stig/json-framework/issues/19
  244. [#18]: http://github.com/stig/json-framework/issues/18
  245. [#17]: http://github.com/stig/json-framework/issues/17
  246. [#16]: http://github.com/stig/json-framework/issues/16
  247. [#15]: http://github.com/stig/json-framework/issues/15
  248. [#14]: http://github.com/stig/json-framework/issues/14
  249. [#13]: http://github.com/stig/json-framework/issues/13
  250. [#12]: http://github.com/stig/json-framework/issues/12
  251. [#11]: http://github.com/stig/json-framework/issues/11
  252. [#10]: http://github.com/stig/json-framework/issues/10
  253. [#9]: http://github.com/stig/json-framework/issues/9
  254. [#8]: http://github.com/stig/json-framework/issues/8
  255. [#7]: http://github.com/stig/json-framework/issues/7
  256. [#6]: http://github.com/stig/json-framework/issues/6
  257. [#5]: http://github.com/stig/json-framework/issues/5
  258. [#4]: http://github.com/stig/json-framework/issues/4
  259. [#3]: http://github.com/stig/json-framework/issues/3
  260. [#2]: http://github.com/stig/json-framework/issues/2
  261. [#1]: http://github.com/stig/json-framework/issues/1
  262. [bench]: http://github.com/samsoffes/json-benchmarks
  263. [api]: http://stig.github.com/json-framework/api/3.0