axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] build-improvements and more-rules.mk


From: Waldek Hebisch
Subject: Re: [Axiom-developer] build-improvements and more-rules.mk
Date: Mon, 16 Oct 2006 06:28:10 +0200 (CEST)

Bill Page wrote:
> On October 15, 2006 9:38 PM Waldek Hebisch wrote:
> > ... 
> > Concerning bootstrap: one can replace browse.daase and 
> > operations.daase by "empty" databases and bootstrap still works
> > fine. I was able to build large part of algebra (including most
> > of the files which ATM are build from Lisp) using only Spad
> > sources, "empty" category.daase and minimal interp.daase, but
> > I had to set $bootStrapMode flag and build everthing in a single
> > invocation of the compiler.
> > 
> 
> Thank you for this comment.
> 
> PLEASE, PLEASE take a moment to describe what you are doing more
> clearly. I am very very interested.
> 
> Where is '$bootStrapMode flag' defined?
> 
> What do you mean by "minimal interp.daase"? How do you construct
> this minimal database?
> 

------------------<interp.daase>-----------------

(30 . 3469429128)
((|Category| NIL NIL NIL "NIL" NIL T NIL (NIL) NIL NIL NIL) (|Union| NIL NIL 
NIL "NIL" NIL NIL NIL (NIL) |domain| NIL NIL) (|Record| NIL NIL NIL "NIL" NIL 
NIL NIL (NIL) |domain| NIL NIL) (|Mapping| NIL NIL NIL "NIL" NIL NIL NIL (NIL) 
|domain| NIL NIL) (|Enumeration| NIL NIL NIL "NIL" NIL NIL NIL (NIL) |domain| 
NIL NIL))
-----------------<end interp.daase>-------------

Note that after first nonempty line you have witespace padding, so
that the second nonempty line is more than 30 charaters from the
start of the file. I created it dumping normal interp.daase in
uncompressed form and copying from it the few relevant positions.
How I found out which positions: the compiler knows what Category
or Record is, but there is no Spad sources defining them. AFAICS
all domains must be either (pre)registerd in database or compiled from
source (which as side effect registers them), so they are minimal
possibility for interp.daase (in fact I suspect that may need
some other domains to _corrctly_ compile things).

ATM if you realy want to use such minimal databases you must remove
distributed databases, replace them by minimal ones and then
start build. If you use Axiom that ever saw bigger database this
Axiom image will remember part of large database with pretty
strange consequences (I am finishing a patch which will correct
this problem).

> Could you send an example script that "builds everthing in a
> single invocation of the compiler"?
>

----------------<boostrap.input>--------------
)lisp (setq |$bootStrapMode| t)
)co TYPE.spad
)co KOERCE.spad
)co BASTYPE.spad
)co SETCAT-boot.spad
)co OUTFORM.spad
)system rm -rf SETCAT.NRLIB
)co SETCAT.spad
----------------<end boostrap.input>--------------

invocation:

DAASE=/var/tmp/hebisch/nn2/ax-build2/int/ ../build/i686-pc-linux/bin/interpsys 
< boostrap.input

(of course you need correct paths). 

BTW. $bootStrapMode compilation is quite fast, it can handle 300 Spad files
in about a minute (but it slows down when you have more files in a single
batch). 

-- 
                              Waldek Hebisch
address@hidden 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]