Journal Articles
Browse in : |
All
> Journals
> CVu
> 012
(9)
|
Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.
Title: The C Source Library
Author: Martin Moene
Date: 20 June 2010 08:56:00 +01:00 or Sun, 20 June 2010 08:56:00 +01:00
Summary:
Body:
INTRODUCTION
The CUG library is intended to be a collection of public domain C source code brought together so that anyone who wishes to may use the programs and further develop them both as an aid to their own learning and enjoyment and to improve the stock of C software in the Public Domain.
Very few real programs are ever written from scratch. Most things are developed using and adapting parts from previous programs. The library will serve as a 'toolkit' of parts to aid in the process of developing new ideas.
May PD Software & 'Shareware' libraries carry some C source code amongst their wide selections but the CUG library is specially dedicated to making source code available for programmers to develop with rather than being a source of 'ready to run' free programs. This feature makes the library useful to people with a wide range of machines and interests.
If you have a machine with a C compiler that is able to read one of the disk formats the library is offered on then we have something to offer you. Many other library services cater only for the strict IBM PC clone market. The CUG library does not care if you have a PC, an Atari, an Apricot, an Archimedes or even a Unix system.
The two disk formats that the library directly supports are the PC 360k standard for 5 1/4" disks and the 720k double sided 3 1/2" format used by IBM PS/2, Apricot, Atari ST and most of IBM compatible portables. Single sided variants of the above formats are also available if requested.
To read a library disk you will need to be able to understand Microsoft MS-DOS disk format WITH sub-directories i.e. DOS 2.0 or above. The library disks will use sub directories to partition files into groups that belong together. If a program has more than one source file it will have a directory to itself. No form of archiving or packing will be used on the library disks. This removes the need to have a version of ARC (or similar) that runs on your machine. If you want to download software off one of the online systems CUG sponsors then you will need an ARC program as the library files will be available online in .ARC format to save space & download time.
If you cannot cope with an ARCed file then a kind message to the SYSOP of the board will result in the files being left un ARCed for you to download individually.
Except for a few documented exceptions everything in the library must be in source code form. The library will only carry 'shareware' function .LIB files on disks that are indicated to be for one type of machine only. If a library disk contains material that can only be used by one type of machine this will be indicated in the library list. Most library disks will be useable by any machine (with adaption in some cases).
For some programs an MS-DOS .COM or .EXE version of the program is included. You run this program at your own risk!!!! - In most cases it is the executable that was given to the library at the same time as the source but I cannot guarantee that it works/is the same program/is not malicious (a Trojan). Some but not all of the .EXE files have been generated from the sources by myself.
The library does not at present cover the Apple Mac or any of the CP/M formats (including Amstrad P.C.W.). If you have one of these machines then contact me and I can arrange transfer of the volume of your choice by modem. This will be for the same charge as the disk would be but you will also have to pay the phone bill.
Another alternative would be for you to find a friend with a machine that can read one of the disk formats and do a serial transfer over a direct RS232 line.
HOW IT WORKS
The way the library works is that any C code donated to the library will be catalogued and a CUG Library header comment prepended to the file. This comment (reproduced below) is intended to allow the change history of the file while in CUG hands to be recorded. It is hoped that any CUG member that improves a library program will re-submit it to the library so that all may benifit from the work they have done. In this way all may learn together and produce good software for the benefit of all. Here is a sample comment (anything between <and> is variable information):
/******************************************************************** * C Users Group (U.K) C Source Code Library File <disk num> * * Inquiries to: M. Houston, 36 Whetstone Clo. Farquhar Rd. * * Edgbaston, Birmingham B15 2QN ENGLAND * ******************************************************************** * File name: <name of this file> * * Program name: <name of program to which file belongs - which * * could be a library or an executable> * * Source of file: <where the original came from before the library>* * Purpose: <what it does> * * Changes: <who what when & why major changes have been made> * ********************************************************************/ |
<disk num> is the library disk number that the file comes from - 0 means that the information has not been filled in.
The library will try to ensure that each file that goes out will have at least a blank header but it is largely up to the members to fill the headers in and keep them up to date. I feel that this is a bit of discipline will be of great benefit to the CUG members as it will enable a database of what is in the software library to be kept so that answers can be supplied to such questions as "Can you find me a function that does pattern matching?" or "Are there any assemblers in the library as C source?".
It will take a while before the library enquiries database is fully operational but I feel it is a goal well worth attaining. The header will usually only be put in the 'main' module of any multi module program that obviously belongs together (such as the xlisp sources). If members want to go through and header each and every file then they are welcome to but doing so intelligently requires considerable knowledge of the structure of the program. The poor librarian cannot be expected to be an expert on every program in the library!
LIBRARY LISTS
Each issue of C Vu will contain a list of what is in the library. In addition to this a seperate totaly up to date list is available to anyone who sends a large S.A.E together with 20 pence in stamps to cover expenses. The library list is also available for download from the Chronosoft BBS or Dr Solomons FIDO (details in C Vu). If you are looking for something in particular then contact me and I shall try to find it for you.
LIBRARY ORGANISATION
Each library disk will be dedicated to a specific subject area as the range of material in the library permits. For instance material that is strictly of interest to people with IBM PC compatable hardware will be isolated from generaly portable material. This division is made on the barest aquaintances with the program - I cannot guarantee that everything in the generic section is suitable for all machines - the specific machine divisions are for programs that are OBVIOUSLY only of interest to owners of a specific machine.
When a library volume is strongly suited to one particular type of machine in this way the list will say so to save people ordering disks that are of no use to them. Needles to say the C Users Group can offer no warranty as to the quality and fitness for any purpose of anything in the library. Public Domain programs are almost bound to have bugs in them; it is hoped that the work done by group members on the software that comes into the library will improve this situation.
UPDATING THE LIBRARY
The initial offerings in the library have mostly been culled from the offerings of other 'shareware' libraries & BBS downloads. Some material has been donated by CUG members. At the moment organisation of the library is in its early stages and the quality of the software patchy. I have endavoured to cut out on duplication and the banal leaving a reasonable base of material on which to build a strong UK Public Domain resource.
If you have taken one of the programs from the library and have made significant improvements to it then you may re-submit the improved version for inclusion to the library. Any improved versions of the library programs will be made available to the membership as separate volumes will full acknowledgement to the member who has done the improvement work. The original version will remain available as the original volume number. In this way the development of the programs under out control can be traced and the same program can be allowed to branch off into many separate development paths. Anybody submitting an improved version of a library program will be entitled to an equivalent amount of new library material at no charge.
If you indicate that you would like to be put in touch with other members that are working with the same program then this can be arranged through the pages of C Vu (a sort of programmers dating agency!!). Some of the programs already in the library such as the xlisp lisp interpreter and bawk text processing language are complex enough to need some joint effort to get to grips with them.
ORDERING
Library material is available to CUG MEMBERS ONLY at the following rates (all fully inclusive):
COST (Inclusive) | |
---|---|
Your own 5 1/4" disk standard volume | 2.00 |
Our 5 1/4" disk standard volume | 3.00 |
Your 3 1/2" disk standard volume | 2.00 * |
Our 3 1/2" disk standard volume | 3.50 |
Specially selected material | 4.00 surcharge on above rate. |
* A 3 1/2" disk will hold two standard volumes if formatted as double sided (this does not suit some machines). If you want a second volume on the same disk then the charge is only 1.00 extra.
PLEASE NOTE that if you want a single sided 3 1/2" disk then please say so when you order. The 3 1/2" drive on my XT machine where the library is kept will not format single sided disks so any single sided orders have to be processed through my Apricot F2. I know that 520 ST's come with a single sided drive but I should think that anyone thinking about C compilations would have at least a double sided drive. Am I wrong? If so please tell me.
The surcharge of 4 pounds is made for a library order other than one of the standard prepared disks. When the data base system is in operation it will be possible to look out a selection of files matching certain criteria. This takes time however so the surcharge is made. The surcharge will apply to every multiple of 360k of data selected. I hope that my efforts in sorting out the library volumes will mean that no one will ever need the special service!
If you are donating material for the library (or are returning an improved version of a library program) then you may have any standard volume from the library copied on to the disk for no charge. (The Librarian reserves the right to judge what is a sensible contribution to qualify for a free volume - sending a disk with 'hello world' on it will not get you off paying the two quid!).
CONCLUSION
I hope that this has given you an insight into how the library is intended to work. Hopefuly the library will become the focal point of the activities of the group as there is much in it as topics for discussion and development. I hope you find the charges are reasonable; the library takes a lot of time & machine resources to run effectivley so it cannot be a free service. Two pounds for over 300k of C source code & related material is very good value for money and goes some way towards contributing to the running costs of providing the library.
One final word: the library is only going to be any good if it is USED. If it is used well with people contributing as well as taking then it could grow into a valuable resource for the C Users Group & all C programmers.
Notes:
More fields may be available via dynamicdata ..