CSML updates
CSML updates

CSML v1.9.0 is out!




We have just released CSML v1.9.0! Although this release mostly comes with internal improvements, there are a number of new features that we would like to highlight here.

New Parser

In this release we have entirely redesigned the language parser, which comes with massive performance improvements (up to x100 parsing speed in very large files). The syntax remains the same, but CSML developers working on large chatbots will definitely love it!

New String and Array methods

We have added a few useful helpers to the String and Array types:

  • String.trim(), String.trim_start() and String.trim_end() will help with removing whitespace at the beginning or end of any string
  • Array.init(n) generates a new array of length n
  • Array.append(items) adds an array of items at the end of an array
  • Array.reverse() reverses an array

You can read more about String and Array methods on the CSML docs.

New timezones support

The Time() helper function can now also convert time between UTC and various timezones!

do UTC = Time()
do paris = UTC.to_timezone("Europe/Paris")

New ARM / Mac M1 builds

ARM-based architectures are trending, and we made the necessary improvements to natively support those! All our builds are now compatible with ARM machines, even with Docker. If you are using one of our pre-built binaries (available on the Github release page), make sure to select the right version for your architecture!

New log command

For those running CSML on their own machine rather than on CSML Studio, you may be interested in the new log verb that allows you (in conjunction with the CSML_LOG_LEVEL environment variable) to print debug data to the logging output file of your setup.

The new syntax goes as follows:

log [level] "message"

Allowed levels are trace, debug, info, warn, error. By default, CSML_LOG_LEVEL is set on error level, but you can also disable it by setting it to an empty string like so CSML_LOG_LEVEL=.

(This feature is not available to CSML Studio users, as the server logs are not publicly accessible)