Limitations in pre-release GeLB
#
MotivationIt is better to:
- RM many features (initially) &
- iteratively add them (afterwards).
This way, things are easier to understand, and I can also test each feature as I re-add it.
#
Syntax restrictions#
Nice-to-have-later (but initially optional) elementsNO df_alias
NO argument keywords
EXACTLY ONE
node_class
REQUIRE EXACTLY ONE {Initializer, Dynamic, Gauge}
NO array {variables, constants}
NO intrinsic functions
NO user-defined functions
NO support for loading the geometry from a file
NO periodicity
#
Data-typesONLY int values (initially, to make testing easier); in other words:
NO bool DFs, variables, constants & expressions!
NO real DFs, variables, constants & expressions!
NO bitwidth-specific data-types
#
Declaration of constants and variablesAllow only single-entity declarations (i.e. NO "real a, b, c, ...;")
Only accept declarations of vars & constants @topOf{Initializer,Dynamic,Gauge,Function}
warning
This restriction might make it into the
GeLB-v1
release!Don't allow immediate initialization for variables, BUT require immediate initialization of constants!
#
MiscFor single-letter keywords, accept only the lower-case variant (i.e. D-d, Q->q, X-x, Y->y, Z->z)
Allow only one write to f.Out per time-step
TODO: check @MidWare
NOTE: However, I might need to relax this rule, to allow output in the middle of a multi-stage Dynamic (or is this possible without relaxing this rule?!?)