nextflow icon indicating copy to clipboard operation
nextflow copied to clipboard

[proposal] Expose ScriptParser as an extension point

Open bentsherman opened this issue 3 months ago • 2 comments

The ScriptParser class defines how a Nextflow script is executed. It essentially takes a Nextflow script and produces a Groovy class (i.e. BaseScript) which, when executed, builds the workflow DAG.

Exposing this interface as an extension point would serve a number of purposes:

  • allow Nextflow to support multiple parser implementations / DSL versions in a modular way (could also be done with a regular interface)

  • allow me to develop the formal grammar (#4613) in a plugin, where I can iterate much faster because the build time is so much lower (few seconds vs 30-60 seconds)

  • allow community developers to experiment with Nextflow syntax and propose changes in a way that can be easily tested

  • in the long term, allow developers from other domains to develop their own DSLs atop the Nextflow runtime (see BEAM and JS runtimes, which can be targeted by many different languages from different domains)

Lots of potential use cases from having this extension point. But for now I mostly just want to have faster build times 😄

bentsherman avatar Mar 31 '24 03:03 bentsherman