Allows us to use a copy-on-write strategy to efficiently grow Strings.
This should obviate the need for a StringBuffer class anytime soon and
make comfortable formatting efficient.
If we backslide and the COW/capacity functionality of String is no
longer doing its job, the test added here will appear to hang and
hopefully someone will be annoyed enough to fix it. We can't do
better right now because performance measurements vary based on the
test platform.
Swift SVN r5845
This adds builtin types Builtin.VecNxT, where N is a natural number
and T is a builtin type, which map down to the LLVM type <N x T>.
Update varous builtins to support vector arguments, e.g., binary
operations, comparisons, negation. Add InsertElement and
ExtractElement builtins for vectors.
On top of these builtins, add Vec4f and Vec4b structs to the standard
library, which provide 4xFloat and 4xBool vectors, respectively, with
basic support for arithmetic. These are mostly straw men, to be burned
down at our leisure.
Some issues as yet unresolved:
- Comparisons of Vec4f'ss are producing bogus Vec4b's, which I
haven't tracked down yet.
- We still don't support the shuffle builtin, although it should be
easy
- More testing!
Swift SVN r5820
Clean up the code so it better reflects the current mangling grammar. Implement demangling for concrete nominal types and some primitive types.
Swift SVN r4095