Opened 11 years ago
Closed 5 years ago
#544 closed task (duplicate)
New Sindarin implementation
Reported by: | kilian | Owned by: | kilian |
---|---|---|---|
Priority: | P2 | Milestone: | v4.0 |
Component: | core | Version: | 2.1.1 |
Severity: | major | Keywords: | |
Cc: |
Description
The current state of those modules is a mess. Moreover, the expressions module is separated from the commands module by a big gap in the source code, although only both together constitute the Sindarin language.
Refactoring should realize the obvious polymorphism in the tree-like data structures. It should move the expressions module to top level. The new structure should prepare simplification, generalization, and a more consistent definition of the Sindarin language, and it should provide a sensible user interface for things like jet algorithms etc.
This is a major piece of work, so I postpone this to 2.3.
Change History (17)
comment:1 Changed 11 years ago by
comment:2 Changed 11 years ago by
The current ticket reminds us about the way to get there. Once the internals are in better shape, we can address the 'big picture' (how Sindarin should look like on the long run), also from the user's viewpoint. The mentioned tickets concern details.
comment:3 Changed 10 years ago by
Some progress recorded in and before r6311. Model variables are no longer special (rather, models are treated almost like variable records.) The previous expression type has become abstract, so the Sindarin representation is separate from expression evaluation. Variable-objects have become simpler, and scoping rules are now transparent.
Nevertheless, Sindarin objects are still rather diverse in their internal representation.
comment:4 Changed 10 years ago by
Guess this is part of the variables refactoring at the moment. WK, what is the status here ... ?
comment:6 Changed 10 years ago by
Milestone: | v2.3.0 → v2.2.6 |
---|
comment:7 Changed 10 years ago by
Status: | new → assigned |
---|
It's time to do some real work here ... (after 2.2.5 release).
comment:8 Changed 10 years ago by
Priority: | P1 → P2 |
---|
Status as of r6905:
A new Sindarin engine exists, with workflow from script parsing to execution. However, it supports just a tiny subset of the language (Boolean algebra), no Whizard functionality at all.
Still a long way to go ... I'll pursue this further in parallel to bug fixes and improvements.
Here is an incomplete list of features that are not available in Sindarin 1 at present, but should be supported by Sindarin 2 eventually:
- magic characters for types ($ and ?) can be omitted (but still allowed)
- arrays/lists
- more flow-control structures and statements
- map/reduce functionality for parameter scans [cf. #410]
- custom I/O [cf. #542]
- Lorentz algebra (data types)
- user-defined functions as observables, e.g., for improved handling of subevt objects [cf. #430]
- readable diagnostics [cf. #94]
comment:9 Changed 10 years ago by
Summary: | Refactor variables/expressions modules → New Sindarin implementation |
---|
comment:10 Changed 10 years ago by
Milestone: | v2.2.6 → v2.2.7 |
---|
comment:11 Changed 10 years ago by
Milestone: | v2.2.7 → v3.0 |
---|
This is at the moment completely blocked by too complicated code. Moving.
comment:12 Changed 10 years ago by
Milestone: | v3.0 → v2.4.0 |
---|
Moving back. The blocker was not caused by complicated code.
comment:14 Changed 8 years ago by
Milestone: | v2.5.0 → v3.0 |
---|
comment:16 Changed 7 years ago by
Milestone: | v3.0.0 → v4.0 |
---|
comment:17 Changed 5 years ago by
Resolution: | → duplicate |
---|---|
Status: | assigned → closed |
Transferred to Gitlab issue 327.
Just for clarification: so this is basically the "big SINDARIN revision" ticket, right? Please note existing possibly related tickets #410 and #416.