[comp.lang.forth] CommForth executable size?

jyouells@pnet02.cts.com (John Youells) (08/05/88)

  The information on CommFORTH was very interesting to me.  I do have one
question.  Can someone tell me the executable size of a simple 'hello world'
type program for the Amiga after a Comgen or turnkey.  I enjoy writing utility
programs for the Amiga and code size counts in a mutitasking environment ;)

opps - that's ComFORTH not CommFORTH ...

Thanks 

UUCP: {hplabs!hp-sdd!crash, cadovax}!gryphon!pnet02!jyouells
INET: jyouells@pnet02.cts.com

A-PIRARD@BLIULG11.BITNET (Andre PIRARD) (08/08/88)

>  The information on ComFORTH was very interesting to me.  I do have one
>question.  Can someone tell me the executable size of a simple 'hello world'
>type program for the Amiga after a Comgen or turnkey.  I enjoy writing utility
>programs for the Amiga and code size counts in a mutitasking environment ;)

Well, a null program COMGENs to a 1124 bytes module on MSDOS.
I can't tell for Amiga, but it must be in these whereabouts.
I can ask our Amiga specialist a test if you like.
But Comforth initialization uses Forth primitives at will and
we made no effort to optimize the null program size. This would
be useless as the smallest program would include the few
primitives that could be avoided.
In fact, the program
: RUN
   ." Hello world " CR
   127 20 DO I EMIT LOOP
   ;
compiles to a 1162 module, which shows the 1124 bytes already
contain a quite useful set of primitives.
This is module size. Execution size is still 64Kb, unless one
includes an <n DATA.SIZE> statement to instruct COMGEN to set the
bootup variables so that initialization allocate a smaller memory
area which is n + module-size + tib-area + user-area + stacks.

For comparison, a menu driven Kermit program written with Comforth
crams a lot of features in a 21000 bytes module which grows to 27000
when this module has compiled the messages files (it's designed to be
language independent). By the way, these figures indicate what part
of the code messages can take. In a 64K environment, it's a useful
feature to be able to test an application with messages reduced in size.
When the application is COMGENed, the smaller module loads the
full-length messages file and regenerates itself.

Keeping modules size low is interesting for multiprogramming environments
indeed, but also to conserve disk space. Comforth is designed to be used
on the C64 just as on the IBM PC. We have a guy constantly switching
graphic programs development between his PC at work and his C128 at home.
Using smaller machines must not be a shame and can be very useful for a wide
range of applications. Quite large ones can be written by chaining modules,
as long as the whole set can fit on one disk.

Andr .