Subscribe to this list via RSS Blog posts tagged in CodeGear

Posted by on in Blogs
Delphi-Treff interview–In English I recently did an email interview with Martin Strohal of the Delphi-Treff Team. I got permission to publish the original English version (Since my German is a little rusty...) Delphi XE2 will be published this year. What are the key features of this new release? (Is this the release named "Pulsar"?) Customers will now be able to target Windows 32bit, Windows 64bit, and Mac OSX 32bit. XE2 introduces a new cross-platform GUI-centric, GPU accelerated component framework called, FireMonkey. VCL also...
Tags: CodeGear

Posted by on in Blogs
More x64 assembler fun-facts–new assembler directives The Windows x64 ABI (Application Binary Interface) presents some new challenges for assembly programming that don’t exist for x86. A couple of the changes that must be taken into account can can be seen as very positive. First of all, there is now one and only one OS specified calling convention. We certainly could have devised our own calling convention like in x86 where it is a register-based convention, however since the system calling convention was already register based, that would have be...

Posted by on in Blogs
Another installment of “Talk Amongst Yourselves” Let’s start thinking about thread pools. How do you manage a general purpose thread pool in the face of no-so-well-written-code? For instance, a task dispatched into the thread pool never returns, effectively locking that thread from ever being recycled. How do you monitor this? How long do you wait before spooling out a new thread? Do you keep a “monitor thread” that periodically checks if a thread has been running longer than some (tunable) value? What are the various techniques for addressing...

Posted by on in Blogs
This is the last day… In this office. I’ve been in the same physical office for nearly 15 years. After years of accumulation, it now looks positively barren. Beginning next Monday, March 29th, 2010, I’ll be in a new building, new location, and new office. The good thing is that the new place is a mere stone’s throw from the current one. It will be great to leave all the Borland ghosts behind....
Simple question… very hard answer… Talk amongst yourselves… I’m going to try a completely different approach to this post. I’ll post a question and simply let the discussion ensue. I would even encourage the discussion to spill over to the public newsgroups/forums. Question for today is: How can you effectively unit-test synchronization primitives for correctness or more generally, how would you test a concurrency library? Let’s see how far we can get down this rabbit hole ;-)....

Posted by on in Blogs
A Happy Accident and a Silly Accident By now you’re all aware that we’re getting ready to move to a new building here in Scotts Valley. This process is giving us a chance to clean out our offices and during all these archeological expeditions, some lost artifacts are being (re)discovered. Note the following: These are some bookends that my father made for me within the first year after moving my family to California to work on the Turbo Pascal team. He made these at least two years before Delphi was released, and at a few 6 mont...

Posted by on in Blogs
What. The. Heck. Is. This? I simply cannot explain this. At. All. This was on a bulletin/white-board in the break area. I’d never noticed it because it was covered with photos from various sign-off (final authorization to release the product) celebrations. Lots of photos of both past and present co-workers, many thinner and with more hair ;-). Since we’re in the process of cleaning up in the preparation for moving to our new digs, it is interesting what you find… I presume this image has been on this whiteboar...

Posted by on in Blogs
A case when FreeAndNil is your enemy It seems that my previous post about FreeAndNil sparked a little controversy. Some of you jumped right on board and flat agreed with my assertion. Others took a very defensive approach. Still others, kept an “arms-length” view. Actually, the whole discussion in the comments was very enjoyable to read. There were some very excellent cases on both sides. Whether or not you agreed with my assertion, it was very clear that an example of why I felt the need to make that post was in order. I ...

Posted by on in Blogs
Requiem for the {$STRINGCHECKS xx} directive… It’s time. It’s time to say goodbye to the extra behind-the-scenes codegen and overhead that was brought to us during the Ansi->Unicode transition. We’ve shipped two versions with this directive on by default. The Ansi world is now behind us. It’s only real purpose in life was to assist C++Builder customers to more easily transition to C++Builder 2009 and 2010. There are some rare cases where an event handler that was declared in a C++ form/datamodule with an AnsiString parameter *could* be c...

Posted by on in Blogs
Divided and Confused Odd discovery of the day. Execute the following on a system running a 32-bit version of Windows (NOT a Win64 system!): program Project1; {$APPTYPE CONSOLE} uses SysUtils; begin try MSecsToTimeStamp(-1); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. It should print out the following: EIntOverflow: Integer overflow Now run the exact same (32bit) binary on a Win64 system, this is what you’ll get: EDivByZero: Division by zero Give it a try. We...

Check out more tips and tricks in this development video: