Marco van de Voort schrieb:

we have placed a new major release of the Free Pascal
Compiler, version 2.4.2 on our ftp-servers.

Great :-)


Some highlights are:

Compiler:
  * Support D2006+ FOR..IN, with some FPC specific enhancements. Refer to
     http://wiki.freepascal.org/for-in_loop for more information

A few notes on enumerators:

What restrictions apply to enumerators in general? IMO the loop variable should be treated as "const", any change to an enumerated structure (tree...) may result in obscure bugs. Like traversing strings seems not to allow to change the string, by e.g. replacing '/' by '\'.

In the array enumerator, is it possible to use an pointer into the array, instead of a copy of the element? This would allow to use arrays of Class, Record and Object types in the same way (by reference).

The comparison in the UTF-8 string example is very questionable. First ch(i) is not equivalent to ch, not even closely related, and the claim of O(N^2) operations deserves an proof - IMO it's simply wrong.


In general, what's the benefit of using enumerators? IMO a for loop executes faster on (linear) string and array types, where enumerator calls occur in for-in (see also my note on the UTF-8 string example).

Thus enumerators are useful in detail with non-linear data structures, like trees, linked lists, datasets(?) or collections.

DoDi

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to