Re: [Lazarus] String vs WideString

2017-08-15 Thread Bo Berglund via Lazarus
On Tue, 15 Aug 2017 21:22:10 +0200, Luca Olivetti via Lazarus wrote: >(I remarked the "if" because I don't know if that's the case, according >to Bo Berglund's experience it is) Just to expand on my "experience" and the reason I posted: My work on converting the

Re: [Lazarus] String vs WideString

2017-08-15 Thread Graeme Geldenhuys via Lazarus
On 2017-08-15 20:22, Luca Olivetti via Lazarus wrote: Wait a minute, why "abuse"? After all, before code aware strings, an ansistring could store any kind of arbitrary data with no problem and no conversion, and made it extremely easy Just listen to what you are saying A string type and

Re: [Lazarus] String vs WideString

2017-08-15 Thread Luca Olivetti via Lazarus
El 15/08/17 a les 22:08, Luca Olivetti ha escrit: El 15/08/17 a les 21:38, Ondrej Pokorny via Lazarus ha escrit: On 15.08.2017 21:34, Mattias Gaertner via Lazarus wrote: On Tue, 15 Aug 2017 21:22:10 +0200 Luca Olivetti via Lazarus wrote: [...] *If* code that

Re: [Lazarus] String vs WideString

2017-08-15 Thread Luca Olivetti via Lazarus
El 15/08/17 a les 21:38, Ondrej Pokorny via Lazarus ha escrit: On 15.08.2017 21:34, Mattias Gaertner via Lazarus wrote: On Tue, 15 Aug 2017 21:22:10 +0200 Luca Olivetti via Lazarus wrote: [...] *If* code that worked before (and dare I say without abusing the

Re: [Lazarus] String vs WideString

2017-08-15 Thread Luca Olivetti via Lazarus
El 15/08/17 a les 21:38, Ondrej Pokorny via Lazarus ha escrit: On 15.08.2017 21:34, Mattias Gaertner via Lazarus wrote: On Tue, 15 Aug 2017 21:22:10 +0200 Luca Olivetti via Lazarus wrote: [...] *If* code that worked before (and dare I say without abusing the

Re: [Lazarus] The new kid is growing up fast

2017-08-15 Thread Ondrej Pokorny via Lazarus
Too bad that Eugene didn't decide to improve Lazarus Cocoa bindings :) Ondrej -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus

Re: [Lazarus] String vs WideString

2017-08-15 Thread Ondrej Pokorny via Lazarus
On 15.08.2017 21:34, Mattias Gaertner via Lazarus wrote: On Tue, 15 Aug 2017 21:22:10 +0200 Luca Olivetti via Lazarus wrote: [...] *If* code that worked before (and dare I say without abusing the language) suddenly breaks, the bug is in the compiler and not in

Re: [Lazarus] String vs WideString

2017-08-15 Thread Mattias Gaertner via Lazarus
On Tue, 15 Aug 2017 21:22:10 +0200 Luca Olivetti via Lazarus wrote: >[...] > *If* code that worked before (and dare I say without abusing the > language) suddenly breaks, the bug is in the compiler and not in the > library. ... unless of course the

Re: [Lazarus] String vs WideString

2017-08-15 Thread Luca Olivetti via Lazarus
El 15/08/17 a les 21:14, Graeme Geldenhuys via Lazarus ha escrit: On 2017-08-15 18:29, Luca Olivetti via Lazarus wrote: but for 3rd party libraries/components (e.g. synapse comes to mind Then better start filing bug reports to all those 3rd party libraries and components - they have been

Re: [Lazarus] String vs WideString

2017-08-15 Thread Graeme Geldenhuys via Lazarus
On 2017-08-15 18:29, Luca Olivetti via Lazarus wrote: but for 3rd party libraries/components (e.g. synapse comes to mind Then better start filing bug reports to all those 3rd party libraries and components - they have been abusing the system and will silently fail. Not to mention that FPC is

Re: [Lazarus] String vs WideString

2017-08-15 Thread wkitty42--- via Lazarus
On 08/15/2017 05:25 AM, Michael Van Canneyt via Lazarus wrote: As it is now, FPC offers a way out for all cases: WideString/UnicodeString for those that want 2-byte characters. what if 3 and 4 byte characters are required? will they also work in UnicodeStrings? i'm looking at this from a

Re: [Lazarus] String vs WideString

2017-08-15 Thread Graeme Geldenhuys via Lazarus
On 2017-08-15 10:52, Michael Van Canneyt via Lazarus wrote: The only 'problem' is that TStrings uses a single-byte string. Why can't that be changed to a UnicodeString or UTF8String - after all, the Unicode standard is meant to support all languages. I would have thought that would be an

Re: [Lazarus] String vs WideString

2017-08-15 Thread Mattias Gaertner via Lazarus
On Tue, 15 Aug 2017 16:44:30 +0200 Michael Schnell via Lazarus wrote: > On 15.08.2017 14:53, Mattias Gaertner via Lazarus wrote: > > Do you mean a 'char' is a string in your proposal? > Nope. In my proposal there would be Chars for any statically encoded >

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 14:53, Mattias Gaertner via Lazarus wrote: Do you mean a 'char' is a string in your proposal? Nope. In my proposal there would be Chars for any statically encoded String Type, hence 1, 2, 4, and 8 byte wide. (As regarding statically encoded string (and char) brands, it's just an

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Van Canneyt via Lazarus
On Tue, 15 Aug 2017, Mattias Gaertner via Lazarus wrote: On Tue, 15 Aug 2017 14:26:34 +0200 Michael Schnell via Lazarus wrote: On 15.08.2017 11:15, Tony Whyman via Lazarus wrote: > Why shouldn't there be a single char type that intuitively represents > a

Re: [Lazarus] String vs WideString

2017-08-15 Thread Mattias Gaertner via Lazarus
On Tue, 15 Aug 2017 14:26:34 +0200 Michael Schnell via Lazarus wrote: > On 15.08.2017 11:15, Tony Whyman via Lazarus wrote: > > Why shouldn't there be a single char type that intuitively represents > > a single character regardless of how many bytes are used to

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 11:15, Tony Whyman via Lazarus wrote: 3. The problem with string handling today is that it is not based on a consistent approach to the character type. If you clean up character handling then the model for string handling should become obvious. A string is after all no

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 11:15, Tony Whyman via Lazarus wrote: Why shouldn't there be a single char type that intuitively represents a single character regardless of how many bytes are used to represent it. I suppose by "char" you mean "single printable thingy" with Unicode it's rather debatable what

Re: [Lazarus] String vs WideString

2017-08-15 Thread Bart via Lazarus
On 8/15/17, Tony Whyman via Lazarus wrote: > 2. Clean up the char type. > > Why shouldn't there be a single char > type that intuitively represents a single character regardless of > how many bytes are used to represent it. You would have to define

Re: [Lazarus] The new kid is growing up fast

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 13:19, Graeme Geldenhuys via Lazarus wrote: Just wanted to show you guys something. Great. CrossVCL seems to allow to easily port Delphi VCL applications to Mac and Linux. How to compare it against Lazarus ? -Michael -- ___ Lazarus

[Lazarus] The new kid is growing up fast

2017-08-15 Thread Graeme Geldenhuys via Lazarus
Hi guys, Just wanted to show you guys something. The new kid on the block is growing up very fast CrossVCL. https://www.youtube.com/watch?v=_lr_BQlXvkk I believe the programmer is the ex-FMX (FireMonkey) developer that was let go by Embarcadero, and he is hitting back with a

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Van Canneyt via Lazarus
On Tue, 15 Aug 2017, Michael Schnell via Lazarus wrote: On 15.08.2017 12:15, Michael Van Canneyt via Lazarus wrote: What does S[2] mean in your proposal ? Is it 1, 2, 4 or even 8 bytes ? Regarding the users' appreciation, the S[x] notation is decently incompatible between the different

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 12:15, Michael Van Canneyt via Lazarus wrote: What does S[2] mean in your proposal ? Is it 1, 2, 4 or even 8 bytes ? Regarding the users' appreciation, the S[x] notation is decently incompatible between the different string types and compiler versions. There were hundreds of

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 12:11, Mattias Gaertner via Lazarus wrote: It does not explain what the characters of DynamicString are, does it? I don't understand what you are asking. The element size and encoding of a Dynamic String ("CP_ANY" in the document) are not predefined, but depend on the content:

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Van Canneyt via Lazarus
On Tue, 15 Aug 2017, Mattias Gaertner via Lazarus wrote: On Tue, 15 Aug 2017 12:02:28 +0200 Michael Schnell via Lazarus wrote: On 15.08.2017 11:52, Michael Van Canneyt via Lazarus wrote: > This cannot be solved properly except by duplicating the classes unit.

Re: [Lazarus] String vs WideString

2017-08-15 Thread Mattias Gaertner via Lazarus
On Tue, 15 Aug 2017 12:02:28 +0200 Michael Schnell via Lazarus wrote: > On 15.08.2017 11:52, Michael Van Canneyt via Lazarus wrote: > > This cannot be solved properly except by duplicating the classes unit. > > Sorry to disagree, but IMHO this can only be solved

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 11:52, Michael Van Canneyt via Lazarus wrote: This cannot be solved properly except by duplicating the classes unit. Sorry to disagree, but IMHO this can only be solved properly by defining an additional fully dynamically encoded string type and use same for TStrings (see ->

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 11:15, Tony Whyman via Lazarus wrote: In this case, I would argue that both are true. And the culprit obviously is Embarcadeo and not the fpc or the Lazarus team, who did their best to try to do a compatible and implementation that is really workable on the multiple supported

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Van Canneyt via Lazarus
On Tue, 15 Aug 2017, Michael Schnell via Lazarus wrote: On 15.08.2017 11:25, Michael Van Canneyt via Lazarus wrote: WideString/UnicodeString for those that want 2-byte characters. A codepage-aware single-byte string for those that want 1-byte characters. The shortstring is even still

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 15.08.2017 11:25, Michael Van Canneyt via Lazarus wrote: WideString/UnicodeString for those that want 2-byte characters. A codepage-aware single-byte string for those that want 1-byte characters. The shortstring is even still available. IM (often stated) O, this does not help as long as

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Van Canneyt via Lazarus
On Tue, 15 Aug 2017, Mattias Gaertner via Lazarus wrote: On Mon, 14 Aug 2017 18:47:58 +0200 Sven Barth via Lazarus wrote: [...] The main problem of such a dynamic type would be the inability to do fast indexing as the compiler would need to insert runtime

Re: [Lazarus] String vs WideString

2017-08-15 Thread Tony Whyman via Lazarus
You can me as a "like" on that one. On 15/08/17 10:13, Mattias Gaertner via Lazarus wrote: IMHO the main problem of adding a new string type is https://xkcd.com/927/ -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org

Re: [Lazarus] String vs WideString

2017-08-15 Thread Tony Whyman via Lazarus
On 14/08/17 22:01, Juha Manninen via Lazarus wrote: Tony Whyman, this issue has been discussed again and again for the past 10+ years first in FPC mailing lists and then in Lazarus lists. The current Unicode support in Lazarus works f***ing well and is amazingly compatible with Delphi. WinAPI

Re: [Lazarus] String vs WideString

2017-08-15 Thread Mattias Gaertner via Lazarus
On Mon, 14 Aug 2017 18:47:58 +0200 Sven Barth via Lazarus wrote: >[...] > The main problem of such a dynamic type would be the inability to do fast > indexing as the compiler would need to insert runtime checks for the size > of a character. I had already thought

Re: [Lazarus] String vs WideString

2017-08-15 Thread Mattias Gaertner via Lazarus
On Sat, 12 Aug 2017 17:56:58 -0300 "Marcos Douglas B. Santos via Lazarus" wrote: >[...] > > Which one? Do you mean Windows CP-1252? > > Yes... > But would it make any difference? Just > >>[...] > >> Warning: Implicit string type conversion from "AnsiString" to

Re: [Lazarus] String vs WideString

2017-08-15 Thread Tony Whyman via Lazarus
On 14/08/17 17:47, Sven Barth via Lazarus wrote: The main problem of such a dynamic type would be the inability to do fast indexing as the compiler would need to insert runtime checks for the size of a character. I had already thought the same, but then had to discard the idea due to this.

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 14.08.2017 18:47, Sven Barth via Lazarus wrote: The main problem of such a dynamic type would be the inability to do fast indexing as the compiler would need to insert runtime checks for the size of a character. What "indexing" do you think of ? Could you give an example where such a

Re: [Lazarus] String vs WideString

2017-08-15 Thread Michael Schnell via Lazarus
On 14.08.2017 18:49, Sven Barth via Lazarus wrote: Because the crowd demanding Delphi compatibility is larger than the crowd demanding exact terminology. ... or even a revised concept avoiding the junk presented by Embarcadero :( But obviously the fpc team has no choice. -Michael --