Ash Ra Template 0.6.0: Speed

Just released version 0.6.0.

The headlining feature is speed. While the core rendering code is still arranged quasi-pedagogically, the :dependencies feature was moved to a new art-cli, which is activated only when you use that option from a CLI tool. Without the bootstrapping a new Clojure environment for each template render, we realized a huge performance boost.

What does that all mean? Whereas in previous versions we witnessed an excruciating ~ 1 template / second rendering performance, ART now realizes speeds of 10s templates / sec. And, plenty of room for performance improvements in future releases :slight_smile:

If you close your eyes and listen closely, you might hear someone a few darkened cubicles over muttering how they think this release aught to be code-named “Breaking Changes,” because we decided to pack all breaking changes in to one release, rather than draw out the process. It’s all in the CHANGELOG.md.

1 Like

One of things we use this for is to generate .java files that define data structures simple & complex sourced from a centralized project data store. Project name, version, family, API compatibility declarations, etc. The generated files are either written somewhere inside src/ and committed, or live under target/ and are deleted on clean. Now, every build of the Java project always includes the latest data, and we benefit from having the data available directly as Java types, typed-checked by the Java compiler. That’s one less thing to think about.

Another one: ART automatically generates JS license header files, and the various compilers are configured to include them. Something like this license-header.js.art:

/**
 * @license Copyright 2015,<(= (.getValue (java.time.Year/now)) )> Acme Corp.
 */

Voila! Every generated .js file includes an up-to-date license header. Quite convenient.

Version 0.6.1 corrects how help and errors are displayed from the CLI tools

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.