[fpc-devel] Re: Statistics on compiling the Free Pascal compiler for Win32
pascaldragon at googlemail.com
Tue Jan 17 18:02:04 CET 2012
Am 17.01.2012 15:39, schrieb Paul Robinson:
> John Lee wrote:
>> Why not ask the fpc developers (via fpc-devel) for access to the fpc svn for your new code.
> That's not a bad idea, I'll probably do that, I wanted to get an idea of what's involved first before going to a lot of trouble. I wanted to see if I was capable first, I have some disabilities that might cause problems.
Now I get it! You're the one who wrote the zSeries How-To on the Wiki...
we need to talk! Because according to your according to your How-To you
might be heading into the wrong direction and I want to correct that
before you've done too much work.
> I do have one little question, I have Mercurial installed, I can also install SVN, and in fact I had it on another machine, and I'm just curious, as to why they use SVN over Mercurial, is it just that that was what was available at the time and it works satisfactorily enough for the project's purposes, that it's better than Mercurial, or that it's just one of those Coke vs. Pepsi comparisons, they're (CVS vs. SVN vs. Mercurial) just different ways of doing the job like different word processors (or, (say it softly) different programming languages!)?
You can search the mailing list archive (fpc-devel or fpc-pascal, I
don't know) for that, there where already some discussions about that.
There is AFAIK a Mercurial mirror though (and a Git mirror as well), but
the main source is the Subversion repository (I myself used git-svn
while I worked on some compiler features).
> I sometimes wonder if programmers at the Rite Aid or Walgreens drug store chains use CVS. (CVS is a competing drug-store chain in the US as well as the name of a source-code repository system.) Oh well, it was a better joke when I thought of it.
FPC switched from CVS to SVN a few years ago.
>> This'll have advantage that it'll be easier for the fpc gurus to advise on any changes needed
>> for the new target, and of course it'll make it available to everyone else too. As you probably
>> know fpc has been ported to many different architectures from the original
>> linux& win32 i386, big/little endian, 32/64 bits alpha/sparc etc - tho' not such a
>> different architecture as yours maybe ! - so they know quite a bit about the best way to do it.
> On the pages on the Free Pascal Wiki I'm writing on my attempts to port the Free Pascal Compiler over to the IBM 370 series machine (known now as zSystem), with the initial target being an IBM 370 on OS/VS1, I note the number of many differences, considering that the machine is an upgrade of a design developed in the late 1970s. (Some of these aren't listed there, I'm just remembering some of them.)
> * It's Big Endian (I believe the PDP-11 minicomputer is also.) Personally as far as visualizing data I prefer Big Endian over Little Endian, but as long as the processor works accurately it doesn't really matter.
> * There are 16 registers of 32 bits but in general practice only about 10 of them are available.
> * The most you can access at any one point from a register is 4K, whether that's a branch in code, or a piece of data. If you're going to access more than 4K, you need to set aside more registers. If you have very large procedures (or a very large main program), or you need to work with very large data structures you may have to break it up into smaller ones, or, most likely, I'll put in some switches to tell the compiler basically to make all branches into potential "long jump-style" ones, where each branch is done similar to a procedure call instead of a "local" branch.
> * Only 32-bit operations are available.
> * Only tables are available, in-line constants are generally not (this is not exactly true, but is close)
> * It's internal character set is EBCDIC, not ASCII. Also, the character set is not continuous along the alphabet, e.g. doing a test on ['a'..'z'] or ['A'..'Z'] will fail because it will pick up other non-alphabetic characters.
> A lot of these restrictions are lifted on the zSystem which is a 64-bit machine, but right now I don't have access to one or the means to test on it (I first have to get the compiler to generate on what I can work with. So as the saying goes, let's get to "crawl" first before we try to walk or run!)
> Since the machine I have to emulate for targeting the compiler toward is the 370 architecture (as opposed to the zSystem) using the OS/VS1 non-interactive (batch) operating system, I'll target the less capable machine/OS, and have (again) more options for things like targeting 64-bit processing, for other operating systems than OS/VS1, etc.
I will try to write back regarding your port tomorrow, because today I
haven't got anymore time for lengthy explanations (work related reasons).
More information about the fpc-devel