JuliaString / InternedStrings.jl

Fully transparent string interning functionality, with proper garbage collection
Other
27 stars 6 forks source link

Remove the InternedString type, return strings directly #9

Closed oxinabox closed 6 years ago

oxinabox commented 6 years ago

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.

@quinnj this is what I was talking to you about.