steve@bat.cc.rochester.edu (Steve Swales) (01/06/91)
C-INTERCAL version 0.6 is now available by anonymous ftp from: ftp.white.toronto.edu (128.100.2.160 right now) pub/intercal/interal0.6.tar.Z and buacca.bu.edu (128.197.2.4) ick6tarz (in the ANON index... see buacca readme file) Thanks to Chris Siebenmann and Nik Conwell, respectively, for providing the sites. C-INTERCAL v0.6 is the latest version of Eric Raymond's compiler for the INTERCAL programming language, with enhancements, bug fixes, and extensions by myself and a host of others. It is in the form of a compressed tar file, which should be extracted in an empty directory (for best results). It is provided with a Makefile, for compiling on UNIX-ish systems, and has been tested on (at least) Sun workstations, but is by no means guaranteed to work CORRECTLY (if such a term can be applied to INTERCAL), even on the systems where it has been tested. Interested persons are encouraged to obtain it (during non-work hours PLEASE), and direct comments, questions, flames, etc. to me at any of the address(s) listed below. Enjoy. -steve -- -------------------------------------------------------+"Come, Watson, come!" Steve Swales (716) 275-0265,-3857,-5101| he cried. "The game is steve@bat.lle.rochester.edu (128.151.32.111)| afoot. Not a word! {decvax,harvard,ames,rutgers}!rochester!ur-laser!steve| Into your clothes and University of Rochester 250 East River Road| come!" S.H. Laboratory for Laser Energetics Rochester, NY 14623| 'The Abbey Grange'
janhen@wn3.sci.kun.nl (Jan Hendrikx) (01/09/91)
In article <11491@ur-cc.UUCP> steve@bat.cc.rochester.edu (Steve Swales) writes: >C-INTERCAL version 0.6 is now available by anonymous ftp [rest deleted] I got the compiler, but... From "test1.i": DO ABSTAIN FROM (52) DO ABSTAIN FROM NEXTING (this line added by me) DO REINSTATE (52) (52) DO (123) NEXT DO ERROR: LABEL REINSTATING NOT WORKING According to the manual section on REINSTATE, statement (52) should NOT be abstained from, but the C-INTERCAL 0.6 compiler gets this terribly wrong. The error message is printed, while it should not be. REINSTATEment nullifies the effects of an abstention. Either form of REINSTATEment can be used to "free" a statement, regardless of whether the statement was abstained from by gerund list, line label, or NOT. Can something be done about this? And we only get comp.lang.misc here, not alt.lang.intercal, btw.
janhen@wn3.sci.kun.nl (Jan Hendrikx) (01/10/91)
It looks like some people have misread the manual (that is, interpreted it differently than I did :-). Therefore, I'll quote a bit more and give line-by-line comments on the example I supplied. The manual says about ABSTAIN: This statement takes on one of two forms. It may not take on both at any one time. DO ABSTAIN FROM (label) causes the statement whose logical line label is (label) to be abstained from. PLEASE ABSTAIN FROM gerund list causes all statements of the specified type(s) to be abstained from, as in [deleted] As you can see, a STATEMENT can be abstained from, NOT an OPERATION (as indicated by the gerund list). Therefore, ABSTAIN FROM gerund is equivalent to ABSTAIN FROM (label) for each statement that consists of the specified operation. [The second sentence (It may not take on both at any one time) is just humorous because one statement CAN be only one form at a time, disallowing this is just funny. It cannot mean that you can use only one of the forms in the entire program, because such a drastic claim would have been more explicit, and is inconsistent with the text on REINSTATE] And this about REINSTATE: REINSTATEment nullifies the effects of an abstention. Either form of REINSTATEment can be used to "free" a statement, regardless of whether the statement was abstained from by gerund list, line label, or NOT. This confirms my "abbreviation" interpretation above. Now the example again: DO ABSTAIN FROM (52) This line is irrelevant here.. it abstains from (52). DO ABSTAIN FROM NEXTING (this line added by me) This abstains from all lines with NEXT.. here that is only (52). DO REINSTATE (52) This reinstates (52) and therefore undoes the previous two abstentions. Any other statements with NEXT are not affected. (52) DO (123) NEXT This should now be executed normally. DO ERROR: LABEL REINSTATING NOT WORKING and therefore control should not reach this statement. Oh, look at me... I only got the manual a few days ago and now I am already in a violent argument about its interpretation ;-)