My previous message to this group was sent erroneously.
I absolutely hate when it does that; I wanted to paste something into a message
and it took that as a "send" request instead of pasting the text into the
message. To prevent that, I'm not putting anything in the TO address until I'm
ready to send it, locking the system and preventing it from misinterpreting me
as transmitting a message I wasn't ready to send.
Anyway, I wrote to Bernd Oppolzer first, because I want to see full FPC made
available on the 370, possibly the zSystem and find out if he's interested in
getting involved in this. So I need to ask: how can I get this? I originally
wrote this group more than a year ago on the subject, then realized that I
couldn't figure out what was going on without a reasonable cross-reference
program, only to find there's nothing that's been done that can handle the UNIT
statement or {$IF} and {$DEFINE}/{$IFDEF} statements.
So I came to realize I need to ask two things. How to get the flags and hooks
added to the current sources and how do I enable any of the big-endian ports of
FPC to cross-compile on Windows? (I do not want to have to put up a Linux box
when I already have a copy of FPC running. The compiler is going to be text
mode, of course, so I either don't need Lazarus or can't compile it and
wouldn't anyway.)
I've been busy, I have other things I had to attend to, then I realized I
couldn't figure out what was going on without a decent cross reference program,
but nothing that's out there supports the UNIT construct, nor do they know how
to skip over {$DEFINE} {$IF} {$ELSE}, and so I stopped to write one and I was
busy with the work on that. I'm having trouble there, so I set it aside.
Anyway, I came back and realized if I can get one of the Big Endian ports
working I can just figure out what files it uses and then edit those to change
the generated assembly language and/or the object files if it makes object
files the way the Pascal 8000 compiler for the 370 from the Australian Atomic
Energy Commission did back in the late 1970s and early 1980s did.
There are two things I'd like to find out to determine how it might be possible
to get Free Pascal ported to the s370 series.
First, I want to add some of the compiler flags I mention in the description of
my attempts on the WIKI to add the s370 and/or zSystem architecture, how do I
get those flags - they do not break the build - added as hooks to the compiler
sources so that eventually a {$DEFINE S370} statement can be added to get the
compiler to build itself for the 370 (and possibly other defines depending on
the machine and OS target}? There will eventually need a new directory for the
files that the 370 and whatever OSs it uses supports, but, again, that's months
away. I have to start over, and I have to start somewhere.
I know FPC makes better "write once, run anywhere" code capability
than Java will ever touch. I wrote an application for 64-bit Windows 7
that a customer needed. I took that same code over to a 32 bit PPC
Macintosh running OS X 4.11 and the same program ran without change to
the source code other than that the fonts are larger on the Mac so I had
to shrink them a little to make the window fit. But the same unmodified
code worked exactly the same on two different machines, two different
operating systems, two different architectures. I have no doubt it would
do the same thing re-compiled for Linux, without change.
I did another program
where I used compile-time switches to set the values in a checkbox, and
when I ran that program on Windows 7, it confirmed it's running Windows
on an Intel little-endian 64-bit machine. The exact same unmodified
program when compiled and run on my Mac and set the checkboxes in a
window that told me it's a 32-bit big-endian BSD Darwin machine.
So, quoting from the commercials from US-based Wachovia Bank after it ate First
Union Bank before it itself became digested by Wells Fargo Bank, "Let's get
started."
So how would I get the constants and values added to include the s370 as a
target for FPC? Would I submit them as a bug fix request as a patch through
bugs.freepascal.org on Mantis or something else? I want to reserve a definition
number for that processor, at least for now so it has a fixed identifier so
eventually it can have its own PPU files and everything else in the toolchain.
Second, how do I create a cross-compiler that runs on Windows, for any of the
big-endian processors, so that I can see what it has to generate code for the
target machine? Given that, I can change the code to either change the
generated object file - if it does direct object files - or the assembly
language so it generates S370 assembly.
I can then run the compiler through itself to create a cross-compiler assembly
for the 370. Then I can recompile the required modules, then take the
assemblies, assemble them with a 370 assembler, producing an actual object
module, then run the program against itself and the compiler will at least
compile itself. Having done that, I can then create any necessary changes to
implement anything needed to provide the equivalent functionality and rebuild
the toolchain so it is native to the s370 and units to provide localized
services can be created as needed.
I want to see something other than C and Cobol being available as current tools
for implementing applications on the z/System mainframe. Maybe even being able
to implement CICS transactions in Pascal the way it can be used to create
full-blown Windows applications.
Any assistance anyone here can provide will be appreciated. Thank you.
Paul
________________________________
The Lessons of history teach us - if they teach us anything - that no one
learns the lessons that history teaches us._______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel