This gives full binary/type invisibility to if a string has been interned or not.
It also gives another 2.5x speedup.
The big downside to me is that nolonger will assigning a String to a Vector{InternedString} trigger interning via convert. Things will have to be interned explicitly.
From News.md:
v0.5.0
InternedString type is gone. Very breaking.
Now it is fully transparent, intern(::S)::S.
Works with all types of input. e.g. Strs.jl Strings
No longer do operations (regex or otherwise) on interned strings return interned strings, as there is nolonger a type to catch, but it is kinda OK, as it doesn't actually change the number of allocations doing all the interning at the end, just the timing.
Additional 2.5x speedup on top of v0.4.0
@ScottPJones thoughts?
This gives free Strs.jl compat.
This gives full binary/type invisibility to if a string has been interned or not. It also gives another 2.5x speedup.
The big downside to me is that nolonger will assigning a String to a
Vector{InternedString}
trigger interning viaconvert
. Things will have to be interned explicitly.From News.md:
@ScottPJones thoughts? This gives free Strs.jl compat.
@quinnj this is what I was talking to you about.