Stéphane Ducasse writes: > In that case we could change that. But then we would produce > incompatible code > also.
Compatibility is less of an issue for this change as Pharo will accept more code rather than less. It will not stop us importing any code that currently runs on Squeak unlike enforcing lower case letters for instance variable names. It may be necessary to copy modified arguments with some optimised closure implementations but that shouldn't add much complexity. The current BlockContext implementation copies all it's arguments into the surrounding MethodContext. I think Eliot's closure implementation treats modified variables different to read only variables. However, to do this it needs to do the analysis to find which variables are read only in a block and which can be written to so even in this case writable arguments will add little implementation complexity and nothing in the VM/JIT. This is a language design point. Is the convenience of knowing that an argument is never modified worth more than the convenience of being able to modify the argument? Bryce _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
