Transforms were implemented wrong, this makes them work properly. The order is the same, but now they're applied one at a time. Not sure why it works this way
Switch from Swift.XMLParser and String to limXML2 (which XMLParser is based on) and a custom, unsafe String which is considerably faster. By avoiding the overhead of verifying unicode and excess allocations to pass pointers into our Double parser, we get massive speedups
Don't create expensive error messages when we don't care about the failure
This diff screws up error messages, and has a lot of hacks in it, but it's early days, so I don't want to diverge from master too much and therefore am just going to put it up now.
This makes a number of changes:
Swift.XMLParser
andString
tolimXML2
(which XMLParser is based on) and a custom, unsafe String which is considerably faster. By avoiding the overhead of verifying unicode and excess allocations to pass pointers into our Double parser, we get massive speedupsThis diff screws up error messages, and has a lot of hacks in it, but it's early days, so I don't want to diverge from master too much and therefore am just going to put it up now.