SICStus Prolog upgrade in x86 platform - sicstus-prolog

Currently we are using SICStus version :3.12.10 and patch1 (x86-linux-glibc2.3) for 32 bit platform.
My requirement: As per new requirement we have to upgrade SICStus Prolog Version 4.2.3 and x86 platform changed from 32 bit to 64 bit. could you please explain what are the code changes to be modified.
Edit: The predicates atom_codes/2, number_codes/2 are supported both Sicstus prolog version 3 and 4.similarly is there any Commonly accepted basic predicates in SICStus Prolog version 3.12.10 and SICStus Prolog version 4.2.3.could you please share if you have any reference document and link.
Edit: Is there any commonly accepted predicates in prolog version 3 and 4

First, try to run your code in 3.12.10 with the --iso option. This covers many of the changes. I.e., there was a significant change from pre-ISO to ISO. With the help of switch --iso on and off you should be able to get many of the differences.
The release notes might be helpful, too.
Then, consider that to wait until 4.3 which is currently in beta 4.3 has improved ISO conformity even further. Here is the most recent documentation.

Related

What ARM compiler version is needed for attribute(noinline) support?

I'm not sure how to find out what version of ARM compiler(armcc) is required for any given attribute to be supported.
For example __atribute__((noinline))?
See
http://www.keil.com/support/man/docs/armcc/armcc_chr1359124975804.htm
To address the titular question directly, the earliest version of armcc for which __attribute__((noinline)) is supported is version 3.0. I found that out the hard way, though; I don't know of any quick-reference for which versions introduced particular features.

Difference in Java versions

Are there any differences between these two java versions. If there are any differences how can I have the version java version "1.4.2" because that is what I have in server.
1)
java version "1.4.2_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03)
Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)
2)
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
Classic VM (build 1.4.2, J2RE 1.4.2 IBM AIX
They are very different from the implementation point of view as the first one is from Sun and the second from IBM. Since they are from different vendors, the patch level means nothing (the _06 on the Sun JDK).
From a behaviour point of view, they should be the same. Having said that, I remember some issues in the past with the IBM jdk, in which it would perform really poorly.
If you want to use IBM's version of java, you can get it from here.
I suggest that you carefully compare the "bugs fixed" sections of the respective release notes for the respective versions.
Note that the release date for the 1.4.2_06 version is 2004-12-10 (according to the release notes), while the IBM version name is "20090307" which implies that it was built ~5 years later. While there is no guarantee that the IBM version has tracked all of the fixes to that date, it is a fair assumption that they will have (at least) tracked the security-related patches.
Reason why I posted this because when I tried to do some deployment to server from command line, I am having few issues so wonder this could be difference in java versions.
Possibly, but (IMO) it is more likely that the problem is nothing to do with the version of Java. Either way, I think that an enumeration of the differences is unlikely to help you isolate your problem.
I suggest that you ask a new Question in which you describe your actual problems. We may or may not be able to help ... but I think your chance of success is greater than with your current approach.

Compilers that support C11

I was wondering if there are any compilers that support a considerable amount of the new C11 standard. Looking for features like Generic Selection etc.
Any suggestions?
Pelles C version 7.00 (Release Candidate is available now)
http://www.smorgasbordet.com/pellesc/
Your best bet is probably Clang. See the release notes for the current release and the upcoming one.
GCC 4.9 supports generic selection . It is in general bugfixing stage before release. http://gcc.gnu.org/gcc-4.9/changes.html
I think Clang supports generic selection.
Intel 18 supports nearly all of C11 and supported generic selection starting in version 16.
https://software.intel.com/en-us/articles/c11-support-in-intel-c-compiler
Cray 8.5 documents support for C11 here but I haven't tested it thoroughly. I recall that atomics have been supported for a while, because they are necessary for this project to work on Cray machines.
Full disclosure: I work for Intel, but not in the compiler team.

Any practical difference between Clang versions 2.8 and 3.1 for a C developer?

I will be working exclusively in C. Ubunutu 10.10 will retrieve version 2.8 of Clang from it's repositories and fully install it. I have compiled Clang v 3.1 from source and have added it to the path (after uninstalling Clang 2.8), but do not have access to it's man pages this way, and have an occasional nagging feeling about not having fully "installed it", though it appears to be fully functional on some testing.
Is there any practical difference between versions 2.8 and 3.1 from a C developer's (student actually) point of view? I am working exclusively in C and will not tap into it's C++ or objective C capabilities. I believe most of the development in Clang recently has been in extending it's C++ abilities.
The noticeable difference I found is that for 2.8 VLA function parameters make the compiler dump core. In 2.9 (and thus in 3.1 I suppose) this bug seems to be fixed.
Also this newer version of clang already implements part of C11, in particular _Generic.

Is Solaris or Linux the better C GUI development environment?

What might be a better choice?
I have my code (mostly C - as output from the GNU Eiffel compiler and some C++ for the GUI bindings) working with Sun Studio compiler and gcc.
But i now have to setup a new developer computer and wonder if i should use Solaris with DTrace, locklint or Linux with Valgrind etc for development.
It's just about introspecting and debugging and the development is done in GNU (SmallEiffel) and therefore there is no help in any way. But the output is plain C, so C tools help a lot.
I bought some books about the Solaris and printed the developer documentation. I have to say that it seems to be a much better development environment then all the undocumented Linux tools. But Sun Studio works also on Linux...
This is an opinion so I'm marking it Community Wiki.
Solaris' days are past. That's it, really, that's all I wanted to say, thanks for listening.
Oh, and by the way, so is AIX and HP-UX. Linux is the present and the future (at least for a while) - that's where you should be putting your effort. That's where you'll get the best bang per buck for your support dollars. That's where you'll get hordes of opinionated clowns like myself willing to give you help at the drop of a hat.
This depends totally on what you are aiming for. If you are developing primarily for Linux, create a Linux box. If your primary target is Solaris, use that. But if you plan to target both OS's, make sure that you have a box for each one. That way you will be able to test on both, and notice small bugs / issues that crop up on one platform but not the other.
Apart from that, it's up to you. If your tools are available on both platforms, and you have no other reason to pick one over the other, then just go by your personal preference. Without more information, there isn't much more advice to give.
To choose a machine as your main dev platform... It's simple: What suits you best?
"Linux with Valgrind etc"
or
"Solaris with DTrace, locklint"
The environment and toolset is markedly different, even if you can use Sun Studio in both. In fact, why are you doing this question, what is bothering you about Solaris? That should give you some ideas. If you've never used Linux as a main dev platform, you should to be able to compare and switch back if necessary. Because, as I said, the toolset is markedly different, even when GNUing Solaris.
Lastly, don't forget if you aim for cross platform code you should test it in all platforms where it is supposed to run on.
I recently said good-bye to my Sun workstation and have moved to x64 Linux. I miss the stability of Solaris on Sun hardware...nVIDIA driver issues are making me crazy.
Though I like developing on Solaris WITH Sun hardware, the following two things bothered me the most about the platform:
If you want to use the latest version of libraries, you'll have to build them yourself every time. Blastwave helps out in the Solaris world, but often the packages are several versions behind. Installing Boost was quite challenging on my Sparc hardware and required a lot of study and learning just to get Boost installed.
Availability of tools is quite limited, and often free or developer versions of commercial software are not available for the Solaris OS.
If DTrace is the "killer application" for you, take a look at STrace for Linux and see if it offers the same features you're looking for. The docs are somewhat lacking in Linux, but you can usually find what you're looking for in man pages, mailing lists and what not.
Neither, Mac is best.
Mostly because you can have the Xcode IDE.

Resources