[Top][All Lists]
[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