To upgrade to XE4 or not to?

This is the forum for general discussion.

Moderator: 2ffat

To upgrade to XE4 or not to?

Postby Azazaz » Sun Sep 08, 2013 5:21 pm

Hi all. I'm wondering if anyone here has used Rad Studio XE4 yet? And if so, is it stable?

After a few years of skipping upgrades, I finally upgraded to XE3 in September last year, and I have found XE3, unfortunately, to be almost useless. It crashes on me regularly, frequently throws AVs, and for most of the problems I've had, support has offered no solutions.

I came across a fellow Builder the other day who said he was having all sorts of trouble with XE3, too, and that upgrading to XE4 fixed his troubles. Though not exactly the same, some of what he talked about was very similar to the problems I've experienced.

Of course I am about to try the free trial, and that may tell me something useful, but I thought it also would be worthwhile to look for additional opinions from someone who may actually be working with it daily.

I feel kind of mistreated given my experience with XE3, but I'm still in the game and considering that Embarcadero is offering the free upgrade to XE5 to anyone who upgrades to XE4 now, I'm willing to consider upgrading to XE4 if it's going to be worth it.

What do you think? If you've had a chance to work with XE4, is it more stable than XE3?
Azazaz
BCBJ Guru
BCBJ Guru
 
Posts: 103
Joined: Wed Sep 26, 2012 9:08 am

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Mon Sep 09, 2013 5:07 am

I've found XE4 to be fast, it does not crash (on my system), and it is complete. Not bug free, but very good.
Enterprise Edition.
But for me, actually, almost useless: it does not compile programs that run on XP and older, and by far the most important software I write has to run on such an old platform. In hospitals in Québec, many systems are a bit old and to renew them would be very, very expensive, so I have to keep working on XE2 for my projects.
But for a certain time, I did use XE4 and liked it.
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Re: To upgrade to XE4 or not to?

Postby Azazaz » Mon Sep 09, 2013 11:52 am

Thanks for the opinion! I'm a bit surprised about XP incompatibility though ...

I guess if I upgrade to XE4, I better keep the older version handy as I'm sure not all my user base has upgraded either ...
Azazaz
BCBJ Guru
BCBJ Guru
 
Posts: 103
Joined: Wed Sep 26, 2012 9:08 am

Re: To upgrade to XE4 or not to?

Postby rlebeau » Tue Sep 10, 2013 10:34 am

pidgi2009 wrote:it does not compile programs that run on XP and older


In what way exactly? XP is not a preferred development platform, but it is still a supported deployment platform. What problem are you having with it? Can you provide an actual example? Most API functions that are introduced in newer OS versions are delay-loaded nowadays to avoid compatibility issues with older versions.
Remy Lebeau (TeamB)
Lebeau Software
User avatar
rlebeau
BCBJ Author
BCBJ Author
 
Posts: 1375
Joined: Wed Jun 01, 2005 3:21 am
Location: California, USA

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Thu Sep 12, 2013 5:09 am

To Mr Lebeau:
Search the Technical here in this forum, for 'GetSystemTimes on Windows 2000'.

Since then, I always use XE2 for the software I make for the hospital, and sometimes XE4 for me at home. It is generaly easier and faster to stay in XE2, but I am trying to use the new strenghts in cross compiling with XE4.

I have upgraded to XE3 then XE4 (in fact, I have been with Borland and the like since the very beginning!), and bought the LMD and TMS components for each of those versions. If there is an easy workaround to make my apps run on those old systems with XE4, I would be happy as it would give more value to my "investments"!
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Re: To upgrade to XE4 or not to?

Postby rlebeau » Thu Sep 12, 2013 12:18 pm

pidgi2009 wrote:Search the Technical here in this forum, for 'GetSystemTimes on Windows 2000'.


Ah yes, forgot about that bug. Windows::GetSystemTimes() is not delay-loaded (QC #107205). That has still not been fixed, even in XE5. Officially, Embarcadero does not support Win2K anymore, but apparently they forget that this also affects XP prior to SP1. On the other hand, why do your XP customers not have SP1+ installed in the first place?
Remy Lebeau (TeamB)
Lebeau Software
User avatar
rlebeau
BCBJ Author
BCBJ Author
 
Posts: 1375
Joined: Wed Jun 01, 2005 3:21 am
Location: California, USA

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Thu Sep 12, 2013 7:07 pm

In my private life, I do work as a surgeon, precisely a bariatric surgeon (I do surgery for patients that are obese to the point of being sick from their weight). In that hospital, which is publicly funded, there are computers everywhere (maybe something like 200-300), and they are used to consult patient files. The simple move to upgrade from Windows 2000 to, say Windows Vista (!!!!) would be prohibitively expensive in dollars, in time and in logistics: many old software would no longer be compatible, upgrading would cost many, many thousands of dollars just for Microsoft, and I did not even looked at the nightmare of shutting down the computers for the upgrade (it is an hospital. We cannot spend a few days debugging the installation in the Intensive Care Unit, in the Emergency Room, in the Operating Room, etc.).
Maybe there will be an upgrade sooner or later, I know one is scheduled, but I think it is much safer to work like if Windows 2000 is there to stay for a certain time...
Until then, I almost never use my XE3, nor my XE4, and I do not plan to upgrade to XE5, as the last two did cost a lot of money, for.... nothing until now!
If at the very least there would be something like a switch that would prevent the use of GetSystemTimes() at compile time.... It would be so much easier for me!
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Re: To upgrade to XE4 or not to?

Postby rlebeau » Fri Sep 13, 2013 1:06 pm

pidgi2009 wrote:many old software would no longer be compatible


Older apps can run on newer OS versions. The only real compatibility issues would be either security-related (not following proper security practices regarding resource access, file system folder usage, etc) or hardware-related (incompatible device drivers, or apps that directly access hardware resources).

pidgi2009 wrote:If at the very least there would be something like a switch that would prevent the use of GetSystemTimes() at compile time.... It would be so much easier for me!


There is no such switch. It is hard-coded. However, if your app compiles into a stand-alone executable and does not use runtime packages, what you can do is make a copy of the RTL's Windows.pas source file (located at $(BDS)\source\rtl\win\Winapi.Windows.pas), alter it to declare GetSystemTimes() as delay-loaded (simply add the "delayed" attribute to the declaration in the unit's "implementation" section), and add the modified file directly to your project. The compiler will override the default RTL implementation with your custom implementation. As long as your app never calls TThread.GetSystemTimes(), then Windows.GetSystemTimes() will never be loaded, and since it is no longer statically linked then it won't prevent the app from running on pre-XP systems.
Remy Lebeau (TeamB)
Lebeau Software
User avatar
rlebeau
BCBJ Author
BCBJ Author
 
Posts: 1375
Joined: Wed Jun 01, 2005 3:21 am
Location: California, USA

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Sat Sep 14, 2013 7:53 am

Thank you for the explanation. I am now in the process of reinstalling XE4 to try what you wrote.
Is there a simple way to know if my app will (or won't) call TThread.GetSystemTimes()? Most of my apps make extensive use of Indy (TIdCmdTCPClient, and the like), and I do not want a call to be made to that function without me knowing it, stopping the program when I am not available!!!
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Re: To upgrade to XE4 or not to?

Postby rlebeau » Sat Sep 14, 2013 6:41 pm

pidgi2009 wrote:Is there a simple way to know if my app will (or won't) call TThread.GetSystemTimes()?


Nothing in RTL calls it, so it would only be called in your own code (unless you use any third-party code that calls it, in which case you will have to do a code review on them). The best solution would probably be to use a static analyzer that studies what your code/executable actually does.

pidgi2009 wrote:Most of my apps make extensive use of Indy (TIdCmdTCPClient, and the like), and I do not want a call to be made to that function without me knowing it, stopping the program when I am not available!!!


Indy does not use TThread.GetSystemTimes() (or Windows.GetSystemTimes() for that matter). It does not keep track of CPU usage.
Remy Lebeau (TeamB)
Lebeau Software
User avatar
rlebeau
BCBJ Author
BCBJ Author
 
Posts: 1375
Joined: Wed Jun 01, 2005 3:21 am
Location: California, USA

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Sat Sep 14, 2013 7:45 pm

OK, i will try it. I use LMD components, and MJFAF and MJVCL components. I will keep the forum updated.

For now, I do not use those calls directly, by myself.

Maybe my experiments could be of use for the other users here in the forum. I am thinking about writing a short article (tutorial) on it. What do you think of it? Even with my crippled English it could be of value, for a good laugh if for nothing else!
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Tue Sep 17, 2013 12:11 pm

OK, tried the 'delayed' workaround . It works flawlessly on the old systems.
I will reinstall XE4 on my systems and finally use my upgrade investments!
A thousand thanks!

You know that you are a bright guy?

Pierre
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Wed Sep 18, 2013 5:14 pm

Sh*t
No, it does not work. I tried on a few of the computers at work, and on one of them it does work, but I still have the very same message on all the others, that the entry point of GetSystemTimes() is unavailable on the Kernel
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Thu Sep 19, 2013 4:46 am

I won't let go.
I rebuilt everything, double checked everything, and will try again this morning on a few computers in my hospital.
I will keep the forum updated.
I do know that developping for such old systems is perhaps obsolete for most of us here, but a lot of old systems are still running and it could be interesting to know how to do it.
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Re: To upgrade to XE4 or not to?

Postby pidgi2009 » Thu Sep 19, 2013 3:00 pm

No, it definitly does not work.
I will try something else.
pidgi2009
BCBJ Veteran
BCBJ Veteran
 
Posts: 52
Joined: Sat Apr 25, 2009 11:44 am

Next

Return to General

Who is online

Users browsing this forum: No registered users and 1 guest

cron