Comments posted to pop-forum email list/comp.lang.pop news group by Brent Fulgham after trying the OSX version of poplog. Date: Tue, 21 Mar 2006 12:11:36 -0800 (PST) From: Brent Fulgham Subject: pop-forum A look at Poplog on the Macintosh 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