There was a regression after switching to ropes. Now it's pretty much back to pre-rope load times.
The new new_from_str() uses an algorithm that should be linear time complexity compared to the length of the string.
The rope uses a large leaf-node text length, so in the vast majority of cases this ends up being the same as directly storing the string data. But in the case that the line becomes extremely long, this will allow for reasonable performance
This will be used to hold the text of an individual line, for better long-line handling.