[comp.os.minix] MINIX C Compiler

mmdf@udel.UUCP (06/03/88)

According to ast:
No concessions are being made to MS-DOS or any of its compilers. 
 A number of people have said that the MINIX
C compiler is slow.  Since I don't have (or want) any MS-DOS compiler, I
can't make a comparison, but I did run the following timing test.  I removed
all the .s files from fs and typed: time make.  The 20 compilations plus
the link took 5:57 real time on my Z-248, which has 1.5 MB RAM and an ST-225
hard disk (70 msec access time).  It seems to me that this isn't so awful.
Obviously a PC will be slower, but that should hold proportionally for all
compilers.


I have a copy of Minix I purchased right after the textbook came out.  In order
to get it to run on my hard disk (I use genuwine PC-ATs) I had to start
recompiling Minix out of the box.  The performance of the C compiler was
horrendous.  To make the kernel was something which seemed I recall took on the
order over 1/2 hour.  While the system was running on floppy disks, it didn't
appear to be I/O bound on floppy disks.  Compiling things like printf("hello
world\n") took noticable amounts of time (on the order of a minute).  Still does
with my distribution C compiler.  Which is why I stopped using the Minix C
compiler.  Which is why I'm (somewhat) anxiously looking for other solutions to
native compiling on Minix (gcc? small-c?).  

Andy reports make fs takes 5:57.  On my 8Mhz AT with Aztec, it takes a shade
under 5 minutes.    5:57 is more than acceptable.  What I don't understand is
why my Minix C compiler out of the box is so bad.  I may look at the problem
some more -- maybe one of the sizes is wrong so one of the programs is doing
byte by byte I/O (instead of buffered).  Anyone out there have any answers?  I
may start timing each pass and see what's going on my system.  HELP!!

BTW -- At the moment, I'm finding the dreaded Ms/Dos far pointers most useful.
Instead of the S/D/T segments, I'm going to start having kernel/fs/mm handle 32
bit pointers and map in user space before operating on it.  This will lead to
the ability to run more complicated memory models (specifically 1 64K code
segment/1 64K initialized data/1 64K stack/N 64K heap segments for moderate N).
Anyone else doing this?
  
marty
ARPA:	leisner.henr@xerox.com
GV:  leisner.henr
NS:  martin leisner:henr801c:xerox
UUCP:	nsc!nscimg!amps!marty
 

rmtodd@uokmax.UUCP (Richard Michael Todd) (06/04/88)

In article <2855@louie.udel.EDU> Leisner.Henr@xerox.com (Marty) writes:
>I have a copy of Minix I purchased right after the textbook came out.  In order
I assume that means v1.1.
>to get it to run on my hard disk (I use genuwine PC-ATs) I had to start
>recompiling Minix out of the box.  The performance of the C compiler was
>horrendous.  To make the kernel was something which seemed I recall took on the
>order over 1/2 hour.  While the system was running on floppy disks, it didn't
It's even worse on my system, a PC/XT clone.  The first time I recompiled the
kernel I sat down to watch Blake's 7.  The tv show was finished before the
compile was (~55 min.)
  Thing is, both Marty and I still have the v1.1 compiler.  Is v1.2 much
faster? Inquiring minds want to know.
>compiler.  Which is why I'm (somewhat) anxiously looking for other solutions to
>native compiling on Minix (gcc? small-c?).  
  Not likely.  I can claim a good deal of experience with small-c, having
ported it to my TRS-80 many years ago.  If you don't mind having a compiler
which only supports int, char, int *, char *, int [] and char [] types, 
small-C shouldn't be too difficult to port, especially if you start with
a version already hacked to produce 8088 code (e.g. the one announced in 
this month's Byte).  Frankly I don't think it's worth it.  And from what I've
heard porting GCC to the 8088 or 80286 would be decidedly non-trivial--
Richard Stallman didn't design his compiler to handle braindead architectures....

>may start timing each pass and see what's going on my system.  HELP!!
As I recall, the majority of the time is spent in cg and asld.  (This from
much experience pushing F1 to see what the machine was up to, and not 
terribly scientific.)
>bit pointers and map in user space before operating on it.  This will lead to
>the ability to run more complicated memory models (specifically 1 64K code
>segment/1 64K initialized data/1 64K stack/N 64K heap segments for moderate N).
>Anyone else doing this?
Hmm... sounds interesting.  What would be even more interesting is some sort
of overlay scheme with multiple code segments so we can have effective code
sizes >64K.  I don't really know enough about 286 architecture to know how
feasible it would be...
-- 
Richard Todd		Dubious Domain: rmtodd@uokmax.ecn.uoknor.edu
USSnail:820 Annie Court,Norman OK 73069 	Fido:1:147/1
UUCP: {many AT&T sites}!occrsh!uokmax!rmtodd, but don't be surprised if I
don't answer--our mailer is *very* *very* hungry :-<

dmk@dmk3b1.UUCP (David Keaton) (06/08/88)

Let's get some real numbers here.  How many LINES of code BEFORE CPP are
you talking about compiling?  And how many CHARACTERS does that work out
to AFTER CPP?  And how long does it take to compile on the fastest
configuration available?  Once we get these numbers, we can start
comparing it with other compilers.
-- 
					David Keaton
					dmk%dmk3b1@uunet.uu.net
					uunet!dmk3b1!dmk

HELMER%SDNET.BITNET@vm1.nodak.edu (Guy Helmer) (01/04/89)

Over the long weekend I mostly upgraded Minix from 1.1 to 1.2.  I say
mostly because no matter what I try, I cannot get a good executable
for the 1.2 version of make.c.  The compiler either trashes the filesystem
that I mount on /tmp or generates a binary that locks Minix solid.
Any thoughts on what is going wrong?

- Guy Helmer
  BITNET: HELMER@SDNET
  uucp:   ghelmer@loft386     ...!killer!warble!loft386!ghelmer

news@heitis1.uucp (News Administrator) (09/14/90)

In the MINIX 1.5 release, are the full sources for the C compiler and
assembler included with the system.  I have been thinking of buying a
copy, and this would be an additional selling factor to me 8-).

	TIA,
	brian

ast@cs.vu.nl (Andy Tanenbaum) (09/14/90)

In article <1990Sep13.202446.9777@heitis1.uucp> news@heitis1.uucp (News Administrator) writes:
>
>In the MINIX 1.5 release, are the full sources for the C compiler and
>assembler included with the system.

No.  This hasn't changed from previous versions.  The compiler itself
has not changed since 1.3, and UniPress and Transmediair (see preface of
the book) are still selling the sources.

Andy Tanenbaum (ast@cs.vu.nl)