[Lazarus] Beyond Compare 4 built with Lazarus 1.2

Martin Schreiber mse00000 at gmail.com
Thu Dec 26 09:06:50 CET 2013


On Thursday 26 December 2013 03:45:19 Marcos Douglas wrote:
>
> "As long as the language and libraries agree on an encoding I don't
> really care whether it's UTF-8 or UTF-16"
>
> +1
>
Actually this is the MSElang approach. MSElang supports "string8" 
(utf-8), "string16" (utf-16), "string32" (UCS4) and "bytestring" which can 
hold any 8-bit encoding or binary data. There is no "string" type defined in 
MSElang and there are no implicit type conversions in MSElang.
"
 floatvariable:= floatvalue + integervalue;
 string8variable:= string8value + string16value;
"
will not work and must be written as
"
 floatvariable:= floatvalue + float(integervalue);
 string8variable:= string8value + string8(string16value);
"
The compiler then will do the conversions.
The MSElang RTL is the bare minimum, most of the functionality (lists, file 
API...) is implemented in an optimized manner in the framework, in MSEgui for 
example, which already does not use much of the FPC RTL or - in a 
hypothetical case - in LCL. ;-)
Every framework can use the stringtypes it likes, common RTL parts could be 
made in collaboration between the frameworks. Because MSElang compiler 
supports all without preference and the framework development does non need 
to wait on implementation decisions on complier or base-RTL level the 
development can be accelerated.
It is apparent that such an approach is very unfeasible for a commercial 
compiler manufacturer because the loose of control. I assume that the Delphi 
architecture has been carfully chosen in order to maximize the control over  
the ecosystem.
But for an opensource undertaking the MSElang principle could work. :-)

Martin




More information about the Lazarus mailing list