On Nov 23, 2013, at 9:51 AM, Camillo Bruni <[email protected]> wrote:

> opened https://pharo.fogbugz.com/f/cases/12229/XML-Tools-improvement 
> otherwise these changes are as good as lost.
> sending mcz via mail is from the last century.

I did not say it like that but indeed I would prefer that people have account 
on Smalltalkhub :)

> 
> On 2013-11-23, at 09:00, Stéphane Ducasse <[email protected]> wrote:
> 
>> No time so fr to handle it.
>> 
>> Stef
>> 
>> Begin forwarded message:
>> 
>>> From: "monty" <[email protected]>
>>> Subject: Patches for Pharo packages you are maintaining
>>> Date: November 21, 2013 3:14:25 AM GMT+01:00
>>> To: [email protected]
>>> 
>>> Prof. Stef, I have produced updates to the XML-Parser, XML-Parser-Testing, 
>>> and XML-Writer-Core packages you are maintaining.
>>> 
>>> These updates add validation against internal and external DTDs, proper 
>>> replacement of general and parameter entites, customizable resolution of 
>>> external parsed entities using Zinc and FileSystem, awareness of notations 
>>> and unparsed entities, preservation of the internal DTD subset by the DOM 
>>> parser (so printing a parsed doc with a DTD will produce approximately what 
>>> was input), line numbers reporting in error messages, and better 
>>> well-formed and validity constraints.
>>> 
>>> I had to largely rewrite the tokenizer to make everything work, but I 
>>> followed the spec closely, and it is about the same speed as long as there 
>>> is no DTD to validate against.
>>> 
>>> One problem is that while the tests I added and the existing tests all 
>>> pass, for some reason helper messages in some test classes starting with 
>>> "should" (in the style of should:raise:) are being interpreted as tests and 
>>> run by TestRuner, even though they don't begin with "test" and take 
>>> arguments! This is possibly a bug in TestRunner.
>>> 
>>> Another problem is that there are so many deprecated methods cluttering up 
>>> classes, some of which have been deprecated for years! It is confusing and 
>>> hard to see which methods to use just by browsing the protocols. I would 
>>> really suggest using this code to get rid of the XML-Parser methods that 
>>> have been deprecated for at least a year:
>>> 
>>> expiry := 1 year.
>>> (SystemNavigation default allClassesInPackageNamed: 'XML-Parser')
>>> do: [:class |
>>> class selectors do: [:selector | | compiledMethod timeStamp |
>>> compiledMethod := class compiledMethodAt: selector.
>>> timeStamp := compiledMethod timeStamp copyAfter: Character space.
>>> (compiledMethod isDeprecated
>>> and: [(DateAndTime now - (DateAndTime fromString: timeStamp)) > expiry])
>>> ifTrue: [class removeSelector: selector]]].
>>> 
>>> I ran and checked it myself and it doesn't break anything. Running the 
>>> above with XML-Writer-Core might not be a bad idea either.
>>> 
>>> I also updated BitmapCharacterSet to use less memory.
>> <XML-Writer-Core-monty.5.mcz>
>> <XML-Tests-Parser-monty.27.mcz>
>> <XML-Parser-monty.173.mcz>
>> <Collections-BitmapCharacterSet-Anonymous.6.mcz>
>> <Collections-BitmapCharacterSet-Anonymous.6.mcz>
>> 
> 


Reply via email to