1See ../README. 2 3The frontend is written in C++. 4 5The frontend lexes and parses the input into an IR specific to this 6frontend known as gogo. It then runs a series of passes over the 7code. 8 9Finally it converts gogo to gcc's GENERIC. A goal is to move the gcc 10support code into a gcc-interface subdirectory. The gcc code will be 11put under the GPL. The rest of the frontend will not include any gcc 12header files. 13 14Issues to be faced in this transition: 15 16* Representation of source locations. 17 + Currently the frontend uses gcc's source_location codes, using the 18 interface in libcpp/line-map.h. 19 20* Handling of error messages. 21 + Currently the frontend uses gcc's error_at and warning_at 22 functions. 23 + Currently the frontend uses gcc's diagnostic formatter, using 24 features such as %<%> for appropriate quoting. 25 + Localization may be an issue. 26 27This compiler works, but the code is a work in progress. Notably, the 28support for garbage collection is ineffective and needs a complete 29rethinking. The frontend pays little attention to its memory usage 30and rarely frees any memory. The code could use a general cleanup 31which we have not had time to do. 32 33Contributing 34============= 35 36To contribute patches to the files in this directory, please see 37http://golang.org/doc/gccgo_contribute.html . 38 39The master copy of these files is hosted at 40http://code.google.com/p/gofrontend . Changes to these files require 41signing a Google contributor license agreement. If you are the 42copyright holder, you will need to agree to the individual contributor 43license agreement at 44http://code.google.com/legal/individual-cla-v1.0.html. This agreement 45can be completed online. 46 47If your organization is the copyright holder, the organization will 48need to agree to the corporate contributor license agreement at 49http://code.google.com/legal/corporate-cla-v1.0.html. 50 51If the copyright holder for your code has already completed the 52agreement in connection with another Google open source project, it 53does not need to be completed again. 54