Go to the first, previous, next, last section, table of contents.
The builder was written to help compiler writers manipulate small amounts of the input program. The builder was never intended to be an interface to write front ends which generate full programs. Most of the builder design decisions were taken in favor of ease of programming over efficiency.
The builder performs many semantic and syntactic checks on every operation. The builder creates and maintains a large number of shadow structures. When executing, it iterates many times over these shadow structues. For example, parsing the type structues from type strings is very inefficient.
The builder generates a large number of shadow structures. Since all the
building blocks are stored in uniform block
structures, builder
creates a very large number of these structures. Since the block
needs to handle all the possible cases, the structure itself is quite
large. There are may places, especially in code generation, where
the builder is leaking memory. This problem will be addressed in the next
release.
Go to the first, previous, next, last section, table of contents.