[comp.sys.acorn] UnixLib - Testers Wanted!

rogersh%t5j@uk.ac.man.cs (Huw J. Rogers) (03/05/91)

	I have a new version of UnixLib which seems reasonably stable and now
provides the following features:

	0) Almost all the V7 UNIX system calls plus:
	1) Implementation of vfork(), execve(), and pipe().
	2) Inheritance by child processes of FD set, proc structure, etc. as
per V7 UNIX allowing full I/O redirection.
	3) A rewrite of the SYS V termio interface, including the
ability to use RS423 or console as tty, and control it fully using ioctl().
	4) Contiguous stack - gcc here we come!
	5) Improved RiscOS interface.
	6) Very stable (heavily tested) (and fast) stdio.
	7) Much faster qsort() and various other optimizations.
	8) Common UNIX C libraries: All the stuff that was copied into the
ANSI standard (qsort() etc.) and also:

	getpwent(3)
	directory(3)
	termcap(3)
	random(3) / lrand48(3)

	I want to put GNU curses on top of termcap, but haven't got the
source... I also want to add getcwd(3) and some other stuff to the list
but there are some implementation problems with that. The missing system
calls are almost all root only calls.

	Of course the major advantage is 1) - this allows the compilation
of GNU bash, and the use of pipelined command sets etc. as per UNIX (given
that the subprograms thus called by the shell are also UnixLib programs).
Although execve() calls OS_CLI at the lowest level and will execute
any RiscOS program/command, only programs compiled with UnixLib will
be able to inherit the FD set, actual argv[] array and proc structure of the
caller, thus allowing I/O redirection and proper argv handling amongst
other things. Note the fork provided is VFORK *not* FORK. vfork() is
different, but as far as shells and pipelines are concerned there's no
real problem with a #define fork() vfork(). pipe() is implemented as
a write, read, delete to Wimp$Scrap (pipe() fails if it isn't defined).

	Please don't ask exactly how I manage to call subprograms and
return nicely to an uncorrupted parent - it's horrible... :-(

	In order to avoid the small amount of chaos that was generated when
I posted the last version of this software, I would like to hear from as
many people as possible with UNIX s/ware they want to port to the Arch.
(perferably complex/large) who would be willing to put up with the odd bug,
and report it. These brave volunteers will receive the recognition they
deserve... :-) I need people with a fair understanding of C, UNIX, and ARM
code and they will be in possession of the source code. I only possess a
2Mb A3000 + 1 FD, hence I can't really test the library out on large s/ware
myself. However I will personally be attending to NetHack 3.0 PL10.

	This period of testing would last for a month or so, then I would post
a stable release to comp.binaries.acorn (which should by then exist). Between
now and then I will also rewrite the filename conversion routine (which needs
an overhaul: It needs to be able to be customised more by the user, and also
to address multiple drives/FS from within the UNIX naming domain).

	I will surface mail disks to testers in a week's time, all being well.

	Thanks for listening...

			Huw

[ H.J.Rogers (INTERNET: rogersh%p4%cs.man.ac.uk@cunyvm.cuny.edu)       ]
[    ,_,     (BITNET/EARN: rogersh%p4%cs.man.ac.uk@UKACRL.BITNET)      ]
[  :-(_)-o   (UUCP: ...!uunet!cunyvm.cuny.edu!cs.man.ac.uk!p4!rogersh) ]
[   _} {_    (JANET: rogersh%p4@uk.ac.man.cs)                          ]