[Oberon] ANN, Unix Oberon ports, release 2.4.3

Hi Oberoners, I'm pleased to announce a new release of Unix ports of the Oberon system. They can be used as guest systems on top of the following host systems: Solaris/SPARC, Solaris/x86, Linux/x86 and MacOSX/ppc. The ports will be available at the ETH server in a few days. They can already be downloaded from: ftp://ftp.informatik.uni-bremen.de/home/fld/oberon/x86.Linux/* ftp://ftp.informatik.uni-bremen.de/home/fld/oberon/x86.Solaris/* ftp://ftp.informatik.uni-bremen.de/home/fld/oberon/sparc.Solaris/* ftp://ftp.informatik.uni-bremen.de/home/fld/oberon/ppc.Darwin/* The following has changed since release 2.3.8: ------------------------------------------------------------------------- - boot loader All Unix Oberon ports are now shipped with two boot loaders. The default boot-loader <arch>.oberon has the threads extension support enabled. A second one <arch>.oberon.nothr is compiled with threads support disabled. It can be used as a fallback if in a future version of the host system the behaviour of the threads (posix threads in Linux) changes again. The user can select the needed boot loader by modifying the starup script. The Oberon system still does not depend on threads! - Input.Mod The module Input contained code which enabled users to type german umlauts on US ASCII keyboards. This code caused more problems than it solved. As nowadays most systems are equipped with native keyboards this code is no longer needed and got removed. The arrow keys didn't work with num-lock or caps-lock on. solved. - Kernel.Mod Kernel got a more rubust garbage collector. The old version of the GC trapped when it came upon illegal pointer values in records. This should never happen, but some times, after reloading modules with changed interfaces, it did. - Compiler, Watson, OFormatter The compilers now recognize keywords in lower case as well as in upper case if the first keyword in a compilation unit (the keyword MODLULE) is typed lower case. - Threads a) Module Threads got a cleaner and less error prone interface and conditions were added. A new module Semaphores which implements Dykstra's P- and V-operations was added. b) A race condition which happend when starting threads on multi- processor machines got fixed. For testing and demonstation look at TestThreads.Mod and TestSemaphores.Mod and the new SortDemo Gadget (see below). In the Solaris ports the threads allways support priorities. To enable priorities in the other ports, which use posix threads, the boot loader must have root previlleges. This is the default in the MacOS port but very dangerous on Linux systems. - Sort Demo To see how well the Oberon Gadgets work with preemptive multitasking the sort demo, which was originally created by W. Weck and J. Gutknecht, has been modified. It now runs in a Gadgets panel, clever quicksort got added and the main activity (sorting) is performed as background thread thus keeping the system alive while the demo is running. This is done by using the Threads module of the Unix ports and it shows that it is possible to use Gadgets in conjunction with threads with minor effort. The modfications needed to adapt the sort demo to threads are marked red in the sources (SortDemo.Mod, SortViews.Mod, Sortd1Control.Mod, Sortd2Control.Mod). The display speed has been adjusted to allow the users to really see what happens. The compared elements get highlighted and the speed can be increased or decreased while the sorting is in progress. The users can even select for animated swaps. Or they can start two or more sorts in parallel and watch how different they do their work. The latter is also done in a second panel (SortDemo2.Panel) I think it's a really nice demo now which allows you to study the behaviour of the sort algorythms in great detail. The demo got tested on Solaris8/10 sparc. Solaris10 x86, Linux (fedora3 and fedora5) and MacOSX on single processor machines as well as on multi processor machines. -- Guenter