From owner-freebsd-hackers Tue Jan 21 22:57:34 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id WAA19017 for hackers-outgoing; Tue, 21 Jan 1997 22:57:34 -0800 (PST) Received: from time.cdrom.com (time.cdrom.com [204.216.27.226]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id WAA19012 for ; Tue, 21 Jan 1997 22:57:31 -0800 (PST) Received: from time.cdrom.com (localhost [127.0.0.1]) by time.cdrom.com (8.8.4/8.6.9) with ESMTP id WAA09878; Tue, 21 Jan 1997 22:57:16 -0800 (PST) To: Richard Wackerbarth cc: hackers@freebsd.org, terry@lambert.org Subject: Re: Terry In-reply-to: Your message of "Tue, 21 Jan 1997 21:41:53 CST." Date: Tue, 21 Jan 1997 22:57:15 -0800 Message-ID: <9874.853916235@time.cdrom.com> From: "Jordan K. Hubbard" Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > THAT sounds like a definition to me! However, I would wish to modify it > somewhat. In particular, in order to achieve some of the goals, it may be > necessary to "break" some things. I contend that some of them need to be > "broken" simply because they are not consistent with the current state No, you don't break anything. If you change some Makefile macro so that /usr/src/bin/cat no longer compiles, you also fix /usr/src/bin/cat or people will see how many times they can jump up and down on your head, and most deservedly so! :-) > of the art. I do however agree that we cannot break the functionality. > I go one step further and contend that we not only have to replace changed > functionality, but have to do so in a manner which provides a continuous > sequence of working intermediate steps. Right, so you already understand what it takes to keep people from standing on your head. Sounds like a promising start to me. > Now, please consider the above paragraph from MY perspective. I agree > that 1) the task is large and that 2) the definition of details is most of > the work. But that is exactly what I have told I must do before I get any > feedback. "show us the code that does it and we will see if we like it" > However, I am unwilling to put in all of that effort only to have someone > step in at the last moment and veto the entire effort simply because I > stepped on their precious toes. You wouldn't be stepping on anyone's toes and no one in the core team feels particularly paternal towards the build system, in fact most core team members can fill you in chapter and verse about its various shortcomings. This still doesn't mean you can say "OK, I'm going to rampage through the source tree now" and not give anyone the slightest idea of what you're going to be up to somewhat in advance. See below. > WRONG! I want agreement that we will first explicitly agree to a design > methodology. That methodology has absolutely no "code" in its definition. So let's see your design methodology then. How can we agree to something we've never even seen? > Following the methodology, we will next determine (propose, discuss, > AND REVIEW) the design goals. In particular, we will state the criteria > which must be met in order to have a design declared "acceptable". At this > point I do wish "carte-blanche" in developing a design to meet the stated > criteria. That is not to say that such design will be done without even > more discussion. However, it does preclude someone comming in later and > exercising a veto simply because the design does not meet some goal that > was not previously specified. I have no problem with setting goals, reviewing them and coming to a common concensus about what we're willing to have done to the tree. If you can then work within those lines, your design will not be veto'd over some last minute contractual change. Mind you, you could very well prove to be a complete incompetent and your changes could all suck mightily, in which case we would have to reserve the right to reject what would only do the project harm, but if you actually do have the skills to pull this off (and I don't really want to hear arguments either way, I'm simply saying that we don't *know* for sure what you are yet) then that's great and I don't see any problem. We didn't jump on Justin once he was done with his reorg of the SCSI driver, or tell John Dyson after he was finished: "Uh, sorry, no - we changed our minds. Forget about the merged VM/buffer cache stuff." Ideas with genuine merit and a quality implementation are gladly accepted. Since we don't know you very well at all, it remains purely to be seen whether your ideas have either merit or quality before any idea of "carte blanch" can be extended. You simply haven't done anything which lets us know how to categorize you either way, and this is not the catholic chuch - unswerving faith is not our answer to the unknown. > Without knowing exactly HOW the design will meet the goals, I do know > design requirements. By the very nature of these changes, they will not, in > themselves, create any improvement. In fact, there may be temporary > digressions. However, they will be establishing the base upon which the > final design is built. Again, I would EXPECT that the details of the individu Fine, that's all fine - we don't expect you to build Rome in a day or spend your entire time sculpting elaborate and highly visible frescos. We simply would like to know whether you're a master builder or merely someone with pretentions to being one, and the only way we can know that is to see the quality of your work. > steps would be REVIEWED, tested, and demonstrated in order to help assure > that they do not "break" things. However, that review is not permitted to > question whether they, standing alone, improve things. That is replaced by > only the question of whether or not they help move us along a path to the > proviously established destination. Though it would still remain incumbent upon you to explain the long-term significance of a set of changes which confer no short term advantage and are purely infractructural. No one expects to review the build system in any kind of stand-alone context anyway since that's basically a useless exercise given the highly inter-related nature of the changes. > I think that you and I are talking at different levels. By a "spec", I want > performance requirements. In particular what existing methodology > is sacred? For example, do I HAVE to keep "/usr/obj" or am I allowed to > substitute some other mechanism in the final implementation as long as > that mechanism allows the use of a scratch disk for the intermediates. And is superior to the existing mechansim. Change for change's sake or because it doesn't smell like Richard is clearly bad. Change for the sake of a real advantage (which you can cite if and when asked) is just fine. > I do not take it lightly. As for "explaining it", I have REPEATEDLY been > told that the ONLY acceptable "explanation" is a FULLY working > implementation. These people do not seem to grasp conceptual designs. > Instead they are stuck at the "nuts and bolts" level. OK, perhaps I communicated this poorly then. Let's change this to "the ONLY acceptable explanation is a design document and the will to follow through with it using the ratified final version." I think that's more than reasonable. Jordan