home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
fish
/
languages
/
northc_384
/
changes
< prev
next >
Wrap
Text File
|
1990-09-08
|
9KB
|
247 lines
(c) 1990 S.Hawtin.
Permission is granted to copy this file provided that:
1) It is not used for commercial gain
2) This notice is included in all copies
3) Altered copies are marked as such
No liability is accepted for the contents of the file.
CHANGES within NorthC
This file outlines the changes that have occurred to NorthC between releases.
Release 1.2
***********
1.2.1 A68K
A new version of A68K is being used, this allows the use of two
flags,"-g" and "-q". The "-q" flag prevents A68K from outputting as it
assembles, unless it has an error message to report. The "-g" flag makes
all undefined symbols into globals, this means that NorthC does not need
to add lots of "XREF" calls. The "make" program has been altered to take
advantage of the new "a68k".
1.2.2 "top"
The "top" optimiser has been ported from Sozobon C on FISH 314, this
will reduce the size of object code. Because it takes some time it should
only be used when you don't mind waiting for compilations. The code has
been slightly modified to work with NorthC. The optimiser does not seem
to make as much difference as I would expect, I suspect that I have
introduced a bug with my changes.
1.2.3 strtol()
Another bug in strtol() has been fixed, when the number filled the
string the wrong value was returned. Maybe this will fix strtol() for good.
1.2.4 UNIX library
A library of UNIX style functions has been implemented, these are to
make "a68k" work. These functions are for porting programs from UNIX and
MSDOS, once the code is ported it would be best to convert it to "proper"
ANSI functions. See the documentation file for details.
1.2.5 More examples
I will release NorthC 1.2 as a two disk set, this will allow me to
release more of the source code, and more examples. I will attempt to put
all the essential code on one disk and examples on the other. From now on
I will only release NorthC in compressed form. The file "CONTENTS" will
shows which code is on each disk.
1.2.6 Static arrays in functions
The bug with static arrays in functions has now been fixed.
1.2.7 Preprocessor directives
The bug with #undef reported by Martin Combs has now been fixed, a new
ANSI style preprocessor directive #elif has been implemented.
1.2.8 Clearing address registers
The bug that caused incorrect assembly code to be generated when address
registers were set to zero has been fixed.
1.2.9 New NorthC command line flags
NorthC will now accept a "-C" flag, if this is set all BSS and DATA
segments will be placed in chip memory.
1.2.10 Default console
The default console is now "con:20/20/400/100/NorthC Program" to allow
programs more chance to run if you boot up with old disks that do not
support the "newcon:" device.
1.2.11 "crt0.asm"
The "crt0.asm" file has been tidied up following suggestions from Martin
Combs, thanks Martin.
1.2.12 Mini-hello, translate and fortune
Three new example programs have been placed on the examples disk,
"mini-hello" shows how to create small 'C' programs, "fortune" prints out
inane phrases and "translate" translates ASCII files into a format that
word processors like.
1.2.13 4 byte integers
I have converted the 'C' library to use 4 byte integers, I have used the
changes from Jeff Lydiat to convert the compiler to use 4 byte integers as
well.
1.2.14 Workbench arguments
I have changed the startup so that if a NorthC program is started from
the workbench then it will have some arguments passed in the "argc" and
"argv" arguments. If the icon is a tool type then "argc" will be 1 and
"argv[0]" will be the name of the program, if the icon is of project type
then "argc" will be 2 and "argv[1]" will be the name of the icon that
called the tool.
1.2.15 New variables
The variables "_WBmsg" and "_Task" are now available for 'C' to
manipulate, "_WBmsg" contains a pointer to the workbench message if the
program was started from the workbench, "_Task" contains a pointer to the
program's task structure.
1.2.16 _stdoutUnbuffered
A new integer variable has been defined, _stdoutUnbuffered, if the value
of this variable is 0 then the "stdout" FILE will buffer its output.
1.2.17 "defaults.c"
The variables that control the behaviour of the program have been
collected into a single file "defaults.c" you can change the behaviour by
editing this file and including the resulting object file in your program.
1.2.18 Other things
Again most of the changes for this release have not been documented, if
you are updating from an earlier version you should be careful. However the
good news is that
Draw(rport,20,60);
will no longer trash your machine.
Release 1.1
***********
1.1.1 Static variables
The bug with static variables within functions has been fixed.
1.1.2 AmigaDOS stubs
The stubs for most AmigaDOS libraries have been added, the only 1.3
libraries that are not covered are "mathieeedoubbas.library" and
"mathieeedoubtrans.library". The OpenLibrary() function has been extended
to, detect the opening of standard libraries, note the library pointer for
'C' stubs, and cause the automatic closing of libraries when exit() is
called or the program terminates.
1.1.3 Time functions
Most of the functions in the ANSI 'C' time package have now been added
to the library, the only remaining missing function is mktime().
1.1.4 Floating point
Floating point numbers now work, the compiler will now recognise them,
the subtraction and division functions take their arguments in the correct
order, the printf() function can use floating point formats, and so on. I
have not extended scanf() to cover floating point numbers yet, see "Bugs.doc".
1.1.5 New functions
A number of functions have been added to the 'C' library, these
include_div(), _ldiv(), abs(), atan2(), atexit(), bsearch(), fmod(),
frexp(), labs(), ldexp(), memchr(), memcmp(), memmove(), memset(), modf(),
perror(), qsort(), rand(), rename(), srand(), strerror(), strtod() and
tmpnam()see the "libc.doc" file for details of the latest set of functions
that are included in the library.
1.1.6 New Definitions
A number of definitions have been added to the 'C' include files, these
include atof(), atoi(), atol(), EDOM and ERANGE the "libc.doc" file gives
details.
1.1.7 Locale and multibyte support
Having decided not to support the locale and multibyte characters in
ANSI 'C' I have explained ways to emulate the functions in the "libc.doc"
file.
1.1.8 File handling
The file handling functions have been tidied up, this includes the
implementation of some previously missing functions, fgetpos(), freopen(),
fread(), fseek(), fsetpos(), fwrite(), ftell() and rewind(). In addition
the functions fopen() and fflush() have been extended to allow files to be
opened with all the ANSI file modes. This has been made easier by the
fact binary files and text files are the same.
1.1.9 strtol()
The strtol() function was incorrectly defined to take a long value for
the base. Once this was fixed the function would fail if a base of zero
was used, this has been fixed as well.
1.1.10 Documentation
The file "AmigaDOS.doc" has been added, this lists all the AmigaDOS
functions that are supported by this version of the 'C' library. The file
"CHANGES", this file, lists all the changes from previous versions of NorthC.
1.1.11 Make program
A version of "make" has been created and added to the environment, some
documentation for the program has been created. This is not a full
implementation, for example it does not support macros, however it does
most things that are required.
1.1.12 GNU-GO
The program "gnu-go" has been removed from the disk, if you are
interested in the game of "go" you can get the source from NorthC 1.0,
check out your local public domain supplier. Fish 340 contains a copy, if
you can get the "unpack" script file to work.
1.1.13 CRender
An example program "CRender" has been created, this will provide a
simple display of a three dimensional object rotating in space. The
directory "NorthC:examples/CRender" gives some documentation.
1.1.14 Workbench directory
When a program is called from the workbench the directory is now set
correctly.
1.1.15 Other things
Most of the changes for this release have not been documented, if you
are updating from an earlier version (either 1.0 or 0.1) you should be
careful. Beware of weirdness arising from the fact that all AmigaDOS
routines take long arguments,
Draw(rport,20,60);
for example will almost certainly trash your machine.
Release 1.0
***********
This was the initial public release of NorthC, it includes a 'C'
compiler and library. Some of the numerous bugs and omissions are
documented in "Bugs.doc" and "libc.doc".