axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] Terms of Surrender (was: BAD tim)


From: William Sit
Subject: Re: [Axiom-developer] Terms of Surrender (was: BAD tim)
Date: Mon, 07 Nov 2005 06:44:58 -0500

root wrote:

> boot subtracts functionality and forces me to code things that
> i know generate code which is a waste of time. do this:
> 
> cd int/interp
> fgrep MAKESTRING *
> 
> see all those calls to MAKESTRING? lets investigate. each call looks like:
> 
>      (MAKESTRING "a string")
> 
> so we look up the definition of MAKESTRING in src/interp/vmlisp.lisp:
> 
>      (defmacro MAKESTRING (a b) a)
> 
> thus
> 
>      (MAKESTRING "a string") ==> "a string"
> 
> so boot generates MAKESTRING into lisp and lisp expands the macro to
> remove it. pointless.
> we need to modify the boot compiler to rewrite these string expressions.
> 

Every compiler (or assembler) generates inefficient codes because they need for
example to "parenthesize" every piece of code: just look at the LaTeX code
generated by any symbolic computation package, including Axiom. In assembler,
that would be pushing and popping stacks. These can be corrected by compiler
optimization, a fairly well understood technology. So what is needed is an
optimizer, not hand-recoding.
 
> ( to do THAT level of rewrite requires a deep understanding
>   of the boot compiler
>   ( to achieve THAT level of understanding we need to deeply
>      document how the boot compiler works.
>       ( to do THAT level of documentation we need to review
>          each function in detail.
>         ( to do THAT detailed level of documentation is pointless
>           since the boot compiler is marked for destruction))))

Are you suggesting that by simply hand-optimizing away these inefficiencies
(like my earlier analogy with cleaning generated html code), you do NOT need 
  (a deep understanding of the boot compiler
    (deeply document how the boot compiler works
     (review each function in detail)))
? and if 
  (the boot compiler is marked for destruction)
are you going to rewrite the interpreter in Lisp?

I get a feeling that you find it difficult, or at least you are unwilling, to
document Boot, its compiler, and each Boot function. Do you imply that 
reimplementing the Interpreter (or a better version of it) from scratch can be
done without such deep understanding and documentation?

William




reply via email to

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