[Swift-devel] scalability updates

Ben Clifford benc at hawaga.org.uk
Sun Mar 22 07:38:13 CDT 2009


On Mon, 9 Mar 2009, Mihael Hategan wrote:

> 2. A lazy range function (the [x:y] operator). The previous one was
> silly. Simply writing [0:1000000] would cause swift to run out of memory
> because it was trying to create a swift array with 1000000 elements
> before running a single iteration on it.

This (r2674) breaks some array-related functionality - 
tests/language-behaviour/1101-array-range added in r2726 works with Swift 
0.8 (and also in my head) but does not work with Swift r2522. Backing out 
r2674 (which I did in r2725) makes this work again (bringing back more 
correct behaviour but losing the scabaility introduced there)

r2674 also makes a exceptions appear in the provenance logging lines.

I think both of the above problems are to do with the messy internal 
numerical datatype handling - in the log lines that are showing 
exceptions, paths are rendered as [1.0] (or [n.0] in general) rather than 
[1] or [n].

I guess whoever sorts this out and recommits first gets a cookie.


I also started playing with a test to check for exception stack traces in 
the log files for any of the language-behaviour tests, on the assumption 
that when running locally there should never be stack traces in the log 
file; however it discovered some other places unrelated to the above where 
the tests have been getting exceptions for some time (they're present in 
0.8). So I have not committed that until I've looked at those cases and 
tried to resolve them.

-- 




More information about the Swift-devel mailing list