axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] /dev/null, noweb and Axiom


From: root
Subject: Re: [Axiom-developer] /dev/null, noweb and Axiom
Date: Mon, 14 Aug 2006 13:08:07 -0400

> | > > I disagree with the idea that writing to /dev/null should be banned.
> | > 
> | > But isn't /dev/null quite Unix-specific? It basically means that in 
> | > order to build Axiom one must have a Unix-like environment. Not that I 
> | > want to make the build process more complicated, but I am just curious 
> | > how difficult it would be to build Axiom without mingw or cygwin.
> | 
> | The use of ${TMP}/null rather than /dev/null is intentional.
> 
> I know it is intentional.  However, I seriously question the decision
> behind it. 
> 
> Anyway, currently ${TMP}/null is useless one build noweb.
> 
> | Axiom does not write outside of it's directory subtree for any reason.
> | Following this philosophy it cannot write to /dev/null, which may not
> | even exist on certain platforms such as windows. 
> 
> Which "flavour" of windows that can built Axiom (with current build
> system) and does not have /dev/null?

It's not a question of theology or flavors (or flavours).  The issue
again comes back to basic, easily stated, easily learned, universally
followed principles. In Axiom 

  all files are literate.  
  all directories have Makefiles that handle their subtrees.  
  all Makefiles have a stanza per file (or used to)
  all stanzas have unique identifing numbers
  all non-axiom tools live under zips
  all human written files live under SRC
  all machine-generated, system-independent files live under INT
  all machine-generated, system-dependent files live under OBJ
  all final shipped files live under MNT. 
  all literate files use the same bibtex file or will once we get it working.
  etc...


If you state a principle there is nothing else to explain.

The guiding principle in this case is that 

  Axiom never writes outside its own directory

Thus Axiom does not use /tmp but creates and saves files in OBJ. Axiom
does not use /dev/null by the same principle.  It cannot and does not
assume that /dev exists. It doesn't need to make that assumption since
the ${TMP}/null file is always overwritten unless the build fails. And
if the build fails you have a record of the last failure. So /dev/null
is not needed and loses information.

Every effort is made to use the simple and most general rules.  At one
point Axiom's Makefiles worked both under traditional 'make' and 'gnu
make'. Now they have been changed to only work under 'gnu make'. This
makes porting to the MAC, FreeBSD, and Solaris ever so much more
tedious. Axiom used to build cleanly under Solaris. It no longer does.
In the 30 year horizon view, this is not progress.

> That is close to theology.  /dev/null is very particular and must be
> exempted from the general rule.
> 

Why? If we assume /dev/null exists we will open ourselves to a porting
issue as soon as we attempt a native Windows port. The current system
does not have that problem. Why introduce it? And under what principle?
I don't see why we 'must' do anything special. 

t




reply via email to

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