Archive for the ‘C++’ Category
Posted by jpluimers on 2017/01/16
TL;DR: http://www.davidghoyle.co.uk/WordPress/?feed=rss2
Since there is no RSS link on the page [WayBack] Dave’s Development Blog – Software Development using Borland / Codegear / Embarcadero RAD Studio
Since I wanted to follow his “blog” (which is sort of a collection of WordPress pages, mainly about the programming OTA: the Open Tools API interface to Delphi and C++ Builder), I was looking for the RSS feed.
Luckily, Feedly knows how to detect most blogging platforms, so it came up with https://feedly.com/i/subscription/feed/http://www.davidghoyle.co.uk/WordPress/?feed=rss2 which indicates the final bit is the RSS feed URL.
Some interesting links from there:
via: [WayBack] OTA Interface Search 1.1 and GitHub http://www.davidghoyle.co.uk/WordPress/?…
–jeroen
Posted in C++, C++ Builder, Delphi, Development, RSS, SocialMedia, Software Development | Leave a Comment »
Posted by jpluimers on 2017/01/03
The first implementation of Compiler Explorer supports many versions of the gcc, clang and icc compilers on ARM, ARM64, AVR and x86 targets.
On the left you type your C++ code, on the right you see the resulting assembler code optionally with byte code and colorised so you can correlate the C++ lines with the assembly.
A great way to start the year: learning new things!
Related:
–jeroen
via:
Some videos:
Read the rest of this entry »
Posted in ARM, Assembly Language, C++, Conference Topics, Conferences, Development, Event, Software Development, x86 | Leave a Comment »
Posted by jpluimers on 2016/08/30
Thanks David Berneda for sharing this a while ago:
Cool little trick to show all the preset variables for your GCC/Clang compiler:
clang -E -dM - < /dev/null
I’ve always wondered how to get these. Some are kind of surprising, especially since there are 320 of them, at least on my system.
On my system (Mavericks, I wish the sw_vers console tool would tell that): 170 lines.
Read the rest of this entry »
Posted in Apple, C, C++, Development, Mac OS X / OS X / MacOS, OS X 10.9 Mavericks, Power User, Software Development | Leave a Comment »
Posted by jpluimers on 2016/07/20
Reader edxwelch writes:
Reddit user sammiesdog discovered recently that Visual Studio 2015 C++ compiler was inserting calls to a Microsoft telemetry function into binaries. “I compiled a simple program with only main(). When looking at the compiled binary in IDA, I see a call fortelemetry_main_invoke_trigger and telemetry_main_return_trigger. I cannot find documentation for these calls, either on the web or in the options page,” he wrote. Only after the discovery did Steve Carroll, the dev manager for Visual C++ admit to the “feature” and posted a workaround to remove it.
A Microsoft spokesperson confirmed the existence of this behavior to InfoQ, adding that the company wil be removing it in a future preview build. For those who wish to get rid of it, the blog writes:
Users who have a copy of VS2015 Update 2 and wish to turn off the telemetry functionality currently being compiled into their code should add notelemetry.obj to their linker command line.
Quoted in full as I’m baffled.
Source: Visual Studio 2015 C++ Compiler Secretly Inserts Telemetry Code Into Binaries – Slashdot
via: Dear developers, I thought you should know. Yours, privacy. http://m.slashdot.org/story/312289 – Jan Wildeboer – Google+
–jeroen
Posted in C++, Development, Software Development, Visual Studio C++ | 1 Comment »
Posted by jpluimers on 2016/06/15
This is what the Delphi [WayBack] System.Classes.TThread.NameThreadForDebugging (introduced in Delphi 2010) is based on:
//
// Usage: SetThreadName (-1, "MainThread");
//
#include <windows.h>
const DWORD MS_VC_EXCEPTION=0x406D1388;
#pragma pack(push,8)
typedef struct tagTHREADNAME_INFO
{
DWORD dwType; // Must be 0x1000.
LPCSTR szName; // Pointer to name (in user addr space).
DWORD dwThreadID; // Thread ID (-1=caller thread).
DWORD dwFlags; // Reserved for future use, must be zero.
} THREADNAME_INFO;
#pragma pack(pop)
void SetThreadName( DWORD dwThreadID, char* threadName)
{
THREADNAME_INFO info;
info.dwType = 0x1000;
info.szName = threadName;
info.dwThreadID = dwThreadID;
info.dwFlags = 0;
__try
{
RaiseException( MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info );
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}
}
Related:
For Delphi 2009 and 2007: It is implemented in the SetThreadName method of the IdGlobal unit.
–jeroen
Posted in C++, Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2016/03/09
I never had the box, but someone is selling the [Wayback] 10+ kg Borland C++ 3.0 box:

Edit 2022-02-04: the above went away because of link rot, so I replaced it with an Archive.is version as it was copied at [Wayback/Archive.is] My First Windows C++ Application in Ages: Hello World in Win32 with Visual C++ 2010 – Pete Brown’s 10rem.net.
I did a bit of digging ([Wayback/Archive.is] borland c++ box – Google Search) and found [Wayback/Archive.is] Version information for older Borland/Inprise C Compilers has all the product box photos of these products:
Borland C++ 3.1 through 4.5 shipped in huge boxes, each even larger than the before it.
The box with the 1994 Borland C++ 4.5 and Database Tools supported DOS, Windows, and Win32. It had either a CD or 28 3.5″ HD diskettes.

The last version with 5.25″ diskettes was the 1991 Borland C++ 3.1: 15-5.25″ 1.2 Meg. Diskettes or 15 3.5″ 1.44MB disks.

–jeroen
Posted in Borland C++, C++, Development, Software Development | 2 Comments »
Posted by jpluimers on 2015/10/07
A long time ago, there was an interesting discussion here: I was wondering, that what is the closest value to the Zero floating point can have.
Recently I needed to do some calculations on series where getting close to zero could become a problem.
- Math seems to have an Epsilon of 1E-12.
- Sytem.Types has Epsilon of 1E-30 and Epsilon2 of 1E-40.
- XE4+ FMX has IsEssentiallyZero and IsNotEssentiallyZero for Single values.
In practice it depends a lot on what you are doing. Sometimes absolute Epsilons are best, but at other times relative difference is much more applicable.
Then there is also a Machine Epsilon: a way to derive an Epsilon from a data type that works in all languages and platforms.
–jeroen
Posted in .NET, Algorithms, C, C#, C++, Delphi, Development, Floating point handling, Software Development | 1 Comment »
Posted by jpluimers on 2015/09/02
If ever in need to translate C/C++ headers or code to Delphi, this refernece by Rudy Velthuis – a dentist with a strong interest in programming – is the best I could find: Rudy’s Delphi Corner – Pitfalls of converting.
It is written in a pretty version agnostic way, and covers the vast majority of conversion topics.
And it has been updated over time numerous times.
–jeroen
Posted in Borland C++, C, C++, C++ Builder, Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 10 Comments »
Posted by jpluimers on 2015/06/18
Almost two years ago, I wrote “the only issues missing are #28, #30 and #31.”. As of mid May any more:
All of them are from the 5th anniversary year.
–jeroen
via 2 More Old Micro Cornucopia issues on BitSavers from 1986 « The Wiert Corner – irregular stream of stuff.
Posted in 6502 Assembly, Assembly Language, BitSavers.org, C, C++, Development, History, Pascal, Software Development, Turbo Pascal | Leave a Comment »