I took a quick look at the state of Poplog on the
Macintosh, as well as a quick look at the current
state of the Openpoplog source tree and the current
Birmingham tarball.
First, the good news:
1. I was able to rebuild Poplog from the v15.53 OS X
sources (actually, they internally version at v15.54).
If you are running a recent version of the Apple
XCode tools, you will need to switch to the gcc-3.3
compiler (since the linking commands and includes in
the apple-specific files are based on this version of
the compiler).
So, the first step in rebuilding Poplog is:
# gcc_select 3.3
Then you can follow the rest of the steps in the
rebuild process.
2. Poplog seems to work properly on the current
version of OS X (10.4.5), at least under PowerPC.
3. The "ejecutar" script (described in the "NOTE FROM
JULIO ACOSTA" section of
http://www.cs.bham.ac.uk/research/poplog/osx/AREADME.txt
does indeed appear in the source archive. I changed
it to a script called "buildall.sh" with English
messages.
4. I found that newpop11 got into some kind of loop
(eating much of the available CPU) while attempting to
build the common lisp PSV file. There was no such
problem building the core pop11, prolog, ML, or other
images.
5. I did not attempt integrating the X11 yet.
6. As a first step, I am merging in the v15.6 changes
to my local v15.53e (Mac) software. When I complete
this task, I'll post the tarball somewhere for
interested parties to download. I've already merged
and built the "libpop" stuff, and am working on the
(much larger) task of merging the sources in the
pop/src directory now.
Now, the "not as good" news:
I took a look at the Poplog.org CVS archive, and found
that it is fairly out of date (v15.53e, versus v15.6).
I'll see about updating the archive once I complete
the Mac merge and verify it still builds under Linux.
Unfortunately, there seems to be a fair lack of
communication between the various Poplog ports. The
UNIX/Linux and Mac ports are fairly closely related
(and should be easy to merge), but the PC port has
lots of specialized changes that are not present in
the main Poplog tarball.
I'm also a bit confused by the assembly file
organization. The UNIX/Linux and PC variants have a
handful of ASM files, but the OS X (PowerPC) port has
a good score or two of assembly files. They are named
"file.a", while the UNIX/Linux versions are called
"file.s". The Windows versions are called "file.s",
but are different than the UNIX/Linux versions.
I would like to propose the following:
1. The Pop11 sources should be merged into common
files that use preprocessor guards to separate
platform-specific code. (E.g., #_IF DEF WIN32 and so
forth).
2. The platform-specific assembly files should
probably live in subdirectories of pop/src, perhaps
called pop/src/ppc and pop/src/x86. The build tools
should look in the appropriate directory for the
platform being built.
3. The handful of *.c and *.h files should be merged
into common files using preprocessor guards, just as
we do for the Pop11 sources. I've taken an initial
stab at this for the OS X sources, and will look at
integrating the windows build later.
Once we have completed this merge process, I would
suggest we switch to using the Openpoplog.org CVS as
the benchmark distribution. The tarballs currently
appearing on the Birmingham website can be generated
>From the CVS sources. This will allow all platform
ports to stay in sync, and avoid the "Tower of Babel"
effect we currently have.
I think if we hope to capitalize on the interest of
the users from the Linux group, we will need this kind
of infrastructure in place to help coordinate those
efforts.
I'll report back when I complete the OS X port of the
v15.6 sources.
Thanks,
-Brent
|