On 21/10/11 8:49 a, Michael McGaw wrote (in part):
[...]
> Thanks- I have the MacMeth sources, and am somewhat familiar with the
> overall project of Ramses.
Yes, a difficult choice to start from, given that it calculates binary
68k code directly.
>
> Chris and I have been in conversation about this, also. In fact, I
> have been in conversation with a great many about this, and my post
> here is sort of a 'last ditch, casting of a net' type of approach to
> see if there's anyone who reads this list who might be able to point
> me to where the single pass M-code generating version of this compiler
> might be.
The P-System had a Modula-2 compiler (although it produced a version of
P-code, rather than M-code). Whether anyone on the list can help is
moot. (You may have already considered this.)
>
> As for the systems on which I wish to use this: that's just it. With
> the port done reasonably well, it could be used just about anywhere.
A worthy goal -- the community would thank you.
> Right now, I have an acceptable and working system, but, the porting
> of the multipass compiler is not for the faint of heart, as pointers
> and CARDINALs are presumed the same size and passed this way on the
> interpass files. There are many consequences of this meandering
> through the compiler. Takes a while to tease through all that.
> Moreover, one needs to focus on hosting of the compiler on a specific
> target, whereas the linker and interpreter are much easier to move
> around. The single pass compiler ought to make the portabilty problem
> go away almost completely.
Three other compilers come to mind but they also involve substantial
work. (Again, you may have already considered them.)
1. The ULM compiler is a multi-pass compiler (with versions producing
68k and Sparc code -- it runs well on Solaris 10 albeit in 32-bit mode).
The intermediate pass file structure is very well documented, though.
2. John Gough released source to a very specific version of the GPM
compiler a few years ago. (I understand that he is unable to release
other back-ends due to licensing issues.) I am informed that the front
end emits D-code (an enhanced M-code and well-documented). They wrote
several back-ends (not released in source) and source to their
almost-ISO libraries is available. The Linux binaries do not run on
recent Linux distributions and the Sparc version only runs on Solaris 8
and 9.
3. Mocka was written to be portable via BEG. Unfortunately, the only
files released by BEG are for Intel and IBM 360 (and a BEG binary only
runs on an old version of Linux). I understand that attempts to contact
the author of BEG to release the source to this early version have
failed. (BEG is now private and their sales people do not seem to
interested.)
>
> Lastly, again as to why do this: such a setup I think would be quite
> useful for being able to continue to run M2 regardless what comes in
> terms of computing targets.
Again, a worthy goal and thank you from all of us who use multiple
platforms.
G.