The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Archive for the ‘Delphi’ Category

Working around “[dcc32 Fatal Error] F2084 Internal Error: DBG3133” or “[dcc32 Fatal Error] F2084 Internal Error: MA1243

Posted by jpluimers on 2017/05/30

Since Google has a hard time searching G+: [WayBackAnyone ever encountered a “[dcc32 Fatal Error] F2084 Internal Error: DBG3133″… – G+ – Jeroen Wiert Pluimers:

Anyone ever encountered a [dcc32 Fatal Error] F2084 Internal Error: DBG3133 in XE8 or newer?

I get it in XE8 version 22.0.19908.869 intermittently on a huge* project when compiling or building.

If it occurs, I have to:

  1. restart the IDE
  2. delete all DCU files
  3. build

Without deleting the DCU files, even a build throws the error after restarting the IDE.

The project never throws an AV while compiling as described in [WayBackQC #127380: F2084 Internal error AV0B8A47D2-R3E1D3CF8-0 when compiling project unless the IDE runs out of memory (which I now resolved with DDevExtensions).

Every now and then on compile it also throws [dcc32 Fatal Error] F2084 Internal Error: MA1243.

For the other error, the same solution applies: if you don’t, then the next one is a [dcc32 Fatal Error] F2084 Internal Error: DBG3133.

Both errors occur during the Linking stage.

–jeroen

*huge as in that I needed DDevExtensions to work around [WayBack] Is there any tool that clears the Delphi memory overhead when a “build all” switches to the next project in a project group? XE8 constantly runs out of memory… – Jeroen Wiert Pluimers – Google+

 

Posted in Delphi, Delphi XE8, Development, F2084, QC, Software Development | Leave a Comment »

UsesHelperSetup.zip by Stefan Glienke for Delphi 10.0/1/2

Posted by jpluimers on 2017/05/25

[WayBack] Some while ago I started a plugin to easily add units to the uses clause just like you can do via quickfix in VisualStudio.I never actually polished it… – Stefan Glienke – Google+

UsesHelperSetup.zip download: https://1drv.ms/u/s!ArjIoB43KhwDg3Ju1tkHlJniN2WS (for now Delphi 10, 10.1 and 10.2: Seattle/Atlanta, Berlin/Big-Ben, Tokyo/Godzilla)

jeroen

 

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 10.2 Tokyo (Godzilla), Development, Software Development | Leave a Comment »

Delphi 10.2 Tokyo Godzilla ISO and other download links including hashes

Posted by jpluimers on 2017/05/24

I thought I already posted this, but since hashes were mentioned at [WayBack] Still can’t get Rad Studio 10.2 to install on my laptop. It’ll install now, but then it can’t load several BPLs and then it crashes before the IDE gets … – Phillip Woon – Google+

From [WayBackcc.embarcadero.com/reg/delphi and [WayBackRad Studio Tokyo 10.2 | Board4All:

Read the rest of this entry »

Posted in Delphi, Delphi 10.2 Tokyo (Godzilla), Development, Software Development | 4 Comments »

Some interesting Delphi posts by Stefan Glienke – Spring4D maintainer

Posted by jpluimers on 2017/05/23

One of the Delphi programmers I keep an eye on is [WayBackStefan Glienke, the maintainer of the great Spring4D Delphi framework at spring4d.org.

His blog posts come in bursts, though his G+ posts are spreaded a bit more evenly.

Some of his recent posts and references:

–jeroen

Read the rest of this entry »

Posted in Delphi, Development, Software Development | Leave a Comment »

What to change after a fresh Delphi (RAD Studio) installation…

Posted by jpluimers on 2017/05/23

Reminder to self: document what I change, and borrow some from this interesting thread:

Just curious, what do you change after installing Studio? During all these (21!) years, the only thing I change is the editor keyboard settings to… – David Berneda – Google+

–jeroen

Posted in Delphi, Development, Keyboards and Keyboard Shortcuts, Power User, Software Development | Leave a Comment »

Wow, this parses in Delphi: `property Foo: string index 0 string read GetFoo;`

Posted by jpluimers on 2017/05/18

Quite a few interesting entries got posted after I published this compiler glitch:

Wow, this parses:

property Foo: string index 0 string read GetFoo;

Note the extra “string”.

Found this in an old piece of code so it must have been uncaught by the compiler for quite a while.

– Jeroen Wiert Pluimers – Google+

Some:

property DepartmentName: string index 0 program library uses unit interface string class read GetCustomDataX;

property Foo: string index 0 unit if library uses unit do not inline file else raise object if is nil read GetFoo;

–jeroen

Posted in Delphi, Development, Fun, Software Development | 2 Comments »

Anders Hejlsberg on Modern Compiler Construction | Seth Juarez | Channel 9

Posted by jpluimers on 2017/05/18

One of those “must watch” videos if you are remotely or more interested in how compilers influence our day to day coding activities.

The Red Dragon Book, first edition: Compilers. Principles, Techniques and Tools.

The Red Dragon Book, first edition: Compilers. Principles, Techniques and Tools.

It starts out with referring to the Dragon Book (well, actually the first edition of the Red Dragon Book, as there are three) describing the compilers as having front-ends consisting of a Lexer, Parser and Type Checker and back-ends consisting of Code Generator and Emitter. A full compilation is going through all five stages and there is an increasing cost using these traditional stages when going from syntax highlighting via collapsible regions to red squiggles and code completion will need to go further along those stages taking an increasing time – like seconds or even longer – whereas the user experience requires responses in ~ 100 milliseconds where his code might not even compile in the first place.

Then Anders goes on describing Roslyn, TypeScript and Compiler API JSON interfaces to them so you can run them as a service and keep compiler state, rebuilding just enough of the state on source code changes. He goes on talking about how Visual Studio, Visual Studio Code, Command-Line Compiler, Sublime Text and other tools (can) use these APIs to interact with the compiler so it keeps state of slowly evolving code of which the tools than can emit what they need.

Anders explains this much better and much more visually than I do: so it’s a highly recommended video.

Read the rest of this entry »

Posted in .NET, C#, Delphi, Development, Software Development | 2 Comments »

Delphi Corner Weblog: New: Velthuis.AutoConsole unit – helps against the “optimised” Embarcadero FastMM fork.

Posted by jpluimers on 2017/05/17

Brilliant:

if it is a console program and it was started any other way (from the Windows Explorer, from the Delphi IDE with or without debugger, from another non-console program), then, before the console window can close, it will display:

Press any key...

Source: Delphi Corner Weblog: New: Velthuis.AutoConsole unit [WayBack]

via:

–jeroen

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, FastMM, Software Development | Leave a Comment »

If you were using Managed / IManaged in Spring4D, be aware they got renamed to Shared / IShared

Posted by jpluimers on 2017/05/17

Sometimes changes are breaking. In this case it’s a Spring4D change: https://bitbucket.org/sglienke/spring4d/commits/a7c9bc92f30f7b5ec71b4905c1f0d97339b3c807

It renames Managed / IManaged to Shared / IShared and introduces compatibility with weak references.

Together they are the Spring4D manifestation of smart pointers about which I wrote a few times before:

–jeroen

Posted in Delphi, Development, Software Development | 1 Comment »

On the design of the Delphi TStream classes – why aren’t they decomposed better?

Posted by jpluimers on 2017/05/16

Ever since I started using Delphi more than 2 decades ago, I wondered about the design of the TStream classes, especially as “stream16.zip” by Duncan Murdoch from the DOS Turbo Pascal era (which I copied in the below gist) showed how to perform composition using streams.

Even though by now there is TStreamReader/TStreamWriter allowing some level of composition, it always bugged me that large parts of the resource handling and component (de)serialisation is in it (centred around ReadComponentRes/WriteComponentRes in stead of fully being in TFiler/TReader/TWriter or even further decomposed), that you cannot interrogate capabilities (like supporting seeking, length, directionality and such) and that a lot of overloads (for instance Read/ReadBuffer/ReadBufferData/Write/WriteBuffer/WriteBufferData) are still based on signed or 32-bit types (though it has improved back in the early days they were even signed 16-bit types).

I’m not the only one who wonders about this: Faster FileStream with TBufferedFileStream • DelphiABall mentioned a new Berlin piece the TStream hierarchy and – being in the field a lot longer – Stefan Glienke rightly asked why the buffering isn’t done with the decorator pattern like JclStreams does, and Asbjørn Heid chimed in with a very dense version of more gripes.

Even TZCompressionStream/TZDecompressionStream (though relatively new) aren’t doing composition really well (by not abstracting the compression/decompression from the write-only/read-only behaviour).

Now that all key players from the early TStream design day and age have left the core Delphi R&D team, maybe one of them can step in and explain why.

–jeroen

via: [WayBack] I was wondering if the TBufferedFileStream (see https://delphiaball.co.uk/2016/04/29/faster-filestream-tbufferedfilestream/) would not have been implemented using the decorator pattern… – Stefan Glienke – Google+ -> https://github.com/project-jedi/jcl/blob/master/jcl/source/common/JclStreams.pas#L207

TJclBufferedStream = class(TJclStreamDecorator)

Read the rest of this entry »

Posted in Delphi, Development, Software Development | 2 Comments »