🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.modula2
Article #4182

Re: Re: Modula2's godawful IO.

#4182
From: Andy Valencia
Date: Thu, 14 Apr 1988 16:35
244 lines
13284 bytes
>/ hpindda:comp.lang.modula2 / mike@turing.UNM.EDU (Michael I. Bushnell) /  1:18 pm  Apr 12, 1988 /
>In article <730@mhuxm.UUCP> gak@mhuxm.UUCP (Vincent Hatem) writes:
>
>On 4.3 BSD on a Vax, I get the following:
>
>% size doprnt.o
>text	data	bss	dec	hex
>2196	36	0	2232	8b8
>
>% size printf.o
>text	data	bss	dec	hex
>40	36	0	76	4c

This isn't quite the whole picture; printf() is part of the
buffered I/O system, and so quite a bit of junk has to come
in with it.  What follows shows what comes in on an HP-9000/850
(and perhaps proves that compiler people should be kept
on a short leash :->).  Here's the poison:

-----------------------------------------------------
Script started on Thu Apr 14 09:28:14 1988
$ cat yow.c
main(){
	printf("Hello, world\n");
}
$ cc -O -o yow yow.c
$ size yow
15844 + 3720 + 2604 = 22168
$ nm yow


Symbols from yow:

Name                    Value   Scope  Type    Subspace

$global$            |1073741824|extern|data   |$GLOBAL$
$START$             |      4523|extern|priprog|$CODE$
$dp$                |1073741824|extern|data   |$GLOBAL$
$ARGV               |1073745536|extern|data   |$PFA_COUNTER$
$START_RTN$         |      4568|static|code   |$CODE$
$UNWIND_START       |     17144|extern|code   |$UNWIND_START$
$UNWIND_END         |     17896|extern|code   |$UNWIND_END$
$RECOVER_START      |     17896|extern|code   |$RECOVER_START$
$RECOVER_END        |     17896|extern|code   |$RECOVER_END$
$PFA_C_START        |1073745544|extern|data   |$PFA_COUNTER$
$PFA_C_END          |1073745544|extern|data   |$PFA_COUNTER_END$
_mcount             |      4575|extern|entry  |$CODE$
$THISMODULE$        |1073741824|static|data   |$DATA$
main                |      4587|extern|entry  |$CODE$
$THISMODULE$        |1073741840|static|data   |$DATA$
printf              |      4619|extern|entry  |$CODE$
$THISMODULE$        |1073741840|static|data   |$DATA$
environ             |1073746576|extern|data   |$BSS$
_start              |      4739|extern|entry  |$CODE$
$THISMODULE$        |1073741840|static|data   |$DATA$
exit                |      4779|extern|entry  |$CODE$
$THISMODULE$        |1073741840|static|data   |$DATA$
_iob                |1073741848|extern|data   |$DATA$	<- Buffering system
_smbuf              |1073746584|extern|data   |$BSS$
_bufendtab          |1073742808|extern|data   |$DATA$
_sibuf              |1073747112|extern|data   |$BSS$
_sobuf              |1073745544|extern|data   |$BSS$
_stdbuf             |1073743052|extern|data   |$DATA$
_lastbuf            |1073741840|extern|data   |$DATA$
$THISMODULE$        |1073743064|static|data   |$DATA$
_lowdigit           |      4819|static|entry  |$CODE$
_dowrite            |      4871|static|entry  |$CODE$
_doprnt             |      5043|extern|entry  |$CODE$
$THISMODULE$        |1073743200|static|data   |$DATA$
errno               |1073748144|extern|data   |$BSS$
_cleanup            |      9819|extern|entry  |$CODE$
fclose              |     10087|extern|entry  |$CODE$
_exitcu             |      9895|extern|entry  |$CODE$
fflush              |     10263|extern|entry  |$CODE$
_xflsbuf            |     10903|extern|entry  |$CODE$
_flsbuf             |     10415|extern|entry  |$CODE$
_wrtchk             |     11127|extern|entry  |$CODE$
_bufsync            |     11707|extern|entry  |$CODE$
_findbuf            |     11339|extern|entry  |$CODE$
$$divide_by_constant|      2051|extern|milli  |$MILLICODE$	<- RISC divides
$$divI_2            |      2051|extern|milli  |$MILLICODE$	   are nasty!
$$divI_4            |      2067|extern|milli  |$MILLICODE$
$$divI_8            |      2083|extern|milli  |$MILLICODE$
$$divI_16           |      2099|extern|milli  |$MILLICODE$
$$divI_3            |      2115|extern|milli  |$MILLICODE$
$neg3               |      2136|static|code   |$MILLICODE$
$pos                |      2336|static|code   |$MILLICODE$
$neg                |      2420|static|code   |$MILLICODE$
$$divU_3            |      2159|extern|milli  |$MILLICODE$
$$divI_5            |      2183|extern|milli  |$MILLICODE$
$neg5               |      2200|static|code   |$MILLICODE$
$$divU_5            |      2227|extern|milli  |$MILLICODE$
$$divI_6            |      2251|extern|milli  |$MILLICODE$
$neg6               |      2272|static|code   |$MILLICODE$
$$divU_6            |      2299|extern|milli  |$MILLICODE$
$$divU_10           |      2323|extern|milli  |$MILLICODE$
$pos_for_17         |      2352|static|code   |$MILLICODE$
$$divI_10           |      2391|extern|milli  |$MILLICODE$
$neg10              |      2408|static|code   |$MILLICODE$
$neg_for_17         |      2436|static|code   |$MILLICODE$
$$divI_12           |      2479|extern|milli  |$MILLICODE$
$neg12              |      2496|static|code   |$MILLICODE$
$$divU_12           |      2515|extern|milli  |$MILLICODE$
$$divI_15           |      2535|extern|milli  |$MILLICODE$
$neg15              |      2548|static|code   |$MILLICODE$
$$divU_15           |      2559|extern|milli  |$MILLICODE$
$$divI_17           |      2571|extern|milli  |$MILLICODE$
$neg17              |      2596|static|code   |$MILLICODE$
$$divU_17           |      2623|extern|milli  |$MILLICODE$
$u17                |      2632|static|code   |$MILLICODE$
$$divI_7            |      2651|extern|milli  |$MILLICODE$
$neg7               |      2728|static|code   |$MILLICODE$
$7                  |      2652|static|code   |$MILLICODE$
$pos7               |      2668|static|code   |$MILLICODE$
$1                  |      2708|static|code   |$MILLICODE$
$2                  |      2720|static|code   |$MILLICODE$
$8                  |      2732|static|code   |$MILLICODE$
$neg7_shift         |      2744|static|code   |$MILLICODE$
$3                  |      2784|static|code   |$MILLICODE$
$4                  |      2800|static|code   |$MILLICODE$
$$divU_7            |      2811|extern|milli  |$MILLICODE$
$$divI_9            |      2835|extern|milli  |$MILLICODE$
$neg9               |      2860|static|code   |$MILLICODE$
$$divU_9            |      2887|extern|milli  |$MILLICODE$
$$divI_14           |      2915|extern|milli  |$MILLICODE$
$neg14              |      2924|static|code   |$MILLICODE$
$$divU_14           |      2919|extern|milli  |$MILLICODE$
$$remI              |      2939|extern|milli  |$MILLICODE$
t1                  |      2972|static|code   |$MILLICODE$
finish              |      3236|static|code   |$MILLICODE$
$THISMODULE$        |1073743200|static|data   |$DATA$
__ctype             |1073743200|extern|data   |$DATA$
_ctype              |1073743216|extern|data   |$DATA$
_ectype             |1073743204|extern|data   |$DATA$
_1kanji             |1073743208|extern|data   |$DATA$
_2kanji             |1073743212|extern|data   |$DATA$
$THISMODULE$        |1073744248|static|data   |$DATA$
ecvt                |     11763|extern|entry  |$CODE$
cvt                 |     11839|static|entry  |$CODE$
fcvt                |     11803|extern|entry  |$CODE$
mult32              |     14043|static|entry  |$CODE$
$THISMODULE$        |1073745256|static|data   |$DATA$
isatty              |     14691|extern|entry  |$CODE$
$THISMODULE$        |1073745256|static|data   |$DATA$
malloc              |     14739|extern|entry  |$CODE$	<- Allocates for
free                |     15439|extern|entry  |$CODE$	    buffered I/O
realloc             |     15491|extern|entry  |$CODE$
memcpy              |     15699|extern|entry  |$CODE$
byteloop            |     15952|static|code   |$CODE$
done                |     15968|static|code   |$CODE$
not_aligned         |     15800|static|code   |$CODE$
chekchunk           |     15764|static|code   |$CODE$
chunks              |     15728|static|code   |$CODE$
back_porch          |     15780|static|code   |$CODE$
subchunk            |     15768|static|code   |$CODE$
chkchnk2            |     15876|static|code   |$CODE$
chunk2              |     15820|static|code   |$CODE$
bp_0                |     15912|static|code   |$CODE$
subchnk2            |     15880|static|code   |$CODE$
bp_1                |     15916|static|code   |$CODE$
encore              |     15956|static|code   |$CODE$
$THISMODULE$        |1073745288|static|data   |$DATA$
_nl_name            |1073745352|extern|data   |$DATA$	<- For native language
_nl_langid          |1073745288|extern|data   |$DATA$
_nl_radix           |1073745292|extern|data   |$DATA$
_sh_low             |1073745296|extern|data   |$DATA$
_sh_high            |1073745300|extern|data   |$DATA$
_nl_char_size       |1073745304|extern|data   |$DATA$
_nl_direct          |1073745308|extern|data   |$DATA$
_nl_dgt_alt         |1073745368|extern|data   |$DATA$
_nl_dascii          |1073745404|extern|data   |$DATA$
_nl_punct_alt       |1073745424|extern|data   |$DATA$
_nl_pascii          |1073745492|extern|data   |$DATA$
_nl_space_alt       |1073745312|extern|data   |$DATA$
_nl_mode            |1073745316|extern|data   |$DATA$
_nl_order           |1073745320|extern|data   |$DATA$
_nl_outdigit        |1073745324|extern|data   |$DATA$
_nl_era             |1073747072|extern|data   |$BSS$
_seqtab             |1073745328|extern|data   |$DATA$
_pritab             |1073745332|extern|data   |$DATA$
_tab21              |1073745336|extern|data   |$DATA$
_tab12              |1073745340|extern|data   |$DATA$
_chrtab             |1073745344|extern|data   |$DATA$
strlen              |     15979|extern|entry  |$CODE$
$null_ptr           |     16068|static|code   |$CODE$
$not_aligned        |     16000|static|code   |$CODE$
$loop               |     16020|static|code   |$CODE$
$end_loop           |     16036|static|code   |$CODE$
$out                |     16060|static|code   |$CODE$
$THISMODULE$        |1073745528|static|data   |$DATA$
fwrite              |     16075|extern|entry  |$CODE$
close               |     16691|extern|entry  |$CODE$
fstat               |     16723|extern|entry  |$CODE$
write               |     16755|extern|entry  |$CODE$
$THISMODULE$        |1073745528|static|data   |$DATA$
_exit               |     16787|extern|entry  |$CODE$
$$divI              |      3259|extern|milli  |$MILLICODE$
$$divoI             |      3255|extern|milli  |$MILLICODE$
negative1           |      3688|static|code   |$MILLICODE$
small_divisor       |      3552|static|code   |$MILLICODE$
normal              |      3264|static|code   |$MILLICODE$
$$divU              |      3703|extern|milli  |$MILLICODE$
special_divisor     |      3976|static|code   |$MILLICODE$
normal              |      3712|static|code   |$MILLICODE$
big_divisor         |      4112|static|code   |$MILLICODE$
zero_divisor        |      3984|static|code   |$MILLICODE$
$neg2               |      4124|static|code   |$MILLICODE$
$loop               |      4168|static|code   |$MILLICODE$
$$mulI              |      4147|extern|milli  |$MILLICODE$
$check              |      4164|static|code   |$MILLICODE$
$return             |      4324|static|code   |$MILLICODE$
$shmcand            |      4316|static|code   |$MILLICODE$
$addtmp             |      4312|static|code   |$MILLICODE$
$two                |      4196|static|code   |$MILLICODE$
$endloop            |      4308|static|code   |$MILLICODE$
$fiftnx             |      4304|static|code   |$MILLICODE$
$$mulU              |      4335|extern|milli  |$MILLICODE$
$loop               |      4352|static|code   |$MILLICODE$
$return             |      4508|static|code   |$MILLICODE$
$shmcand            |      4500|static|code   |$MILLICODE$
$addtmp             |      4496|static|code   |$MILLICODE$
$two                |      4380|static|code   |$MILLICODE$
$endloop            |      4492|static|code   |$MILLICODE$
$fiftnx             |      4488|static|code   |$MILLICODE$
memchr              |     16819|extern|entry  |$CODE$
memchrexit          |     16852|static|code   |$CODE$
memchrloop          |     16832|static|code   |$CODE$
memchrequal         |     16848|static|code   |$CODE$
__exit              |     16867|extern|entry  |$CODE$
errnet              |1073746580|extern|data   |$BSS$
$cerror             |     16907|extern|entry  |$CODE$
return              |     16928|static|code   |$CODE$
ioctl               |     16947|extern|entry  |$CODE$
$THISMODULE$        |1073745528|static|data   |$DATA$
end                 |1073748148|extern|data   |$BSS$
_minbrk             |1073745528|extern|data   |$DATA$	<- malloc() uses
_curbrk             |1073745532|extern|data   |$DATA$
brk                 |     16979|extern|entry  |$CODE$
$THISMODULE$        |1073745536|static|data   |$DATA$
sbrk                |     17067|extern|entry  |$CODE$
_brk                |     17115|extern|entry  |$CODE$
$ exit

script done on Thu Apr 14 09:30:10 1988
Technical Details
Message-ID: <3700001@hpindda.HP.COM>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!husc6!bloom-beacon!oberon!sdcrdcf!hplabs!hpda!hpcupt1!hpcuhb!hpindda!vandys
References: <96@lzaz.ATT.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!husc6!bloom-beacon!oberon!sdcrdcf!hplabs!hpda!hpcupt1!hpcuhb!hpindda!vandys
From: vandys@hpindda.HP.COM (Andy Valencia)
Newsgroups: comp.lang.modula2
Subject: Re: Re: Modula2's godawful IO.
Message-ID: <3700001@hpindda.HP.COM>
Date: 14 Apr 88 16:35:38 GMT
References: <96@lzaz.ATT.COM>
Organization: HP Technical Networks, Cupertino, Calif.
Lines: 244