This is a new release of lcc-win32. Updated 18 Mai 1997.
It has the following organization:
lcc
   bin      binaries
   src      the compiler sources
   lib      the import libraries
   include  the include files directory
   driver   A driver for the compilation process contributed by Scott Beasley
   make     A make utility. Pedro Aranda contributed to it.
   dll      An example for a dll
   lburg    The 'lburg' utility. 
   demo     Example programs
   demo\hello      An example for a console application
   demo\intrinsic  An example for the usage of the intrinsics functions
   demo\hellowin   An example for a simple windows application
   demo\ftp        An example of an ftp client using the wininet.dll
   demo\wormhole   An example of the directx interface

The bin directory
-----------------
It contains following programs:
 o lcc.exe
   The compiler. New features are:
        o A new high level optimizer.
          The code generated with lcc-win32 now compares with the code of
          commercial compilers. Its code size, floating point speed and
          compilation speed are the same as commercial compilers. Raw integer
          speed should be 20-40% slower depending of the application.
        o More stable peephole optimizer
        o Diagnostics have been added
        o Bugs concerning the handling of _stdcall function pointers have been
          corrected.

 o lcclnk.exe. The linker.
   This is the third release of this linker. It is an essay in software
   minituarization: it weights only 64K. To give you an idea, 'ld.exe', gnu's
   linker is 231K, and Microsoft's is 421K. Still, it manages to:
   o link object files and libraries.
   o link the debug information. This corresponds roughly to half the code for
     this linker. All types of different object files must be packed into an
     unique type description for the debugger. To get it right was a difficult
     and error prone task. I feel confident that it works because Microsoft's
     debugger loads without problems the executables linked with this linker.
   o convert the resource files (.res) into normal object files, and links
     them. I donated the source code for this part of the linker to GNU's 'ld'
     so that they can do that too. Steve Chamberlain has been to busy to
     integrate it into their linker though.
   o The linker uses the path in HKEY_LOCAL_MACHINE\SOFTWARE\lcc to find the
     library.
   o A help file for the linker has been written. It is in the 'lib' directory.
   o The -dll option has been debugged. It should work with less problems now.


 o wedit.exe. The editor.
   This is the center of the IDE for lcc. I have been working in this program
   for approximately 6 years, and I have sold many copies to clients here in
   France. It hasn't been integrated with the compiler still, so just use it
   to edit your programs. It will not start the compiler yet, even if the
   dialog boxes are already designed. The 'debugger' entry is disabled for 
   obvious reasons: the debugger has too many bugs itself to be able to
   debug anything yet. I think I will be ready for the first public releases
   in September. 
   To describe wedit in a few lines is impossible, it has too many features.
   But for starters:
     Press F12 to obtain the list of functions defined in the source.
     Press F8 with the cursor under the name of a function to go to its
     definition. Press Ctrl+F8 to see the usages of a symbol.
   Etc, etc. There is an online documentation.
   The executable shipped here was compiled with lcc and linked with lcclnk.
   The code of Wedit has been a testbed for any changes made to the compiler.
 o The first release of the debugger is included here. It is still very
   primitive but should allow you to follow your program.

 o make.exe A make utility.
   wedit will generate automatically a makefile according to the syntax of
   this utility. (It is compatible with 'nmake' from Microsoft)
 o A complete dump utility, adapted and enhanced from the 'pedump' program of
   Matt Pietreck.
 
The include directory
---------------------
This contains the include files to compile under windows, and the most
important files for the standard library. I thank here scott christley for
making an enormous contribution by rewriting all 'windows.h'! The version 
shipped here was used to compile wedit, and a few modifications/errors were
corrected. All this part is brand new, and therefore, it may contain
several bugs. 
I have continued the work of scott, and added several files to the include
directory, like the wsock32.h (sockets) Multimedia (mmsystem.h) and many
others.
New to this release is richedit.h that was missing, and many bug fixes to
win.h

The lib directory
-----------------
Here are the import libraries for linking with Windows NT dll's.
Spooler support (winspool.lib) was added 18/May/1997

The src directory
-----------------
I have integrated the changes made from lcc 3.4 to lcc 3.5 into the code.

To compile the compiler just type 'make'. It should compile and link
without problems.

Included in the src directory is the startup code: lcccrt0.asm. It will be
accepted by the compiler of course.
As you can see, it is very primitive and it doesn't make a lot.

  Calls HeapCreate to start the heap.
  Builds the command line arguments
  Calls _main
  Calls ExitProcess with the result of _main.
All obscure manipulations were hidden from view in that function 
_BuildCommandLine@0'. It is too ugly to show, so the code is not shipped:
That function will backpatch some errors  in the libraries, specially
concerning STDIN and STDOUT. I have managed to build a library that uses
CRTDLL.DLL, that comes free with Windows. There is no documentation about
that library, specifically what the startup should do to initialize stdin and
stdout.

The lburg directory
-------------------
I have made minor changes to the 'lburg' utility that comes with the standard
lcc distribution. This utility will build a C file from the machine description
'win32.md'. It is part of the building process of lcc.


Other issues:
1. Open GL support:
  Lcc provides import libraries for the dlls of Open GL. You will need the
  glaux.lib library to build an executable though. This library can be
  obtained by purchasing the SDK. LCC cannot provide a copy of that library
  (it is more than a megabyte of highly complex graphic routines!) for
  copyright reasons.

As usual:
Send bugs/suggestions etc to:
jacob@jacob.remcomp.fr

This work has been financed entirely by myself. No institution whatever has
accepted to burn money in such a crazy idea like building a compiler system.
So,if you want to contribute to this effort, send your contribution to:

Jacob Navia
41 rue Maurice Ravel
93430 Villetaneuse
France.
