Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!uwm.edu!linac!att!ucbvax!physics.oxford.ac.uk!HALLAM From: HALLAM@physics.oxford.ac.uk ("Phillip M. Hallam-Baker") Newsgroups: comp.sys.transputer Subject: RE Anarchic Protocol ANY (occam2) Message-ID: <29382.9105161115@prg.oxford.ac.uk> Date: 16 May 91 12:14:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 36 Luiz Felipe Perrone's problem with CHAN OF ANY would appear to be due to the fact that internal and external channels are handled differently. (yes yes yes i know it's the same instruction blah blah blah....) Data sent on external chanels is reduced to a bit stream. The atomic unit is the byte. Data sent on internal channels is moved using a block move the atomic unit is a label. Thus CHAN OF ANY fred PAR fred ! 1 ; 2 [2]INT array : fred ? array will only work when fred is placed on an exernal channel. This is not an error in the occam implementation. CHAN OF ANY is there for cases where there is a need to "play dirty" However Luiz's original problem was entirely reasonable. Occam just dosen't handle records and in the real world records are what the punters need. I know you can fiddle arround with aliases IS RETYPES etc but this is messy. There are also performance implications - the code produced by the D605 toolkit is quite wierd, and does not perform a large number of obvious optimisations. It would be nice to have a stripped down version of occam with a more usable typing mechanism which would handle records. This should be integrated to the channel PROTOCOL declarations. Phill Hallam-Baker