home *** CD-ROM | disk | FTP | other *** search
- This is a new release of lcc-win32. Updated FEB-4-1998.
- Read the 'What's new' section below to see additions/changes.
-
- Important for new users:
- -----------------------
- Before running the compiler, use the 'setuplcc.exe' utility to establish the
- paths to the include files and the libraries for the linker lcclnk.
- If you install the compiler somewhere else, you should run that utility to
- re-establish the correct paths.
-
- This release has the following organization:
- lcc
- bin binaries
- src the compiler sources
- lib the import libraries
- lib\src Sources for some of the functions in libc.lib.
- 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
- buildlib Contains the utility for building import libraries. This is for
- building your own special import libraries.
- 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
- demo\toolbar An example of toolbar manipulation/configuration
-
- The bin directory
- -----------------
- It contains following programs:
- o lcc.exe
- The compiler.
- 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 winmm import
- library missed the _stdcall feature. This has been corrected.
-
- 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.
- Note the flags -DASM_LIB that forces the assembler written equivalent of
- certain functions. This should be disabled in a debug setting.
- The compilation flag -DNDEBUG transforms all assertions into nothing. This
- increases compilation speed but should be disabled in a debug setting.
-
- Included in the lib 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.
-
-
- What's new in the release of 07 September:
- ---------------------------------------
- 1: The compiler now supports the long long type with 64 bit integers. This is
- still experimental, and there are still bugs in it. Please report to me
- any you find.
- 2: As with each new release, the optimizer works a little bit better. The
- handling of the 'switch' statement now is significantly faster.
- 3: lburg has been modified to generate faster labellers.
- 4: Many bugs fixes reported by users have been incorporated to the source tree
- and the executables distributed with this release.
- 5: buildlib.exe now supports alias handling for library building.
- 6: pedump now find always the exported functions, even if there is no .edata
- section.
- 7: signal handling didn't work. It should now.
-
- 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.
-
- The sources of this package are not free but they can be purchased from the
- author. Contact the e-mail address above
-