[Omake] LaTeX bug with BIBINPUTS.

Jason Hickey jyh at cs.caltech.edu
Wed Jul 5 12:14:04 PDT 2006


Aleksey Nogin wrote:
> Well, right, didn't we already discuss this about a year ago?

(Moving to omake-devel)

If I remember, we got bogged down because we were looking for a 
transparent solution.  The general problem is that 1) there are two 
separate namespaces, 2) some (but not all) values are being duplicated, 
and 3) the duplicates can be inconsistent.

At a high level, I think there are two approaches:
    1. Transparency (consistency is automatic, the programmer never
       need know that there is an environment).
    2. Explicitness (do not duplicate; all operations on the
       environment must do so explicitly, for example with
       getenv/setenv).

Transparency is hard, but using getenv/setenv directly is painful.

I'm thinking there is a solution in the middle.  The environment would 
be explicit, but it would be an object "Environment" (similar to the 
"Shell" object).

The main point would be to achieve a limited form of transparency.

     Environment. =
         extends $(Map)
         # The environment is initialized at startup

         get-TEXINPUTS() =
             split(:, $|TEXINPUTS|)

         set-TEXINPUTS(a) =
             $|TEXINPUTS| = $(concat :, $a)
             value $(this)

I know it could be a lot smarter than this, but it might be a move in 
the right direction.  One would hope to have a syntax like the following:

     Environment.TEXINPUTS[] =
         a
         b//

instead of this:

     Environment = $(Environment.set-TEXINPUTS a b//)

Jason

-- 
Jason Hickey                  http://www.cs.caltech.edu/~jyh
Caltech Computer Science      Tel: 626-395-6568 FAX: 626-792-4257



More information about the OMake-Devel mailing list