home *** CD-ROM | disk | FTP | other *** search
- UnixLib 37.a
- ~~~~~~~~~~~~
-
- There have been significant changes in UnixLib 3.7a, mostly for support of
- GCC 2.7.2 and GNAT, and most of these have been done by Nick Burrett and
- Peter Burwood.
-
- Due to the size of the changes, this version should be considered a late
- beta-test version, rather than a full release. It is likely that there are
- problems, and that there will be a further release.
-
- The biggest change in UnixLib is the ability for programs running under
- RiscOS 3.5 or later to place the heap into a dynamic area. This has two
- benefits - Dynamic areas are not re-mapped on a program switch, so the
- process switch is faster, and dynamic areas can be made virtual with
- virtualise, which increases the maximimum size of program.
-
- Dynamic areas are controlled in two ways:
-
- 1) The program can disable dynamic areas by defining the variable
- __dynamic_no_da. I.e. in one of the source files, put something like:
-
- int __dynamic_no_da;
-
- The precise type of the variable is irrelevant - it only needs to exist.
-
- 2) A user can enable dynamic areas by defining an environmental variable of
- the form <prog_name>_heap, where <prog_name> is the leaf name of the program
- being executed. I.e for GCC 2.7.2, the user would type the following at the
- command line
-
- *set gcc_heap ""
-
- As with disabling dynamic areas, the value is irrelevant, the variable jusr
- needs to be defined.
-
- Note that this may change - I think it should be gcc$heap, etc, but I have
- not told Nick yet.
-
-
- Changes in UnixLib 3.7a
- ~~~~~~~~~~~~~~~~~~~~~~~
-
- As a rough summary, the following area have been changed:
-
- * Signal handling
-
- This has been tidies up and rationalised slightly
-
- * Memory
-
- malloc(), etc have been replaced by a much improved group of functions, that
- should have better characteristics, and less chance of loosing memory.
-
- * Source control
-
- All sources have been placed under RCS, so it should be harder to loose
- sources, and easier to keep track of who did what.
-
- * General tidy up
-
- All source code has been changed to pure ANSI format, with all K&R style
- functions changed appropriately.
-
- All extern declarations in the source code have been deleted and replaced by
- appropriate header files.
-
- Any code that was permamently #ifdef'ed out has been removed.
-
- Several compiler warnings have been disabled by appropriate casts.
-
- * resource
-
- This is entirely new, and mostly consists of stub functions that implement
- unix style resource control.
-
- * stdio
-
- A minor problem with close() reporting an erroneous error has been cleared.
-
- print() has been fiddled with, in an attempt to improve the printing of
- floating point numbers. It might help.
-
- * sys
-
- This has been the most changed area, mainly to add the ability to use dynamic
- areas under RiscOS 3.5+
-
- * time
-
- Again new, and provides functionality to control time and date, etc.
-
- * unix
-
- getcwd() has been improved for use with !Virtual
- General tidy up.
-
-
- Rebuilding UnixLib
- ~~~~~~~~~~~~~~~~~~
-
- If you wish to rebuild UnixLib, you will need the Norcroft C compiler V4 or
- later, objasm, make, etc.
-
- Before starting to rebuild, the file !startup should be executed to set a
- required environmental variable.
-
- The makefile is in the Obj directory, and all objects, and the library will
- be built in this directory. The resulting library can be copied to the clib.o
- directory by the 'install' target.
-
- Any modified sources or header files should be placed in the appropriate
- subdirectory under the dev directory.
-