J.Wexler@edinburgh.ac.uk (11/07/88)
I'm trying to classify Transputer C compilers according to whether they handle concurrency by language extensions or by a library of special functions. If you know about any particular C compiler, would you care to let me know whether it (a) has a special type for channels? (b) does input by (1) evaluating the name of the channel as if it were a variable (2) by a function call (3) some other way (c) does output by (1) assigning to the name of the channel as if it were a variable (2) by a function call (3) some other way (d) has special constructs for PAR and ALT, or uses special functions? Also I would like to reduce my list of compilers by eliminating any which are merely relabellings of others. I have got Pentasoft, Renishaw, "Penguin" from Cornell, 3L, Parsec, Norcroft, Logical Systems and Definicon on the list. Are there any duplicates here? Are there any missing? I think I've read seen all the relevant items in this news group over the last six months or so - thanks to those who have contributed it - apologies if I've missed your item - if you have already answered my questions, just give me the reference and I'll find it in the back numbers. Many thanks, John Wexler
mmp@threel.UUCP (Marion Peat) (02/24/90)
As people seem to be talking about C compilers, here's some brief info about 3L Parallel C. The compiler as we supply it runs on B004-type boards in PCs. As it is itself a transputer program, it's fairly easy to port it to other hosts and various people have done this for Suns, VAXen etc (details on request). The compiler's output is a relocatable .BIN file which is cross-linkable with our other compilers and with Inmos's occam compiler (but no guarantees for this last). This is the same binary format as is also produced by, for example, the Rowley Modula-2 compiler and the Microway and Mark Ware assemblers. The tasks which are output by the linker can be combined by configuration tools into an application file which can be booted into a network of transputers. Two configurers are supplied with the compiler. One supports arbitrary networks; the other specialises in processor farms, and adds routing software to the application. A configurer which generates ROMable application files is also available. The compiler does not bring any new structures up into the language, but relies on function calls to do transputer-specific things, such as channel I/O, control of the timers and so on. You can also fire up threads of execution to run in parallel within a task, and perform something similar (tho' not identical) to an occam ALT. The current version of the compiler is 2.1, and was released in Dec'89. This includes a number of new things: * support for our interactive debugger, Tbug. * ANSI-style function prototypes and enum data type. * the above-mentioned ALT functions. * improvements in code size and speed. * a multiplexer task allowing tasks which don't have a direct connection with the host to do I/O using ordinary C library functions. Also much else. Further details from: 3L Ltd, Peel House, Ladywell, Livingston EH54 6AG, Scotland, UK. Tel.: +44 506 415959 Fax: +44 506 415944 Net: support@ThreeL.UUCP