
1.10.10 * add new method -concat: to string

        * fix bug in Rectangle copy (didn't super copy)

1.10.9  * change |top| and |bottom| of Rectangle class to match ICpak101
	
	* change |isBelow| and |isAbove| of Point cls to match ICpak101/Squeak

        * keep |height| and |width| (to further complicate things) compatible
          with Smalltalk-80 / Squeak (and incompatible with ICpak101).
	
	* fix -addAttribute:from:size: runArray

1.10.8	* fix warnings in RunArray about fromString: methdo

	* fix problem with #pragma on sgi cc with Xm header

1.10.7  * fix bug in runLengthFor: in case index was not start of run
	
	* add .rtf documentation files again (you can use the new richtext
	  application now to preview the files, set RTFPATH to the rtf
	  documentation directories and then "richtext Stack" shows the
	  Stack documentation)

	* use GNUOBJCDIR env.variable in configure script for finding
	  their Object.h (in case of using objpak with other compilers)

	* add -hash for OrdCltn Set

1.10.6  * allow p==q in -addAttribute:from:p to:q in Text class

        * rewrite RunArray -addAttribute:from:to: (make it much faster)
	
	* cleanup of IdArray, IntArray and add -packContents method
	  (similar to the ICpak101 -packContents)
	
	* removed the methods -position and -size from TextAttribute.
	  those methods were not in the Squeak class TextAttribute, and were
	  specific to the POC; removal should not change anything since
	  one was supposed to use RunArray's -at: and -runLengthAt: instead.
	
	* add method -emphasizeScanner: to TextAttribute so that
	  Scanner classes can send -emphasizeScanner: to any attribute

1.10.5  * no changes, just update version number for sunsite version problem

1.10.2  * use patch from pearcs@rpi.edu for linked lists of objcmodules arrays
          removing limitations on number of shared objects to be loaded.
	
	* update HP-UX shl_load() example
	
	* fix watcom port : have to pass va_list by reference, or use -noFwd

1.10.1
	* added new classes Text, RunArray, Paragraph etc. to objpak
	  (similar to their Squeak/ST-80 equivalents)

	* added messages asText, asParagraph etc.
	
	* regenerate documentation with new tool (that uses Text, RunArray etc)

1.9.13
	* update BUGS file (a bug related to blocks seems to have reappeared)
	
1.9.12
	* fix bug in driver which caused -I flag not to be passed to cc
	  when compiling files with .c extension (workaround was to use .m)
	
	* moved stuff for XIntrincics from object.h to string.h
	
	* add -freeAll message to Dictionary
	
	* add patch from ninja@aerohel.snu.ac.kr to ascfiler.m (for double's)
	
	* made change to sortcltn to use -methodFor: (also works with GNU).
	
	* some header file fixes for compiling with GNU cc

	* add -m486, -xansi, -Ae etc. options to driver (for flags used via
	  'imake' Imakefile makefiles and Objective-C)

1.9.11
	* remove __STRICT_ANSI__ from Linux driver
	  (not needed anymore, i think, was in there for historical reasons)
	
	* remove useless warning about optional comma

1.9.10
	* add patch from hakank@netch.se for new ecgs _G_config.h problem
	  (with the __extension__ keyword)

1.9.9
	* add instance variable to Block class for size of data
	
	* add argument to newBlock() for size, (Block -free uses this)
	
	* add dl stuff for sysv4.2uw (unixware)

1.9.8
	* configure for unknown platforms to use gcc instead of cc
	  (if the platform is unknown, this is safer)
	
	* explicitely configure to use cc for DEC,HP,AIX,Unicos etc.

	* update config.guess and config.sub scripts
	
	* fix objcrt.h for win32 platforms (msvc etc.) per Luis Roux
	
	* fix -(int)size warnings of libcakit headers

        *  add -Zi /Zi -Zd and /Zd options for MSVC debug

1.9.7
	* make OrdCltn -emptyYourself zero out memory (like -freeContents)
	  per Bonnefoi
	
	* add NEVER_INTERACTIVE to lexers to avoid fileno() problems

1.9.6
	* fix bug in assignSTR: reported by ninja@aerohel.snu.ac.kr
	
	* add configuration for DEC alpha shared libraries from
	  bonnefoi@unilim.fr (building shared libraries on the DEC should
	  work now)
	
	* renamed 'moreLibs' to 'makeLibs' and fixed problem with gcprefix
	
	* LD_LIBRARY_PATH support for objcrt and objpak if you use -dynamic

	* set suffix for shlibs on IRIX to .so instead of .so.1.9
	
	* set suffix for shlibs on HP-UX to .sl

1.9.5
	* Move definitions for builtin functions from configure script
	  to include/objcrt/objcrt.h (there are now a bunch of #pragma's
	  at the top).  this means that the program has to include
	  objcrt.h, but that is usually the case.
	
	* Implement #pragma OCbuiltInFctn, #pragma OCbuiltInType
          (as alternative to the TenDRA tokens that I was using before)	

	* Add __alignof__ for SGI but with gcc (instead of cc)
	
	* Add message -str to Object (root class)
	  implement -isEqual: of String to send -str to its argument
	  this is for a subtle compatibility issue with Stepstone icpak101
	  (used in the producer source code)
	
	* Add new driver for Macintosh MPW (MPW script instead of binary)
	  See src/objc/objc.mpw.in
	
	* Modifications to Makefile.mpw files for the change.

1.9.4
	* fix for bad bug on DEC alpha involving SortCltn's +sortBlock.
	  modified +sortBlock: to return min of arguments.
	  (reported by Bonnefoi)

	* incorporate some patches from Val Gough; objc -c -objc foo.cc
	  is now compiling foo.cc in objc mode 

	* incorporate patch from Val Gough for new use of __extension__
	  in c++ case.  (support for egcs)
	
	* add support for powerpc-apple-rhapsody5.1 in util/config.sub
	  and configure script (platform name by mindray@ix.netcom.com)

	* some cleanup of manual.html
	
	* added script util/plinktst for testing public storage c compiler

1.9.3
	* improve warning when mixing -postlink and non-postlink objects

	* fix for (innocent) compiler warning on DEC alpha in objc.m

1.9.2
	* fix for (void)foo which was implemented in 1.9.1 but not tested ...
	
	* improve (significantly) compile times in fwdimp case by using
	  hashing (Set) in compiler for forwarding stubs + further reduce
	  emitted code by using a new function selptrfwd() in objcrt.m

	* timings for compiling compiler itself : 72s (-noFwd) vs. 76s (-fwd)
	  timings for compiling cakit : 177s (-noFwd) vs. 180s (-fwd)
	
	* fix c++ bug per rtroskow@uni-paderborn.de 
	
	* make -perform: use forwarding  msg. per bonnefoi
	
	* fix for inlinecache and dispatch functions
	
	* make -import use -acpp -Wp,-+ on IRIX (instead of -Xcpluscomm)
	
1.9.1
        * implemented 'forwarding messenger' fwdimp().
	  it is the default now, but the older _imp() messenger can still
	  be selected by using the -noFwd option (necessary in c++ case)
	
	* added -doesNotUnderstand: method to Object
	
	* add Message object to objcrt.a (for -doesNotUnderstand: argument)
	
	* code generation changes for forwarding messages 
	
	* add examples/delegate.m 
	
	* clean up of filer method generation so it automatically upgrades
	  to modifications in the messenger logic
	
	* shlibs now have 1.9 suffix

1.8.21
	* some cleanup of cakit.a
	
1.8.20
	* add code for @defs() from rtroskow@uni-paderborn.de
	
	* add new Setup.bat script so that no /bin/sh needed any longer
          on Windows to 'configure'; add config.vac, config.wmk etc. 	
	
	* removed arwat.bat script for watcom
	
	* fix for -otb and class variables
	
	* when used with -E, made -C preserve comments
	
	* fixed bug that prevent .h files as input -- they are now
	  taken to be Objective-C input (as in : objc -E file.h)
	
	* add findSel: to Object
	
	* set c++ compiler on IRIX to CC (cfront)

1.8.19
	* cleanup of driver (use uppercase was getting ugly)
	
	* fix recently introduced bug in -difference:
	
1.8.18
	* fix msg trace in -otb case
	  also make output nicer : do not print [] brackets.
	  makes it easier to process output with sort, uniq, awk, etc.
	  use tabs to make it easy to select columns with cut
	
	* rtroskow@uni-paderborn.de fixes for some c++ warnings

1.8.17
	* fix typo so that -Wl: and -Wl, work correctly for sh driver
	
	* modified Object.h so that objc.h, objpak.h etc. can be #include'd
	  after the X11/Xt intrinsics stuff (which also has an Object/String)
	
	* renamed -ObjCpp to -import
	
	* various improvements to #include's to speed up compilation
	
	* renamed shlibs to objcrt.so.1.8 and objpak.so.1.8 on UNIX
	
	* fixed --help for configure script and added --gcprefix to configure
	
	* renamed libcakit.a to cakit.a (removed lib prefix)

1.8.16
	* move around things a bit to make building objpak "standalone" with
	  other objc compilers, easier
	
	* more work on lcc-win32 port : add Makefile.lcc files,
	  reconfigured lcc driver for automatic runtime initialization
	
	* add -g2, -g3 etc. flags to drivers

1.8.15
	* add prnstack code for 68k
	
	* add +someInstance and -nextInstance methods to Object
	
	* fix oversight for case a message to a *factory* is sent from within
	  an +initialize (and in the case the factory was not yet initialized)
	
	* add -all and -no_unresolved for SGI MIPS cc per U. Schwartz.
	
1.8.14
	* add .cpp, .cxx, .C etc. as C++ suffixes to objc driver
	
	* made change for using arrays from within Blocks s.t.
	  following code works okay:

	  jmp_buf ctxt;

	  if (setjmp(ctxt)) return;
	  [cltn do:{ :what | if (..) longjmp(ctxt,1); }];
	
	* add implementations of the well-known DURING, HANDLER,
	  ENDHANDLER macros, but, defined using Blocks.
	
	* fix for filing out char*'s that are NULL (report by Bonnefoi)
	
1.8.13
	* per popular request, add warning for conflicting type casts
	  for same selector, like in,
	
		-foo:(int)w
		-foo:(double)w
	  
	  (can be suppressed with -w)
	
	* fixed bugette in Bag sequence that would skip first element ...

1.8.12
	* fixed bug related to Blocks and initializers (P-F Bonnefoi report)
	  inside statement declarators (lhs *and* rhs), we now
	  only translate blockvars from *enclosing* scope (exclude
	  the scope that is being defined itself also for rhs) (see BUGS)

1.8.11
	* implemented new option -otb (Object Tables)
	  this option makes the compiler emit code for double indirection
	  Objects.  it also links against objcrtb.a instead of objcrt.a
	
	* add method -become: to Object.  only works with -otb.
	
	* update "moreLibs" script to build objcrtb.a and objpakb.a

	* better -hash for Integer
	
	* print stack backtrace from within error: (on linux/intel) 
	
	* add stack backtrace stuff for sparc (untested)
	
	* fix bug where [x add:va_arg(ap,id)] wasn't working when va_arg
	  expanded to a GNU nested expression ({ ... }) which was
	  interpreted as a Block.

1.8.10
	* made change so that on gcc systems (linux etc.) the cc -E step
	  is ran on the .m file, not on a intermediate .c file
	
	* fix bug for DEC cc so that intermediate .c file (input for cc -E)
	  is not placed in TMPDIR if TMPDIR is set

	* use flex and byacc as default LEX and YACC.
	  problem on HP-UX and DEC that goes away with flex...

        * add cvtimport script to convert #import to #include
	
        * add script moreLibs for building objcrt_g.a objcrt_pg.a etc.
	
        * reimplement -boehm and -pthreads option so that they link
	  against a different runtime (namely objcrtgc.a and objcrtth.a)

	* add objcunload() function for unloading (works only with dlclose()) 

	* extend Block impl. so that arguments of K&R style functions are now
	  also accessible from within blocks, e.g.

	    int sumsize(c,startval)
		id c;
		unsigned startval;
	    {
	      [c do:{ :each | startval += [each size];}];return startval;
	    }

	* extend Block impl. so that arguments of ANSI style functions are now
	  also accessible from within blocks, e.g.

	    int main(int argc,STR *argv)
	    {
	      [Block errorHandler:{ :msg :rcv |
		fprintf(stderr,"%s: %s\n",argv[0],[msg str]); 
	      }];
	    }
1.8.9
	* clean up manpage
	
	* new tcc options -i (for producing tdf capsule) and -Yposix for env.
	
	* use shorter names in oclib (genOn instead of translateOn)
	
	* add patch for GNU indent so that it works with objc
	
	* ran all stuff through (modified) GNU indent (made objc compatible)

	* fix minor bugette in selOfSTR: if the compiler would unique the
	  string (ie. the argument of selOfSTR: _was_ already the selector)

	* change name addObjcModules() to loadobjc() and added an unloadobjc()
	  (this is used from within _fini for dynamic libraries, for unloading)

1.8.8	* add Bag object
 
        * add -T option to objc and objc.exe
	
	* fix -noSelfAssign which got broken again
	
	* fix problem with #pragma's emitted after translated methodimpl
	  instead of before
	
	* implemented "#pragma token TYPE aType" for tcc port
	
	* fix -c added to cpp line (for tcc -E port)

1.8.7   * reimplemented error handling;  -error: and -ifError: are now
          the methods that implement error/exception handling
	
	* started implementation non-local returns from Blocks
	
	* fixed bug (known for a while) in c++ grammar, for using BeOS appkit
	  (this was the bug Val Gough originally reported for Qt, see BUGS)
	
	* allow 845845LL constants (as in BeOS appkit c++ headers)
	
	* fix problem with use of throw() in c++ stuff
	
1.8.6   * fix block bugette with redundant generation of scope var in some
          case of a unary selector with the same name of an ivar (this merely
	  generated an extra warning, wasn't bad)

	* add better documentation (hopefully) for shouldNotImplement etc.
	
	* add sortBlock: to SortCltn like in Squeak 
	
	* change name value:with: to value:value:
	
	* allow Blocks as initializers for 'id' variables !
	
		id myBlock = { :each | [each print]; };

	  in contrast to the ordinary

		id array[2] = { [Object new], [Point new] };
	
	  which continues to work as usual

1.8.5   * copyright modifications
	
	* add -D_POSIX_SOURCE for compiling Block on some platforms
	
	* change Block syntax again:)  hopefully it starts getting stable
	  now : syntax is [ c do: { :x | [x print]; } ];
	
	* fix en passant 2 Block bugs, one of which minor (warning).
	  the other related to subblock referring args of enclosing block

1.8.4   * make libcakit *private* sequence & collection object more
          compatible with objpak (e.g. libcakit find: is now offsetOf:)
	
	* small performance improvements to ordcltn, string, set, dictnary
	
	* use sigsetjmp() in Block class
	
	* change printToFile: to be in terms of printOn: instead of
	  the other way around
	
	* fix bug in self translation (again) outside method impl this time
	
	* removed experimental idTrue, idFalse stuff

1.8.3	* lots of libcakit cleanup & changes

        * add -printOn: also for our runtime 
	  we have the IOD type only since 1.8.1
	
	* add -shallowCopy
	
1.8.2
	* new warning by compiler if  +with:  used with wrong number
	  of arguments (e.g. [IdArray with:3,nil,nil]; )
	
	* fix emitted code which was causing warning with gcc -Wall
	  when compiling the main() function of program (int _ocT=)

        * fix bug in Set's new: as implemented in 1.8.1
	
	* changed filer code of OrdCltn to file capacity & made
	  asciifiler raise exception instead of error:, when filer
	  versions don't match

1.8.1
	* objc -ppi better Stepstone compatibility (added IdArray, IntArray)
	
	* configure -nextstep, configure -stepstone works again
	  (for compiling our libraries & src with other Objective C compilers)
	
	* fix for filenames with non alphanum chars (e.g. foo-1.m)
	
	* fix for OCU generation for functions defined __inline__ 
	  (work-around before was to use objc -postlink)
	
	* new objc1 option -refBind for mwcc and mwcppc
	  this was done before by default, but the lcc C compiler is
	  emitting a warning for the assignment.

1.7.11
	* add method -reverseDo:
	
	* add method +int: , +str: to CAObject (and hence Integer) class
	
	* add Block method -atExit (for block atexit()).
	
	* add alias "BigInt" for Integer class
	
	* add BigInt methods +factorial:, -str
	
1.7.10
	* change some error:'s in Object to exceptions (for
	  subclassResponsibility: etc.)

	* make errorBlock() accept var.number of arguments
	
	* new Block method -ifOutOfMemory:
	
	* fix errorBlock in cltn method at:

	* some configuration for DLL's on MSVC.
	
	* some new makefiles for DLL's on MSVC from bros@dan.lv
	
1.7.9
	* Serge Broslavsky (bros@dan.lv) porting changes for msvc.
	
	* new method addAll: to cltn classes (same as addContentsOf:)
	
	* new method addYourself, so that if addAll: or addContentsOf:
	  are sent with argument == receiver, the method works correctly.

	  addYourself is to addAll: what emptyYourself is to
	  removeContentsOf:
	
	* new methods includesAllOf: includesAnyOf: removeAll:
	  asOrderedCollection, asSet, includes: 
	
	* incorporate Fred Fish (fnf@ninemoons.com) Amiga porting changes
	
	* put watcom Makefile in .wmk files
	
	* add nmake (Visual C) makefiles from bros@dan.lv
	
	* don't include libcakit in default make toplevel target
	
	* don't pass CCARGS to LD any longer (for VC)
	  this was introduced for MIPS (-64) option, but we can better
	  add -64 to both CCARGS and LDARGS separately
	  (this might break other things, but the fix is similar)
	
	* change some stuff in new Makefile.wmk files, so that it uses
	  'wmake' extensions for keeping cmd.lines short.

1.7.8
        * implement new Object methods doesNotUnderstand: ,inheritsFrom:
	  and printLine; implement collection methods with:with:
	
	* allow classnames as expressions.  this is like the Stepstone
	  compiler; the GNU/NeXT compiler only allows it as receiver.
	  
	  switch to 'classical' stepstone/smalltalk semantics because it's
	  clean to be able to do: [[Class inheritsFrom:Object] ifTrue:{}]
	
	* in order that this change doesn't introduce new shift/reduce
	  or reduce/reduce conflicts, changed (warning) rule for Classname
	  to Classname* (as type).  GNU/Next allow Classname* only, anyhow.
	
	* per popular demand, type 'self' as a struct Class_PRIVATE in
	  translated methods (so that you don't have to use __showOn()
	  in a debugger to get instance variables)
	
	* implement @filename in /bin/sh driver; this was objc.exe only
	  before (but this DOS option is useful on UNIX too)
	
	* made -dynamic flag select objcrt_s.a and objpak_s.a libraries
	  (or objcrt_s.lib and objpak_s.lib on windows), if they can be
	  found.  Especially useful on Windows so that development with
	  _both_ static libs and dll's is easier.

1.7.7 
	* fix postlink so that compilation of LibMain() doesn't do a
	  #include <windows.h> (but rather windef.h) which is much faster.
	
	* incorporate Tony Cook (WATCOM newsgroup moderator) response
	  which means that the MAINSTATIC kludge can be removed, and
	  building DLL's import libs becomes much cleaner.
	
	* added -br to PICFLAG and DLXFLAGS as Tony Cook examples show.
	
	* added alias -dynamic for -dlx, which is nicer (it's -rdynamic
	  on linux).  not to be confused with -static and -shared.
	
	* fix oversight by introduction of -noShared that broke libcakit
	  build (because compiler was redefininig some symbols defined there)
	  reported by oa@iki.fi

        * made -pic do automatically -dllexport; use -bd if you don't want
          this;  made -pic do automatically a -noShared.

	* made -dynamic do automatically a -noShared; removed -noShared
	  from driver (it's only in objc1 now).  this seems like a good
	  solution since the strategy is now on _all_ platform simply:

	  	objc -c -pic foo.m
		objc -dl foo.o -o foo.so
		objc -dynamic main.m foo.so

	  without need for other flags (it's just that -dynamic does more
	  than it did before).  You might need to recompile the compiler
	  with 1.7.7 before -dynamic works (for OBJCCLASS_xxx).

	* incorporate fnf@ninemoons.com and oa@iki.fi BeOS porting changes
	  updated config.guess for beos, updated makefiles for FINAL_AR
	
	* made drivers quit when they can't find _prelink.o in postlink case
	
	* use #include "objpak.h" etc. per fnf instead of <objpak.h> for mwcc

1.7.6   * cleanup for DLL support on Windows/WATCOM

        * renamed -newInit to -noShared.  -noShared also works on UNIX.
	
	*  -noShared avoids relying on shared data, such as class globals
	  between DLL's, i.e. a class MyClass generates a global function
	  MyClassFun() instead of a global variable MyClass.  (the
	  variables themselves are defined static with -noShared)
	
	* make postlink output code to slap a static in front of LibMain()
	  when compiling with -DMAINSTATIC.  This means that import libraries
	  for Objective-C DLL's that include _other_ DLL's can work fine
	  (the DLL itself needs to be built without -DMAINSTATIC)
	
	* fixed postlink for difference in appending underscore for
	  register/stack based calling (on windows/watcom, of course)
	
	* change fputs() in String's printToFile: to fprintf()'s
	  this is because mixing fputs() and fprintf() seems to give strange
	  behavior when done from a WATCOM DLL.

	* implement Sequence do: method.  this is useful if you do things like
	  
	  [[aPolynomial eachTerm] do:{ ... }] or [[aDictionary eachValue] do:]

	  alternative would be to have methods like 'termsDo:' etc.

	  for Collection, [aCltn do:{...}] and [[aCltn eachElement] do:{}]
	  are the same.
	
1.7.5   * WATCOM debugger support
	
	  debugging with "wd" now goes like:
	
	    objc -d2 -c test.m -o test.obj
	    objc -d2 test.obj -o test.exe
	    wd test.exe

	  breakpoints, stepping, inspecting variables etc. all seem to work
	  now for Objective-C in wd (which is a visual, interactive, debugger).
	
	* incorporate bonnefoi@unilim.fr fix for recently (1.6.5 or later)
	  introduced bug in AsciiFiler with +readFrom:
	
	* shared library support, now similar to dynamic libraries:

	     objc -c -pic foo.m
	     objc -dl foo.o -o foo.so

	  using the shared library on command line:

	     objc main.m foo.so -o myprogram
	 
	* -export __export option in objc1,  was implemented for Metrowerks
	  on the Mac, now also emits __export in front of class
	  globals (not just OBJCBIND functions) (for use in Windows DLL's)
	
	* add -dllexport, which is equiv. to -export __declspec(dllexport)
        
	* add WATCOM flags for building DLL's on NT, add new postlink options
	  -dlfun and -win32dll.  add temporary driver option -newInit which
	  is for migrating on Windows towards a new calling convention for
	  _objcInit: compile compiler with -newInit if interested in WIN32
	  DLL's.
	
	* insert check for MAX_JMP in Block class
	
	* insert check for OBJCPOSTLINK in objc /bin/sh driver (thought I
	  did this already long ago)

1.7.4   * add new Object method +subclass:

		id Bar = [ Foo subclass: "Bar" ];
		id aBar = [ Bar new ];

	* add OC_MallocAtomic() to suit Boehm.  implemented as ordinary
	  OC_Malloc() by default, and as GC_malloc_atomic() if -gc.
	  Modified String and Integer class to use OC_MallocAtomic().

	* fix #include for SunOS 4.1 compile using gcc2.4.5
	
	* gradually start using memcpy() and memset() (see OBJCRT_USE_MEMSET)
	
	* remove extern function decl. in .ym grammars (to avoid prototypes
	  that don't match, which is a hard error for some lex/cc combinations)

1.7.3   * add new method +addMethodsTo:  (something in the same style as
          +poseAs:)

		[ subClass addMethodsTo: superClass ];
 	
	* remove category kludges, and reimplement in terms of +addMethodsTo:
	
	* add option -noCategories
	
	* add Point and Rectangle classes; compatible with ICpak101 (i.e.
	  int coordinates), but Rectangle is a pair of Point's instead of
	  4 ints.
	
	* don't output empty (if no ivars added) filer code any longer 
	
	* add #define OrdCltn Collection in cltn.h (for Stepstone compat.)
	  add #define SortCltn Tree in tree.h (for Stepstone compat.)
	  so these "aliases" are now supported.
        
1.7.2   * add driver options -builtintype and -builtinfunction
          (to be able to customize without modifying driver)

        * real fix this time for __long_long on IRIX6.2 (typo in 1.6.11)

        * fixed objc1 -main option and added -main option /bin/sh and
          binary objc drivers per Uwe Schwarz.

	* objc -main main  is the default (ie. it is assumed by default
	  that main() is compiled by objc, and the -main option can be
	  used to change this)
	
	* fixed typo in binary driver objc.exe (went by unnoticed since
	  on Windows I use wcc386 for CCPLUS and CC)

	* put IMP cast in front of blockFunction in newBlock calls.
	
	* fix block in initializers ( id aBlock = [ {...} self ]; )
	
	* implemented flushCache() and +poseAs:
	  (flushCache() does not flush inline caches yet)
	
	* add field clsGlbl to class structure for properly
	  implementing +poseAs
	
	* add poseAs.m example

1.7.1   * modified ctags.awk to support ELVIS
          (ELVIS has a menu of classes that implement a certain method,
	  when it sees that a tag is implemented in more than one file)
	
	* modified ctags.awk works with VIM and ELVIS and according to
	  Steve Kirkendall (kirkenda@cs.pdx.edu) also older VI's, but
	  in case it doesn't: gawk -v NOHINT=1 -f ctags.awk *.m > tags.
	
        * totally new strategy for locals from compound, referenced
          by a Block:

          those locals are now allocated on a malloc'ed struct so that
	  they don't have to be copied into the Block.

	* this makes Blocks with side-effects work (no change of semantics
	  for Blocks without side-effects):

	      int size = 0;
	      [aCollection do:{ id each | size++; }];
	      return size;

	* updated Block man page
	
	* add selOfSTR: per Marko Mikulicic <mmikulicic@full-moon.com>
	
	* fixed ctags.awk for spaces around colon
	
	* modified msgxpr because we now can't simply print 'self',
	  in some cases will have to access 'self' via scope pointer.

1.6.12  * fix Block implementation so that the following works:

	  int size(id aCollection)
	  {
	      int size, *sizep;
	      sizep = &size;*sizep = 0;
	      [aCollection do:{ id each | (*sizep)++; }];
	      return *sizep;
	  }
	
	* implemented Node -deepCopy method
	
	* removed #if 0 around +with: method.  this is a good test for
	  parsing stdarg macro's; if there's any problems, #if 0 can be put
	  back
	
	* made drivers link agains libobjpak_p.a and libobjcrt_p.a 
	  (if they exist) when compiling with -pg  (for profiling)
	
	* make linetags work again; this got broken.
	  emit some more linetags, to fix some problems with linetag wrong
	  for message expression as first statement in comp.statement.
	
1.6.11  * improved ctags.awk script - now deals correctly with casts
          for arguments, and also emits for each selector a complete selector
	  name, so that it is possible to jump in VI to -remove:ifAbsent:
	  by typing :ta -remove:ifAbsent:

        * change configure script for IRIX 6.x per U. Schwarz
	
	* support __long_long for IRIX 6.2 (/usr/include/sgidefs.h)
	  this type spec. can be turned off by using -nolonglong in driver
	
        * flags for dynamic loading for NetBSD per P. Simons.	

	* changed variable translation of locals from enclosing scope
          inside Blocks a little, for Blocks using "thisBlock" 

          this used to go like : int tabs = data->tabs; ... f(tabs)
	  while it now goes simply like : ... f(data->tabs)
	  
	  result is that the following code now works correctly :

	  int tabs = 0;
	  [{id e|p(tabs++,e);[[e subclasses] do:thisBlock];tabs--;} value:c];

	  so that the value of "tabs" is saved across invocations of thisBlock

	* also made sure that the following works correct:
	  
	  int tabs = 0;
	  [{ id e | int tabs; p(tabs++,e);...} value:c];

	  in this case "tabs" is local to each invocation of the block.

	* Fixed place where outputWithoutTags was used instead of translate:
	  in blockxpr (as it should, since this was putting wrong tags for
	  blocks within blocks)
	
	* Fixed bug when class without interface, and without methods, was
	  not emitting def. struct.

1.6.10  * support IRIX dynamic libs with dlopen()

	* support HP-UX shl_load() interface.
          
	  h = shl_load(path,BIND_IMMEDIATE,0L);
	  if (!h) [{ puts(strerror(errno));fflush(0); } raise];

	* add flag -pic which is +z on HPUX and -fpic for Linux/FreeBSD etc.
	  (so it's recommended to use objc -pic instead of objc -fpic)
	
          objc -c -pic bar.m
	  objc -c -pic foo.m
	  objc -dl foo.o bar.o -o myPackage.sl
	
	* add new flag -dlx for platforms requiring special flag for
	  marking symbols as exportable to dynamically loaded libs:

	  objc -dlx main.m
	  
	  this is equivalent on HP-UX to: objc -ldOpt:-Wl,-E -ldld main.m

	* fix compiler warnings (with HP c89) in Block.m class (changed
	  void * to IMP, which is also not correct (it's just a function
	  pointer, not a real IMP, but this quiets down the warnings)
	
1.6.9	* implemented new method +subclasses, +superclass and +name.

	* new option -dl for sh driver (this is experimental and not yet
	  added to the win32 binary driver); used for building a package
	  that is going to be loaded with dlopen() :
	  
	  objc -c -fpic bar.m
	  objc -c -fpic foo.m
	  objc -dl foo.o bar.o -o myPackage.so

	  h = dlopen(path,flags);
	  if (!h) [{ puts(dlerror());fflush(0); } raise];

	* add a guard in the sh objc driver for people who 'setenv CC objc'

        * removed old file postlink.awk, always use postlink binary now
	  (should be ok for all platforms)

	* new option -prefix for prefix for postlink _objcModules

	* new option -dl for postlink to prepare packages that are loaded
	  with dlopen().  (See postlink man page for example).
	
	* new function addObjcModules() that performs makeSelsUnique() and
	  initializeModules() for arbitrary BIND function array (for use
	  with dlopen() when dynamically loading modules).
	
	* update Block docs on -raise (it wasn't saying it halts the process
	  when uncaught)
	
	* change errorBlock to just printf(); abort()'s going to happen anyway
	
	* made idOfSTR: raise an OC_CLASSNOTFOUND exception instead of -error:
	
	* add small example on using dlopen() in examples directory
	
	* add some notes (not really OBJC specific) on CW/11 MPW experience
	  in MPW file

	* remove -ansi flag for FreeBSD per robey
	
	* fix some compiler output for IMP type (need to have (...) in the
	c++ -ansi case, because of definition of IMP in objcrt.h)
	
1.6.8	* -gc option for WIN32.  Compiled gc.lib using WCC (which is possible
	  since 4.12 of the Boehm gc lib.
	
	* support some more WATCOM options (-3r,-3s,-5r,-5s,-6s etc.)
	
	* support WATCOM -s option (remove stack overflow checks)
	
	* put back -ansi flag for freebsd 3.0 per robey.
	
	* put (back I think) __signed & __unsigned in lex.lm and lexplus.lm
	  for freebsd3.0.  Also made __signed TYPESPEC just like signed,
	  instead of TYPEQUAL.

1.6.7   * Allow locals with same name as instance variables (or class vars).
          Warning when instance variable (or class variable) has same
          name as a local variable.  Suppress this warning with 
	  -wLocalInstance or -w.

	* Introduced new files oclib/xprnode.[hm] and made stuff like
	  blockxpr, msgxpr etc. subclass of xprnode; this modification
	  of dealing with expressions *might* make it possible to do things
	  like sending messages to strings or numeric constants.

	* Fix foo(x), x->foo, x.foo when "foo" is instance variable.
	  Add class dotxpr.[hm]

1.6.6   * Add repeatTimes: to Block.  Arguments inverse of ST's timesRepeat:

	* Add ctags.awk file.  This is a ctags version that does Objective C

	* Add -D__GNUOBJC__ to configure for crosscompile per simons@rhein.de

	* Add -lobjc to configure for crosscompile per simons@rhein.de

	* Add some stuff for netbsd in configure file per simons@rhein.de

	* Add new env.var.  CCPLUS which is the compiler to be used for .cc
	  files.  This is per ken@bitsko.slc.ut.us request, for platforms
	  where GNU C++ is invoked as c++, not cc.  Ken MacLeod also remarks
	  that postlnk.c has to be compiled with CC anyhow.

	* Don't assume _MWERKS_ means no system() available.  For BeOS, where
	  we have metrowerks, but also have system().
	  This is now done by a flag in the config.h file (HAVE_SYSTEM_CALL)
	  instead of with an ugly #ifdef __MWERKS__

1.6.5   * Implemented filer methods (where necessary) for libcakit objects.
        fileIn() functions don't refer to common data (because archive
	order with Filers is random).
        
	* Add 'S' type (unsigned short int) to AsciiFiler (for DIGIT).

	* Add 's' type (signed short int) to AsciiFiler (for small int hint)

	* Change implementation of AsciiFiler to make 'patchPointers' cltn
	to contain only the pointers that need to be patched (instead of
	adding all ptrs to the cltn).

	* Add -appl flag for MPW MWCPPC.  (non-objc specific note: have
	to use the CInclude .h files, not the MWCIncludes for this option
	to work).

	* Support -xm flag for MPW MWPPCLink.

1.6.4   * New Collection methods, to take advantage of Blocks,

          -detect:aBlock,
	  -detect:aBlock ifNone:noneBlock
	  -select:testBlock,
	  -reject:testBlock,
	  -collect:transformBlock,
	  -keysDo:aBlock
	  -remove:oldObject ifAbsent:exceptionBlock
	  -add:anObject ifDuplicate:dupBlock

	* Value of single expression is now implicit return value of Block.
	e.g.  [ { [a idEqual:b] } value ]; returns idFalse or idTrue. 

	* Add Object methods |isTrue| and |isFalse|.  (These could be
	implemented by subclasses as well).

	* Added Block method value:with: for blocks with two arguments,
	as needed as sort criterium in Tree class.

	* Fix per Ronny categories being broken because of classvars,
	added new function fixUpCategories to fix case of factory method
	in category.

	* Fix errHandler not to send |name| when it's handling case of
	root class that doesn't respond to doesNotRecognize:

1.6.3   * Add -noNilRcvr option.
        
	* Add -noCache option.

	* Add -noSelfAssign option.

	* Various minor changes to compile compiler with those flags.
	(I have a setenv OBJCOPT "-noNilRcvr -noSelfAssign" in my .cshrc now)
	Found no bugs by compiling with the new flags, by the way...

	* Fixed Blocks referring arguments of enclosing method.

	* Fixed Blocks referring to _cmd.

1.6.2   * Copy self pointer from method implementation into Block only when
        needed (when self or an instance variable is being referenced).

	* Improve warning on categories for class not found.

	* Add class variables, syntax as Ken Lerman's impl. for Stepstone

	      @interface C : Object { int iVar; } : { int cVar; }
	
	* Made compiler output struct _Class_SHARED instead of using a
	struct _SHARED which was the same for all classes.

	* Moved generation of _SHARED from module.m to classdef.m because
	it is now different (potentially) for each class.

	* Fixed mistake in -ifFalse:

	* Add method -idEmpty to Collection etc., which is like -isEmpty.

	* Add methods -idEqual: to Object.

1.6.1   * Major changes to copy enclosing scope into Block.  This means that 
        Blocks now can refer to copies of locals from an enclosing function.

	The rule to keep in mind, is that globals and instance variables
	can be changed by a Block, but that changing locals has no effect
	on the enclosing compound, because it only affects copies.  This
	is consistent with how we deal with instance variables.

	* Add file decls.[hm] to oclib.

	* Add file examples/block.m

1.5.15  * Change Block syntax to Cox proposal, ie. use the '|' to separate
        args and statements in a Block, like in ST-80.  He claims that this
        is also how Perl does this. 
	
	* So write : { id x | [x print]; } for Block with one arg.
	or { [x print]; } for block without argument (as before).  
	Difference is for Block with 2 args where he proposes
	{ id x;id y; | [x print]; } while I do : { id x,id y | [x print]; }

        * Add new methods to Object, -ifTrue:, -ifTrue:else:, ifFalse:
	Block now defines two global variables, "idTrue" and "idFalse",
	which, you guessed it, stand for "true" and "false", for such
	methods as whileTrue: untilFalse: ifFalse: etc.

        * Fix Blocks with locals.  [{int i = 0;printf("%i",i);} value]
	now works.   In case of arguments, syntax is :
	[{id e | int i = 0;printf("%i",i);} value:arg];

	* Rewrote passing block data.  

1.5.14  * Implement @ filename option for objc1 program.  Wasn't really
        needed but anticipates potential problems with long cmd line 
	on Dos.

	* Add -fpic flag to driver for building freebsd shlibs.

	* Modified drivers to support linking against objcrt.so.1.1 etc.
	(ie. shared libraries variants of the std. objc libs)  This works
	only in the -postlink version; the idea is to link first against
	the .a (static) libs, then make a _postlnk.o file, then use the
	shlibs.

	* Made -static flag turn off selecting .so.1.1 libs.

	* Configure DJGPP version to use the @filename stuff.  The djgpp
	gcc.exe port supports this, so this should work make our djgpp
	driver work with a 126 character cmd line length limitation.

	* HTML docs table of contents now has hyperlinks towards method
	descriptions.

	* allow exceptoin handlers without argument; those can't reraise,
	(default handler is normally the argument)
	but can still be useful (and have nice syntax).

        * New option -ObjCpp to allow // and #import on systems with a
	pre-processor that supports this (we don't depend on this).

1.5.13
	* Support Mac/Metrowerks options -sym and -opt
	+ fixes for supporting larger set of Mac Toolbox header files:

	* Configured MPW driver to use -msdos (!) option for "pascal"
	keyword.  Maybe should have a separate option for this.

	* Allow stuff like kMini1BitMask = 'icm#' or typeInteger = 'long'
	Modified lex.lm and lexplus.lm for this.

	* I've found the following line in Quickdraw.h : 
	
	   extern pascal void SetClientID(short id);

	and worked around this by editing (replacing 'id' by 'ide')
	the header in question ... 

	(Acceptable) ideas for a compiler-solution to this problem are
	welcome ...

	* In order to compile large files on my small Mac portable, free
	nodes as we encounter them while parsing ...  however, most nodes
	such as ClassDefinitions override -free and continue to do nothing.
	Real fix would be to get -gc working on Mac.

	* Messed around in LineTag class; identifiers now record their
	lineTag by a LineTag object instead of an offset into a cltn of
	linetags.  Removed cltn since it was growing >32K for large files
	Instead, LineTags now have a link towards next lineTag, so that
	we can still traverse ranges of line tags.

	* Add env.vars OBJCRTMSG and OBJCRTDBG which can be set to a file.

	* Fix WATCOM 10.0 wcc @options may not contain filenames

1.5.12
	* Removed yywrap() defs from .lm files because of intolerant flex
	version.  Moved block of code towards end of file, because yytext
	not defined at top ... (hopefully these fixes will work everywhere).

	* Fix WATCOM driver multiple times junking ld.opt file
	(was introduced in 1.5.11)

	* Add default (.) rules in lexer's with warning about ignoring
	chars.  Add -WLex flag to driver to enable this warning.

	* Made Block -resume method NOT evaluate the default handler. You
	can always invoke it from inside the handler (using -value) and not
	invoking the handler allows to recover from a failing +new.

	* Modified +new to try to OC_Malloc() again after handler is
	executed.  The handler can now free memory and like this recover
	and then resume.

	* Fix for OpenStep 4.2.  The cc -E option is BROKEN on that
	platform.  You have to specify -traditional-cpp to make -E work.
	Configured NeXT driver to include -traditional-cpp flag.

1.5.11
	* More changes per ronny@rat.se; renamed _postlink.c to _postlnk.c
	for 8+3 filenames.  Use intermediate files to pass options to wcc
	for cmdline length limitations.  Fixed fixwcpp.  Renamed objcplus1
	to objcpls1.

	* Added option to driver (objc.exe) itself to read options from
	a file.  The option @filename is interpreted to read
	options from 'filename'.  Likewise @envvar adds the options set
	in the env.var. 'envvar'.  Might get important for DOS port.

	* Fixed bug in sh driver and binary driver when -o and -c are
	specified.

	* Allow cmd line options to be separated by newline or tabs, not
	just spaces (for binary driver @files).

	* Moved Expression,CACollection and CASequence to private.

	* Made cakit source use 8+3 filenames.

1.5.10
	* It had to happen sooner or later : use 8+3 filenames in compiler
	source to make life easier for DOS people

	* Back out extra ';' and .obj in .SUFFIX list (for OS/2) since this
	is breaking WATCOM Makefiles .

	* Update Object man page for exception (possibly) by +new.

	* Use Block exceptions in objpak for case can't find object when
	inserting objects etc.

1.5.9
	* Add warning when @interface can't be found for @implementation
	(but still allow it).  No warning for '=' style class definitions.

	* Add warnings for conflicting instance variables in interface.

	* Make a copy of the "self" pointer when creating a Block.  

	In other words, allow Blocks to reference instance variables of
	of the object "self" of the method implementation that instantiates
	the Block.

	* This makes Blocks much more reentrant.  Updated Block man page.

	* Removed |value:ifException:|.  Added methods |tag| and |setTag:|
	
	* Add method |raise| which is sent to a default handler. 

	* Add methods |whileTrue:| etc. for completeness (not very useful)

	* Changed Block grammar to allow a more natural syntax for blocks
	without arguments :  [ { [self foo]; } value ];    is now legal.
	The restriction is now that Blocks can only be used as receiver
	or argument of an Objective-C message (which is reasonable, if we
	win a more natural syntax, we have btw. the same restriction on
	class names).

	* Changed various hard errors in objcrt to exceptions.  For example,
	out of memory calls to OC_Malloc() can now be caught.

	* |ifException:| now checks that the exception handler has the
	correct number of arguments, even when the handler is not invoked.

1.5.8
	* Incorporate prb@thinkage.on.ca porting changes for IBM Visual Age.

	* Add prb@thinkage.on.ca fix for reading ibmvac linetags.

	* Add ';' after AR rules in makefiles (for ibmvac)

1.5.7
	* Implement new fixwcpp program and some -linemax work 
	for WATCOM 10.0 port, per ronny@rat.se.  This is for line-length
	limitations and the backslash line continuation problem.
	
	* Added environment variables CPPFILTER and OBJC1FILTER, that can be
	set to a tool that is to process the intermediate .P and .i files.

	* Removed hack that was in place to deal with multi-line pragmas
	on WATCOM 11.0 and use the new (better) approach, using fixwcpp
	(as CPPFILTER)

	* Added LD env.variable to binary driver.

1.5.6
	* Assume Boehm library gc.a in $LIBDIR, per user requests.

	* Simplified grammar of parser for class definitions, making it
	simpler and more general (should allow for 'quick class
	implementations' without interface part).  Also -ppi now means
	strict PPI (not very significant).

	* Removed files ClassInterface and ClassImplementation and merged
	into a single file ClassDefinition.
	
	* This should also fix the bug where function or data defs inside a
	class interface would silently be supressed.

	* Bring c++ grammar in sync with changes.  Fixes at the same time
	the lack of categories in O-C++ grammar.

	* Add cakit MPW makefile

1.5.5
	* Modified _selTransTbl output to prevent MW linker to remove OBJCBIND
	function for modules with no class definitions.  This is a better
	solution than the -pragma export of 1.5.4. for the Metrowerks removing
	BIND code.

1.5.5b
	* Tried compiling a MWC68K version.
	Add -d _No_BlockMove -d _No_String_Inlines to configuration for 68k. 

	* Add objchelp file.  objc -help is now more verbose, providing some
	more info on systems without man page ...
	
	* objc with no args now prints the file "LIBDIR/objchelp".

1.5.4
	* configure modifications for MPW command-line metrowerks MWCPPC
	
	* add -mpwtool flag to objc driver (adds -c 'MPS ' -t MPST to LDARGS)
	
	* translate -D flags to -d.
	
	* add MPW makefiles
	
	* in the -printfSystem case (like MPW), output a "cat" command to
	create the .c file (instead of making it right away).
	
	* implemented -exportBind function, to emit __declspec(export)
	
	* Fix new postlink tool for tab delimiters.
	
	* -sioux flag for linking Metrowerks SIOUX libs
	
	* fix -noBLocks in binary driver
	
	* Junk postlink.map
	
	* Fix bugette in BlockExpression.m which was emitting an unnecessary
	temp objcT variable (caused warning).
	
1.5.3
	* Prepared Mac MPW port.  Because we're going to have to deal with a
	variety of "link map" formats on non-UNIX platforms, moved code
	from binary driver (for WATCOM linkmap) into new tool "postlink"
	"postlink" takes format of link map as argument.  "_prelink.o" is
	now placed in $LIBDIR.

	* Generalized binary driver.  Make it depend less on conditional
	compile.  Removed flags like PORTABLE_OBJC_UNIX,PORTABLE_OBJC_WATCOM.
	Instead, allow format strings for -c, -o, -I (which are different
	flags for WATCOM/MPW).

1.5.2
	* Minor header changes for Windows
	Renamed OCString.h CAComplex.h CAFloat.h for lower/upper case
	problem string.h complex.h float.h, on all platforms, instead 
	just for WIN.
	Since you should be including cakit.h and objpak.h, should not matter.
	
	* Fix generation of OCU_AsciiFiler in init code for auto-init case.
	(so that AsciiFiler is also automatically linked into apps linked
	without -postlink).

	* Added -noPostLink option.  Allowed -inlineCache spelling.

1.5.1
	* Add experimental Block class, for exception handling, to objcrt.
	  
	Add BlockExpression to oclib (syntax for a block is { (args) stmt } ),
	like in :
	  
		id aBlock = { () return aGlobal; };
	  	id aBlock = { (int n,id z) [aGlobal foo:n:z]; };
	
	This adds some new shift/reduce conflicts, and might break things for
	GNU braced groups in expressions, so it's just experimental.
	  
	It would also be nice to be able to do :
	  
		id aBlock = { return aGlobal; };
	  
	but this doesn't work for some reason (works, but breaks other things)
	  
	Add |do:| method to Collection classes.
	  
	Implement -noBlocks option, which sets OBJC_BLOCKS=0.
	Configured the driver to by default have OBJC_BLOCKS=1.
	  
	Exception handling can still be used with -noBlocks, although that
	Blocks will then have to be created manually (using newBlock()).

	* Turned fatalError()for undefined methods per Gough request
	into warnError().  Also add option -wUndefinedMethod

	* Made AsciiFiler class by default to be linked into program.
	Made generation of filer code conditional. (-noFiler option)

1.4.9
	* Don't use GC_free in -free implementation when compiling with -gc.
	Turns out faster to just let the collector do its work, and to make
	-free simply return nil.
	
	* Improved C++ support, templates.  Most of the HP/SGI STL .h files
	seem to precopmile now (very ugly hacks in place to make this work)
	Most "Qt" C++ headers should now precompile.
	  
	* Fix bug in AsciiFiler which was printing nil object $0 as class #0.
	Discovered while using (from within gdb) the _extremely_ useful
	function call : p __showOn(anObject,0)

1.4.8
	* Incorporate Val Gough fixes for compiling some Objective-C++ (Qt) 
	code.

	Modified scan.lm and scanplus.lm for +- prefix float constants (+0.5).
	  
	* Renamed fileOutFor: to fileOutOn:.  This is to avoid a clash with
	Stepstone, since they have a fileOutFor: method, but it's use is
	not compatible with ours.
	 
	* Implemented __showOn function, and |show| method in terms of it.
	Defined in terms of the Filer methods.  Implemented _fileIn() vector.
	Very useful to insert in the source a : [object show]; statement for
	debugging, or to call showOn() directly from the debugger.
	  
1.4.7
	* Fixed Set -awakeFrom: method.

	* Removed cakit archiving methods (will be replaced by AsciiFiler)

1.4.6
	* Modified binPackage script to only package the binaries.
	
	* objcrt.m error when running out of memory gives now more info.
	Modified OC_Malloc() for extra check on 0-byte allocations
	('because of Tsu-Chien Weng reporting DEC malloc() returns NULL)
	
	* Modified +fileInFrom: to _allocate_ an instance of the class.
	Removes 'raw' runtime call in AsciiFiler class.

1.4.5
	* Add new options -pthreads and -cthreads to objc driver.
	It's sufficient to compile clients using these flags now.
	objcrt.a doesn't need to be recompiled to be thread-safe any longer
	(works via function-vectors objcrt_mutexlock and objcrt_mutexunlock)

	* Implement "-gc" option.  Currently equivalent to "-boehm" which
	requires the header gc.h and the library gc.a to be installed.
	Hans Boehm's "gc" package is available from parcftp.xerox.com.
	Replaced malloc(), free() etc. by OC_Malloc(), OC_Free().
	  
1.4.4
	* Implement Object methods -findClass: and -idOfSTR:
	
	* Fixed Collection's find: method to make compatible with offsetOf:
	
	* Add +readFrom: and -storeOn: methods for AsciiFiler
	Implemented AsciiFiler class and add documentation.
	Modified compiler to emit AsciiFiler code (fileOutIdsFor:)
	
	* Fixed ClassInterface.m so that categories can use instance
	variables of class.

1.4.3
	* Change <pthreads.h> to <pthread.h> in objcrt.m
	
	* C parser-fix for union in DEC /usr/include/pdsc.h using DCE compiler.
	
	* Include 'asm' keyword in -asm option and remove -asm from DEC
	configure (since the DEC cc has a header c_asm.h defining a "asm()"
	function).
	
1.4.2
	* Implemented categories "per popular demand".  Added clsCats field
	to _SHARED struct and a bit in the clsStatus field (to distinguish
	classes that were compiled with or without this field).  Modified
	_getImp() to use the clsCats field.  Disadvantage of tinkering with
	stuff like categories is that it makes the simple messenger a bit
	more complicated for something that (I believe) is not an essential
	concept...
	
	* Clean-up in ClassImplementation.m for generation of factory and meta
	structs.
	
1.4.1
	* Support "more than one class per file".  This is implemented in a way
	that doesn't break compatibility with the Stepstone runtime.  The new
	compiler sets a flag in the module structure which causes the new
	runtime to initialize all classes in the same compilation unit.
	  
	The old behavior (and generated structures) can be obtained by using
	the -oneperfile flag.
	  
	In addition, .o files that were compiled with pre-1.4.x
	compilers continue to be properly initialized by the new runtime.

1.3.21
	* Support POSIX 1003.1c thread-safe messenger.  If objcrt is compiled
	with -DOBJCRT_PTHREADS=1, then _imp() and _impSuper() protect the
	method look-up cache with a pthreads mutex variable.
	Also some minor cleanup in _imp (use CACHE_INDEX macro).

	* Include classname in name of generated function (c_Object_new is the
	name, for example, for +[Object new]).

1.3.20
	* Add cplustest directory.
	
	* Remove '-x objective-c' from 'cpp flags' for gcc in configure script.
	Caused .cc suffix to be interpreted as O-C at cpp stage.

1.3.19
	* Fix SGI YACC warnings for our C++ grammar (these warnings are only
	issued on sgi, apparently, for multiple %token and %left)
	Redeclaration of precedence of PTYPENAME_TOKEN, line 201
	Redeclaration of precedence of NSNAME_TOKEN, line 211
	
	* CYGWIN32 (cygnus port of GNU tools to Win32) porting changes :
	Fixed initialization of dbgIOD = stderr; in objcrt.m
	Fixed words makefile (for .exe extension)
	Modifications for cygwin32 to "configure" (also fixed -noLibs).

1.3.18
	* Fix objcrt bug. Showed up on DJGPP auto-init version.

	* Configured DJGPP for non-postlink now that auto-init works.

	* Removed -D__SW_BD from WATCOM.  Fixed '\0' and '\0x0d' in scan.lm
	and scanplus.lm.

	* Configured AIX version to use IBM AIX cc (no doubt this was the
	same problem as the DJGPP).

	* Added %a transitions for SunOS4.1.2 lex in scanplus.lm

	* Reorganized things a bit.  Moved oclib to top level.
	Makes it easier to do crosscompiles with other OC-compilers.
	(when the -I flags are different)

1.3.17 
 	* Add file PORTING with notes on how to build bootstrap compilers.
	
	* Support GNU __extension__() for stdarg.h of ppc-linux

	* Support braced-groups within expressions for ppc-linux stdarg.h

1.3.16
	* Handle int x = 1UL; correctly for Tsu-chien Weng's MkLinux port.
	Changed [uUlL]? to [uU]?[lL]?. Modified scan.lm and parsescan.lm.
	
	* Put in a -static flag for Valient Gough <val@nilenet.com>
	Compile Linux bootstrap compilers with setenv OBJCOPT "-static"
	
	* Put in an -undef flag for the MkLinux port.
	Crosscompile with setenv OBJCOPT "-C -undef -DPLATFORM_FLAG ...".
	
1.3.15
	* Ported objc to DJGPP-V2 Windows95.
	Note: you have to enable on djgpp long filenames (set LFN=Y)
	For a first release, it's a postlink compiler.  It could probably
	be made to work with auto-init code (since the compiler is GNU derived
	and supports common storage), but currently does not.
	
	* Made pathSeparator a runtime option for "objc1" and "objc" driver.
	  
	UNIX drivers and compilers have "/" compiled in as default.
	Windows drivers and compilers have "\" compiled in as default.
	  
	The environment variable OBJCPATHSEP - if set - is a string that will
	be used as separator instead of the default separator.  Applies to
	both objc and objc1.
	
	* Some binary driver clean-up (removing #ifdef's).
	
	* Configured Makefile with double \\ for GNU make on djgpp. (WATCOM
	wmake needs just one backslash as delimiter).
	  
	* Fixed LIBSUFFIX in configure for UNIX to be "a" instead of ".a"
	Went by unnoticed again since most people have .a libs already
	installed.

	* Made OBJC_SYS_STRING_HEADER and OBJC_SYS_FLOAT_HEADER macros in
	config.h for avoiding the upper/lowercase confusion with libcakit's
	Complex.h and Float.h and String.h
	  
1.3.14
	* Add __int64 type for WATCOM compiler.  This type is "builtin"
	if you run the compiler with -watcom.  (I'm being cautious and
	don't turn it on with -msdos ; in any case I can imagine some UNIX
	header is defining this type).  Some WATCOM .h files
	(e.g. iostream.h) use the builtin __int64 type.
	  
	* Configured the WATCOM compiler to run with -msdos -watcom.

	* Add more goofy keywords, including __pragma __interrupt __loadds etc.
	Even stuff like  void __based(void) *__mem
	
	* Made sh and binary driver respect the CC and CPP environment variables.
	This could be used to override the driver values used for C compiler and
	C preprocessor.
	  
	Can be used, for instance, like "set CC=wcc" and "set CPP=wcc -pl" for
	producing 16 bit Windows executables using the 16bit WATCOM (the default
	is to use the 32bit wcc386).

	* Made Win95 compiler more "self-hosting" by using flex & bison for
	WIN32 (available from e.g. www.winsite.com).
	  
	Parser and scanner are no longer generated on UNIX (scan.m, parser.m)
	but are now generated on Windows itself from scan.lm and parser.ym.
	
	* Modified configuration and makefile for lexyy.c and y_tab.c names.
	
	* Prototyped yyerror as void yyerror() instead of int yyerror().
	  WATCOM was treating this as a hard-error.
	
	* Fixed multi-line #pragma's.  Some WATCOM header file was containing
	
		#pragma ... \
			    ... \
			    ...
				
	UNIX preprocessors that I'm familiar with, expand this so that the
	compiler-proper doesn't see the '\' backslashes, but not so on WATCOM.
	Example of this can be found in c:\WATCOM\H\MALLOC.H
	  
	Solved by pushing back a char using yyless() in the #pragma action ,
	if the last char is '\', then next rule matches 'line' beginning with
	the trailing '\' + return.
	  
	* Made change for not emitting #line directives between consecutives
	  pragma's. (Made change in str: method of LineTag).

	* Implemented -builtinfunction option.  On Stepstone builtin
	functions are handled with #pragma's, by the way (for DG-UX).
	  
	Configured DEC alpha with -builtinfunction __builtin_isfloat for
	Tsu-chien Weng.
	  
1.3.13
	* Added -ppi flag (stands for Productivity Products International!)
	so that objc can compile 3.x Objective-C, notably "Producer", the
	ST to objc translator.
	  
	With -ppi, you have only one (.m) file per object, not a separate file
	with an @interface part.  The syntax to define the class is
	like @implementation, except that '=' was used, instead of
	@implementation.
	
	* Configure to allow // comments in FreeBSD compiler (needed for 
	producer). This works by passing -x objective-c -Wno-import flags to
	gcc -E (or on freebsd, to cc -E).

	This was already done automatically on Linux,NeXT and platforms where
	the compiler is called "gcc".  We DONT use it ourselves since we can't
	do it on platforms like SGI where we don't have by default a 
	// capable cpp, by the way.
	
	* Added |-show| and |-perform:with:with:| to Object for Stepstone
	compat.
	
	* Added |-elementsPerform:with:with:| methods to Collection and Set
	for Stepstone compat.

	* Support (or better said, ignore) the old @requires keyword.
	
	* Added (nice) method |+with:| for Collection, for Stepstone compat.
	  Added |-asSet|, also for producer.
	 
	* Added String method |- concatenateSTR:(STR)aString|
	
	* Added some Stepstone runtime stuff like NAMEOF() and dbgIOD.
	  Let's hope this doesn't clash with system symbols...

1.3.12
	* Configured DEC to use bison instead of yacc (until Tsu-chien Weng
	figures out the table overflow problem with parseplus.ym on DEC yacc!)
	  
	* Added support for "extern "C++"" keyword (for Linux, also per
	Tsu-chien Weng).
	  
	* Fix (work-around actually in scanplus.lm) for Linux streambuf.h
	instance
	inline ios::ios(streambuf* sb, ostream* tie_to) {init(sb, tie_to);}
	where ios is TYPENAME.

1.3.11
	* Ported new parseplus.ym grammar (developed with byacc) to PCYACC,
	bison etc. Made it a bit smaller for "no space in action table" 
	and "too many states" errors on old NeXT yacc by moving some
	stuff to LEX level (ASM_TOKEN, ANY_ASSIGN_TOKEN, CONSTANT_TOKEN
	are now keyclass). (of course one could always use byacc).

	* Removed rule out of IVariableDeclarator for parseplus.ym (with
	nonempty type_qual).

	* Fixed rule IVariableDeclarator renamed to 
	CompleteIVariableDeclarator
	in both parse.ym and parseplus.ym (this must have been a bug).

	* Compiled "objpak" and compiler itself with -cplus flag.
	(as C++ parser test, because in itself this is a useless thing to do). 
	Changed a couple of "new" variable names (because of C++ keyword).

1.3.10
	* Implemented objcplus1 parser (for C++ support), so that the 
	following
	now works:
	  
		#include <stream.h> /* C++ */
#include "objpak.h"

		void main()
		{
    	    id s = [String sprintf:"hello world\n"];
			cout << [s str];
		}
	
	* Modified objc sh and binary driver for -cplus flag and temporary
	files
	ending in .ii and .cc.   The suffix for "Objective-C++" is .mm (or you
	can specify -cplus).
	
	* _modDesc is now called foo_modDesc where "foo" is the bindName for 
	the
	module (because of some C++ particularity with initializers for static
	globals, mutually referring to each other).   foo_modDesc is scoped
	extern.  (this also affects - should not matter - the C parser).
	
	* Added -cplus flag to objc1.  objcplus1 and objc1 are identical 
	except
	for their yyparse and yylex, but the trick, to distinguish both 
	programs
	in the "oclib" library, is that the driver will always invoke 
	objcplus1
	with the -cplus flag.
	  
	-cplus also sets -postlink (so with the -cplus flag, one does not use
	the auto-initialization code of the runtime).
	  
	* Use "..." in definition of type "IMP" for __cplusplus case
	  
	* Moved generation of "extern _objcInit" out of function body of 
	main()

1.3.9
	* Fixed -l option both in sh and binary driver (it was appending
	  the lib to the list of libs, instead of just to LDARGS)

	* Fixed cakit makefile (Lexer and Grammar weren't added to archive
	  any longer on UNIX)
	
	* Fixed bugette in ulongValue: of Integer object
	  (discovered when running benchmarks on the algorithm for computing
	   variation of real roots of univariate polynomials)

	* Made varRealRoots: method public (for Mathematica notebook on
	  real root counting)

1.3.8
	* Removed following comment from top Makefile.in

 	#
	# For builds using Stepstone, Gcc objc, NeXT or SunSoft objc,
	# do not build objcrt, but use the Stepstone, Gcc or the NeXT
	# runtime instead.  (You need "objpak" and "objc" only).
	#

	and put #if __PORTABLE_OBJC__ around the objcrt files.

	* Reorganized some stuff so that I can more easily control cross
	compiles and control portability of "objc", to other OC compilers.

	* Wrote toplevel Makefile for WATCOM that can be executed by a
	simple "wmake" (descend into subdirs didnt work on Windows before)

	* Compiled Computer Algebra Kit on Windows95 ! Only one change was
	necessary : WATCOM compiler was confused by #include "float.h" and
	was including "Float.h" (the class)

1.3.7
	* Add warning for missing @end in source per Tsu-chien Weng remark.

	* objc.exe and "sh" objc now support the environment variable OBJCOPT.
	Can hold a list of "default" options.  Turns out to be a very useful
	environment variable, which supercedes OBJCDIR (although that variable
	continues to be supported).

	* Ported to Windows95 using WATCOM C 11.0 (WIN32)
	See new file "WATCOM" for more info.
	
	Defined __PORTABLE_OBJC_UNIX__ for UNIX compilers,
	Defined __PORTABLE_OBJC_MSDOS__ for Windows compilers, like the WATCOM.
	
	* Output multiple lines for declaring "objcTxx" temporary variables
	for message constructs (for when there's many of these local variables
	to be declared).  Made similar change for inlineCaches.
	
	* use in objc.exe makeTMPC() for copying .m to .c file instead of 
	"cat".
	
	* Added -watcom option to configure.  This should set up sources
	(on UNIX) that can then be moved to Windows95 where they can be
	compiled with our WATCOM objc.exe compiler.

	* Modified GNU util/config.sub to accept windows95 (don't know whether
	more recent config.sub scripts already do this).

	* Rewrote (simplified) Makefiles again.
	The same Makefile is used on WATCOM (using "wmake -u -c") & UNIX
	Introduced $(MAKE), $(RM) etc.
	Replaced ${MAC} by $(MAC) everywhere.
	Removed "debuglibs" from default make target.
	Changes for .obj and .lib suffix instead of .o and .a.
	Changes for differences between UNIX "ar" and WATCOM "wlib".

	* Renamed scan.l and parse.y to scan.lm and parse.ym (Makefile reason)

	* Made a few parse.ym rules less recursive for stack overflow on Win95
	(rules with COMMA_TOKEN).

	* Implemented POSTLINK for UNIX in the objc.exe driver (although we
	continue to do the actual work in AWK, for UNIX).
	  
	* Implemented a WATCOM compatible POSTLINK in the objc.exe driver.
	(using the "option map" of the WATCOM wlink tool).

	* Scope _objcModules extern in objcrt.m for WATCOM (but not on UNIX,
	although we will eventually do this).

1.3.6
	* Fixed __signed__ to be a type qualifier (got broken in 1.3.4)
	(__signed__ and __unsigned__ must be turned on with -gnu, which is
	the default on all UNIX compilers)

1.3.5
	* Incremented no. of LEX positions (because of Borland C
	porting changes in 1.3.4 some LEX impl. needed this)

	* More work on the objc.exe driver.
	
	* Fixed and documented ldOpt: (must precede -l*) rule in driver)

	* Made change so that a class Foo.m does not declare a
	struct __PRIVATE but rather a struct Foo_PRIVATE.
	This makes debugging at the C level easier (by casting "id" to
	a struct Foo_PRIVATE pointer, one gets access to instance variables).

1.3.4
	* Added __cdecl, __far keywords etc. for Borland C.
	These C keywords of the DOS/Win universe are enabled only when objc1
	is given the "-msdos" option.
	
	* Made -gnu option turn on __const etc. (this option was ignored
	before, and gnu keywords were always enabled).
	
	* Made a modification to parser for Borland constructs using a
	type qualifier in a type declarator in front of the pointer
	token (instead of after).

	* Moved CONST_TOKEN etc. out of parse.y into scan.l and treat all 
	these
	qualifiers as "TYPEQUALIFIER_TOKEN".
	
1.3.3
	* Added -B option to driver for setting OBJCDIR on the command line.
	
	* Implemented a binary driver "objc.exe" in Objective C.
	For platforms where we normally don't have a /bin/sh (WindowsNT etc.).
	It's also about 10% faster than the Bourne shell driver (for
	recompiling
	the compiler with itself), but the Bourne shell driver has the 
	advantage
	of flexibility...
	
	* Fix bug introduced in 1.2.2 driver (wasn't respecting -noLibs 
	anymore,
	but it went by unnoticed) 

1.3.2
	* Modified installation procedure again a bit.
	.o files for the debug libraries (objcrt_g.a etc.) now have a .go
	extension, so that I can have the debug/nondebug object files in the
	same directory.

	* Removed RTF subdirectory.  RTF docs were taking up a lot of space,
	and not so much used (given the HTML counterparts); if you'd like to
	have them, send e-mail; I could continue to generate them and put them
	in a separate package.
	
	* Removed -ansi flag for FreeBSD compiler (seems to work okay on 2.1.7)	
	
	* Added some -xstr stuff (and xstr sources).  This turns out not
	terribly important : for the FreeBSD executable, the resulting binary
	is about 5KB smaller.  It's a nice demonstration however of how
	Objective C can be used to extend (not: rewrite) software written back
	in 1978... (apparently by Bill Joy in this case).
	
	* Fixed a bug in Module.m.  In some case when a module was empty
	(had an empty selector translate table), the bind function was set to
	nil and auto-init skipped the module (but this was wrong w.r.t.
	_impSuper).  ("super" example from G. Albert Mietus
	<albert@gamp.hacom.nl>) (for the -postlink version, which worked
	anyway, it makes no difference).

1.3.1
	* Computer Algebra Kit API clean-up.  Renamed classes like "CAMonomial"
	to "Monomial", "CAPolynomial" to "Polynomial" etc.
	
	It's an incompatible change.  The main header to include remains
	<cakit.h>.

1.2.3
	* Prototype _imp() and _impSuper() in objcrt.h to suppress warning
	with crosscompile using IBM AIX Stepstone 3 arg messenger objcc (for
	3 arg traditional messengers, there's no reason _not_ to define _imp(),
	unlike for their 'all C' messengers, where the prototype is slightly
	different, because of my decision to type classes as "id" instead of
	SHR)
	
	* Made change in code emitted by compiler to prototype _imp() and
	_impSuper().  This is to anticipate some problems of C++ influence on
	ANSI C compilers.  Some non-UNIX "ANSI" C compilers have C++ conventions
	like not allowing declarations without arguments ( like IMP _imp(); )

	* Changed prefix for method translation from plus/minus to c/i.
	(e.g. +new -> c_new and -self -> i_self).  Maybe these prefixes
	(and also the prefix for classes) should be settable at the driver
	level.

	* Minor change in "yoursystem" demo program for gets() giving a runtime
	warning message on FreeBSD2.1.7 (you're supposed not to use it).

1.2.2
	* Implemented the objc1 -initfunction option, but renamed it to -init.
	The function name is now always using -init at the driver (objc) level,
	instead of compiling a default value into the objc1 executable.
	For all platforms except the NeXT, the driver sets the value to
	"objcInit".  On NeXT, it sets the function to "oc_objcInit".

	The macro OBJCRT_USE_PREFIXED_NAMES is not used in the objc source any
	longer (but continues to be used for objcrt compilation).

	* Use TMPDIR variable in binPackage per Robey.

	* Make driver use the lib_g.a debug libraries when compiling with -g.
	Make driver not to link against some library if it appears to be absent.

1.2.1
	* Included Computer Algebra Kit library; the driver is linking by
	default against libcakit.a, and it is automatically built as part
	of the install
	
	* Some support for DEC cc compiler options in the objc driver. Thanks
	to Tsu-chien Weng (david@helium.ch.ntu.edu.tw) for trying this out on
	DEC3000/700 and DEC2100 5/250

	* Change for DEC alpha OSF/1 v4 Computer Algebra Kit port (pointer
	alignment issue) in the polynomial arithmetic term packages that
	were intended to work with variable sized coefficients and monomials.
	
	This completes the 64 bit Computer Algebra Kit port.

1.1.16
	* Reorganized Makefiles a bit.  There's now a "make debug" and a "make
	optimized" target.  This is necessary because 1.1.14 broke the HP-UX
	compile : HP cc does not allow -g -O flags for .i files.  (also for
	OSF/1, it was a bad idea anyhow to compile with both -g and -O).
	
	* This also means that the default installation now compiles "objc1"
	with the -inlinecache and -O option.  Installation also builds now two
	copies of the runtime libraries, one compiled with -O (which is used by
	default) and one with -g, which might be useful for linking against when
	debugging.

1.1.15
	* minor changes for compiling parse.y with Abraxas PCYACC
	(just don't forget to end each rule with a semicolon)
	
	* configure accepts GNUish --prefix=path option for setting INSTALLDIR

	* -ObjC and -objc are now equivalent; the -objc flag of objc1 is now
	called -dump at the driver level
	
	* -retain now retains the .i *and* the .P preprocessor file.
	-retaincpp continues to just retain the .P file, and -C generates
	a .i file without compiling it.

	* changed format of error messages per Thomas M. Breuel
	(tmb@aimnet.com), from,
	
		objc: syntax error "translate" at test.m:358
	to,
		test.m:358: [objc] syntax error "translate"
		
	which is the standard format for emacs and vi
	
	* tmb@aimnet.com reported that Linux /usr/include/rx.h did not compile
	Fixed this bug (was bug in typedef's of types that are pointers to
	functions that are prototyped with parameter names).

	typedef enum rx_back_check_return (*rx_back_check_fn)
		(struct rx_string_position * pos,
		int lparen,
		int rparen,
		unsigned char * translate,
		void * app_closure,
		int stop);

1.1.14
	* objc1 doesn't emit comments (like /* name of selector */) unless
	the -comments options is given (which is not the default).
	
	* objc driver script now used intermediate .i files instead of .c files;
	this is understood by C compilers as preprocessed C, so we save an extra
	cpp run.  For recompiling the compiler with itself : 500 sec <-> 530
	secs on a (slow) machine using gcc.
	
	NOTE: I did NOT check that all C compilers effectively adhere to
	the convention that .i means preprocessed C, but I think this is pretty
	universal.
	
	* driver change so that -ObjC flag now works; before only .m files were
	understood to contain Objective C extensions.  Now .c files can also
	be compiled : objc -c -ObjC file.c.

1.1.13
	* Merged in chuckr@glue.umd.edu change for FreeBSD ports.
	This was just -ansi for running cc (=gcc) to work around a minor include
	problem.

	* Made configure script issue a warning if no objc bootstrap in PATH

	* Modified lex files so that scanner syntax errors are 'fatal'
	(ie. exit code nonzero for objc1).

1.1.12
	* Some improvement to objcplus1 C++ support (not yet functional)

    * Implemented objc -unbuf option for unbuffered output
        
    * Fixed a bug where we running out of stack space in |translateOn:|
	when processing the large YACC generated file for C++ support.
	Rewrote parser's handling of initializer lists.  For {a,b,c},
	the nodes a,b and c are now all subnodes of a single node
	(see rule InitializerList1).

1.1.11
	* Some improvement to objcplus1 C++ support (not yet functional)
	
	* Porting changes for the 64bit R10000 (SGI PowerChallenge/IRIX 6.2)
	using the MIPSpro 7.0.1 compiler.

	* Various (trivial) changes to casts from pointer to unsigned to
	supress harmless warnings, or to remove such constructs when they
	could be avoided.

	* Made default implementation of |printToFile:| do nothing instead
	of printing the pointer address.

	* Revised the objc driver's treatment of the cc -E *.m problem on
	IRIX. We rename now to a temporary .c file for working around the
	MIPSpro compiler 'cc -E' step interpreting .m as FORTRAN.

	* Removed _realloc from objcrt as it isn't used in our system, and as
          it clashes with the one in /usr/lib64/mips4/libc.so

	* Made SGI objc use -longlinetag.  Removed -ansi for LONGLONG
          warnings. (note that -common is essential for the auto-init code
          on IRIX!)

	* Made IRIX 6.2 version use the -64 flag

	* Removed -lm since I suspect no platform is using this anylonger
	and the SGI complains about it.

	* Fixed bug where -64 (or general $CCARGS) wasn't used for
          compiling _postlink.c (SGI ld will not link o32 with o64).

1.1.10
	* Fixed #include mistake in public objcrt header file (as opposed to
          the private objcrt.h)

	* Implemented |methodFor:| and |instanceMethodFor:|.

	* Fixed postlink for HP-UX (nm output format problems).

1.1.9

	* Parser now accepts classnames as types

	Some compilers accept "Object *anObject = [Object new];" input,
	instead of the usual "id anObject = [Object new];".

	The warning that is generated when the compiler translates "Object *"
	into "id", can be turned off with the "-w" flag.

1.1.8	
	* Made -inlinecache generate code instead of a call to the runtime.
	Removed objcrt supporting function for -inlinecache.
	This means that it's possible to compile with -inlinecache and still
	link against the Stepstone runtime.

1.1.7	
	* Implemented -nolinetags option.
	* Implemented -postlink option and (the optional) postlinker,
	postlink.awk.  Not yet tested very well, but seems to work.
	* Made Module.m defines&usesEntries instances of Set instead of Cltn.

1.1.6	
	* Implemented -inlinecache option.

1.1.5	
	* Changed output definition of "id" for Microsoft C
	Which, I'm told, does not like "late defined structs".
	The change from "typedef struct _PRIVATE *id" to the new definition
	went together with changing the handling of instance variables.

1.1.4
	* New objcplus1 executable for C++ parser.

	This is not yet usable/finished, but the driver script (objc)
	already accepts files with the .cc extension, and the framework is
	there to support C++.  C++ support planned for some future version.

	There's a single driver script (objc) for both the objc1 and
	objcplus1 executables.  Currently it's assumed that the C and
	C++ underlying compilers are the same (the $CC variable) and the
	driver switches between C and C++ according to the file suffix.

	Objective C++ files have the suffix .mm (like in .cc) but this
	is not yet fixed at all.

	* Incorporated fixes for tiggr@ics.ele.tue.nl complaints for configure
	script (no longer assumes that . is in $PATH)

1.1.3
	* Changed name of oclib/Method to MethodInfo because of name clash
	when compiling "objc" with NeXT cc (porting to NeXT sparc done,
	not by the usual bootstrapping procedure, but by compiling "objc1"
	with the NeXT compiler)

	* Worked out a better installation procedure.

1.1.2
	* Fixed code generation bug for class hierarchy.  The root of the
	metaclass hierarchy was by mistake set to the metaclass of Object,
	instead of to the Object class itself.

	Because of this bug, class objects did not respond to the instance
	method -name, or more generally, they did not inherit any Object
	instance method.

1.1.1
	* First release
