The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: downing.nick@gmail.com (Nick Downing)
Subject: [TUHS] Early Internet work (Was: History of select(2))
Date: Mon, 30 Jan 2017 14:33:12 +1100	[thread overview]
Message-ID: <CAH1jEzYMLO==yP9xpDUmsessy4odqkrXOp5yX6kiB3zrvKRhtQ@mail.gmail.com> (raw)
In-Reply-To: <20170130025003.1CAEA18C0BA@mercury.lcs.mit.edu>

Thanks a lot for the valuable info about C compilers everyone. I was
aware of BDS C and also Hitech C and Small C. I briefly picked up cc65
(6502 port of Small C which has an ANSI frontend and a macroassembler
and other improvements) and started trying to port it back to Z80, but
I didn't get too far. I found quite a few things there that I didn't
like, so I put aside the project. I hadn't been aware that BDS C had
such a following, I thought of it as a closed source commercial
offering of no value to me. I'm happy to see it's now open source!!
Note that I actually own copies of Manx Aztec C and IAR C which are
both pretty good commercial C compilers for Z80 and Z180 respectively,
however being closed source they are of no value to my projects, which
I hope to eventually release as open source.

A funny story arises actually in regards to IAR C and its
dongle-protection. I was working for an overseas customer who bought
the IAR C package for me to use, I think they bought 3 copies, one for
my manager, one for my colleague and one for me. I went to visit the
customer for some weeks and we did a lot of work together. When I got
home I had to attend to various things that couldn't be put off any
longer, like family matters, cleaning the house and so on. For a few
weeks I strung my manager along saying "yes I have implemented this,
yes I have done that, blah blah"... knowing it would be easy to catch
up when I had a chance to sit down and work. When that time came, I
was embarrassed to discover that I had left my dongle over there at
the customer's premises... what was I going to say?? Haha.

So, Visual Studio to the rescue, it was relatively easy to trace into
the executable and find out where the dongle checks were occurring. I
don't think they had even stripped the executable, which made things a
bit easier, although the dongle stuff was obviously a 3rd party
library since it did have some protection against being traced and so
on. Anyway, it took me about half to one day to circumvent this, and I
was very happy that I had done so, because the dongle check took quite
a while (between .1s and .3s if my memory is reliable) and it was
doing this hundreds of times during a full build. I don't know why it
was so slow, possibly because it was polling a licence server even
though I didn't have a licence server. So my builds were much faster,
and of course I didn't have the hassle of dongle protection anymore.

But getting back to the point, I'm fairly keen to standardize on a
PCC-based compiler. There are a number of reasons for this.
(1) Since I have in mind targetting multiple platforms such as PDP-11,
VAX, Z180, 8086, 80286, possibly 68K, it seems a natural choice.
(2) I like the fact that lint uses a PCC front-end, if all my
compilers use a PCC front-end then all code is interpreted in the SAME
dialect.
(3) I have a heavy focus in my project on source-to-source
transformations, presently these are a bit ad-hoc (using scripts or C
programs based on getchar() / putchar() type stuff), and I want to
upgrade them to a PCC front-end, a transformation, and a C-target PCC
backend.
(4) I have the option of upgrading to the ANSI-compliant PCC compiler
and the latest backend stuff which has a register allocator, these
features are not things which I would want to spend time on, but I
feel that people who download my eventual release packages might.
(5) The ANSI-compliant PCC compiler has a selection of backends, such
as 8086 and 80286 backends I believe, so might save me time.

Having said all that, I have been very careful to preserve
compatibility with all reasonable dialects of C. To make this work, I
do not use any features that are only available in ANSI C (except if
there is a traditional C alternative, such as ## versus /**/, which I
can check for using a macro like __STDC__), but I make sure all code
is valid ANSI C or traditional C, using the __P(()) macro and such
like. So there would be no real reason I cannot use BDS C as-is in my
project. Note I'm going to standardize on the asxxxx assemblers, and
indeed one of my next projects will be to make the PCC VAX-targeted
compiler output asxxxx rather than its own assembler code. I can do
the same for BDS C. That way, it will generate (via the assembler) the
correct *.o and relocation entries, and I can use the 4.3BSD standard
ld. For the time being, I ported 4.3BSD "as" as a VAX cross-assembler,
just to establish a baseline, but I will be changing to asxxxx when I
can.

cheers, Nick







On Mon, Jan 30, 2017 at 1:50 PM, Noel Chiappa <jnc at mercury.lcs.mit.edu> wrote:
>     > From: Paul Ruizendaal
>
>     > Great! I'd love to take a look at all that.
>
> OK, it'll all be appearing once we have a chance to get organized (it's all
> mixed in with personal files).
>
>     > That is very interesting. It may be related to the V6 with NCP from
>     > UoI/DTI.
>
> I think it _is_ the V6 from UoI/DTI. The source has Gary (?) Grossman's and
> Steve Holmgren's name on it, and the headers say they date from 1074-75.
>
>     > The printout does not have the kernel modifications with it, so it would
>     > be great if your archive does include that.
>
> The archive does include the complete kernel, but i) the changes aren't listed
> in any way (I forsee a lot of 'diffs', unless you just take the entire
> kernel), ii) there's a file called 'history' which contains a long list of
> general changes/improvements of the kernel not really related to TCP/IP, by a
> long list of people, dated from the middle of '78 to the middle of '79. So it
> looks like he started with a considerably modified system.
>
> The only client code I see is User Telnet. (The MIT code has User and
> Server Telnet and FTP, as well as SMTP, but it uses a wholly different
> TCP interface.)
>
>     Noel


  reply	other threads:[~2017-01-30  3:33 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-30  2:50 Noel Chiappa
2017-01-30  3:33 ` Nick Downing [this message]
2017-01-30  3:38   ` Ron Natalie
2017-02-08  3:58   ` Dave Horsfall
2017-01-30  8:26 ` Paul Ruizendaal
  -- strict thread matches above, loose matches on Subject: below --
2017-01-30 16:15 Noel Chiappa
2017-01-30 16:41 ` Clem Cole
2017-01-30 16:44 ` Clem Cole
2017-01-30 15:34 Noel Chiappa
2017-01-30 21:20 ` Paul Ruizendaal
2017-01-30  1:44 Noel Chiappa
2017-01-29 18:35 Noel Chiappa
2017-01-29 17:41 Noel Chiappa
2017-01-29 20:28 ` Paul Ruizendaal
2017-01-30  1:34 ` Nick Downing
2017-01-30  2:19   ` Clem Cole
2017-01-30  2:30     ` Larry McVoy
2017-01-30  2:43       ` Ron Natalie
2017-01-30  2:43       ` Clem Cole
2017-01-30  2:32     ` Larry McVoy
2017-01-30  2:39       ` Clem Cole
2017-01-30 13:13     ` Dave Horsfall
2017-01-30 13:37       ` Larry McVoy
2017-01-16 15:17 Noel Chiappa
2017-01-16 14:42 Noel Chiappa
     [not found] <mailman.1.1484532001.2693.tuhs@minnie.tuhs.org>
2017-01-16 10:21 ` Johnny Billquist
2017-01-16  1:47 Noel Chiappa
2017-01-16 10:06 ` Paul Ruizendaal
2017-01-16  1:01 Noel Chiappa
2017-01-16 10:31 ` Paul Ruizendaal
2017-01-16 12:07 ` Tony Finch
2017-01-15  2:30 Noel Chiappa
2017-01-13 13:19 Noel Chiappa
2017-01-09  2:35 [TUHS] History of select(2) Warren Toomey
2017-01-09 10:36 ` Paul Ruizendaal
2017-01-12  3:54   ` Clem Cole
2017-01-13  9:13     ` Paul Ruizendaal
     [not found]       ` <20170114164102.GA31665@yeono.kjorling.se>
2017-01-16  0:13         ` [TUHS] Early Internet work (Was: History of select(2)) Paul Ruizendaal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAH1jEzYMLO==yP9xpDUmsessy4odqkrXOp5yX6kiB3zrvKRhtQ@mail.gmail.com' \
    --to=downing.nick@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).