I'm compiling my program for the first time with 3.0.0rc1. And found a few conspicuity:
*File*UTF8()-functions should be used from LazFileUtils. Most functions keep their names but DeleteDirectory(string, boolean) is changed to RemoveDirUTF8(string) and FileSize() is replaced by FileSizeUTF8(). However, I didn't found a equivalent to CopyFile() and GetAllFilesMask(). Shouldn't it be expected? Or better: I has to be documented.
I have quite a lot of widestring operations implemented, e.g. val(ws[i+1],x,e); or StrToInt(Copy(ws,1,y-1)), both with ws=widestring. Former UTF8 operations such as UTF8Copy() or UTF8Length() were known to be slow. Does it makes sense to carefully go through all string handling now since fpc itself supports UTF8? In other words would I benefit from using strings instead of widestrings?
I get the warning "Local variable $bar of a managed type is not initialized" with a function Foo(var bar:string). Sounds not correct to me, or am I wrong?