David Gibson wrote:
The current device tree description is purely declarative, but this
proposal would make it a rather odd hybrid of declarative and
imperative components.  I do think this could be confusing,
particularly to device tree newcomers who may not realise which
components are compile time evaluated and which go into the output
tree.  I had in mind a rather more functional-programming style for
macros/computed properties to ameliorate this.

The several new components of not-C-feel syntax worry me greatly.

Wouldn't a "more functional-programming style" be further away from C?

If
you recall the one time I stepped away from C-inspired syntax in the
original language (bare hex constants), turned out to be a big mistake
requiring an incompatible source format change to fix.  I really want
to avoid doing that again, if we possibly can.

If you really want to be as much like C as possible, nothing's stopping you from just defining the data structures in real C. :-P

Bare hex constants being a bad idea was not purely due to it being different from C.

We also have a substantial difference in the syntax of node/property definitions, which forces syntax differences in other parts of the lanugage to avoid ambiguity.

I'm also concerned about adding language-level functions to the
language.  This requires us to have runtime notions of type and
symbols and carry them around for evaluation.  I still favour a
macro-expansion style preprocessing stage instead of semantic-level
functions for several reasons:
        - it provides high flexibility for low conceptual complexity
        - we don't have to carry around run-time evaluation structures
        - it's a form familiar to C programmers from the preprocessor

I vote against anything similar to the C preprocessor.

-Scott
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss@ozlabs.org
https://ozlabs.org/mailman/listinfo/devicetree-discuss

Reply via email to