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).
Regards,
Sven
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel