[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Sep 18 18:32:46 1999 
Subject:Re: Q: stand alone executables made with Poplog? 
From:Aaron Sloman See text for reply address 
Volume-ID:990918.04 

"Mark Watson" <markw@markwatson.com> writes:

> Date: Sat, 18 Sep 1999 09:30:26 -0700
>
> Since the source is available, I am sure that the
> anser to my question is, ultimately, yes.
>
> Can stand alone executables be made fairly easily?
> How much runtime support is required?
>
> Thanks in advance for any info,
>
> --Mark Watson  www.markwatson.con

The following comments apply only to the Unix versions of Poplog. I
have no idea what the requirements are for the PC Windows95/98/NT
version, though I suspect the basic architecture is similar.

The main executable is the file containing the core of Pop-11, including
the incremental compiler, memory management and garbage collector, the
lightweight process mechanisms, arithmetic routines, procedures for
creating new data-types, or new instances of existing datatypes, the
main external interface routines, the facilities that access operating
system facilities (directories, reading and writing files, pipes,
timing, spawning sub-processes, interrupt handling, etc. etc.), some
support for the prolog virtual machine, a few core lisp mechanisms, and
the main mechanisms for the non-X version of the editor Ved.

All the above are included in this file,

    $popsys/basepop11

Size of the basepop11 file

    SPARC solaris a bit under 3Mbytes, (32 bit addresses)
    DEC Alpha about 3.5MBytes  (64 bit addresses)
    PC linux about 1.8 Mbytes,
    Solarisx86 just over 2Mbytes

This is not standalone, in the sense that it won't run without
various standard libraries which are dynamically linked.

I presume that whether you can re-link it statically will depend on the
linker. You could try editing the file $popsys/poplink_cmnd to see if
you can make a statically linked version, if that's all you want.

The normal poplog language systems (pop11, prolog, clisp, ml) are
provided as saved images built on top of basepop11, in the directory
$popsavelib. They cannot be run without running basepop11.

They all come with XVed and a lot of Poplog X GUI stuff included
(because that is in the startup.psv image on which everything else is
built) but it is easy to rebuild saved images without those facilities,
if you wish, by editing and running the mk* files in $usepop/pop/com/

If you wish to alter the basepop11 image, e.g. leaving out some of the
default system and including some stuff of your own, it is possible but
non-trivial except for the default cases supported in the newpop command
described in HELP NEWPOP. E.g. there are flags "-nox", "-noved" for
re-linking a reduced image. Alternatively you can try editing
    $popsys/poplink_cmnd
to leave out vedsrc, and xsrc and other things.

I have made a first attempt at explaining what is involved in
rebuilding basepop11 in the file accessible at:

    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/sysdoc/rebuilding
or
    http://www.cs.bham.ac.uk/research/poplog/sysdoc/rebuilding

In addition to reading that, and the files referred to therein, you may
have to study the format of the system source files in $popsrc, and
decide which ones you want to leave out.

E.g. if you don't expect to compile anything at run time you may even be
able to leave out the compiler mechanisms, though I have no idea if
anyone has ever tried doing that.

Likewise,if you are sure you'll never run out of memory or file
descriptors, etc. you could risk leaving out the garbage collector.

I expect there will be a lot of people building up expertise now that
Poplog is free and the sources are publicly available. So maybe a year
from now there will be more confident and detailed answers.

If you try rebuilding a reduced/standalone version, please post
a report on how you got on to comp.lang.pop. Likewise if you can think
of ways of improving the documentation!

Aaron
===
-- 
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
EMAIL A.Sloman AT cs.bham.ac.uk   (NB: Anti Spam address)
PAPERS: ftp://ftp.cs.bham.ac.uk/pub/groups/cog_affect/0-INDEX.html