Page 1 of 2 1 2 LastLast
Results 1 to 15 of 22

Thread: Delphi 10.4 beta

  1. #1
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,140

    Delphi 10.4 beta

    Kwam mailtje van Indera langs, met wat verwijzingen naar een blog met 10.4 features


    Delphi

    • Language Server Protocol for Delphi
    • Language Enhancements: Managed Records
    • Unified memory management across all platforms


    Het eerste: geen idee. Neem aan iets wat ze in hun app<->radserver protocollen nodig hebben als basis.

    Het tweede klinkt als de management operators van FPC (constructor/destructor voor records waarmee records automatisch geinitializeerd/finalizeerd kunnen worden). Misschien ook simpele record inheritance (records worden dan zeg maar het oude TP object model minus virtual methods), zodat je zelf refcounted records kan afleiden.

    Naar het derde, unified memory management, kan ik alleen gokken. Ik neem aan Objective C (Apple) memory refcounted classes ook voor windows native apps? Hopelijk alleen maar een optie.

    Voor de rest wat styles uitbreidingen in de VCL, en "nieuwe VCL componenten".

  2. #2
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    Ik maak mij zorgen over de managed records. In fase 1 ging dat mis en hebben ze het gecancelled.
    VCL styling per control lijkt me leuk om eens te proberen.
    Ik hoop dat ze de IDE nu eindelijk eens correct hebben. Rendering ellende in alle hoeken en gaten.

  3. #3
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,643
    Ik maak mij meer zorgen om de minor releases. Het was mooier geweest om dit van te maken
    10.3.1 --> 10.4
    10.3.2 --> 10.5
    10.3.3 --> 10.6
    10.3.4 --> 10.7

    Dat is ook veel beter voor de third party boeren om nieuwe packages te maken.

    Overigens zal het een nutteloze update zijn met veel poespas en weer een hoop werk om te updaten.
    Delphi is great. Lazarus is more powerfull

  4. #4
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,140
    Was het maar alleen rendering. Vastlopers en mislukte debug sessies zijn mijn grootste probleem.

    Ik neem aan dat de 10.3.x versies onderling compatible zijn, en geen aparte packages nodig hebben? Dan is de nummering zinnig.

  5. #5
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    Code:
    Was het maar alleen rendering. Vastlopers en mislukte debug sessies zijn mijn grootste probleem.
    Meld je dat ook bij Emba? Ik spam ze kapot ondertussen

  6. #6
    Language server protocol is volgens mij voor de IDE plugins. Schijnt een of andere standaard te zijn in IDE land.

  7. #7
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,140
    Ik heb geen subscription, en gebruik XE3 en XE10. Alle problemen heb ik ook al in XE3. Het webbased bug systeem heb ik een paar keer geprobeerd, maar dat werkte amper.

    Met name met F7 uit een functie stappen vaak mis gaat. Op willekeurige momenten begint in de editor de cursor naar een zandloper en komt in een of andere refresh cyclus erin. Zo gauw mogelijk dan buiten de editor klikken (b.v. in component lijst) helpt dan, en na een paar seconden komt het terug.

    En de klassieker dat alle BDS versies niet met relatieve paden om kunnen gaan. (b.v. ../libraries/xxx).

  8. #8
    En de klassieker dat alle BDS versies niet met relatieve paden om kunnen gaan. (b.v. ../libraries/xxx).
    Bedoel je dan in de libsettings?

    Mijn sources zijn allemaal met relatieve paden, dat werkt gewoon.

    Voor libraries gebruik ik al tijden environment variabelen. Dan is wisselen van machine ook makkelijker, als die variabelen voor die machine maar goed staan.

  9. #9
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,140
    Quote Originally Posted by Benno View Post
    Bedoel je dan in de libsettings?
    Unit/library path.

    Mijn sources zijn allemaal met relatieve paden, dat werkt gewoon.

    Voor libraries gebruik ik al tijden environment variabelen. Dan is wisselen van machine ook makkelijker, als die variabelen voor die machine maar goed staan.
    Met relatieve paden wissel je ook prima van machine. En je hoeft geen environment variabelen te zetten, te rommelen met substs en/of Delphi (cq de machine) te restarten. Ik heb overigens ook globale dirs, maar die bevatten erg statisch spul. Alle eigen gedeelde code zit in een shared dir.

    Dat is met name voor vlot wisselen van meerdere checkouts met hun eigen versies van de gedeelde unit directories erg nodig.

    Maar dan moet Delphi wel library/unit paden interpreteren relatief aan de project file, zoals elke zinnige IDE, en niet relatief ten op zichte van de working dir (die bij elke file->open verandert, en bij opstart vrij ongedefinieerd is).

    Als workaround kan je alle projecten openen met file->open project en dan browsen naar dir + dproj selecteren. Geen dubbel klik in explorer en geen "recent projects" gebruiken.

  10. #10
    Unified memory manager wil zeggen dat ze de garbage collector of wat daar voor door moest gaan op mobiel (automatic ref counting/ARC voor objecten) weer af gaan schaffen, en je gewoon ouderwets zelf Free aan laten roepen, of interfaces gebruiken. Volgens heeft Marco Cantu daar recent eea over geblogd.
    1+1=b

  11. #11
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,140
    Hmm, precies het tegenovergestelde van wat ik dacht dus. Hmm, en wat Benno zegt is ook vagelijk bekend. Is voor Visual Studio Core geloof ik.

  12. #12
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    Code:
    Unified memory manager wil zeggen dat ze de garbage collector of wat daar voor door moest gaan op mobiel (automatic ref counting/ARC voor objecten) weer af gaan schaffen, en je gewoon ouderwets zelf Free aan laten roepen, of interfaces gebruiken. Volgens heeft Marco Cantu daar recent eea over geblogd.
    Hopelijk zijn we dan ook hiervanaf. RTL / VCL begint sowieso lastig leesbaar te worden, ook door High-Dpi en VCL-Styles.
    Code:
      TObject = class
      public
        constructor Create;
        procedure Free;
        procedure DisposeOf; {$IFNDEF AUTOREFCOUNT} inline; {$ENDIF}
        class function InitInstance(Instance: Pointer): TObject {$IFDEF AUTOREFCOUNT} unsafe {$ENDIF};
        // ...
    {$IFDEF AUTOREFCOUNT}
        function __ObjAddRef: Integer; virtual;
        function __ObjRelease: Integer; virtual;
    {$ENDIF}

  13. #13
    Directions for ARC Memory Management in Delphi is die blogpost waar ik het over had. Blijkbaar gebruikt de Linux compiler sinds 10.3, Rio al de traditionele memory manager. MacOS heeft ├╝berhaupt nooit ARC gehad, en in 10.4 worden de mobiele platforms als het goed is omgezet.

    Natuurlijk kan je nog steeds alles tegen interfaces programmeren, zoals Nick Hodges al tijden verkondigt.
    1+1=b

  14. #14
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    Blij dat het weer standaard wordt!
    Is er eigenlijk al een echt interface gevecht geweest hier?

  15. #15
    Volgens mij niet. Hoezo, wil je?
    1+1=b

Page 1 of 2 1 2 LastLast

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
  •