This article is from the FAQ, by with numerous contributions by others.
The following new features have been implemented in version 5.2 of the
compiler, compared to version 5.1.
New Platforms
Much effort has been put into porting the compiler onto new platforms:
o A final version for Silicon Graphics MIPS is now available.
o The Linux compiler now generates binary code directly.
o Work is ongoing to make a binary compiler for Windows NT and
Windows 95.
o Work is ongoing to make native binary code generation for PowerPC
based Macintoshes.
This work has caused a lot of changes to the interior of the compiler
and runtime system. These changes should, however, be transparent to
the user.
## now allowed for objects as well as for patterns
You may now use P## as an alternative to P.struc when P is an object.
Previously ## was only allowed for patterns.
$CC set in UNIX job files
The job files on UNIX platforms now set the CC environment variable to
a reasonable default value before executing the MAKE commands. Thus
$(CC) may now be used in the make files on UNIX platforms.
Check for bound SLOTs
The compiler will now only attempt to link if a PROGRAM slot has been
found in the dependency graph (this feature was introduced in v5.1 of
the compiler, but the implementation was buggy). If SLOTs of category
dopart or descriptor in the dependency graph are not bound, and linking
would otherwise have happened, the compiler now issues a warning and
does not attempt to link. This is the kind of situation that could give
an "Undefined Reference" error at link time in v5.1 (and earlier
versions) of the compiler.
Likewise, if two or more fragments try to bind the same SLOT, the
compiler will give a warning. This is the kind of situation which could
give an "Multiply Defined Symbol" error at link time in v5.1 (and
earlier versions) of the compiler.
Interfragment leave/restart
Added support for interfragment leave/restart as in
foo.bet: ORIGIN '~beta/basiclib/v1.5/betaenv'; BODY 'foobody'; --PROGRAM:descriptor--- (# do L: <<SLOT LL:descriptor>> #) foobody.bet: ORIGIN 'foo'; --LL:descriptor-- (# do leave L #)
\a alert (bell) character \b backspace \f form feed \n newline \r carriage return \t horizontal tab \v vertical tab \\ backslash \? question mark \' single quote \" double quote \ooooctal number
 
Continue to: