Path: utzoo!mnetor!uunet!ncc!alberta!auvax!rwa From: rwa@auvax.UUCP (Ross Alexander) Newsgroups: comp.unix.wizards Subject: Re: sun-3 dbx, arguments, hacking, help... Message-ID: <613@auvax.UUCP> Date: 27 Apr 88 22:01:33 GMT References: <1641@homxb.UUCP> <7765@brl-smoke.ARPA> Organization: Athabasca U., Alberta, Canada Lines: 19 Keywords: Kludge, Hack, Hack Summary: nargs() is easy enough if the implementors want it to be... Doug Gwyn mentions that nargs() was pulled out of un*x at about v6 or so because people decided it would be hard to port. I assume this ha[ds] something to do with the decision to go to a split I-and-D space addressing model at about that time (correct me as nescessary). On machines with flat addressing spaces (i.e., able to to do "mov @#codespace, r0" and get it to work right :-) the nargs() function is trivial assuming the compilers adopt some kind of a convention re linkage code. Yes, it varies from machine to machine; but so does bcopy(). I think the other thing that might foul things up is the idea of variable sized objects (is eight bytes on the stack 4 shorts, 2 ints, one double, or char x[ 8 ] ??). This could be solved easily enough via descriptor lists ( even Algol60 had `dope vectors' ). Ross "nargs() is in the B library!" Alexander Athabasca University, Alberta