home *** CD-ROM | disk | FTP | other *** search
/ Total Destruction / Total_Destruction.iso / addons / Lccwin32.exe / Lccwin32 / lccpub / readme next >
Encoding:
Text File  |  1998-02-04  |  8.1 KB  |  175 lines

  1. This is a new release of lcc-win32. Updated FEB-4-1998.
  2. Read the 'What's new' section below to see additions/changes.
  3.  
  4. Important for new users:
  5. -----------------------
  6. Before running the compiler, use the 'setuplcc.exe' utility to establish the
  7. paths to the include files and the libraries for the linker lcclnk.
  8. If you install the compiler somewhere else, you should run that utility to
  9. re-establish the correct paths.
  10.  
  11. This release has the following organization:
  12. lcc
  13.    bin      binaries
  14.    src      the compiler sources
  15.    lib      the import libraries
  16.    lib\src  Sources for some of the functions in libc.lib.
  17.    include  the include files directory
  18.    driver   A driver for the compilation process contributed by Scott Beasley
  19.    make     A make utility. Pedro Aranda contributed to it.
  20.    dll      An example for a dll
  21.    buildlib Contains the utility for building import libraries. This is for
  22.             building your own special import libraries.
  23.    lburg    The 'lburg' utility. 
  24.    demo     Example programs
  25.    demo\hello      An example for a console application
  26.    demo\intrinsic  An example for the usage of the intrinsics functions
  27.    demo\hellowin   An example for a simple windows application
  28.    demo\ftp        An example of an ftp client using the wininet.dll
  29.    demo\wormhole   An example of the directx interface
  30.    demo\toolbar    An example of toolbar manipulation/configuration
  31.  
  32. The bin directory
  33. -----------------
  34. It contains following programs:
  35.  o lcc.exe
  36.    The compiler.
  37.  o lcclnk.exe. The linker.
  38.    This is the third release of this linker. It is an essay in software
  39.    minituarization: it weights only 64K. To give you an idea, 'ld.exe', gnu's
  40.    linker is 231K, and Microsoft's is 421K. Still, it manages to:
  41.    o link object files and libraries.
  42.    o link the debug information. This corresponds roughly to half the code for
  43.      this linker. All types of different object files must be packed into an
  44.      unique type description for the debugger. To get it right was a difficult
  45.      and error prone task. I feel confident that it works because Microsoft's
  46.      debugger loads without problems the executables linked with this linker.
  47.    o convert the resource files (.res) into normal object files, and links
  48.      them. I donated the source code for this part of the linker to GNU's 'ld'
  49.      so that they can do that too. Steve Chamberlain has been to busy to
  50.      integrate it into their linker though.
  51.    o The linker uses the path in HKEY_LOCAL_MACHINE\SOFTWARE\lcc to find the
  52.      library.
  53.    o A help file for the linker has been written. It is in the 'lib' directory.
  54.    o The -dll option has been debugged. It should work with less problems now.
  55.  
  56.  
  57.  o wedit.exe. The editor.
  58.    This is the center of the IDE for lcc. I have been working in this program
  59.    for approximately 6 years, and I have sold many copies to clients here in
  60.    France. It hasn't been integrated with the compiler still, so just use it
  61.    to edit your programs. It will not start the compiler yet, even if the
  62.    dialog boxes are already designed. The 'debugger' entry is disabled for 
  63.    obvious reasons: the debugger has too many bugs itself to be able to
  64.    debug anything yet. I think I will be ready for the first public releases
  65.    in September. 
  66.    To describe wedit in a few lines is impossible, it has too many features.
  67.    But for starters:
  68.      Press F12 to obtain the list of functions defined in the source.
  69.      Press F8 with the cursor under the name of a function to go to its
  70.      definition. Press Ctrl+F8 to see the usages of a symbol.
  71.    Etc, etc. There is an online documentation.
  72.    The executable shipped here was compiled with lcc and linked with lcclnk.
  73.    The code of Wedit has been a testbed for any changes made to the compiler.
  74.  o The first release of the debugger is included here. It is still very
  75.    primitive but should allow you to follow your program.
  76.  
  77.  o make.exe A make utility.
  78.    wedit will generate automatically a makefile according to the syntax of
  79.    this utility. (It is compatible with 'nmake' from Microsoft)
  80.  o A complete dump utility, adapted and enhanced from the 'pedump' program of
  81.    Matt Pietreck.
  82.  
  83. The include directory
  84. ---------------------
  85. This contains the include files to compile under windows, and the most
  86. important files for the standard library. I thank here scott christley for
  87. making an enormous contribution by rewriting all 'windows.h'! The version 
  88. shipped here was used to compile wedit, and a few modifications/errors were
  89. corrected. All this part is brand new, and therefore, it may contain
  90. several bugs. 
  91. I have continued the work of scott, and added several files to the include
  92. directory, like the wsock32.h (sockets) Multimedia (mmsystem.h) and many
  93. others.
  94. New to this release is richedit.h that was missing, and many bug fixes to
  95. win.h
  96.  
  97. The lib directory
  98. -----------------
  99. Here are the import libraries for linking with Windows NT dll's.
  100. Spooler support (winspool.lib) was added 18/May/1997. The winmm import
  101. library missed the _stdcall feature. This has been corrected.
  102.  
  103. The src directory
  104. -----------------
  105. I have integrated the changes made from lcc 3.4 to lcc 3.5 into the code.
  106.  
  107. To compile the compiler just type 'make'. It should compile and link
  108. without problems.
  109. Note the flags -DASM_LIB that forces the assembler written equivalent of
  110. certain functions. This should be disabled in a debug setting.
  111. The compilation flag -DNDEBUG transforms all assertions into nothing. This
  112. increases compilation speed but should be disabled in a debug setting.
  113.  
  114. Included in the lib directory is the startup code: lcccrt0.asm. It will be
  115. accepted by the compiler of course.
  116. As you can see, it is very primitive and it doesn't make a lot.
  117.  
  118.   Calls HeapCreate to start the heap.
  119.   Builds the command line arguments
  120.   Calls _main
  121.   Calls ExitProcess with the result of _main.
  122. All obscure manipulations were hidden from view in that function 
  123. _BuildCommandLine@0'. It is too ugly to show, so the code is not shipped:
  124. That function will backpatch some errors  in the libraries, specially
  125. concerning STDIN and STDOUT. I have managed to build a library that uses
  126. CRTDLL.DLL, that comes free with Windows. There is no documentation about
  127. that library, specifically what the startup should do to initialize stdin and
  128. stdout.
  129.  
  130. The lburg directory
  131. -------------------
  132. I have made minor changes to the 'lburg' utility that comes with the standard
  133. lcc distribution. This utility will build a C file from the machine description
  134. 'win32.md'. It is part of the building process of lcc.
  135.  
  136.  
  137. What's new in the release of 07 September:
  138. ---------------------------------------
  139. 1: The compiler now supports the long long type with 64 bit integers. This is
  140.    still experimental, and there are still bugs in it. Please report to me
  141.    any you find.
  142. 2: As with each new release, the optimizer works a little bit better. The
  143.    handling of the 'switch' statement now is significantly faster.
  144. 3: lburg has been modified to generate faster labellers.
  145. 4: Many bugs fixes reported by users have been incorporated to the source tree
  146.    and the executables distributed with this release.
  147. 5: buildlib.exe now supports alias handling for library building.
  148. 6: pedump now find always the exported functions, even if there is no .edata
  149.    section.
  150. 7: signal handling didn't work. It should now.
  151.  
  152. Other issues:
  153. 1. Open GL support:
  154.   Lcc provides import libraries for the dlls of Open GL. You will need the
  155.   glaux.lib library to build an executable though. This library can be
  156.   obtained by purchasing the SDK. LCC cannot provide a copy of that library
  157.   (it is more than a megabyte of highly complex graphic routines!) for
  158.   copyright reasons.
  159.  
  160. As usual:
  161. Send bugs/suggestions etc to:
  162. jacob@jacob.remcomp.fr
  163.  
  164. This work has been financed entirely by myself. No institution whatever has
  165. accepted to burn money in such a crazy idea like building a compiler system.
  166. So,if you want to contribute to this effort, send your contribution to:
  167.  
  168. Jacob Navia
  169. 41 rue Maurice Ravel
  170. 93430 Villetaneuse
  171. France.
  172.  
  173. The sources of this package are not free but they can be purchased from the
  174. author. Contact the e-mail address above
  175.