Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!munnari.oz.au!yoyo.aarnet.edu.au!sirius.ucs.adelaide.edu.au!sirius!jeremy From: jeremy@cs.adelaide.edu.au (Jeremy Webber) Newsgroups: comp.sys.transputer Subject: Re: Anarchic protocol ANY (occam2) Message-ID: Date: 15 May 91 23:56:13 GMT References: <9105152020.AA15174@theory.TN.CORNELL.EDU> Sender: news@ucs.adelaide.edu.au Organization: Digital Arts Film and Television Lines: 61 Nntp-Posting-Host: chook.ua.oz.au In-reply-to: COS99284@UFRJ.BITNET's message of 15 May 91 21:04:29 GMT In article <9105152020.AA15174@theory.TN.CORNELL.EDU> COS99284@UFRJ.BITNET (Luiz Felipe Perrone) writes: Process 1: to.p2 ! h1; h2; s; r; i; b; x Process 2: to.p2 ? h1; h2; s::buffer These two message operations are not compabible. Transputers require that a receiver of a message expect a message of the same size as the sender is sending. The above would work if the Occam message operation translated to one Transputer message operation, but it doesn't (and in general can't). Rather, my guess is that in process 1 the Occam compiler is generating a separate "out" instruction for each element of the message list, which means that in process 2 the element list must contain variables of the same type as the arguments in process 1. Hence for the above code, the effect is "undefined". -jeremy Placing STOPs here and there I have observed that Process 1 finishes and so it sends the message successfully. But what I'm trying to explain is why Process 2 never finishes. I have some wild guesses such as: the code the compiler generates for the input command in 2, is not appropriate to receive the message text (s::buffer) because the channel to.p2 was declared as CHAN OF ANY and not CHAN OF INT; INT; INT::()INT. Another one is that I may be experiencing some alignment problem due to retyping conversions. If someone knows why this happens or how I could send one message of varying length with any number of items of any type to a process that will see this message as a well defined header plus a text defined as an array of bytes of varying length, please let me know as soon as possible. I'm using this in the project of simulation kernel and I have to provide an elegant, flexible and easy to use interface between the simulator and the user's logical processes. Thank you all. ------------------------------------------------------------------------ Luiz Felipe Perrone MSc student - COPPE - Dept. of Systems Engineering and Computer Science Universidade Federal do Rio de Janeiro - Brazil E-mail: COS99284@UFRJ (BITNET) Mailing address: Rua Senador Vergueiro 157/305 Flamengo - Rio de Janeiro, RJ - Brazil CEP 22230 Phone number: (55)-(21)-5519063 ------------------------------------------------------------------------ -- -- Jeremy Webber ACSnet: jeremy@chook.ua.oz Digital Arts Film and Television, Internet: jeremy@cs.adelaide.edu.au 3 Milner St, Hindmarsh, SA 5007, Voicenet: +61 8 346 4534 Australia Papernet: +61 8 346 4537 (FAX)