Date:    Tue, 05 Jul 1994 20:15:09 -0400
From:    mib@gnu.ai.mit.edu (Michael I Bushnell)
To:      hurd-ann@gnu.ai.mit.edu
Subject: New Hurd snapshot


A new Hurd snapshot has been released.  You can get it from
alpha.gnu.ai.mit.edu in the file /gnu/hurd-snap.tar.gz.  You will need
the most recent version of the GNU C library; version 1.08.3 or later.
(Version 1.08.3 is an alpha release; you can get it from
alpha.gnu.ai.mit.edu in the same directory.)

This snapshot of the Hurd has a limping terminal driver.  It can run
emacs, bash, a whole slew of utilities, and (most importantly) GNU
Hello.

	-mib


Here is the new part of the NEWS file:

The Hurd now runs all the programs in the GNU fileutils, textutils,
and shellutils distributions, with the exception of who.  Most
importantly it runs GNU Hello.  Also, emacs works (with the kludgy
`boot' terminal driver) and bash works.

The simple pipes server works; it will be replaced eventually by the
pflocal server (which isn't done yet).  The terminal driver is limping
but working.  It doesn't support terminal ioctls yet.  A minor bug in
auth has been fixed.  boot interprets more Hurd protocols; this was
done to get emacs functioning.  Some more-or-less serious bugs in exec
were fixed; they were found by running emacs (a quite large executable
indeed).  At bootstrap time, init starts pipes and term itself;
eventually these will be passive translators, but we don't want to
write the new disk format until we're self-hosting or fsck and UX will
get confused.  The file proc/primes.c has been documented; thanks go
to Jim Blandy.  Some bugs in proc dealing with pgrp and wait were
fixed; a nasty hash table bug was also fixed.  The simple shell can do
pipes.  Several serious bugs in ufs were fixed dealing with extension
of large files and writes of data not aligned on block boundaries.
The ufs pager was over-serialized; that's been fixed.  Directory
lookups and modifications now use mapped I/O directly; this is an
important speed-up.  The structure of the pager lockes has been
changed significantly.  UFS now supports Mach copying mode
MEMORY_OBJECT_COPY_DELAY; this significantly improves process startup
time.  

Some minor changes have been made to several interfaces.  The
interface for fs.defs:dir_readdir has been totally changed.  There are
some new fs.defs interfaces: file_check_access, file_notice_changes,
dir_notice_changes.  The fsys.defs:fsys_getroot interface was changed
to work correctly.  process.defs:proc_setprocargs is renamed, and a
fetch function proc_get_arg_locations is added.  The ifsock.defs
interface was simplified.  

Several bugs were fixed in libdiskfs.  The new dir_readdir interface
requires new support from format-specific code.  Some race conditions
have been fixed.  dir-pathtrans.c now deals correctly with multiple
slashes in a row.  A new concept called "light references" allows
pagers to remain active without preventing truncate-on-nolinks from
working right.  New interfaces in fs.defs are implemented (except
file_notice_changes).  Active translator usage has been fixed to work
correctly, but passive translators are still untested.  libdiskfs now
thinks it supports S_IFSOCK nodes, but that's untested (of course)
because pflocal isn't done yet.

The passive translator startup interface in libfshelp has been
radically simplified.  The pager library now lets other code set and
changee the attributes on objects, synchronously if desired.  An
init/terminate race condition was fixed.   The ports library now
allows single-threaded users to work right (they didn't before).  The
trivfs library works; see the ifsock server for a simple example of
its use.  See term or pipes for more complex examples.  

There is a task list in the file `tasks'; let me know if you are
interested in working on one of these.