[fpc-devel] Implicit cast from Char/String to array of Char

2019-02-24 Thread Ondrej Pokorny
Hello! Implicit cast from Char/String to array of Char: is this a wanted behavior or is it a compiler bug? (Btw. MODE DELPHI behaves the same). program Project1; {$mode objfpc}{$H+} procedure A(AC: array of Char); var   C: Char; begin   for C in AC do     WriteLn(C); end; procedure B(AC: arr

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Ryan Joseph
> On Feb 24, 2019, at 9:14 AM, Marco van de Voort > wrote: > > Yes. Can it be turned off? I don’t use FPC with exceptions and I don’t even use the RTL usually so I don’t need these. Honestly this should have a mode switch if it’s impacting all code regardless of whether a program actually u

Re: [fpc-devel] LLVM code generator

2019-02-24 Thread Jonas Maebe
On 24/02/2019 22:18, Florian Klämpfl wrote: Am 24.02.19 um 21:17 schrieb Jonas Maebe: Obligatory vipribench results (on gcc113.fsffrance.org, an APM X-Gene Mustang board -- that's an AArch64 board, but it can also run 32 bit ARM programs): * FPC (-O2): Time: 5107ms = 2839240 pkts/s = 4245 MB/s

Re: [fpc-devel] LLVM code generator

2019-02-24 Thread Florian Klämpfl
Am 24.02.19 um 21:17 schrieb Jonas Maebe: On 25/12/2018 19:14, Jonas Maebe wrote: On 2018-12-02 11:26, Jonas Maebe wrote: The LLVM version of the code generator has been significantly improved in the mean time: The LLVM code generator on the debug_eh branch now also works with Linux/ARM, al

Re: [fpc-devel] LLVM code generator

2019-02-24 Thread Jonas Maebe
On 25/12/2018 19:14, Jonas Maebe wrote: On 2018-12-02 11:26, Jonas Maebe wrote: The LLVM version of the code generator has been significantly improved in the mean time: The LLVM code generator on the debug_eh branch now also works with Linux/ARM, although only with the hard float EABI for no

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Jonas Maebe
On 24/02/2019 17:23, Ryan Joseph wrote: On Feb 24, 2019, at 10:48 AM, Jonas Maebe wrote: It's is an inherent part of the "class" feature. Without it, any exception that gets thrown in a constructor (or in any code called by a constructor) will cause memory leaks. Not very useful if we d

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Ryan Joseph
> On Feb 24, 2019, at 10:48 AM, Jonas Maebe wrote: > > > It's is an inherent part of the "class" feature. Without it, any exception > that gets thrown in a constructor (or in any code called by a constructor) > will cause memory leaks. Not very useful if we don’t use exceptions though. :) I

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Martin Frb
On 24/02/2019 16:48, Jonas Maebe wrote: You can disable these exception frames with {$implicitexceptions off}. If you want to disable it for TObject, you have to recompile the system unit with that switch, since the code for TObject's constructor is inside that unit. ld never do this. Actu

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Marco van de Voort
Op 2019-02-24 om 15:40 schreef Florian Klämpfl: Am 24.02.19 um 15:22 schrieb Marco van de Voort: it bothers you, help making exceptions cheaper (table based exceptions/seh) Actually, it is only cheaper if no exceptions are raised. Raising an exception is very expensive when the table driven

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Jonas Maebe
On 24/02/2019 16:06, Ryan Joseph wrote: On Feb 24, 2019, at 9:22 AM, Marco van de Voort wrote: It is part of the language, people have lived with it over 20 years. If it bothers you, help making exceptions cheaper (table based exceptions/seh) I must say that’s disappointing because FPC is us

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Ryan Joseph
> On Feb 24, 2019, at 9:22 AM, Marco van de Voort > wrote: > > Not that I know. Maybe $implicitexceptions off where the class is declared, > but I doubt it. > >> I don’t use FPC with exceptions and I don’t even use the RTL usually so I >> don’t need these. Honestly this should have a mode

[fpc-devel] SEH debug info [Re: "Blank slate" next version of FPC]

2019-02-24 Thread Martin Frb
On 24/02/2019 15:42, Jonas Maebe wrote: On 24/02/2019 15:36, Martin Frb wrote: On 24/02/2019 15:24, Jonas Maebe wrote: On 24/02/2019 15:22, Marco van de Voort wrote: It is part of the language, people have lived with it over 20 years. If it bothers you, help making exceptions cheaper (table b

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Jonas Maebe
On 24/02/2019 15:36, Martin Frb wrote: On 24/02/2019 15:24, Jonas Maebe wrote: On 24/02/2019 15:22, Marco van de Voort wrote: It is part of the language, people have lived with it over 20 years. If it bothers you, help making exceptions cheaper (table based exceptions/seh) They're already wo

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Florian Klämpfl
Am 24.02.19 um 15:22 schrieb Marco van de Voort: it bothers you, help making exceptions cheaper (table based exceptions/seh) Actually, it is only cheaper if no exceptions are raised. Raising an exception is very expensive when the table driven approach is used. _

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Martin Frb
On 24/02/2019 15:24, Jonas Maebe wrote: On 24/02/2019 15:22, Marco van de Voort wrote: It is part of the language, people have lived with it over 20 years. If it bothers you, help making exceptions cheaper (table based exceptions/seh) They're already working for Linux/i386 and LLVM targets in

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Jonas Maebe
On 24/02/2019 15:22, Marco van de Voort wrote: It is part of the language, people have lived with it over 20 years. If it bothers you, help making exceptions cheaper (table based exceptions/seh) They're already working for Linux/i386 and LLVM targets in de debug_eh branch. And of course for Wi

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Marco van de Voort
Op 2019-02-24 om 15:19 schreef Ryan Joseph: On Feb 24, 2019, at 9:14 AM, Marco van de Voort wrote: Yes. Can it be turned off? Not that I know. Maybe $implicitexceptions  off where the class is declared, but I doubt it. I don’t use FPC with exceptions and I don’t even use the RTL us

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Marco van de Voort
Op 2019-02-23 om 15:35 schreef Ryan Joseph: Here’s this implicit try/finally block on heap allocation thing again. Can someone please explain this? Some months ago someone complained FPC was doing this on all TObject.Create calls. Is that true? Yes.

[fpc-devel] Current x86_64-win64 test status

2019-02-24 Thread J. Gareth Moreton
So while running regression tests for my optimizer overhaul work, I decided to share the current state of the trunk (r41400) on x86_64-win64. Total = 7814 (35:7779) Total number of compilations = 4813 (22:4791) Successfully compiled = 3637 Successfully failed = 1154 Compilation failures = 20

Re: [fpc-devel] "Blank slate" next version of FPC

2019-02-24 Thread Ryan Joseph
> On Feb 21, 2019, at 7:34 PM, Ben Grasset wrote: > > The trick with enumerators is to never make them classes, and use advanced > records instead, I've found. This way you avoid the heap allocation and the > implicit try/finally. Also make sure you inline the MoveNext and GetCurrent! > He