diff --git a/repository/STON-Core.package/STONWriter.class/instance/escapeUnicode..st b/repository/STON-Core.package/STONWriter.class/instance/escapeUnicode..st index 37e598b..702458f 100644 --- a/repository/STON-Core.package/STONWriter.class/instance/escapeUnicode..st +++ b/repository/STON-Core.package/STONWriter.class/instance/escapeUnicode..st @@ -1,6 +1,6 @@ private escapeUnicode: codePoint - codePoint <= 16rFFF + codePoint <= 16rFFFF ifTrue: [ self escapeUnicode4: codePoint ] ifFalse: [ codePoint <= 16r10FFFF diff --git a/repository/STON-Core.package/STONWriter.class/methodProperties.json b/repository/STON-Core.package/STONWriter.class/methodProperties.json index 6baf3ab..d2a6d8a 100644 --- a/repository/STON-Core.package/STONWriter.class/methodProperties.json +++ b/repository/STON-Core.package/STONWriter.class/methodProperties.json @@ -16,7 +16,7 @@ "encodeStringKeepingNewLines:" : "SvenVanCaekenberghe 4/26/2015 23:16", "error:" : "SvenVanCaekenberghe 5/28/2015 15:02", "escapeUnicode4:" : "SvenVanCaekenberghe 2/24/2016 21:06", - "escapeUnicode:" : "SvenVanCaekenberghe 2/24/2016 21:06", + "escapeUnicode:" : "SvenVanCaekenberghe 11/24/2016 11:26", "indentedDo:" : "SvenVanCaekenberghe 1/23/2012 11:12", "initialize" : "SvenVanCaekenberghe 7/2/2015 15:11", "isSimpleSymbol:" : "SvenVanCaekenberghe 4/15/2014 13:35", diff --git a/repository/STON-Core.package/monticello.meta/version b/repository/STON-Core.package/monticello.meta/version index 12b2d67..fed1f1a 100644 --- a/repository/STON-Core.package/monticello.meta/version +++ b/repository/STON-Core.package/monticello.meta/version @@ -1 +1 @@ -(name 'STON-Core-SvenVanCaekenberghe.79' message 'Allow #stonName to return a string instead of a symbol (reported by https://github.com/jecisc). Change STONReader>>#lookupClass to use #= instead of #== when comparing the result of #stonName. Change STONTestUser3 class>>#stonName to return a string as test case.' id '0003a4a8-37c5-47fa-9e3c-8a6bfcf16fab' date '20 November 2016' time '8:25:02.906079 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.78' message 'In JSON compatibility mode STON should not encode single quotes. (Thanks Peter Uhnák for reporting this). Patch STONWriter>>#encodeCharacter: Fix the encoding of forward slash ($/). This was already in the (external) documentation. Patch STONWriter class>>#initializeSTONCharacters - force STONWriter class>>#initialize to change too Fix the representation of Time by adding nanoseconds when there are any. This was already in the (external) documentation. Patch Time>>#stonOn: Adjust unit tests accordingly (esp. STONWriterTests>>#testDoubleQuotedString). Minor comment changes.' id 'ee198da8-80e8-4944-ba9b-dffae331c57c' date '20 November 2016' time '7:48:23.799323 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.77' message 'Remove the option #allowComplexMapKeys from STONReader (to functionally always allow it; leave the accessor #allowComplexMapsKeys: as a no-op for backwards compatibility) - remove all usage, simplify implementation.' id 'cb69cdaa-0065-4014-afa7-67a2a7e445db' date '24 October 2016' time '10:36:19.993021 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.76' message 'When in JSON mode, STONWriter should also signal an STONWriterError when an Association is seen (thanks Peter Uhnák) Update #testRestrictedClassesInJSONMode to cover this case' id '71eeced4-4b1a-4648-90fa-c89efa709ba6' date '6 June 2016' time '10:34:01.602265 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.75' message 'Merge' id 'df6a56ce-4d38-4973-9416-1de1026a775c' date '6 June 2016' time '10:19:41.720728 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.74' message 'Add support to write/read Path instances (needed since it is a variable subclass) (thx Carlos Lombardi) Add Path>>#toSton: Add Path class>>#fromSton:' id 'da5d0428-28a3-429a-bef8-158587ee0ebe' date '7 May 2016' time '11:38:24.777241 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-PavelKrivanek.73' message 'move some system extension methods to traits (to avoid failing tests in Pharo 5).' id '27c91116-663e-4b7e-9934-a988ff83e907' date '20 April 2016' time '12:36:24.829206 pm' author 'PavelKrivanek' ancestors ((name 'STON-Core-SvenVanCaekenberghe.72' message 'New, better, more correct implementation of Dictionary/Set rehashing after reference resolution made them potentially unhealthy. See the new tests #testDictionaryWithIndirectReferenceKeys and #testSetWithIndirectReferenceElements for example cases that were not covered by the previous optimization. During resolution of references we count the number of unresolved references backwards so that we know when #stonProcessSubObjects: did actually resolve a reference (possible deep down). If that is the case we call a new hook called #stonPostReferenceResolution that does nothing by default. For Dictionary and Set #stonPostReferenceResolution is implemented as self isHealthy ifFalse: [ self rehash ] Now, rehashing is only done when absolutely necesary (this is crucial for performance). We even avoid the possibly expensive #isHealthy check when no references were actually resolved and hence no hashing could possibly change. ' id '80f809ee-2693-47c7-adf5-d56a9647d78c' date '14 April 2016' time '2:17:40.799554 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.71' message 'Fix a bug where STONReferences occurring as keys in Dictionaries or elements in Sets caused those to be unhealthy after materialization. Thx to Peter Uhnák for reporting this issue. Add 3 new unit tests to STONReaderTests #testDictionaryWithReferenceKeys #testSetWithReferenceElements #testDeepStructure Fix Details change the implementation of STONReader>>#processSubObjectsOf: from iterative to recursive (see version 39 of 29 November 2012, this might be a functional regression, see #testDeepStructure; cleanup of stack instance variable for later) so that #stonProcessSubObjects: can be overwritten with code being executed before or after full reference resolution imho, recursion stack depth will be equal during both writing and reading, and should be acceptable. overwrite #stonProcessSubObjects: in Dictionary and Set to #rehash at the end, but only when needed (minimal optimalization, see Dictionary>>#containsStonReferenceAsKey and Set>>#containsStonReference) ' id '64b8b741-365e-41fe-aa98-565e33ca5d24' date '6 April 2016' time '2:22:24.782251 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.70' message 'Improve class comments Add STONJSON facade class to make it more explicit that you can use STON for simple JSON parsing and generation Add STONJSONTests to test JSON compatibility' id 'c990d2ab-a407-4935-b489-c55139fdd665' date '15 March 2016' time '5:07:59.236863 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.69' message 'Added support for characters not in the Basic Multilingual Plane encoding as a UTF-16 surrogate pair See https://tools.ietf.org/html/rfc7159#section-7' id '567e535f-ec90-4077-a181-39471d8492e1' date '24 February 2016' time '9:41:55.783185 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.68' message 'Add support to Interval so that it is no longer treated as a collection but as a normal object' id '0e31808d-d646-48f9-bb4b-c540cdb398d0' date '24 February 2016' time '2:01:21.678977 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.67' message 'Move #stonName and #stonOn: from Metaclass to TApplyingOnClassSide' id 'e5e42dad-a614-4e55-b674-22c8381796f1' date '22 February 2016' time '12:34:28.23883 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.66' message 'Use #theNonMetaClass instead of #baseClass in Metaclass>>#stonOn: (2.0 backward compatibility)' id '5bfc14c2-461a-430b-8286-702bfb75425a' date '24 December 2015' time '9:28:57.137076 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.65' message 'An implementation of Class>>#fromSton: and Metaclass>>#fromSton: that does not use #asClass (for 2.0 backward compatibility)' id '70ed7e88-8a6d-4c00-8859-8da6e811efd0' date '24 December 2015' time '9:00:50.778469 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.64' message 'Added the ability to write and read Class and Metaclass instances using their global name' id 'b7ced20a-a7a4-4b0f-8f27-db73231eeecb' date '23 December 2015' time '10:50:14.195912 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.63' message 'Added support for Association subclasses (only STON associationClass will be written as key:value, subclasses will fall back to standard object serialization unless customized).' id '0d130de7-eb45-4fc3-a3cf-ea7f7968649d' date '15 August 2015' time '5:34:32.605077 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.62' message 'Added new STONCStyleCommentsSkipStream feature: Comments inside single and double quote delimited strings are ignored. Backslash escapes for single and double quotes inside strings are honored.' id '949e54c8-9da8-4e91-ab44-55105bff349c' date '17 July 2015' time '7:50:06.278051 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.61' message 'Introduction of STONWriter>>#asciiOnly: option - asciiOnly default is false if true, use \u escapes for all non-ASCII characters most common control characters are still escaped self assert: (self serializeAsciiOnly: ''élève en Français'') = ''''''\u00E9l\u00E8ve en Fran\u00E7ais''''''. self assert: (self serialize: ''élève en Français'') = ''''''élève en Français''''''. Basically, non-ASCII characters are kept as is unless you request the #asciiOnly encoding option. This is an incompatible change.' id 'bb943b63-f2a1-4f2f-8c20-1fa44dba1257' date '2 July 2015' time '3:41:33.863432 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.60' message 'Add 2 convenience methods: STON class>>#fromStringWithComments: STON class>>#fromStreamWithComments: Add more unit tests for the new functionality' id '7b95fcbe-1a44-4c94-a196-042e4cdb3e97' date '9 June 2015' time '11:04:57.955405 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.59' message 'Add experimental STONCStyleCommentsSkipStream and tests' id '7ab942b5-9d1a-44c3-9d58-da29feb72380' date '8 June 2015' time '11:34:32.886167 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.58' message 'Critics run. Change generic Object>>#fromSton: and Object>>#toSton: so that it no longer uses #subclassResponsibility but a custom error because not all subclasses should implement it (duh) Introduction of STONReader>>#parseNamedInstVarsFor: and use it in Object>>#fromSton: Text>>#fromSton: and RunArray>>#fromSton: to centralize #instVarNamed:put: usage ' id '2a3cb03d-87ec-4f43-93d0-7dfee3a5374a' date '28 May 2015' time '3:57:20.06657 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.57' message 'Added STONReader>>#convertNewLines: and STONReader>>#newLine: to read and convert CR, LF, or CRLF inside strings and symbols as one chosen canonical newLine Added STONWriter>>#keepNewLines: to write CR, LF or CRLF inside strings and symbols unencoded as one chosen canonical newLine Add unit tests #testConvertingNewLine #testKeepingNewLines and #testIllegalCharacterEscapes Added some more documentation' id 'f38b0222-94ea-4a0a-9878-03649843c97e' date '26 April 2015' time '11:53:58.308533 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.56' message 'Remove support for TimeStamp as it is deprecated in Pharo 4 and removed in Pharo 5' id '10a69541-18b3-45c7-87a0-9a7253f7b0b9' date '26 April 2015' time '7:47:09.924067 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.55' message 'Added support for OrderedDictionary' id '02785c4b-2c8c-467b-a6eb-1032fe8d17d7' date '10 April 2015' time '3:32:16.386165 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.54' message 'Add an implementation comment to STONReader>>#parseMapDo:' id '688ad244-e768-4925-872a-c6009fd2a944' date '27 November 2014' time '12:55:09.308514 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.53' message 'Minor modifications after merging Christophe''s new Association support (some simplifications, allow nested associations, don''t use in #parseMapDo: for performance reasons). Added Object class>>#stonAllInstVarNames to allow customizing which instance variables get written or their order (see STONWriter>>#writeObject:)' id 'da9e3d4d-4f27-45df-94bf-2c92c9c69c89' date '27 November 2014' time '11:20:24.300261 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-ChristopheDemarey.52' message 'Add support for associations as ''primitive'' type.' id '5c75bc2b-d338-4ea3-af98-02e43eab43ff' date '7 November 2014' time '9:57:33.962291 am' author 'ChristopheDemarey' ancestors ((name 'STON-Core-SvenVanCaekenberghe.51' message 'Add STONReader>#acceptUnknownClasses: option When true (default is false) an unknown object class will result in a map with an added property #className (thx Stéphane Ducasse for the suggetion) Added STON class>>#classNameKey Moved #stonName from Class to Object class Added STONReaderTests>>#testUnknownClasses' id '6559f648-b74a-4901-b249-e72808fdea0d' date '12 August 2014' time '3:40:21.574545 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.49' message 'Fix to allow working with the empty Symbol #'''' (changed STONWriter>>#isSimpleSymbol: to return false for the empty symbol) [Thx Martin - tinchodias]' id 'b5e2e82b-b296-46ff-b275-3040d055e7bc' date '15 April 2014' time '2:16:03.216352 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.48' message 'Added explicit #stonOn: and #fromSton: methods to Text and RunArray who are inheriting the wrong behavior + unit test' id 'd56b9e2a-a712-4edd-b1db-a4dfe7d9ad3b' date '24 March 2014' time '2:29:29.547772 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.47' message 'Modify STONReader>>#error: to remain compatible with streams that don''t understand #position' id 'ffbdccdd-6a3c-4053-b90a-fa0f7ec2217f' date '13 December 2013' time '4:27:38.680392 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-DamienCassou.46' message '- Display the position where the input error has been found' id '18cce271-f166-4115-a497-4f651b599275' date '9 December 2013' time '1:31:17.367199 pm' author 'DamienCassou' ancestors ((name 'STON-Core-SvenVanCaekenberghe.45' message 'Changed the implementation of STONWriter>>#writeObject: to skip nil instance variables unless Object>>#stonShouldWriteNilInstVars is overridden to be true' id '46c8ccc1-35f1-4f1b-be48-ff873ef99f2f' date '14 November 2013' time '12:02:29.390375 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.44' message 'Added support for Small[Identity]Dictionary' id 'd0e318c2-2878-4586-a122-f8ec96186e5f' date '17 September 2013' time '8:17:17.237565 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.43' message 'Added custom newline support to STONWriter' id '824c9f51-461a-4b92-92fb-861b2722d5f7' date '7 March 2013' time '10:51:24.226 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.42' message 'minor refactoring using #peekFor:' id 'b1ce0d4c-6029-4f7f-b617-4833005155a8' date '3 December 2012' time '11:13:17.675 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.41' message 'replace all ''do-nothing'' implementations of #stonProcessSubObjects: with the new #stonContainSubObjects returning false; rewrote STONReader>>#processSubObjects: to use this to shortcircuit doing sub processing (thx Norbert Hartl for the suggestion)' id 'd1218bc7-e5bc-4b8e-9ec2-d102b1264a25' date '29 November 2012' time '4:57:15.739 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.40' message 'make #optimizeForLargeStructures do nothing when the Fuel classes are missing' id '9f2a085f-b279-4d6c-895e-e57082139f35' date '29 November 2012' time '3:56:19.595 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.39' message 'changed STONReader>>#processSubObjectsOf: from a recursive to an iterative process using a stack (as suggested by Norbert Hartl); added #optimizeForLargeStructures to STONReader and STONWriter to use some special Fuel datastructures optimized for large sizes (these are standard in Pharo)' id '9d8ce1ba-3a6e-4c8c-98da-85f32816e2cd' date '29 November 2012' time '3:43:05.957 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.38' message 'fixed a bug that prevented object structures with cycles from being materialized (as reported with an excellent test case by Stuart Herring): STONReader>>#parseReference will no longer resolve references eagerly since that led to cycles in #processSubObjectsOf: moved most logic from Object>>#stonOn: to STONWriter>>#writeObject: while adding a shortcut for objects without instance variables; add STONReference>>#printOn: to ease debugging' id 'a1e38a45-29ff-4267-ba97-1c21e21d519d' date '29 November 2012' time '12:12:04.605 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.37' message 'this is a copy of Ston-Core-SvenVanCaekenberghe.36 with the monticello package name changed from Ston-Core to STON-Core' id 'ba8612a2-47a2-4d81-9a7e-468f4d9aefd5' date '26 October 2012' time '10:36:37.792 am' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'STON-Core-PavelKrivanek.74' message 'move Text support to standalone package' id '61bdc0d5-e419-48e7-b9a8-57a8aa0b2940' date '1 June 2016' time '12:03:41.024344 pm' author 'PavelKrivanek' ancestors ((id '27c91116-663e-4b7e-9934-a988ff83e907')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'STON-Core-SvenVanCaekenberghe.80' message 'Bugfix to STONWriter>>#escapeUnicode: [thank you, Tomohiro Oda] code points between 16rFFF and 16rFFFF where encoded wrongly when #asciiOnly was true Add high code point string to STONWriteReadTests>>#testStrings Make STONReaderTests>>#testDeepStructure faster by creating a smaller data structure' id '6045b98b-2cb6-4a73-9f02-1aff7cd4d291' date '24 November 2016' time '11:30:55.075028 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.79' message 'Allow #stonName to return a string instead of a symbol (reported by https://github.com/jecisc). Change STONReader>>#lookupClass to use #= instead of #== when comparing the result of #stonName. Change STONTestUser3 class>>#stonName to return a string as test case.' id '0003a4a8-37c5-47fa-9e3c-8a6bfcf16fab' date '20 November 2016' time '8:25:02.906079 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.78' message 'In JSON compatibility mode STON should not encode single quotes. (Thanks Peter Uhnák for reporting this). Patch STONWriter>>#encodeCharacter: Fix the encoding of forward slash ($/). This was already in the (external) documentation. Patch STONWriter class>>#initializeSTONCharacters - force STONWriter class>>#initialize to change too Fix the representation of Time by adding nanoseconds when there are any. This was already in the (external) documentation. Patch Time>>#stonOn: Adjust unit tests accordingly (esp. STONWriterTests>>#testDoubleQuotedString). Minor comment changes.' id 'ee198da8-80e8-4944-ba9b-dffae331c57c' date '20 November 2016' time '7:48:23.799323 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.77' message 'Remove the option #allowComplexMapKeys from STONReader (to functionally always allow it; leave the accessor #allowComplexMapsKeys: as a no-op for backwards compatibility) - remove all usage, simplify implementation.' id 'cb69cdaa-0065-4014-afa7-67a2a7e445db' date '24 October 2016' time '10:36:19.993021 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.76' message 'When in JSON mode, STONWriter should also signal an STONWriterError when an Association is seen (thanks Peter Uhnák) Update #testRestrictedClassesInJSONMode to cover this case' id '71eeced4-4b1a-4648-90fa-c89efa709ba6' date '6 June 2016' time '10:34:01.602265 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.75' message 'Merge' id 'df6a56ce-4d38-4973-9416-1de1026a775c' date '6 June 2016' time '10:19:41.720728 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.74' message 'Add support to write/read Path instances (needed since it is a variable subclass) (thx Carlos Lombardi) Add Path>>#toSton: Add Path class>>#fromSton:' id 'da5d0428-28a3-429a-bef8-158587ee0ebe' date '7 May 2016' time '11:38:24.777241 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-PavelKrivanek.73' message 'move some system extension methods to traits (to avoid failing tests in Pharo 5).' id '27c91116-663e-4b7e-9934-a988ff83e907' date '20 April 2016' time '12:36:24.829206 pm' author 'PavelKrivanek' ancestors ((name 'STON-Core-SvenVanCaekenberghe.72' message 'New, better, more correct implementation of Dictionary/Set rehashing after reference resolution made them potentially unhealthy. See the new tests #testDictionaryWithIndirectReferenceKeys and #testSetWithIndirectReferenceElements for example cases that were not covered by the previous optimization. During resolution of references we count the number of unresolved references backwards so that we know when #stonProcessSubObjects: did actually resolve a reference (possible deep down). If that is the case we call a new hook called #stonPostReferenceResolution that does nothing by default. For Dictionary and Set #stonPostReferenceResolution is implemented as self isHealthy ifFalse: [ self rehash ] Now, rehashing is only done when absolutely necesary (this is crucial for performance). We even avoid the possibly expensive #isHealthy check when no references were actually resolved and hence no hashing could possibly change. ' id '80f809ee-2693-47c7-adf5-d56a9647d78c' date '14 April 2016' time '2:17:40.799554 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.71' message 'Fix a bug where STONReferences occurring as keys in Dictionaries or elements in Sets caused those to be unhealthy after materialization. Thx to Peter Uhnák for reporting this issue. Add 3 new unit tests to STONReaderTests #testDictionaryWithReferenceKeys #testSetWithReferenceElements #testDeepStructure Fix Details change the implementation of STONReader>>#processSubObjectsOf: from iterative to recursive (see version 39 of 29 November 2012, this might be a functional regression, see #testDeepStructure; cleanup of stack instance variable for later) so that #stonProcessSubObjects: can be overwritten with code being executed before or after full reference resolution imho, recursion stack depth will be equal during both writing and reading, and should be acceptable. overwrite #stonProcessSubObjects: in Dictionary and Set to #rehash at the end, but only when needed (minimal optimalization, see Dictionary>>#containsStonReferenceAsKey and Set>>#containsStonReference) ' id '64b8b741-365e-41fe-aa98-565e33ca5d24' date '6 April 2016' time '2:22:24.782251 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.70' message 'Improve class comments Add STONJSON facade class to make it more explicit that you can use STON for simple JSON parsing and generation Add STONJSONTests to test JSON compatibility' id 'c990d2ab-a407-4935-b489-c55139fdd665' date '15 March 2016' time '5:07:59.236863 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.69' message 'Added support for characters not in the Basic Multilingual Plane encoding as a UTF-16 surrogate pair See https://tools.ietf.org/html/rfc7159#section-7' id '567e535f-ec90-4077-a181-39471d8492e1' date '24 February 2016' time '9:41:55.783185 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.68' message 'Add support to Interval so that it is no longer treated as a collection but as a normal object' id '0e31808d-d646-48f9-bb4b-c540cdb398d0' date '24 February 2016' time '2:01:21.678977 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.67' message 'Move #stonName and #stonOn: from Metaclass to TApplyingOnClassSide' id 'e5e42dad-a614-4e55-b674-22c8381796f1' date '22 February 2016' time '12:34:28.23883 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.66' message 'Use #theNonMetaClass instead of #baseClass in Metaclass>>#stonOn: (2.0 backward compatibility)' id '5bfc14c2-461a-430b-8286-702bfb75425a' date '24 December 2015' time '9:28:57.137076 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.65' message 'An implementation of Class>>#fromSton: and Metaclass>>#fromSton: that does not use #asClass (for 2.0 backward compatibility)' id '70ed7e88-8a6d-4c00-8859-8da6e811efd0' date '24 December 2015' time '9:00:50.778469 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.64' message 'Added the ability to write and read Class and Metaclass instances using their global name' id 'b7ced20a-a7a4-4b0f-8f27-db73231eeecb' date '23 December 2015' time '10:50:14.195912 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.63' message 'Added support for Association subclasses (only STON associationClass will be written as key:value, subclasses will fall back to standard object serialization unless customized).' id '0d130de7-eb45-4fc3-a3cf-ea7f7968649d' date '15 August 2015' time '5:34:32.605077 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.62' message 'Added new STONCStyleCommentsSkipStream feature: Comments inside single and double quote delimited strings are ignored. Backslash escapes for single and double quotes inside strings are honored.' id '949e54c8-9da8-4e91-ab44-55105bff349c' date '17 July 2015' time '7:50:06.278051 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.61' message 'Introduction of STONWriter>>#asciiOnly: option - asciiOnly default is false if true, use \u escapes for all non-ASCII characters most common control characters are still escaped self assert: (self serializeAsciiOnly: ''élève en Français'') = ''''''\u00E9l\u00E8ve en Fran\u00E7ais''''''. self assert: (self serialize: ''élève en Français'') = ''''''élève en Français''''''. Basically, non-ASCII characters are kept as is unless you request the #asciiOnly encoding option. This is an incompatible change.' id 'bb943b63-f2a1-4f2f-8c20-1fa44dba1257' date '2 July 2015' time '3:41:33.863432 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.60' message 'Add 2 convenience methods: STON class>>#fromStringWithComments: STON class>>#fromStreamWithComments: Add more unit tests for the new functionality' id '7b95fcbe-1a44-4c94-a196-042e4cdb3e97' date '9 June 2015' time '11:04:57.955405 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.59' message 'Add experimental STONCStyleCommentsSkipStream and tests' id '7ab942b5-9d1a-44c3-9d58-da29feb72380' date '8 June 2015' time '11:34:32.886167 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.58' message 'Critics run. Change generic Object>>#fromSton: and Object>>#toSton: so that it no longer uses #subclassResponsibility but a custom error because not all subclasses should implement it (duh) Introduction of STONReader>>#parseNamedInstVarsFor: and use it in Object>>#fromSton: Text>>#fromSton: and RunArray>>#fromSton: to centralize #instVarNamed:put: usage ' id '2a3cb03d-87ec-4f43-93d0-7dfee3a5374a' date '28 May 2015' time '3:57:20.06657 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.57' message 'Added STONReader>>#convertNewLines: and STONReader>>#newLine: to read and convert CR, LF, or CRLF inside strings and symbols as one chosen canonical newLine Added STONWriter>>#keepNewLines: to write CR, LF or CRLF inside strings and symbols unencoded as one chosen canonical newLine Add unit tests #testConvertingNewLine #testKeepingNewLines and #testIllegalCharacterEscapes Added some more documentation' id 'f38b0222-94ea-4a0a-9878-03649843c97e' date '26 April 2015' time '11:53:58.308533 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.56' message 'Remove support for TimeStamp as it is deprecated in Pharo 4 and removed in Pharo 5' id '10a69541-18b3-45c7-87a0-9a7253f7b0b9' date '26 April 2015' time '7:47:09.924067 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.55' message 'Added support for OrderedDictionary' id '02785c4b-2c8c-467b-a6eb-1032fe8d17d7' date '10 April 2015' time '3:32:16.386165 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.54' message 'Add an implementation comment to STONReader>>#parseMapDo:' id '688ad244-e768-4925-872a-c6009fd2a944' date '27 November 2014' time '12:55:09.308514 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.53' message 'Minor modifications after merging Christophe''s new Association support (some simplifications, allow nested associations, don''t use in #parseMapDo: for performance reasons). Added Object class>>#stonAllInstVarNames to allow customizing which instance variables get written or their order (see STONWriter>>#writeObject:)' id 'da9e3d4d-4f27-45df-94bf-2c92c9c69c89' date '27 November 2014' time '11:20:24.300261 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-ChristopheDemarey.52' message 'Add support for associations as ''primitive'' type.' id '5c75bc2b-d338-4ea3-af98-02e43eab43ff' date '7 November 2014' time '9:57:33.962291 am' author 'ChristopheDemarey' ancestors ((name 'STON-Core-SvenVanCaekenberghe.51' message 'Add STONReader>#acceptUnknownClasses: option When true (default is false) an unknown object class will result in a map with an added property #className (thx Stéphane Ducasse for the suggetion) Added STON class>>#classNameKey Moved #stonName from Class to Object class Added STONReaderTests>>#testUnknownClasses' id '6559f648-b74a-4901-b249-e72808fdea0d' date '12 August 2014' time '3:40:21.574545 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.49' message 'Fix to allow working with the empty Symbol #'''' (changed STONWriter>>#isSimpleSymbol: to return false for the empty symbol) [Thx Martin - tinchodias]' id 'b5e2e82b-b296-46ff-b275-3040d055e7bc' date '15 April 2014' time '2:16:03.216352 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.48' message 'Added explicit #stonOn: and #fromSton: methods to Text and RunArray who are inheriting the wrong behavior + unit test' id 'd56b9e2a-a712-4edd-b1db-a4dfe7d9ad3b' date '24 March 2014' time '2:29:29.547772 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.47' message 'Modify STONReader>>#error: to remain compatible with streams that don''t understand #position' id 'ffbdccdd-6a3c-4053-b90a-fa0f7ec2217f' date '13 December 2013' time '4:27:38.680392 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-DamienCassou.46' message '- Display the position where the input error has been found' id '18cce271-f166-4115-a497-4f651b599275' date '9 December 2013' time '1:31:17.367199 pm' author 'DamienCassou' ancestors ((name 'STON-Core-SvenVanCaekenberghe.45' message 'Changed the implementation of STONWriter>>#writeObject: to skip nil instance variables unless Object>>#stonShouldWriteNilInstVars is overridden to be true' id '46c8ccc1-35f1-4f1b-be48-ff873ef99f2f' date '14 November 2013' time '12:02:29.390375 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.44' message 'Added support for Small[Identity]Dictionary' id 'd0e318c2-2878-4586-a122-f8ec96186e5f' date '17 September 2013' time '8:17:17.237565 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.43' message 'Added custom newline support to STONWriter' id '824c9f51-461a-4b92-92fb-861b2722d5f7' date '7 March 2013' time '10:51:24.226 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.42' message 'minor refactoring using #peekFor:' id 'b1ce0d4c-6029-4f7f-b617-4833005155a8' date '3 December 2012' time '11:13:17.675 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.41' message 'replace all ''do-nothing'' implementations of #stonProcessSubObjects: with the new #stonContainSubObjects returning false; rewrote STONReader>>#processSubObjects: to use this to shortcircuit doing sub processing (thx Norbert Hartl for the suggestion)' id 'd1218bc7-e5bc-4b8e-9ec2-d102b1264a25' date '29 November 2012' time '4:57:15.739 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.40' message 'make #optimizeForLargeStructures do nothing when the Fuel classes are missing' id '9f2a085f-b279-4d6c-895e-e57082139f35' date '29 November 2012' time '3:56:19.595 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.39' message 'changed STONReader>>#processSubObjectsOf: from a recursive to an iterative process using a stack (as suggested by Norbert Hartl); added #optimizeForLargeStructures to STONReader and STONWriter to use some special Fuel datastructures optimized for large sizes (these are standard in Pharo)' id '9d8ce1ba-3a6e-4c8c-98da-85f32816e2cd' date '29 November 2012' time '3:43:05.957 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.38' message 'fixed a bug that prevented object structures with cycles from being materialized (as reported with an excellent test case by Stuart Herring): STONReader>>#parseReference will no longer resolve references eagerly since that led to cycles in #processSubObjectsOf: moved most logic from Object>>#stonOn: to STONWriter>>#writeObject: while adding a shortcut for objects without instance variables; add STONReference>>#printOn: to ease debugging' id 'a1e38a45-29ff-4267-ba97-1c21e21d519d' date '29 November 2012' time '12:12:04.605 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Core-SvenVanCaekenberghe.37' message 'this is a copy of Ston-Core-SvenVanCaekenberghe.36 with the monticello package name changed from Ston-Core to STON-Core' id 'ba8612a2-47a2-4d81-9a7e-468f4d9aefd5' date '26 October 2012' time '10:36:37.792 am' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'STON-Core-PavelKrivanek.74' message 'move Text support to standalone package' id '61bdc0d5-e419-48e7-b9a8-57a8aa0b2940' date '1 June 2016' time '12:03:41.024344 pm' author 'PavelKrivanek' ancestors ((id '27c91116-663e-4b7e-9934-a988ff83e907')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/STON-Tests.package/STONReaderTests.class/instance/testDeepStructure.st b/repository/STON-Tests.package/STONReaderTests.class/instance/testDeepStructure.st index 6d5b93e..2b59439 100644 --- a/repository/STON-Tests.package/STONReaderTests.class/instance/testDeepStructure.st +++ b/repository/STON-Tests.package/STONReaderTests.class/instance/testDeepStructure.st @@ -5,7 +5,7 @@ testDeepStructure holder := Array with: 42. deepest := Array with: holder. structure := deepest. - 64 * 1024 timesRepeat: [ structure := Array with: structure ]. + 1 * 1024 timesRepeat: [ structure := Array with: structure ]. structure := Array with: holder with: structure. writer := STON writer optimizeForLargeStructures. ston := String streamContents: [ :out | (writer on: out) nextPut: structure ]. diff --git a/repository/STON-Tests.package/STONReaderTests.class/methodProperties.json b/repository/STON-Tests.package/STONReaderTests.class/methodProperties.json index b8943eb..695a6bb 100644 --- a/repository/STON-Tests.package/STONReaderTests.class/methodProperties.json +++ b/repository/STON-Tests.package/STONReaderTests.class/methodProperties.json @@ -11,7 +11,7 @@ "testConvertingNewLines" : "SvenVanCaekenberghe 4/26/2015 23:03", "testDate" : "SvenVanCaekenberghe 1/23/2012 09:37", "testDateAndTime" : "SvenVanCaekenberghe 1/19/2012 10:01", - "testDeepStructure" : "SvenVanCaekenberghe 4/6/2016 13:37", + "testDeepStructure" : "SvenVanCaekenberghe 11/24/2016 11:26", "testDictionary" : "SvenVanCaekenberghe 5/5/2012 20:09", "testDictionaryWithComplexKeys" : "SvenVanCaekenberghe 10/24/2016 10:28", "testDictionaryWithIndirectReferenceKeys" : "SvenVanCaekenberghe 10/24/2016 10:28", diff --git a/repository/STON-Tests.package/STONWriteReadTests.class/instance/testStrings.st b/repository/STON-Tests.package/STONWriteReadTests.class/instance/testStrings.st index d803fb6..12a5caa 100644 --- a/repository/STON-Tests.package/STONWriteReadTests.class/instance/testStrings.st +++ b/repository/STON-Tests.package/STONWriteReadTests.class/instance/testStrings.st @@ -1,5 +1,11 @@ tests testStrings | strings | - strings := Collection allSubclasses collect: [ :each | each name asString ]. - self serializeAndMaterialize: strings \ No newline at end of file + strings := Collection allSubclasses + collect: [ :each | each name asString ]. + self serializeAndMaterialize: strings. + strings := { + 'foo'. 'Foo BAR'. ''. ' \\'''. + 'élève en Français'. + String with: (Character codePoint: 12354) "HIRAGANA LETTER A" }. + self serializeAndMaterialize: strings. \ No newline at end of file diff --git a/repository/STON-Tests.package/STONWriteReadTests.class/methodProperties.json b/repository/STON-Tests.package/STONWriteReadTests.class/methodProperties.json index ac6ae29..ed27e87 100644 --- a/repository/STON-Tests.package/STONWriteReadTests.class/methodProperties.json +++ b/repository/STON-Tests.package/STONWriteReadTests.class/methodProperties.json @@ -24,7 +24,7 @@ "testSmallDictionary" : "SvenVanCaekenberghe 4/10/2015 20:21", "testSmallIntegers" : "SvenVanCaekenberghe 1/24/2012 10:17", "testSpecialCharacters" : "SvenVanCaekenberghe 11/19/2016 21:39", - "testStrings" : "SvenVanCaekenberghe 1/23/2012 12:23", + "testStrings" : "SvenVanCaekenberghe 11/24/2016 11:23", "testSymbols" : "SvenVanCaekenberghe 4/15/2014 13:36", "testTextAndRunArray" : "SvenVanCaekenberghe 3/24/2014 13:23", "testUser" : "SvenVanCaekenberghe 1/24/2012 10:17", diff --git a/repository/STON-Tests.package/monticello.meta/version b/repository/STON-Tests.package/monticello.meta/version index c41d119..db53c4d 100644 --- a/repository/STON-Tests.package/monticello.meta/version +++ b/repository/STON-Tests.package/monticello.meta/version @@ -1 +1 @@ -(name 'STON-Tests-SvenVanCaekenberghe.69' message 'Allow #stonName to return a string instead of a symbol (reported by https://github.com/jecisc). Change STONReader>>#lookupClass to use #= instead of #== when comparing the result of #stonName. Change STONTestUser3 class>>#stonName to return a string as test case.' id '37f148af-a389-423f-bdab-8b67b27fab09' date '20 November 2016' time '8:25:25.135359 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.68' message 'In JSON compatibility mode STON should not encode single quotes. (Thanks Peter Uhnák for reporting this). Patch STONWriter>>#encodeCharacter: Fix the encoding of forward slash ($/). This was already in the (external) documentation. Patch STONWriter class>>#initializeSTONCharacters - force STONWriter class>>#initialize to change too Fix the representation of Time by adding nanoseconds when there are any. This was already in the (external) documentation. Patch Time>>#stonOn: Adjust unit tests accordingly (esp. STONWriterTests>>#testDoubleQuotedString). Minor comment changes.' id '70402f28-f0e8-44e9-8746-3539c4add09b' date '20 November 2016' time '7:48:46.115446 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.67' message 'Remove the option #allowComplexMapKeys from STONReader (to functionally always allow it; leave the accessor #allowComplexMapsKeys: as a no-op for backwards compatibility) - remove all usage, simplify implementation.' id '92a94566-972f-4084-aa37-a572de9cfe67' date '24 October 2016' time '10:36:51.944835 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.66' message 'When in JSON mode, STONWriter should also signal an STONWriterError when an Association is seen (thanks Peter Uhnák) Update #testRestrictedClassesInJSONMode to cover this case' id '9df675c2-98a7-4644-b4d3-2231ba7c7444' date '6 June 2016' time '10:34:19.068183 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.65' message 'Add STONWriteReadTests>>#testFileSystemSupport' id '2b50bcaf-ec9e-4b84-910f-56916f5d2dac' date '7 May 2016' time '11:39:07.311908 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.64' message 'New, better, more correct implementation of Dictionary/Set rehashing after reference resolution made them potentially unhealthy. See the new tests #testDictionaryWithIndirectReferenceKeys and #testSetWithIndirectReferenceElements for example cases that were not covered by the previous optimization. During resolution of references we count the number of unresolved references backwards so that we know when #stonProcessSubObjects: did actually resolve a reference (possible deep down). If that is the case we call a new hook called #stonPostReferenceResolution that does nothing by default. For Dictionary and Set #stonPostReferenceResolution is implemented as self isHealthy ifFalse: [ self rehash ] Now, rehashing is only done when absolutely necesary (this is crucial for performance). We even avoid the possibly expensive #isHealthy check when no references were actually resolved and hence no hashing could possibly change. ' id '1401dc66-e503-4da1-bc7c-30dd0a4afa06' date '14 April 2016' time '2:17:59.88328 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.63' message 'Fix a bug where STONReferences occurring as keys in Dictionaries or elements in Sets caused those to be unhealthy after materialization. Thx to Peter Uhnák for reporting this issue. Add 3 new unit tests to STONReaderTests #testDictionaryWithReferenceKeys #testSetWithReferenceElements #testDeepStructure Fix Details change the implementation of STONReader>>#processSubObjectsOf: from iterative to recursive (see version 39 of 29 November 2012, this might be a functional regression, see #testDeepStructure; cleanup of stack instance variable for later) so that #stonProcessSubObjects: can be overwritten with code being executed before or after full reference resolution imho, recursion stack depth will be equal during both writing and reading, and should be acceptable. overwrite #stonProcessSubObjects: in Dictionary and Set to #rehash at the end, but only when needed (minimal optimalization, see Dictionary>>#containsStonReferenceAsKey and Set>>#containsStonReference) ' id '0beb2322-b81a-46ee-a0e2-6648a808774a' date '6 April 2016' time '2:22:45.01986 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.62' message 'Improve class comments Add STONJSON facade class to make it more explicit that you can use STON for simple JSON parsing and generation Add STONJSONTests to test JSON compatibility' id '097090ae-a1ca-4401-86b0-07d7d446a9dc' date '15 March 2016' time '5:08:19.634401 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.61' message 'Added support for characters not in the Basic Multilingual Plane encoding as a UTF-16 surrogate pair See https://tools.ietf.org/html/rfc7159#section-7' id '20add575-ddb8-487b-bb4a-70b4594bfcac' date '24 February 2016' time '9:42:27.99865 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.60' message 'Add support to Interval so that it is no longer treated as a collection but as a normal object' id '09e568c4-7947-4f0e-82b0-52573998fe3e' date '24 February 2016' time '2:01:40.693715 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.59' message 'Added unit test for the ability to write and read Class and Metaclass instances using their global name' id '9f684bc1-45e1-4bfa-885b-c56ea178bfca' date '23 December 2015' time '10:51:06.830762 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.58' message 'Added test for custom Associations' id '1e20385e-f9dc-4ede-86da-7abbe21a3f93' date '15 August 2015' time '5:35:11.356145 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.57' message 'Added new STONCStyleCommentsSkipStream feature: Comments inside single and double quote delimited strings are ignored. Backslash escapes for single and double quotes inside strings are honored.' id 'ad125293-a41b-45a6-a0fe-016dd5e02f7b' date '17 July 2015' time '7:50:38.683873 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.56' message 'Introduction of STONWriter>>#asciiOnly: option This is an incompatible change.' id '19b08365-50b1-4837-84ec-ae4b13ed2b70' date '2 July 2015' time '3:42:19.211125 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.55' message 'Add 2 convenience methods: STON class>>#fromStringWithComments: STON class>>#fromStreamWithComments: Add more unit tests for the new functionality' id '14ccb834-8db6-4577-aeb9-1bdd487c3ab8' date '9 June 2015' time '11:05:12.121701 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.54' message 'Add experimental STONCStyleCommentsSkipStream and tests' id '3dcb2c9c-6efe-4d62-bf36-3bbe91f09d08' date '8 June 2015' time '11:34:52.918771 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.53' message 'Critics run. Respond.' id 'b7e46d94-4d8f-4b14-85c6-e1cba580b67c' date '28 May 2015' time '3:58:14.065808 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.52' message 'Added STONReader>>#convertNewLines: and STONReader>>#newLine: to read and convert CR, LF, or CRLF inside strings and symbols as one chosen canonical newLine Added STONWriter>>#keepNewLines: to write CR, LF or CRLF inside strings and symbols unencoded as one chosen canonical newLine Add unit tests #testConvertingNewLine #testKeepingNewLines and #testIllegalCharacterEscapes Added some more documentation' id '8b393798-e0e0-4ca4-9f54-64e487c228cc' date '26 April 2015' time '11:54:29.166526 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.51' message 'Remove support for TimeStamp as it is deprecated in Pharo 4 and removed in Pharo 5' id '44a2460e-3ad4-4d60-9d16-0be61dd23afa' date '26 April 2015' time '7:47:54.90388 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.50' message 'Make Ordered/Small Dictionary tests resilient to missing classes' id '71194726-6c3b-40c1-98e8-abbdfb7acb45' date '10 April 2015' time '8:25:26.300795 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.49' message 'Added support for OrderedDictionary' id 'c97045f3-f89f-49d4-9162-2a6516a8205e' date '10 April 2015' time '3:32:33.665331 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.48' message 'Minor modifications after merging Christophe''s new Association support (some simplifications, allow nested associations, don''t use in #parseMapDo: for performance reasons). Added Object class>>#stonAllInstVarNames to allow customizing which instance variables get written or their order (see STONWriter>>#writeObject:)' id 'fa58cbdd-a453-4274-ac76-3754d36695cd' date '27 November 2014' time '11:20:51.78438 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-ChristopheDemarey.47' message 'Add support for associations as ''primitive'' type.' id '8c9b6d82-9231-47a2-aadd-096f39ab2fe4' date '7 November 2014' time '9:58:50.34515 am' author 'ChristopheDemarey' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.46' message 'Add STONReader>#acceptUnknownClasses: option When true (default is false) an unknown object class will result in a map with an added property #className (thx Stéphane Ducasse for the suggetion) Added STON class>>#classNameKey Moved #stonName from Class to Object class Added STONReaderTests>>#testUnknownClasses' id 'e48a3d7c-6d8a-4899-943f-829ee4e8715d' date '12 August 2014' time '3:40:43.256364 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.44' message 'Fix to allow working with the empty Symbol #'''' (changed STONWriter>>#isSimpleSymbol: to return false for the empty symbol) [Thx Martin - tinchodias]' id '44f1860b-d960-4530-be30-ad6a0a1b3fa7' date '15 April 2014' time '2:16:37.880415 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.43' message 'Added explicit #stonOn: and #fromSton: methods to Text and RunArray who are inheriting the wrong behavior + unit test' id '89a8ad73-c664-4974-b111-02fd14287678' date '24 March 2014' time '2:30:08.212135 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.42' message 'Changed the implementation of STONWriter>>#writeObject: to skip nil instance variables unless Object>>#stonShouldWriteNilInstVars is overridden to be true' id '965f5e06-6db6-46d3-8724-cb9501357f95' date '14 November 2013' time '12:02:58.546038 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.41' message 'Added support for Small[Identity]Dictionary' id 'e1bd4c72-3d69-43af-96f3-420e01ae9d2c' date '17 September 2013' time '8:17:38.531008 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.40' message 'Added custom newline support to STONWriter' id 'afcdcc8a-9e20-4067-85a5-4c9a4be76189' date '7 March 2013' time '10:53:29.584 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.39' message 'moved/renamed STONBufferedReadStream -> ZnBufferedReadStream (into Zinc HTTP Components)' id '854ee094-9d25-410c-ba6c-af7d02ee9076' date '30 November 2012' time '11:03:18.209 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.38' message 'added STONTestMap class>>#classTree[Extended][:] to create some larger test object structures with cycles; added STONTests class helper methods #readFromFileNamed: and #write:toFileNamed: as well as #fastReadFromFileNamed: and #fastWrite:toFileNamed:; added STONBufferedReadStream to improve parsing performance' id 'f0fed4b1-b758-4aaf-bacb-f276dfa8eb66' date '30 November 2012' time '11:46:48.063 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.37' message 'update meta data' id '29122642-eec4-48e4-a9a6-be086656a70b' date '29 November 2012' time '3:58:21.866 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.36' message 'added STONLargeWriteReadTests to test #optimizeForLargeStructures of STONReader and STONWriter using some special Fuel datastructures optimized for large sizes (these are standard in Pharo)' id 'dce2dc6c-1a5a-496e-b5a3-2fbc66565d21' date '29 November 2012' time '3:46:16.813 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.35' message 'added STONTests>>#testRoomExitCycles and STONTestMap based on the problematic cycle model by Stuart Herring (Thx!)' id '46f62d3a-4746-4720-a709-52113d0fb52e' date '29 November 2012' time '12:13:45.639 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.29' message 'this is a copy of Ston-Tests-SvenVanCaekenberghe.34 with the monticello package name changed from Ston-Tests to STON-Tests' id 'fc4432b5-2197-47ee-8dfe-947b37d16b89' date '26 October 2012' time '10:38:40.565 am' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'STON-Tests-SvenVanCaekenberghe.70' message 'Bugfix to STONWriter>>#escapeUnicode: [thank you, Tomohiro Oda] code points between 16rFFF and 16rFFFF where encoded wrongly when #asciiOnly was true Add high code point string to STONWriteReadTests>>#testStrings Make STONReaderTests>>#testDeepStructure faster by creating a smaller data structure' id '4c19dd4b-c8f1-4184-ada1-83909c4a6e4a' date '24 November 2016' time '11:31:12.769488 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.69' message 'Allow #stonName to return a string instead of a symbol (reported by https://github.com/jecisc). Change STONReader>>#lookupClass to use #= instead of #== when comparing the result of #stonName. Change STONTestUser3 class>>#stonName to return a string as test case.' id '37f148af-a389-423f-bdab-8b67b27fab09' date '20 November 2016' time '8:25:25.135359 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.68' message 'In JSON compatibility mode STON should not encode single quotes. (Thanks Peter Uhnák for reporting this). Patch STONWriter>>#encodeCharacter: Fix the encoding of forward slash ($/). This was already in the (external) documentation. Patch STONWriter class>>#initializeSTONCharacters - force STONWriter class>>#initialize to change too Fix the representation of Time by adding nanoseconds when there are any. This was already in the (external) documentation. Patch Time>>#stonOn: Adjust unit tests accordingly (esp. STONWriterTests>>#testDoubleQuotedString). Minor comment changes.' id '70402f28-f0e8-44e9-8746-3539c4add09b' date '20 November 2016' time '7:48:46.115446 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.67' message 'Remove the option #allowComplexMapKeys from STONReader (to functionally always allow it; leave the accessor #allowComplexMapsKeys: as a no-op for backwards compatibility) - remove all usage, simplify implementation.' id '92a94566-972f-4084-aa37-a572de9cfe67' date '24 October 2016' time '10:36:51.944835 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.66' message 'When in JSON mode, STONWriter should also signal an STONWriterError when an Association is seen (thanks Peter Uhnák) Update #testRestrictedClassesInJSONMode to cover this case' id '9df675c2-98a7-4644-b4d3-2231ba7c7444' date '6 June 2016' time '10:34:19.068183 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.65' message 'Add STONWriteReadTests>>#testFileSystemSupport' id '2b50bcaf-ec9e-4b84-910f-56916f5d2dac' date '7 May 2016' time '11:39:07.311908 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.64' message 'New, better, more correct implementation of Dictionary/Set rehashing after reference resolution made them potentially unhealthy. See the new tests #testDictionaryWithIndirectReferenceKeys and #testSetWithIndirectReferenceElements for example cases that were not covered by the previous optimization. During resolution of references we count the number of unresolved references backwards so that we know when #stonProcessSubObjects: did actually resolve a reference (possible deep down). If that is the case we call a new hook called #stonPostReferenceResolution that does nothing by default. For Dictionary and Set #stonPostReferenceResolution is implemented as self isHealthy ifFalse: [ self rehash ] Now, rehashing is only done when absolutely necesary (this is crucial for performance). We even avoid the possibly expensive #isHealthy check when no references were actually resolved and hence no hashing could possibly change. ' id '1401dc66-e503-4da1-bc7c-30dd0a4afa06' date '14 April 2016' time '2:17:59.88328 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.63' message 'Fix a bug where STONReferences occurring as keys in Dictionaries or elements in Sets caused those to be unhealthy after materialization. Thx to Peter Uhnák for reporting this issue. Add 3 new unit tests to STONReaderTests #testDictionaryWithReferenceKeys #testSetWithReferenceElements #testDeepStructure Fix Details change the implementation of STONReader>>#processSubObjectsOf: from iterative to recursive (see version 39 of 29 November 2012, this might be a functional regression, see #testDeepStructure; cleanup of stack instance variable for later) so that #stonProcessSubObjects: can be overwritten with code being executed before or after full reference resolution imho, recursion stack depth will be equal during both writing and reading, and should be acceptable. overwrite #stonProcessSubObjects: in Dictionary and Set to #rehash at the end, but only when needed (minimal optimalization, see Dictionary>>#containsStonReferenceAsKey and Set>>#containsStonReference) ' id '0beb2322-b81a-46ee-a0e2-6648a808774a' date '6 April 2016' time '2:22:45.01986 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.62' message 'Improve class comments Add STONJSON facade class to make it more explicit that you can use STON for simple JSON parsing and generation Add STONJSONTests to test JSON compatibility' id '097090ae-a1ca-4401-86b0-07d7d446a9dc' date '15 March 2016' time '5:08:19.634401 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.61' message 'Added support for characters not in the Basic Multilingual Plane encoding as a UTF-16 surrogate pair See https://tools.ietf.org/html/rfc7159#section-7' id '20add575-ddb8-487b-bb4a-70b4594bfcac' date '24 February 2016' time '9:42:27.99865 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.60' message 'Add support to Interval so that it is no longer treated as a collection but as a normal object' id '09e568c4-7947-4f0e-82b0-52573998fe3e' date '24 February 2016' time '2:01:40.693715 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.59' message 'Added unit test for the ability to write and read Class and Metaclass instances using their global name' id '9f684bc1-45e1-4bfa-885b-c56ea178bfca' date '23 December 2015' time '10:51:06.830762 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.58' message 'Added test for custom Associations' id '1e20385e-f9dc-4ede-86da-7abbe21a3f93' date '15 August 2015' time '5:35:11.356145 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.57' message 'Added new STONCStyleCommentsSkipStream feature: Comments inside single and double quote delimited strings are ignored. Backslash escapes for single and double quotes inside strings are honored.' id 'ad125293-a41b-45a6-a0fe-016dd5e02f7b' date '17 July 2015' time '7:50:38.683873 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.56' message 'Introduction of STONWriter>>#asciiOnly: option This is an incompatible change.' id '19b08365-50b1-4837-84ec-ae4b13ed2b70' date '2 July 2015' time '3:42:19.211125 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.55' message 'Add 2 convenience methods: STON class>>#fromStringWithComments: STON class>>#fromStreamWithComments: Add more unit tests for the new functionality' id '14ccb834-8db6-4577-aeb9-1bdd487c3ab8' date '9 June 2015' time '11:05:12.121701 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.54' message 'Add experimental STONCStyleCommentsSkipStream and tests' id '3dcb2c9c-6efe-4d62-bf36-3bbe91f09d08' date '8 June 2015' time '11:34:52.918771 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.53' message 'Critics run. Respond.' id 'b7e46d94-4d8f-4b14-85c6-e1cba580b67c' date '28 May 2015' time '3:58:14.065808 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.52' message 'Added STONReader>>#convertNewLines: and STONReader>>#newLine: to read and convert CR, LF, or CRLF inside strings and symbols as one chosen canonical newLine Added STONWriter>>#keepNewLines: to write CR, LF or CRLF inside strings and symbols unencoded as one chosen canonical newLine Add unit tests #testConvertingNewLine #testKeepingNewLines and #testIllegalCharacterEscapes Added some more documentation' id '8b393798-e0e0-4ca4-9f54-64e487c228cc' date '26 April 2015' time '11:54:29.166526 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.51' message 'Remove support for TimeStamp as it is deprecated in Pharo 4 and removed in Pharo 5' id '44a2460e-3ad4-4d60-9d16-0be61dd23afa' date '26 April 2015' time '7:47:54.90388 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.50' message 'Make Ordered/Small Dictionary tests resilient to missing classes' id '71194726-6c3b-40c1-98e8-abbdfb7acb45' date '10 April 2015' time '8:25:26.300795 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.49' message 'Added support for OrderedDictionary' id 'c97045f3-f89f-49d4-9162-2a6516a8205e' date '10 April 2015' time '3:32:33.665331 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.48' message 'Minor modifications after merging Christophe''s new Association support (some simplifications, allow nested associations, don''t use in #parseMapDo: for performance reasons). Added Object class>>#stonAllInstVarNames to allow customizing which instance variables get written or their order (see STONWriter>>#writeObject:)' id 'fa58cbdd-a453-4274-ac76-3754d36695cd' date '27 November 2014' time '11:20:51.78438 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-ChristopheDemarey.47' message 'Add support for associations as ''primitive'' type.' id '8c9b6d82-9231-47a2-aadd-096f39ab2fe4' date '7 November 2014' time '9:58:50.34515 am' author 'ChristopheDemarey' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.46' message 'Add STONReader>#acceptUnknownClasses: option When true (default is false) an unknown object class will result in a map with an added property #className (thx Stéphane Ducasse for the suggetion) Added STON class>>#classNameKey Moved #stonName from Class to Object class Added STONReaderTests>>#testUnknownClasses' id 'e48a3d7c-6d8a-4899-943f-829ee4e8715d' date '12 August 2014' time '3:40:43.256364 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.44' message 'Fix to allow working with the empty Symbol #'''' (changed STONWriter>>#isSimpleSymbol: to return false for the empty symbol) [Thx Martin - tinchodias]' id '44f1860b-d960-4530-be30-ad6a0a1b3fa7' date '15 April 2014' time '2:16:37.880415 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.43' message 'Added explicit #stonOn: and #fromSton: methods to Text and RunArray who are inheriting the wrong behavior + unit test' id '89a8ad73-c664-4974-b111-02fd14287678' date '24 March 2014' time '2:30:08.212135 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.42' message 'Changed the implementation of STONWriter>>#writeObject: to skip nil instance variables unless Object>>#stonShouldWriteNilInstVars is overridden to be true' id '965f5e06-6db6-46d3-8724-cb9501357f95' date '14 November 2013' time '12:02:58.546038 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.41' message 'Added support for Small[Identity]Dictionary' id 'e1bd4c72-3d69-43af-96f3-420e01ae9d2c' date '17 September 2013' time '8:17:38.531008 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.40' message 'Added custom newline support to STONWriter' id 'afcdcc8a-9e20-4067-85a5-4c9a4be76189' date '7 March 2013' time '10:53:29.584 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.39' message 'moved/renamed STONBufferedReadStream -> ZnBufferedReadStream (into Zinc HTTP Components)' id '854ee094-9d25-410c-ba6c-af7d02ee9076' date '30 November 2012' time '11:03:18.209 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.38' message 'added STONTestMap class>>#classTree[Extended][:] to create some larger test object structures with cycles; added STONTests class helper methods #readFromFileNamed: and #write:toFileNamed: as well as #fastReadFromFileNamed: and #fastWrite:toFileNamed:; added STONBufferedReadStream to improve parsing performance' id 'f0fed4b1-b758-4aaf-bacb-f276dfa8eb66' date '30 November 2012' time '11:46:48.063 am' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.37' message 'update meta data' id '29122642-eec4-48e4-a9a6-be086656a70b' date '29 November 2012' time '3:58:21.866 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.36' message 'added STONLargeWriteReadTests to test #optimizeForLargeStructures of STONReader and STONWriter using some special Fuel datastructures optimized for large sizes (these are standard in Pharo)' id 'dce2dc6c-1a5a-496e-b5a3-2fbc66565d21' date '29 November 2012' time '3:46:16.813 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.35' message 'added STONTests>>#testRoomExitCycles and STONTestMap based on the problematic cycle model by Stuart Herring (Thx!)' id '46f62d3a-4746-4720-a709-52113d0fb52e' date '29 November 2012' time '12:13:45.639 pm' author 'SvenVanCaekenberghe' ancestors ((name 'STON-Tests-SvenVanCaekenberghe.29' message 'this is a copy of Ston-Tests-SvenVanCaekenberghe.34 with the monticello package name changed from Ston-Tests to STON-Tests' id 'fc4432b5-2197-47ee-8dfe-947b37d16b89' date '26 October 2012' time '10:38:40.565 am' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/STON-Text support.package/.filetree b/repository/STON-Text support.package/.filetree new file mode 100644 index 0000000..8998102 --- /dev/null +++ b/repository/STON-Text support.package/.filetree @@ -0,0 +1,4 @@ +{ + "noMethodMetaData" : true, + "separateMethodMetaAndSource" : false, + "useCypressPropertiesFile" : true } diff --git a/repository/STON-Text support.package/RunArray.extension/instance/fromSton..st b/repository/STON-Text support.package/RunArray.extension/instance/fromSton..st new file mode 100644 index 0000000..123884b --- /dev/null +++ b/repository/STON-Text support.package/RunArray.extension/instance/fromSton..st @@ -0,0 +1,3 @@ +*STON-Text support +fromSton: stonReader + stonReader parseNamedInstVarsFor: self \ No newline at end of file diff --git a/repository/STON-Text support.package/RunArray.extension/instance/stonOn..st b/repository/STON-Text support.package/RunArray.extension/instance/stonOn..st new file mode 100644 index 0000000..e739517 --- /dev/null +++ b/repository/STON-Text support.package/RunArray.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*STON-Text support +stonOn: stonWriter + stonWriter writeObject: self \ No newline at end of file diff --git a/repository/STON-Text support.package/RunArray.extension/methodProperties.json b/repository/STON-Text support.package/RunArray.extension/methodProperties.json new file mode 100644 index 0000000..30e5606 --- /dev/null +++ b/repository/STON-Text support.package/RunArray.extension/methodProperties.json @@ -0,0 +1,6 @@ +{ + "class" : { + }, + "instance" : { + "fromSton:" : "SvenVanCaekenberghe 5/28/2015 15:33", + "stonOn:" : "SvenVanCaekenberghe 3/23/2014 18:52" } } diff --git a/repository/STON-Text support.package/RunArray.extension/properties.json b/repository/STON-Text support.package/RunArray.extension/properties.json new file mode 100644 index 0000000..5377225 --- /dev/null +++ b/repository/STON-Text support.package/RunArray.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "RunArray" } diff --git a/repository/STON-Text support.package/Text.extension/instance/fromSton..st b/repository/STON-Text support.package/Text.extension/instance/fromSton..st new file mode 100644 index 0000000..123884b --- /dev/null +++ b/repository/STON-Text support.package/Text.extension/instance/fromSton..st @@ -0,0 +1,3 @@ +*STON-Text support +fromSton: stonReader + stonReader parseNamedInstVarsFor: self \ No newline at end of file diff --git a/repository/STON-Text support.package/Text.extension/instance/stonOn..st b/repository/STON-Text support.package/Text.extension/instance/stonOn..st new file mode 100644 index 0000000..e739517 --- /dev/null +++ b/repository/STON-Text support.package/Text.extension/instance/stonOn..st @@ -0,0 +1,3 @@ +*STON-Text support +stonOn: stonWriter + stonWriter writeObject: self \ No newline at end of file diff --git a/repository/STON-Text support.package/Text.extension/methodProperties.json b/repository/STON-Text support.package/Text.extension/methodProperties.json new file mode 100644 index 0000000..138199a --- /dev/null +++ b/repository/STON-Text support.package/Text.extension/methodProperties.json @@ -0,0 +1,6 @@ +{ + "class" : { + }, + "instance" : { + "fromSton:" : "SvenVanCaekenberghe 5/28/2015 15:33", + "stonOn:" : "SvenVanCaekenberghe 3/23/2014 18:47" } } diff --git a/repository/STON-Text support.package/Text.extension/properties.json b/repository/STON-Text support.package/Text.extension/properties.json new file mode 100644 index 0000000..885994f --- /dev/null +++ b/repository/STON-Text support.package/Text.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Text" } diff --git a/repository/STON-Text support.package/monticello.meta/categories.st b/repository/STON-Text support.package/monticello.meta/categories.st new file mode 100644 index 0000000..90f23e2 --- /dev/null +++ b/repository/STON-Text support.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #'STON-Text support'! diff --git a/repository/STON-Text support.package/monticello.meta/initializers.st b/repository/STON-Text support.package/monticello.meta/initializers.st new file mode 100644 index 0000000..e69de29 diff --git a/repository/STON-Text support.package/monticello.meta/package b/repository/STON-Text support.package/monticello.meta/package new file mode 100644 index 0000000..660b7b7 --- /dev/null +++ b/repository/STON-Text support.package/monticello.meta/package @@ -0,0 +1 @@ +(name 'STON-Text support') \ No newline at end of file diff --git a/repository/STON-Text support.package/monticello.meta/version b/repository/STON-Text support.package/monticello.meta/version new file mode 100644 index 0000000..3e9ac45 --- /dev/null +++ b/repository/STON-Text support.package/monticello.meta/version @@ -0,0 +1 @@ +(name 'STON-Text support-TheIntegrator.2' message '18368 Move Rubric Shout support into standalone package https://pharo.fogbugz.com/f/cases/18368 18358 Integrate Ephemeron Registry https://pharo.fogbugz.com/f/cases/18358 18382 STON should not extent RunArray and Text https://pharo.fogbugz.com/f/cases/18382' id '96405f84-1e24-412c-9036-b7bbc2483c51' date '3 June 2016' time '2:20:45.41162 pm' author 'TheIntegrator' ancestors ((name 'STON-Text support-PavelKrivanek.1' message '- initial standalone version of Text support' id 'da400f35-3eb5-420e-ac19-b3b7278ad396' date '1 June 2016' time '12:03:21.097602 pm' author 'PavelKrivanek' ancestors () stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/STON-Text support.package/properties.json b/repository/STON-Text support.package/properties.json new file mode 100644 index 0000000..f037444 --- /dev/null +++ b/repository/STON-Text support.package/properties.json @@ -0,0 +1,2 @@ +{ + }