Path: utzoo!utgpu!water!watmath!clyde!rutgers!husc6!hao!gatech!uflorida!codas!cpsc6a!rtech!mtxinu!unisoft!hoptoad!academ!uhnix1!sugar!peter From: peter@sugar.UUCP (Peter da Silva) Newsgroups: comp.lang.c Subject: Re: C critisisms Message-ID: <1399@sugar.UUCP> Date: 15 Jan 88 15:46:03 GMT References: <7597@sunybcs.UUCP> <1473@codas.att.com> <3686@aw.sei.cmu.edu> <3737@aw.sei.cmu.edu> Organization: Sugar Land UNIX - Houston, TX Lines: 57 In article <3737@aw.sei.cmu.edu>, firth@sei.cmu.edu (Robert Firth) writes: > > In article <3686@aw.sei.cmu.edu>, firth@sei.cmu.edu I wrote > > [BCPL has been used for] > (b) operating systems, including Tripos, one of the best (in my opinion) > distributed OS (sold commercially as 'Trout') > > In article <1378@sugar.UUCP> peter@sugar.UUCP (Peter da Silva) writes: > > [ BCPL pointers (indexes into a 32-bit wide array based at 0) cause lots > of problems in Tripos ] > > Thanks, Peter - I was imprecise. What I meant to say was that I thought > highly of the concepts, design, and implementation of Tripos, having used > it from the terminal and from BCPL code. First I'd like to take this opportunity to totally flame Tripos for their brain-damaged hashed directories setup, but I'll restrain myself. Secondly: > However, the Amiga port made a decision I consider totally crazy: to > exposdet to other languages the implementation of the BCPL pointer. The > proper place for shifts left and right is either at the interface (so the > compiler does it for you) or within the BCPL code. They put these shifts in the interface code. *however*, there are certain operations that you can't do through the interface that require you to go digging into the BCPL data structures. I have had to do this, for example, to get a list of mounted devices for a file requestor so I could display them to the user (i.e., Tripos doesn't let you examine your whole name space through the interface). You also need to do this to add device drivers to Tripos (dynamically loadable drivers are one of its nice features). Finally, any programs that want to do things in their CLI structures (testing or changing their stack size, for example) have to deal with these monsters. It's not forced on the user, but it's forced on any programmer who wants to present a nice user-interface to the user, or who wants their code to run in unusual environments. > To force upon the > user those BPTRS or whatever they're called was a major blunder. Peter > is if anything too kind here. But I still claim (albeit unconvincingly) > that this is not a defect of BCPL but rather of the way other things > were built on top of it. Or not built. I'm still a fan of BCPL, though. I just think that at this time it's more like a curiosity. You use it for the pleasant feeling of nostalgia. Sort of like driving a '57 Caddilac. Oh well, AmigaDOS is being redesigned from scratch without BCPL. It's still going to have some BPTRs in there, because it'd break existing code to remove them. Pity CAOS was stillborn. -- -- Peter da Silva `-_-' ...!hoptoad!academ!uhnix1!sugar!peter -- Disclaimer: These U aren't mere opinions... these are *values*.