Hans Reiser wrote:
George Beshers wrote:


Ah... my language design background gets us into communication trouble :-)

Suppose for a moment that exclude actually added functionality (as for example
regular expressions over file names will) what terminology would you use?
You see, to me the exclude is, at some level, little more than syntactic sugar
for the specification tools because the expressive power is equivalent in theory
even if using exclusion is much more convenient in practice.

Do you consider the various turing complete languages to have significant semantic differences?
Yes, but I understand your point.

The distinction I am drawing is that something is syntactic sugar if there is an
algorithm to translate some syntactic construct into a subset of a language
with more primitive attributes, e.g., 'elseif' is syntactic sugar.

Assume the alphabet is lower case letters for simplicity.
exclude "bar"
becomes
include ".|..|[ac-z][b-z][a-qs-z]|...+"
A moments thought and you will see that both can be implemented with
5 state finite state autometa (adding a failure/success state as the 5th state
with entire alphabet transitioning to the 5th state).

I completely agree that the exclude clause is much cleaner syntactically
and the specification compiler should handle them (requirement), but
I don't think they are a consideration in terms of the "compiled" spec
that must be evaluated in the kernel as the process is being run.

Getting Pragmatic

I have been assuming a model something like the following:

 -  There is a presentation mask format (the mask source) that is
     platform independent and probably human readable.

 -  There is a compiled mask which is designed to optimize mask
     evaluation
, i.e., the chroot like semantics.

 -  The mask evaluation is done by the mask interpreter which is
    in the kernel (reiser4 area until we take over the world ;-) ).

 -  That the format produced by tracing can be converted to a
    presentation mask for user editing.

Proposed definition:

    An extension to the presentation mask language is syntactic sugar
    Iff it does not require increasing the complexity of the mask interpreter.