I think this is a great topic to discuss.

At least within Oracle then I think the majority of people do partial builds in their local environment. When I say "partial build" then I mean they build a subset of repositories, not all of them. So folks working in the jdk repository tend to just build that repository with everything else coming from whatever import JDK they are using. Partial builds are of course very fragile and frequently people have problems because they aren't using a matching import JDK. Also periodically we have flag days, say changes that impact langtools+jdk or hotspot+jdk and these usually cause a bit of disruption until the changes get into a promoted build and into the import JDK that people use. As to why people do partial builds then it's probably a mix of issues including disk space, time to do the first build, and of course it's just the way that we've always done it.

Another thing is that I think most people (at least in Oracle) don't build images either, they run + debug with the build output in $OUTPUTDIR so no rt.jar, etc.

When you say "sub-directory builds" then I think you mean incremental builds, or "poor-man increment builds" as I call it. I think the majority of people working in the jdk repository, at least in Oracle, do this because they know the area and know which make files that re-build the files that they have changed. Incremental builds are generally not very reliable but seem to be "good enough" for most people needs, at least those that aren't doing significant refactoring. The main motive of course is to be able to re-build in a few seconds and the #1 goal of any new build system has to be fast incremental builds.

-Alan.

Reply via email to