Category: Programming

  • .eh_frame

    When gcc generates code that handles exceptions, it produces tables that describe how to unwind the stack. These tables are found in the .eh_frame section. The format of the .eh_frame section is very similar to the format of a DWARF .debug_frame section. Unfortunately, it is not precisely identical. I don’t know of any documentation which…

  • Gccgo in GCC

    I committed the gccgo frontend to the mainline of gcc yesterday. Getting to this point was a long series of steps to get the various supporting patches approved. This means that gccgo will definitely be available in the gcc 4.6 release, which will happen sometime early next year. There is still quite a lot of…

  • Versioning

    One of the very nice features of Go is the package system. This permits compilation to be much faster than C++. In C++, if library A depends on library B depends on library C, that generally means that header files in A include header files in B and header files in B include header files…

  • GCC Summit

    I gave two talks on Go at the GCC Summit last week. The first was about the gccgo frontend: the IR and the gcc interface; for that one I wrote a paper, which is mostly just a miscellany. The second was a Go tutorial, focusing on the more unusual aspects of the language. The one…

  • const

    It took me a long time to understand that the const qualifier in C is overloaded. There was no const when I first learned C. It was introduced in the C90 standard. It was copied from C++, although the meaning of const is subtly different in the two languages. The first meaning of const in…