On Thu, 2005-06-23 at 23:31 +0100, David Given wrote: > On Thursday 23 June 2005 20:04, John Skaller wrote: > [...] > > That cannot be allowed, the build must proceed without > > ever installing anything: if you really need something > > installed you will need to provide a separate package, > > and then the build interaction cannot be cyclic. > > Ung. The build scripts do assume that as they build things, those things > become available to use.
Yes, but I intended to use the term 'installed' in the Debian-technical sense. > I suspect that the only way to cleanly package this for Debian (and for most > other architectures) would be to split it up into (a) tools, (b) code > generators, (c) compilers, (d) libraries. Each one would be a different > Debian package and build and install seperately (but possibly from the same > source package). The downside is you will have to document each of these packages. > How about this: supply a prebuilt parser; llgen builds using this parser, and > then uses itself to generate a new parser. The build will then *fail* if this > new parser does not match the prebuilt one. Maybe and maybe not: It is common for the 'prebuilt' version of the bootstrap to only provide the cut-down functionality required to parse the actual grammar of the parser. Furthermore, it may produce non-optimal output. The full bootstrap is typically like this: Prebuilt_C -- gcc --> Parser0 Parser Source --Parser0--> Parser1_C --gcc--> Parser1 Parser Source --Parser1--> Parser2_C --gcc--> Parser2 Parser Source --Parser2--> Parser3_C assert Parser3_C == Parser3_C Even if you are using a developer generated Prebuilt C code for the start of the bootstrap, it is a good idea for the bootstrap process not to assume that. For example, a Debian packager might patch it, and everything should still work, even though it is no longer generated by some developer private version of the parser applied to the Parser Source -- alternatively, the packager might patch the Parser Source. Both source files should be independently patchable. BTW: GHC Haskell bootstraps, you can't compile it without already having GHC already installed. -- John Skaller <skaller at users dot sourceforge dot net> Download Felix: http://felix.sf.net -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

