Details
-
Epic
-
Status: Closed
-
Normal
-
Resolution: Won't Do
-
None
-
None
-
None
-
None
-
Native Puppet Parser
-
-
Agent
-
New Feature
-
YES, WE WILL HAVE A RELEAS NOTE FOR THIS FEATURE
Description
This epic is for work that aims at making it possible for the Ruby Puppet Runtime to benefit from a native (C++) implementation of lexer/parser/validator by getting increased performance and throughout in every compilation.
This is the starting point for many features to come and we have to constrain what we are implementing to get early feedback and fix the smaller problems before they get to big.
The simple principle that this is built on is that:
If there is a fast loading .xpp file that contains already parsed and validated AST then the parser can use that instead of performing the chain of lexing/parsing/building-AST/validating before it can start evaluating the AST.
From a user perspective this should be completely transparent. (Except naturally opting in/out when this feature is new and experimental).
As said earlier, this is the starting point enabling many interesting use cases:
- pre parsing everything in a module
- zipping up all .xpp files and signing them
- re-building all stale .xpp files at code deploy time
- polyglot implementations (other languages can generate code)
- etc.
However, this epic is not about all of the future possibilities.
Attachments
Issue Links
- is blocked by
-
PUP-5844 Add the Object type to the Puppet Type system
-
- Closed
-
- is supported by
-
NPUP-20 Theme: Validation
-
- Developing
-
-
NPUP-21 Theme: Parsing
-
- Closed
-
-
PUP-5927 Add default value to Default type
-
- Closed
-
-
PUP-5928 Add pattern matching to Runtime Type
-
- Closed
-
-
PUP-5929 Allow type alias to define a mapping between puppet names and runtime types
-
- Closed
-
- supports
-
PUP-5870 4.x Model - model related things in the 4.x release cycle
-
- Closed
-
-
PUP-6307 Theme: Native Parsing
-
- Closed
-
-
PUP-6309 Theme: Native Puppet
-
- Closed
-