Setting up and filling arrays of numbers is now several times faster, and faster than the reference browser
This release speeds up the loops that FILL and initialise arrays of numbers, which run at the start of almost every piece of data or graphics work: laying out an image buffer, generating a sequence, seeding a table of values. Floati already processes several array elements at once on the chip's vector unit for loops that transform one array into another; now it does the same for loops that fill an array from a counter or a simple formula, like setting each pixel or each sample in turn. On these loops the work runs several times sooner, and faster than the reference browser, which still fills them one element at a time. It engages only when Floati can prove every write stays inside the array and that doing a batch at once gives exactly the same result as one at a time, so the data is identical to the last bit. It all runs on your device. This release also quietly fixes an internal inefficiency in how class-based objects were tracked, so code that creates many objects of the same kind uses less memory.