Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/5/84; site ssc-vax.UUCP
Path: utzoo!linus!philabs!cmcl2!seismo!harvard!talcott!panda!genrad!decvax!tektronix!uw-beaver!fluke!ssc-vax!keith
From: keith@ssc-vax.UUCP (Keith Nemitz)
Newsgroups: net.micro.mac
Subject: PD Modula2 Loader: How it works!
Message-ID: <87@ssc-vax.UUCP>
Date: Mon, 5-Aug-85 13:49:06 EDT
Article-I.D.: ssc-vax.87
Posted: Mon Aug  5 13:49:06 1985
Date-Received: Sat, 10-Aug-85 04:42:51 EDT
Distribution: net
Organization: Boeing Aerospace Co., Seattle, WA
Lines: 33

This is a quick summary of the Loader application used in the Public
Domain Modula-2 compiler for mac.

After requesting for a code file to load and execute, the Loader
reserves a non-relocatable block in the mac's memory where the
program will execute.  Get this:

The compiler generates object code that includes the use of absolute
memory references.  Apparently the loader 'fixes' the code in memory
and changes any absolute references to reflect the position in
memory.  Woeful tidings to anyone who hopes to generate CODE
segments from the object code files produced by the compiler.

The advantageous side is that compiled programs run pretty snappily.
These are some benchmarks that I came up with.

Benchmark                 Consulair C 1.56       PD Modula-2
---------                 ----------------       -----------
Sieve compile time                30s                 35s
Sieve link time                   40s                 55s
Execution time                   4.7s                7.4s

Integer math test execution time:  4s                5-6s

Array Lookup test execution time:  6s                4-5s

Ackerman's (proc calls) ex time:   5s                  4s

Price                           $375.00    Free/Zip/Zero/Null/None!!

Need I say more?

				      keith