Taken from the command 'pcat /usr/relnotes/standard/ch5.z' and edited to
remove underlining etc..
-------------------------
5. Changes
This chapter describes changes to
o IRIX
o networking
o documentation
o graphics
o demos
o program development tools
o software installation tools
o 4Dgifts
o IRIS WorkSpace
o 4Sight
5.1 Changes_to_IRIX
A number of changes to the file system buffer cache and
virtual memory have eliminated many operating system
tuneable parameters, and removed the necessity of changing
others. Please consult the System Configuration and Tuning
Guide for more details.
The 4D1-3.3 release includes these changes to IRIX:
o The header files in /usr/include/bsd and its
subdirectories have been moved to /usr/include. If you
had old source code that incorrectly included BSD
headers files with #include <bsd/foo.h> or you are
upgrading from a previous IRIX release, install the
dev.sw.bsdhdrs subsystem. This subsystem uses symbolic
links to provide compatibility. It will not be
supported in the next major release.
o rcsdiff(1) now understands the new diff(1) -biwt
options. The -q (quiet) option returns diff's exit
status.
o Several additions have been made to the BSD Mail
program (mail_bsd(1)):
- lines starting with # are ignored
- new ``unread'' command
- better handling of RFC822-style addresses, and
ability to add all 822 header fields via tilde
escape commands
- support for ``reply-to'' header field
- uses the TIOCGWINSZ ioctl call to determine the
actual screen size
- fixed mailfile locking to be compatible with the
System V (mail) file locking scheme
- added read-only mailfile locking to prevent
multiple instances of Mail from having
simultaneous write access to the mailfile
- applied flock(3)'ing to all types of lock files so
that the lock scheme works over NFS
o System V mail (mail_att(1)) now supports ``reply-to''
and uses flock(3) for locking files, like Mail.
o You can change savecore(1M)'s default location for
storing kernel crash files with
/etc/config/savecore.options.
o The system logging daemon, syslogd(1M), can now filter
log messages through a user-specified program.
o All messages printed by the kernel are now routed to
the logical device /dev/klog, which is read by
syslogd(1M). Kernel messages are filtered through
/usr/adm/klogpp which translates disk device names into
mounted file system names.
o syslogd(1M) has been updated to the 4.3BSD version. It
now supports the routing of messages to a remote
syslogd.
o syslogd(1M) no longer creates the file /etc/syslog.pid
containing the process id of the syslogd process. The
killall(1M) command provides the ability to send a
signal to a process by name, so keeping the process id
of syslogd around is no longer necessary. Note that
this requires changing the entry in the crontab for
root which switches to a new system log file every
Sunday morning. In Release 4D1-3.2, this crontab entry
included the following kill(1) command to send a SIGHUP
to syslogd(1M) to cause it to restart with the new log
file: kill -1 `cat /etc/syslog*.pid` In Release
4D1-3.3, the corresponding portion of the crontab entry
reads: killall 1 syslogd Release 4D1-3.3 contains a
new version of the file
/usr/spool/cron/crontabs/root
that incorporates the above change, but this file is
considered a configuration file. This means that when
Release 4D1-3.3 is installed on a system, the file will
not be replaced by the new version unless the pre-
existing version has not been modified in any way.
If you have made any changes to the above file to
customize it for your particular needs, then after the
installation of Release 4D1-3.3, the new version of the
file will exist as /usr/spool/cron/crontabs/root.N. In
that case, incorporate the above change so that syslogd
will receive the SIGHUP that causes it to restart with
the new log file.
o The finger(1) command has been enhanced to be like the
4.3BSD version. The Berkeley-dependent phone number
format has been removed. finger also understands both
shorter and longer phone numbers.
o man(1) now supports the BSD options -k and -f for
performing keyword searches in the NAME sections of
manual pages. The alternate forms for man -k and man
-f, apropos(1) and whatis(1), are also supported. The
NAME section database required to support the manual
page keyword searches is created using the new command
makewhatis(1M).
o The default paging program used by man(1) has been
changed to
ul | more -s -f -k This change permits you to scan
back through previously viewed pages of a man page
using the scroll bar in a wsh(1) window. This change
also prevents the viewing of manual pages from
clobbering the log of recent commands displayed in a
wsh(1) window. The old behavior can be achieved by
setting the environment variable PAGER or MANPAGER to
ul | page -s -f -k
o As a result of the widespread recognition of the
security problems associated with setuid and setgid
shell scripts, support for that feature has been
disabled in Release 4D1-3.3 of IRIX. An attempt to
execute a shell script with the setuid (or setgid)
permission bit set will result in the error EPERM,
unless it happens that the owner of the file (or group
of the file if setgid) happens to be equal to the
effective uid (gid, respectively) of the executing
processexecuting process. In Release 4D1-3.3, it is
possible to re-enable the support for setuid and setgid
shell scripts by reconfiguring the kernel, but this
configuration mechanism is provided only to ease the
transition and will likely be removed in the next major
software release. If you want to allow setuid shell
scripts on Release 4D1-3.3 IRIX, edit the file
/usr/sysgen/master.d/kernel and change the value for
the variable nosuidshells to zero. The relevant line
is shipped as:
int nosuidshells = 1; meaning that setuid shell
scripts are not allowed by the system as it is shipped.
After changing the value to be zero, rebuild the kernel
using lboot(1M).
o The sar(1) -t option display headers have been changed
to be more mnemonic. An -h option has been added to
display kernel heap statistics.
o The gr_osview(1) bbuf display has been removed --
buffer cache information is now a part of the rmem
display. An rmemc display has been added which is a
superset of rmem. It distinguishes free memory which
cache file system data from those that don't. net and
netif bars display network activity.
o The su(1M) command now looks at the user's .rhosts file
before prompting for a password. See su(1M) for
details.
5.2 Changes_to_Networking
The 4D1-3.3 software release includes these changes to
networking:
o Security holes in rlogind(1M), rshd(1M), rcp(1M),
rdist(1C), and sendmail(1M), have been fixed.
o tftpd(1M) has been made more secure. It logs remote
requests if the -l option is specified in
/usr/etc/inetd.conf. The -s option rejects requests
for files specified by an absolute pathname (the
default). Also, you can restrict requests to certain
directories by specifying the list on tftpd's command
line in inetd.conf. See tftpd for details.
o The timed(1M) daemon now automatically adjusts the
frequency of the system clock for far more accurate
timekeeping.
o The network startup script /etc/init.d/network now
starts named(1M) before mounting NFS file systems.
o To specify command-line options for the inetd and rwhod
daemons, create inetd.options and rwhod.options files
in /etc/config. The network startup script now looks
for these files when it starts the daemons. See
network(1M), inetd(1M), and rwhod(1M) for details.
o inetd(1M) now supports RFC1078's TCP port multiplexer,
TCPMUX. It allows you to add services started from
inetd using an assigned port number. The maximum
number of arguments for a server is now 11 (the first
argument must be the program name). See the man page
for details. See ~4Dgifts/examples/network for sample
TCPMUX client and server programs.
o ftp(1C), ftpd(1M), rlogind(1M), and rshd(1M) are now
based on the BSD Networking Release.
o The file /etc/issue, if it exists on your system, is
displayed at the start of rlogin(1C), telnet(1C), and
ftp(1C) sessions.
o Remote logins via rlogin(1C) and telnet(1C) are
disabled if the file /etc/nologin exists. The file can
contain a message, which will be printed before the
session is terminated. Remote shell rsh(1C) accesses
are also disabled but the file's contents are not
displayed.
o login(1) can now log remote login attempts to
syslogd(1M). See the login(1) manual entry for
details.
o ifconfig(1M) now prints the netmask with a leading 0x,
which is the same format expected by the netmask
command line parameter.
o telnet(1C) now negotiates the following options with
the remote telnet server at startup: window size,
terminal speed, local flow control, and line mode.
telnetd(1M) supports these new options except for line
mode.
o ftp(1C) has the following new commands: chmod, idle,
modtime, newer, umask, and site.
o ftp(1M) now supports ``restricted'' accounts. A
restricted account has access restricted to files in
its home directory - it is basically an ``anonymous''
account with a password.
o rshd(1M) now requires the account to have a local
directory. The -n option disables keep-alives. The -l
option disables use of every user's .rhosts file.
o Sample versions of named(1M) database files are now
installed in /usr/etc/named.d/Examples. Files in
/usr/etc/named.d are not touched by the installation
program (except for the README file.) Put your versions
of the database files in this directory. The
root.cache file has been updated - you should update
your copy of it.
o Various stream management bugs in named(1M) have been
fixed.
o The nslookup(1C) utility has been enhanced. If you
enter an Internet address when the query type is set to
``A'' (address), nslookup will find its corresponding
host name. Before, you had to use the PTR query type to
convert the address into a name. Internally, nslookup
uses PTR queries instead of now-obsolete inverse
queries for the address-to-name lookup. The ls -t type
command lists data records of the specified type for a
domain. The default root server has been changed to
ns.nic.ddn.mil.
o The /usr/etc/resolv.conf file lets you specify the
ordering of the Yellow Pages, BIND and file-based
host-address lookup services used by gethostbyname(3N)
and gethostbyaddr(3N). Also, you can now specify the
default domain search list for BIND queries. See the
description of hostresorder and search in the
resolver(4) manual page.
o gethostbyname(3N) has been enhanced to look for host
aliases when doing YP, BIND or file-based lookups. In
previous releases, only BIND lookups allowed aliases.
See hostname(5) for details on how to specify aliases.
Also, gethostbyname(3N) now returns a valid hostent
structure for lookup request that are Internet
addresses. This means you can specify a host's
Internet address to any network command that expects a
host name, such as rcp(1C) and rlogin(1C).
o The Cornell super-routing daemon, gated(1M), is now
supported. It is in the eoe1.sw.ipgate subsystem.
gated handles the HELLO and EGP routing protocols in
addition to RIP.
o IRIX now has full support for IP multicasting and the
IGMP protocol. This implementation is based on the
Stanford Multicast 1.2 release.
Note: This RFC-1112 level 2 implementation of IP
multicasting/IGMP is experimental and subject to
change in order to track future BSD UNIX
releases.
- Chapter 3 in the Network Communications Guide
describes the programming interface. See
~4Dgifts/examples/network for a sample
multicasting program.
- A daemon for routing multicast packets,
mrouted(1M), is included in the eoe1.sw.ipgate
subsystem. This subsystem is needed only on
machines with more than 1 network interface.
- The dog(6D) demo now uses IP/UDP multicasting by
default. rwhod(1M) can be configured to use
multicasting instead of broadcasting.
- See Chapter 7 of these release notes for known
problems with multicasting.
o The ping(1M) command has been enhanced. You can
specify the time-to-live and output interface for pings
sent to an IP multicast address. The -p option lets you
specify the data to be sent. In the previous release,
the optional packet size, count and preload arguments
were specified after the hostname. Now they must be
specified using the -s, -c, and -l options.
o fingerd(1M) has a new -S option (secure) to disallow
requests to see who is currently logged in.
o UUCP support has been upgraded to System V Release 3.2.
Additional modems, such as the Telebit T2500, have been
added to the Dialers file.
5.3 Changes_to_Documentation
o The TCP/IP User's Guide has been completely revised for
this release and has been renamed to Network
Communications Guide. It now documents UNIX domain
sockets, IP multicasting, and Sun Remote Procedure Call
(RPC) programming.
5.3.1 On-line_Release_Notes The options to the relnotes
command for viewing on-line release notes have changed
slightly. When you install the on-line documentation for a
product, you can view the release notes on your screen as
you would an on-line manual page. However, unlike the on-
line manual pages, the printed hard copy of these release
notes is more up to date than the on-line version.
The relnotes command now accepts the following argments:
-h describes how to use relnotes
product displays a table of contents for a
given product
product chapter displays the given chapter of product
-t product chapter sends a copy of the given chapter
to the default printer
To see a description of how to use the on-line release notes
tool, type: relnotes -h
To see which products have on-line release notes installed,
type: relnotes
To see which chapters of a product are installed, enter the
command below, replacing the word product with a product
name generated when you type the previous command. relnotes
product
To view a specific chapter of product, replace the words
product and chapter in the following command: relnotes
product chapter
To page through a chapter, press <space> and to quit, press
<del> or <Ctrl-C>. See the relnotes(1) manual entry for
more information.
5.4 Changes_to_Graphics
This section contains information on changes to the Graphics
Library and the Distributed Graphics Library.
5.4.1 Changes_to_the_Graphics_Library
o All the extern routine declarations in <gl/gl.h> are
now prototyped. If your code calls Graphics Library
routines with the wrong number of arguments, it will no
longer compile. Calls to setcursor are the most likely
offenders, since it is specified as ignoring its final
two arguments.
If you give cc the -prototypes flag as we recommend,
you will get warnings when the type of an actual
pointer argument to a routine is different from that
specified in its prototype. e.g. long * vs.
unsigned long *. Casting the argument to the correct
type will eliminate the warning. Note that the form
of the cast for arguments that are 2-dimensional arrays
is (element-type (*)[n]), e.g. the cast for the parray
argument to the poly routine is (Coord (*)[3]).
o A section for obsolete symbols has been added to
<gl/gl.h>, <gl/device.h>, and <gl/get.h>. Symbols
found in these sections should not be used in new
development. In particular, you should convert all
uses of the typedef Cursor to unsigned short[16]; this
will prevent conflicts with X11's typedef of the same
name.
o The 256 vertex limit for points drawn with bgnpoint, v,
endpoint and lines drawn with bgnline, v, endline
bgnclosedline, v, endclosedline has been lifted. The
limitation still exists for polygons.
o The name space of GL devices has been partitioned as
follows:
0x0000 -> 0x0FFF Devices defined by SGI
0x0001 -> 0x00FF Buttons
0x0100 -> 0x01FF Valuators
0x0200 -> 0x02FF Pseudo devices
0x0300 -> 0x0EFF Reserved
0x0F00 -> 0x0FFF Additional buttons
0x1000 -> 0x7FFF Devices defined by users
0x1000 -> 0x2FFF Buttons
0x3000 -> 0x3FFF Valuators
0x4000 -> 0x7FFF Pseudo devices
0x8000 -> 0xFFFF Cannot be used
The definitions of the *COUNT symbols in <gl/device.h>
have been changed so that the ISBUTTON() and
ISVALUATOR() macros evaluate to TRUE for arguments that
fall within the ranges specified above for buttons and
valuators.
o The types of a number of GL routine arguments have
changed to provide a consistent interface where all
color, pixels, bitmasks and device arguments are
unsigned. The changes are:
________________________________________________________
Routine | Argument | Old Type | New Type
________________________________________________________
czclear cval long unsigned long
defpattern mask short * unsigned short *
defrasterfont raster short * unsigned short *
getdev devs short * Device *
linesmooth mode long unsigned long
lrectread parray long unsigned long
lrectwrite parray long unsigned long
pagecolor pcolor short Colorindex
pntsmooth mode long unsigned long
qenter qtype short Device
setdblights mask long unsigned long
setpup mode long unsigned long
zdraw b long Boolean
zwritemask mask long unsigned long
________________________________________________________
o A large number of new getgdesc inquiries have been
defined. see getgdesc(3G) for more information.
o The z-range mapping controlled by the GLC_ZRANGEMAP
mode to glcompat now occurs when a display-list is
interpreted. In the previous release, it occurred when
the display-list was built.
o The symbol CPOSX_INVALID is no longer defined in
<gl/gl.h>.
o Calling a GL routine on a machine that does not
implement it is now always a nop; error messages are
now never issued.
o greset no longer partially resets the input subsystem.
However, it is still reset by ginit and gbegin. See
greset(3G).
o gbegin now does what its manual page specifies: a ginit
except for altering the color map.
o mmode
Upon transitioning to MVIEWING or MPROJECTION mode, the
ModelView and Projection matricies are both set to the
identity matrix. Upon transitioning back to MSINGLE
mode, the single matrix is also set to the identity
matrix. In both cases, the matrix stack is reset.
o The following headers are no longer part of
/usr/include/gl on the IRIS-4D B and G:
file.h
ic.h
obj.h
object.h
winreq.h
5.4.2 Changes_to_the_Distributed_Graphics_Library The
dglopen call now looks at the environment variable
DGLBUFSIZE to obtain a default communications buffer size.
If this variable is not defined, a default value of 4K is
used. This call is useful over networks whose transmission
unit is greater than the 4K default size.
The variable DGLBUFSIZE can be specified as a decimal number
indicating the number of bytes, as a decimal number
immediately followed by a K or k (indicating kilobytes), or
as a decimal number immediately followed by an M or m
(indicating megabytes). For example, to specify a 2 megabyte
buffer, DGLBUFSIZE can be set to 2097152, 2048K, or 2M.
5.5 Changes_to_Demos
o dog(6D) now sends multicast packets by default instead
of broadcast packets. Multicasting eliminates the load
on other machines not using dog. For dogfights against
3000s and previous IRIS-4D Series releases, use the -b
option to specify broadcast mode. If the system cannot
set up the socket in multicast mode, it uses broadcast
mode. The -t option specifies the maximum number of
times the packet can be forwarded between networks.
o buttonfly(6D) buttons have been reorganized and the
button files have been moved out of the /usr/demos
directory into a directory structure that mirrors the
button hierarchy.
5.6 Changes_to_Program_Development_Tools
This section explains changes to the following program
development tools:
o C header files
o C compiler
o error messages
o dbx
o other tools
5.6.1 Changes_to_C_Headers Nearly all the files in
/usr/include have been changed to use ANSI C-style function
prototypes.
Since the /usr/include headers have been updated to return
void * where appropriate (according to ANSI), some practices
that used to work no longer work:
#include <string.h> main() {
char *cp; int n;
cp = memcpy(x,y,5) + n; } now generates an error, since
memcpy returns a void * and you cannot increment a void *.
cp = ((char *)memcpy(x,y,5)) + n; is (normally) the
appropriate change.
5.6.2 Changes_to_the_Compilation_Environment The default
space allocation for basic blocks in the optimizer was
increased from 500 to 1000. Use -Olimit to alter the limit.
The maximum length of a string that the compilers will emit
in assembler code (see the -S flag to cc(1)) has been
increased from 256 bytes to 1024 bytes. If your source code
results in a line length in assembler that is larger than
your chosen viewer can handle, try using fold(1) to fold the
lines so you can see the assembler code.
5.6.3 Changes_to_the_C_Compiler
o The types void and void * have been implemented.
o The type qualifier const has been implemented.
o Function prototypes are much more fully implemented and
checked. For example, a cast of a function-pointer to
a prototyped function-pointer works correctly.
Completion of incomplete types in function prototypes
is not done in messy circumstances (where, for example,
multiple declarations of one function exist but
complete types are found only by unifying all the
declarations).
o The new cc option, -prototypes turns on type checking
of function prototypes, and -noprototypes turns it off.
The checking is off by default so code that compiled
with Release 4D1-3.2 should compile without complaint
with this release. The option affects checking of
function prototypes, not code generation, so programs
compiled either way should work identically.
In checking prototypes, the compiler allows various
constructs that are not formally equivalent to get by
with a warning to allow old code to compile with the
/usr/include files supplied with this release.
Differences such as declaring a function as returning a
char * at one place and a
void * at another receive a warning message if and only
if -prototypes is on.
Prototype differences such as declaring an argument as
both unsigned short * and short * receive a warning
only if -prototypes is on.
The compiler attempts to be specific about the type
discrepancies in function prototypes. Wherever
possible it reports the types in English. Wherever
possible it also reports the argument number.
If you assign one function pointer to another, the
function prototype on the right is the function
prototype used unless the right function pointer has no
prototype, in which case the function prototype, if
any, of the pointer on the left is kept.
o The ANSI C convention that adjacent string literals
become a single string (ANSI section 3.1.4, December
1988 draft) is implemented in this compiler.
o For future compatibility, do not put text after #else
or #endif unless the text is enclosed in /* */ comment
delimiters. While this release ignores arbitrary text
on such preprocessor lines, ANSI C considers text after
#else or #endif an error unless it is inside a comment.
o The -acpp option to cc has been added. When -acpp is
used, an ANSI C preprocessor is used instead of the
normal C preprocessor. Source code for acpp
(copyrighted by the Free Software Foundation) is in
4Dgifts. See the source for terms of the copyright.
5.6.3.1 Changes_to_Error_Messages There are many new error
messages. Some of them might be confusing. These in
particular have proven to be troublesome:
o "prototype:pointer to struct is different from actual:
pointer to struct"
A prototype and an actual argument must be pointers to
the same struct to be compatible. It is not enough
that the structs pointed to be the same size.
o "unknown size: void has no size"
Many operations on pointers imply taking the size of
the item pointed at. void * does not point at any
object, so operations requiring the size are illegal.
void *mfunc(); /* illegal: pointer arithmetic */
mfunc(x,y,z)+ 3; /* legal: pointer comparison to 0 */
!mfunc(x,y,z);
o "constant evaluation found questionable result"
The full message is:
constant evaluation found questionable result as a
result of copy propagation or other optimizations.
Constant evaluation left to run time for this case
A warning like this can come from the optimizer. If,
as a result of constant propagation or other
optimizations, a value is computed that produces an
overflow, the optimizer does not do the operation at
compile time but leaves it to run-time.
For example, (m << n) is undefined in C if n is greater
than m's width in bits. If you take the meaning as
``do the shift'' the result is zero! If the optimizer
discovers that n is greater than 31 (for m, a constant
int whose value is known to the optimizer) as a result
of copy propagation, the shift is left to run-time and
the message above is emitted.
5.6.4 Changes_to_dbx
o C enumerated types are printed much more fully. To see
an example of this, try whatis x on some enumerated
type x.
o whatis tries to report on files and variables when they
have the same name. If x is a file named x.c and a
global variable x, whatis x reports both usages.
o As of this release, the kernel (IRIX) marks any file
being dbx'd as busy. Consequently the old practice of
doing a recompile and relink followed by the dbx rerun
command does not work unless you first rm(1) the
executable, because ld is unable to write to the busy
text file. The lack of a busy mark in previous
releases was quite dangerous, because you could relink
and then do a dbx cont command on text that had
changed. This resulted in serious problems during the
debugging session.
o A great deal of information was added to the dbx manual
page and help file /usr/lib/dbx.help. The information
in these files might be helpful to you.
o The ccall command can now handle variables in
interactive calls to functions in the program being
debugged. Interactive calls can now use variables as
arguments.
o The $nextbreak debugger variable now controls how the
next command is executed. By default, next is done at
full speed. If done in the middle of recursions, next
stops the next time the function is recursively called.
If that is not what is desired, set $nextbreak to 0 or
1 before issuing next. See the help file for further
details.
5.6.5 Changes_to_Other_Tools
o lint, cxref, ctags, cb, and cflow understand the new
ANSI C keywords- const, volatile, signed- as well as
function prototypes. These now work properly on any
code that compiles with cc.
o lint now checks printf and scanf calls for accuracy.
o Bodyless if and else clauses are diagnosed by lint.
o lint mentions possible precedence confusions in many
more circumstances than in previous releases.
o lint has the cc -prototypes flag turned on. It is
advisable to compile code with cc -prototypes before
running lint.
o ld now accepts the -U option. -U makes references to
undefined symbol warnings instead of errors. This is
useful in certain very large programs where leaving out
the code for certain functions saves significant link
time and where, for debugging purposes, those functions
are not executed. Attempting to execute a missing
function results in a segmentation violation.
o Several changes have been made to make(1):
- The new command line option -u has been added that
causes all specified targets to be built
unconditionally.
- The sinclude directive has been added. sinclude
works the same way that include does in a
makefile, except that if the file specified in the
sinclude command is not readable, the error is
silently ignored by make(1).
- make(1) now understands a convention similar to
the alternate interpreter feature of exec(2). If
the first line of a make command file starts with
a string of the form "#!alternate_make", then make
will attempt to invoke the specified alternate
make with the same environment and arguments.
- The function of the VPATH macro is now documented
in the make(1) manual entry.
- The behavior of VPATH has been enhanced to allow
dependency rules to reference either the virtual
target or the actual target. For example, either
of the following may be specified:
foo.o:foo.h
$(VPATH)/foo.o:foo.h
- The interaction between dependency rules and
single suffix rules has been corrected. In
previous versions of make(1), the presence of a
dependency rule of the form
cat:stdio.h caused the single suffix rule for
.c: to be ignored. In the Release 4D1-3.3 version
of make, single suffix rules are no longer ignored
in this case.
- The sizes of many of the internal tables used by
make(1) have been increased or made dynamic to
support long file names and very complex make
command files.
o Several changes have been made to pmake(1):
- .f (Fortran) files were added to RCS
transformation rules.
- the new -u option (``unconditional'') remakes the
specified targets (just like make(1)).
- pmake now understands the sinclude directive (just
like make(1)).
- pmake now sets the MAKEFILE environment variable.
It also puts command-line variables into the
environment.
- several makefiles can be specified on the command
line with multiple -f options.
- the new special targets .NOTPARALLEL, .ORDER, and
.SINGLESHELL have been added and are described in
the manual page.
- pmake does not support rules for checking out SCCS
files. It also ignores make(1)'s MAKEFLAGS
environment variable.
5.7 Changes_to_the_Software_Installation_Tools
The following are the major changes to the software
installation tools for the 4D1-3.3 release:
5.7.1 Changes_to_Inst
o The Manual Installation menu defaults item has been
changed to standard. The functionality has not
changed.
o The recalculate item has been added to the Manual
Installation and Subsystem Selection menus. It serves
to initiate recomputation of the disk space
requirements. A warning is given in this regard after
shell escapes.
o The Subsystem Selection menu has been reordered.
o The yes item of the Selection menu has been changed to
install, and the no item has been split into keep, for
no action, and remove, to remove any old version that
might be present. The remove requests are now queued
along with install requests, rather than being executed
immediately.
o Removal requests may be made for installed products
that are not part of the current distribution listing.
These requests will be displayed by the list item.
o The install item of the Selection menu has been changed
to go, which serves to initiate the queued installation
and removal requests.
o The versions menu item serves to directly invoke the
functionality of the versions command from within inst.
The versions command may still be invoked as a separate
IRIX command.
o The sh and shroot items may no longer be invoked from
the Interrupt/Error menu.
o Many error messages have changed.
o There is a dramatic increase in the speed of certain
network operations.
o The reliability and robustness of the on-line
installation history updating mechanisms have been
improved. There is no longer a separate recovery
operation; retrying a failed installation or removal
will usually correct the history.
o There is now a check for incompatible subsystems being
installed on the disk. The installation tool will not
permit you to quit until this problem is resolved.
5.7.2 Changes_to_Versions
o Versions is now built into inst, and can be invoked as
a menu item at any time.
o New products are being produced with dates where old
ones had internal version numbers. The -n option can
be used to display version numbers in the old form.
o The -q option prevents all output, returning only exit
status.
o The format of the display has been improved.
5.8 Changes_to_4Dgifts
As in previous system software releases, Release 4D1-3.3
includes a set of on-line source code examples on the DEV
(development) tape in the dev.sw.giftssrc subsystem. These
gifts are not installed or updated by default. To use them,
you must first manually install them using inst(1M). For
detailed information about using inst and the manual
installation features, see Chapter 2, ``Installing
Software''.
Once the gifts are installed, you will find these source
code examples in a sample user account directory called
/usr/people/4Dgifts. 4Dgifts is set up as a sample user
account to allow you to learn by example and to allow you to
be productive while you are learning to use and customize
the NeWS environment.
You should find a README file in virtually every directory
in and including ~4Dgifts. The README files describe the
contents of each directory and provides information that
will help you locate the types of source examples you are
looking for. Read the file /usr/people/4Dgifts/README to
for an explanation complete understanding of the contents of
4Dgifts.
The source examples provided include programs demonstrating:
o Fortran and C graphics
o the fontmanager
o how to use peripherals (e.g., the dial and button box)
o the Hitachi digitizer (tablet)
o a simple generic SCSI device driver
o some cps, network, UNIX, and video examples
o the January 1989 version of Kermit from Columbia
University (This is provided only as a courtesy -
Silicon Graphics does not support Kermit. See the
README file in the kermit directory.)
o a complete set of Silicon Graphics image libraries for
creation and manipulation of image files
o programs demonstrating a sample WorkSpace environment
5.8.1 New_4Dgifts_Directories New directories of note are:
o ~4Dgifts/examples/audio
An audio program for 4D/20 and 4D/25 Personal Iris
machines demonstrating how to digitally record
microphone input, place the data in a file, as well as
playing back the sounds recorded.
o ~4Dgifts/examples/glpg
This subtree contains on-line versions of the source
code examples given in the Graphics Library Programming
Guide, Version 2.0 (with the exception of Chapter 18).
o ~4Dgifts/examples/network
This directory replaces the previous incarnation, tcp,
and demonstrates how to use 4.3BSD Internet and UNIX
domain sockets on IRIX.
o ~4Dgifts/src/acpp
Contains a set of files that comprise the ANSI C
compatible pre-processor accessible via the cc(1) flag
-acpp.
o ~4Dgifts/src/dglfax
Contains source code for the dglfax(1) utility.
o ~4Dgifts/src/sphere
Contains source code for the molecule demo
/usr/demos/bin/mview, which makes use of libsphere.a,
to show how functions in the sphere library are used.
o ~4Dgifts/tutorials
Contains interactive graphics tutorials previously only
available to those who have attended SGI's 4D Graphics
and Advanced Graphics courses. Areas covered include
color, light, basic drawing primitives, and modeling
and projection transformations. All tutorials are
implemented with a user interface that allows you to
interactively change the different parameters in real-
time and see the effects these changes generate.
o ~4Dgifts/wspace
Contains WorkSpace goodies including:
a subdirectory containing example .ftr files and scripts,
a file containing ``poweruser'' short cut capabilities.
5.8.2 4Dgifts_Subdirectory_Descriptions The main
subdirectories in 4Dgifts are: examples, kermit, iristools,
src, and tutorials. The examples directory contains various
subdirectories housing an assortment of code examples:
___________________________________________/No man is a failure who has friends
Trevor Paquette ICBM:51'03"N/114'05"W|I accept the challange, body and soul,
{ubc-cs,utai,alberta}!calgary!paquette|to seek the knowledge of the ones of old
paqu...@cpsc.ucalgary.ca | - engraved on the Kersa Blade of Esalon