Results 1 to 8 of 8

Thread: Is unicode fpc/laz inzetbaar?

  1. #1
    Marius
    Join Date
    Jul 2013
    Location
    Groningen
    Posts
    178

    Is unicode fpc/laz inzetbaar?

    Achtergrond, ik zit met een aantal delphi applicaties die ik naar fpc/laz zou kunnen/willen porteren, vereiste is dat ze absoluut unicode moeten zijn (targets zijn nederland, engels, duits, hongaars en russisch). De platform is over het algemeen win32 misschien zelfs win64 maar er zijn ook plannen voor een aantal tools onder android/arm en win-ce. Ik gebruik momenteel de trunk van fpc en laz en (fpc-2.7.1).

    Er was kortgeleden een thread in de lazarus (of in de fpc groep) over unicode compatibiliteit, helaas werd die thread snel technisch zodat ik er niet veel meer van begreep dus vandaar de volgende vraag. Wat is op dit ogenblik de bruikbaarheid van unicode in fpc en lazarus? Is deze nu wel of niet unicode compatible en is dat out-of-the-box of niet? Heeft iemand ervaring met de laatste fpc/laz + unicode versie?

    Aanrader of afrader?

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Helaas is het niet zo zwart wit. Het hangt er vanaf wat je belangrijk vindt. Zelfs release versies van Lazarus hebben wat unicode functionaliteit (ruwweg vergelijkbaar met b.v. een D2007 + TNT componenten).

  3. #3
    Marius
    Join Date
    Jul 2013
    Location
    Groningen
    Posts
    178
    Quote Originally Posted by marcov View Post
    Helaas is het niet zo zwart wit. Het hangt er vanaf wat je belangrijk vindt. Zelfs release versies van Lazarus hebben wat unicode functionaliteit (ruwweg vergelijkbaar met b.v. een D2007 + TNT componenten).
    Voor ons is het belangrijk is dat in ieder geval de RTL en de LCL volledig unicode compatible zijn (en dat de diverse componenten dat ook allemaal begrijpen). Wat ons betreft moet er dus volledige unicode support zijn anders kunnen we het beter links laten liggen (we redden ons wel even in delphi-XE).

    Gezien het open source karakter en de meestal vrij gedateerde informatie op het internet is het voor ons moeilijk om een inschatting te maken wanneer het unicode geschikt zou zijn (c.q. bruikbaar genoeg), nu weet ik dat jij al aardig wat jaartjes bij beide projecten betrokken bent. Is de huidige trunk bruikbaar genoeg of gaat dat nog diverse jaren duren voordat het zover is?


    Zoniet dan moeten we binnenkort toch eens kijken of Oxygene een waardige opvolger zou kunnen zijn (maar daar hebben we nog helemaal geen ervaring mee, fpc/laz wel)

  4. #4
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Dan vereis je meer dan unicode alleen, dan vereis je unicode op basis van Delphi XE (2009+) compatibiliteit. Een specifieke unicode implementatie dus.

    En daar wordt wel naar toe gewerkt, maar het is er niet.

    De status is ruwweg:

    - In development versies is de compiler grotendeels aangepast. Ook units als character e.d. zijn er.
    - de basis RTL zoals system en sysutils zijn reeds geconverteerd in een branch, en die wordt waarschijnlijk voor october nog naar de algemene development versie gemerged. Dit is met name de meeste File I/O functies.
    - string routines buiten system (in sysutils,strutils, classes, dateutils enz) moeten nog.
    - een native FPC unicode systeem is er dus ook al. FPC kan itt Delphi met unicode werken zonder geheel op de systeem support te vertrouwen. DIt maakt sommige unicode operaties meer uniform over verschillende platformen heen. Deze worden gegenereerd uit tabellen van het unicode consortium. Een soort iconv als je weet wat dat is.
    - Initiele implementatie van units als character is er ook al.
    - Lazarus werkt intern wel unicode, maar met utf8 in gewone (D2007-) ansistrings Ze definiëren voor veel routines die in FPC niet unicode zijn een eigen utf8 equivalent. Er is zelfs aan dingen als arabisch (right-to-left) al gewerkt. Dit is echter niet Delphi2009+ compatible, maar een eigen weg (die ingezet is voor D2009 bestond). FPC is hier niet in meegegaan omdat het eerst unicode taal support wilde implementeren. Dit heeft echter lang geduurt en is uiteindelijk op D2009 leest geschoeid.

    Er woedt op dit moment een discussie of de development versies eerst as-is (maar met die unicode branch waar File I/O) worden gereleased als 2.8, of dat we doorbikkelen en voor een eerste implementatie van D2009
    compatibiliteit gaan in 3.0. Redenen zijn dat niet relateerde functionaliteit in de development versie niet ophouden tot 3.0, met name ARM gerelateerde verbeteringen, en dat Lazarus een start kan gaan maken met het opruimen van de UTF8 kraam op basis van 2.8. (de -UTF8 functies blijven bestaan maar roepen unicode FPC versies aan ipv eigen platform specifieke implementaties)

    Oxygene/PRism heb ik afgeschreven als niet Delphi compatible genoeg. Als ik een dergelijke grove trendbreuk overweeg, ben ik niet meer aan Embarcadero en partners gebonden, en dan denk ik dat C# of MSVC++ betere papieren heeft.
    Last edited by marcov; 01-Aug-13 at 12:03.

  5. #5
    Even de zijstap van Oxygene volgend: dat ben ik helemaal met Marco eens. Als je daar simpelweg Delphi pascal zou kunnen compileren naar .NET zou het een oplossing voor me zijn, maar dat is niet het geval. Dus voor Visual Studio heb ik gewoon de echte stap genomen en gebruik ik C#.
    Marcel

  6. #6
    Senior Member
    Join Date
    Dec 2003
    Location
    Den Haag
    Posts
    210
    In Oxygene kan je gewoon Delphi code importeren; deze code wordt dan automatisch omgezet naar de Oxygene syntax. Het werkt meestal redelijk goed. Ik zou zeker eens een poging wagen. Zeker als ook plannen zijn voor Android lijkt Oxygene for Java een interessante optie voor jou.

  7. #7
    marcov,
    domme vraag van een dontknow,
    a.waarom zijn die ARM- gerelateerde verbeteringen zo belangrijk ?

    b.begin ik net me een beetje in te leven in het UTF8 gebeuren,dan begrijp ik dus dat wat ik nu vannaf D6 in lazarus utf8 omzet, slechts een heel tijdelijke situatie is en dat nog extra onderhoud daarvan te verwachten is op korte termijn?
    Last edited by freddie2; 01-Aug-13 at 15:31.

  8. #8
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Quote Originally Posted by freddie2 View Post
    marcov,
    domme vraag van een dontknow,
    a.waarom zijn die ARM- gerelateerde verbeteringen zo belangrijk ?
    De 2.6 serie ondersteunt formeel alleen arm ABIs zonder hardfloat. Vrijwel alles nieuw (mobile, maar ook b.v. raspberry pi) is echter hardfloat gebaseerd.

    begin ik net me een beetje in te leven in het UTF8 gebeuren,dan begrijp ik dus dat wat ik nu vannaf D6 in lazarus utf8 omzet, slechts een heel tijdelijke situatie is en dat nog extra onderhoud daarvan te verwachten is op korte termijn?
    Nee. Als het goed is komt de unicode versie als aparte optie erbij.

    Maar dat zijn alleen voornemens op dit moment, dat kan natuurlijk nog veranderen.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •