axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] postprop.lisp


From: Waldek Hebisch
Subject: Re: [Axiom-developer] postprop.lisp
Date: Thu, 26 Oct 2006 11:30:52 +0200 (CEST)

> root <address@hidden> writes:
> 
> | > > | > 
> | > > | > Tim --
> | > > | > 
> | > > | >   The source file postprop.lisp is compiled into depsys, but loaded
> | > > | > in interpreted form in AXIOMsys.  What is the reason for that?
> | > > | > 
> | > > | 
> | > > | AFAIK postprop.lisp is unused -- IMHO it should be removed.
> | > > 
> | > > It is compiled into depsys -- which is used to compile "old" Boot.
> | > > >From what I can see from the source file, it is used to map tokens to
> | > > functions that parse corresponding grammar production (i.e. to support
> | > > the zipper parser).
> | > > 
> | > 
> | > Well, beauty of Lisp: the same things are defined in 'property.lisp'
> | > (except for |special| property, which is unused). You are probably
> | > right that depsys picks definitions from 'postprop.lisp'.  In my
> | > experiments (IIRC using AXIOMsys) changing 'postprop.lisp' did not
> | > work (had no effect), but changing 'property.lisp' worked.  Also data
> | > in 'property.lisp' is slightly different, but for me it looks better
> | > than what is in 'postprop.lisp'.  And bootstrap with 'postprop.lisp' 
> | > removed worked fine.
> | 
> | you're both asking questions i can't answer off the top of my head.
> | there is certain to be a lot of cruft in axiom.
> | 
> | however, i take the most conservative approach and PROVE that
> | each function removed CANNOT every be called. be aware that
> | the compiler sometimes dynamically constructs function names.
> 
> If I understand Waldek correctly, "unused" is probably the wrong
> term.  Rather, "redundant" or "duplicate" would be appropriate.
> Essentially, he is saying that property.lisp has the same definitions
> and take over postprop.lisp.  I hve not run the "mental" diff yet.
> 

1) postprop.lisp is loaded purly for side effects: there are no
   functions or macros defined here.
2) I claim that property |special| initialized in postprop.lisp
   is not used: almost identical property SPECIAL defined in
   property.lisp is used insted.
3) property |postTran| initialized in postprop.lisp is a subset
   of property |postTran| initialized in property.lisp. Namely
   property.lisp contains extra pair (|::| |postColonColon|).
4) property |parseTran| initialized in postprop.lisp has an extra
   tuple (|xor| |parseExclusiveOr|) but misses tuple
   (SEGMENT |parseSegment|) compared to property.lisp
5) both postprop.lisp and property.lisp are loaded. So the image
   uses _sum_ of both definitions: if we want to remove postprop.lisp
   but preserve current behaviour we should add (|xor| |parseExclusiveOr|)
   to property.lisp 
6) with postprop.lisp removed (also from autolaod list) axiom
   built fine.


-- 
                              Waldek Hebisch
address@hidden 




reply via email to

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