From: Larry L. <re...@us...> - 2007-10-27 07:30:14
|
This patch tries to solve the fixme noted in src/cold/warm.lisp http://qqq.no-ip.org/sbcl/sbcl-1.0.11.3-cold-buildflags.patch The most visible effect is that build-order.expr-lisp will not say :not-host :not-target and be implicit for all else if no flags is stated. But instead be explicit about where this code-file goes: :xc --> host-crosscompiler, :cold -> cold.core :warm -> final sbcl.core. This should be easier to understand where each code-file goes, also the reverse logic in src/cold is removed, eg (unless (position :not-target flags). It also fixes some minor kludge in build-order that uses #! for architectures. Instead we have :x86, :linux, etc.. If you have any sparetime, please comment on this. thanks alot, /larry liimatainen |
From: Nathan F. <fr...@gm...> - 2007-10-27 14:42:12
|
On 10/27/07, Larry Liimatainen <re...@us...> wrote: > The most visible effect is that build-order.expr-lisp will not say > :not-host :not-target and be implicit for all else if no flags is > stated. But instead be explicit about where this code-file goes: :xc > --> host-crosscompiler, :cold -> cold.core :warm -> final sbcl.core. > This should be easier to understand where each code-file goes, also the > reverse logic in src/cold is removed, eg (unless (position :not-target > flags). I think this is a good goal. I can't comment much on the goodness of the patch, but... > It also fixes some minor kludge in build-order that uses #! for > architectures. Instead we have :x86, :linux, etc.. ...this is clearly wrong. We don't want to look at the host Lisp's *FEATURES* when building, as we might be building an SBCL to run on a different architecture. So we really do want to use #! in build-order.lisp-expr. ...and glancing at the patch, I think you do look at the target's features. But I think the way you do it is much kludgier than simply using #!. Logical pathnames also need to use capital letters for their pathname components--and I don't think you can use logical pathnames for the cold bits of the compiler anyway...unless you set up a translation for SRC, which I do not see you doing. -Nathan |
From: Larry L. <re...@us...> - 2007-10-28 07:44:44
|
> > ...and glancing at the patch, I think you do look at the target's > features. But I think the way you do it is much kludgier than simply > using #!. Logical pathnames also need to use capital letters for > their pathname components--and I don't think you can use logical > pathnames for the cold bits of the compiler anyway...unless you set up > a translation for SRC, which I do not see you doing. > > Thanks alot for the pointers.. I'll continue with the patch. It feels the right thing todo this in build-order for architecture selection: :+x86 -> use this file only for x86 :-x86 -> don't use this file if target are x86 nothing -> use this for all arch. But some special cases kill my patch: ("src;compiler;target;arith" #!+(or ppc sparc) :ignore-failure-p) thanks, /larry |
From: Juho S. <js...@ik...> - 2007-10-28 16:10:20
|
Larry Liimatainen <re...@us...> writes: > > > > ...and glancing at the patch, I think you do look at the target's > > features. But I think the way you do it is much kludgier than simply > > using #!. Logical pathnames also need to use capital letters for > > their pathname components--and I don't think you can use logical > > pathnames for the cold bits of the compiler anyway...unless you set up > > a translation for SRC, which I do not see you doing. > > > > > Thanks alot for the pointers.. I'll continue with the patch. > > It feels the right thing todo this in build-order for architecture > selection: > > :+x86 -> use this file only for x86 > :-x86 -> don't use this file if target are x86 > nothing -> use this for all arch. Prefixing symbols with + and - does not feel right (especially since your patch seems to have something like 4 copies of the symbol parsing code). If data has some structure, the structure should be reflected in the s-exp and not in symbol names. So maybe something like (:build-if :x86), (:build-if (and (not :ppc) :darwin)), etc. I'm also a bit puzzled about the change to logical pathnames. What's the reason for doing that? -- Juho Snellman |